Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2008, 12:39   #1
Андрюха из ПХТТ
Пользователь
 
Регистрация: 04.01.2008
Сообщений: 21
Вопрос Помогите с Задачей на массив

Дан целочисленный массив. удалить из него все элементы, расположенные между MIN и MAX Элементами (оформить в виде процедуры).

Последний раз редактировалось Андрюха из ПХТТ; 07.02.2008 в 12:53.
Андрюха из ПХТТ вне форума Ответить с цитированием
Старый 07.02.2008, 12:57   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Во-первых тему нужно называть так чтоб она была понятна, ты нарушил правила.
Во-вторых Какие твои соображения по поводу задачи?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.02.2008, 16:18   #3
Андрюха из ПХТТ
Пользователь
 
Регистрация: 04.01.2008
Сообщений: 21
По умолчанию

Код:
procedure optim(a:mas1; k:byte; var b :mas1) ;
var i,m,n:byte;
    min, max: integer;
begin min:=a[1];   m:=1;
      for i:= 1 to k do
          If a[i]<min then begin min:=a[i]; m:=i end;
      max:=a[1];   n:=1;
      for i:= 1 to k do
          If a[i]>max then begin max:=a[i]; n:=i end;
      writeln ('min=',min,' ',m);
      writeln ('max=',max, ' ',n);
      if m<n then for I:=n-1 downto m+1  do begin
                         a[i]:=a[m+n-i+1];
                        { if i>k-(n-m) then a[i]:=0
                       }  end
             else for I:=m-1 downto n+1  do begin
                         a[i]:=a[n+m-i+1];
                    {     if i>k-(m-n) then a[i]:=0
                        } end;
      for I:=1 to k do
          B[i]:=a[i];
      end;
вот такой у меня текст программы не могу справиться с выделенным фрагментом
Андрюха из ПХТТ вне форума Ответить с цитированием
Старый 07.02.2008, 19:20   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
uses crt;
type Tmass=array[1..20]of integer;//объявляем тип массив
var a,b:Tmass;
    n,i,t:integer;
//делаем процедуру, которая находит мин, макс. и удаляет лишнее.
//процедура берет массив а, его размер n и выдает массив b и его размер t.
procedure UdalEl(a:Tmass;n:integer;var b:Tmass;var t:integer);
var max,imax,min,imin:integer;
begin
min:=a[1];max:=a[1];imin:=1;imax:=1;
for i:=2 to n do
  begin
   if a[i]<min then  //находим мин и его номер
     begin
       min:=a[i];
       imin:=i;
     end;
   if a[i]>max then  //находим макс и его номер
     begin
       max:=a[i];
       imax:=i;
     end;
   end;
t:=abs(imin-imax)-1;  //сколько чисел выкинуть
if imin<imax then
   begin
     for i:=1 to imin do  //выводим первые числа
     b[i]:=a[i];
     for i:=imin+1 to n-t do  //выводим последние числа
     b[i]:=a[i+t];
   end
else                   //тоже самое, если макс раньше, чем мин
   begin
     for i:=1 to imax do
     b[i]:=a[i];
     for i:=imax+1 to n-t do
     b[i]:=a[i+t];
   end;
end;   //конец процедуры
begin       //программа
clrscr;
randomize;
write('n=');readln(n);
writeln('Ishodny massiv:');
for i:=1 to n do
   begin
     a[i]:=random(20)-10;
     write(a[i],' ');
   end;
readln;
UdalEl(a,n,b,t);
writeln('obrabotanny massiv:');
for i:=1 to n-t do
write(b[i],' ');
readln
end.
puporev вне форума Ответить с цитированием
Старый 14.02.2008, 20:34   #5
getherefast
 
Регистрация: 13.02.2008
Сообщений: 5
По умолчанию

помогите решить задачу с паскалем пожалуйста:Задан массив действитальных чисел . построить новый массив,в который поместить все элементы исходного,оканчивающиеся на цифру 5.
getherefast вне форума Ответить с цитированием
Старый 14.02.2008, 20:48   #6
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

действитальных это integer? или real?
извините за туповатый вопрос все не могу запомнить
^_^
WOLFak вне форума Ответить с цитированием
Старый 14.02.2008, 21:07   #7
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

Код:
var
 a,b:array[1..100]of integer;
 s:string;
 i,s1,n,n2:integer;
begin
read(n);
for i:=1 to n do
begin
 read(a[i]);
 str(a[i],s);
 if s[length(s)]='5' then
  begin
  inc(n2);
  b[n2]:=a[i];
  end;
 end;
 writeln('----------');
  for i:=1 to n2 do
   writeln(b[i]);
end.
^_^
WOLFak вне форума Ответить с цитированием
Старый 16.02.2008, 15:19   #8
getherefast
 
Регистрация: 13.02.2008
Сообщений: 5
Радость

действительные это real
getherefast вне форума Ответить с цитированием
Старый 17.02.2008, 10:36   #9
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

Код:
var
 a,b:array[1..100]of string;
 s:string;
 i,s1,n,n2:integer;
begin
readln(n);
for i:=1 to n do
begin
 readln(a[i]);
 if a[i][length(a[i])]='5' then
  begin
  inc(n2);
  b[n2]:=a[i];
  end;
 end;
 writeln('----------');
  for i:=1 to n2 do
   writeln(b[i]);
end.
вот те решение работает со всем )
^_^
WOLFak вне форума Ответить с цитированием
Старый 20.02.2008, 16:39   #10
getherefast
 
Регистрация: 13.02.2008
Сообщений: 5
По умолчанию

очень нужно решение этой задачи в паскале помогите пожалуйста: в спортивной лотерее требуется угадать 3 номера. для имеющихся результатов розыгрыша лотереи и известных ответов каждого участника лотереи определить, сколько человек угадали все 3 номере, 2 номера , 1 номер и сколько человек не гадали ни одного номера. каждый участник указывает только 1 вариант прогноза.
исходными данными считать список из 3 выпавших номеров, число участников и списки номеров каждого участника
а вот программа но мне надо сделать чтобы оператора break не было помогите !!!
Код:
var
mas:array[1..3]of byte;
kil,k,i, j,z, ch:byte;
g1, g2, g3, g0:byte;
begin
g0:=0; g1:=0; g2:=0; g3:=0;

for i:=1 to 3 do begin
read(mas[i]);
end;

read(kil);

for i:=1 to kil do begin
k:=0;
for j:=1 to 3 do begin
read(ch);
for z:=1 to 3 do begin
if ch=mas[z]then begin k:=k+1; break; end;
end;
end;
if k=0 then g0:=g0+1 else
if k=1 then g1:=g1+1 else
if k=2 then g2:=g2+1 else
if k=3 then g3:=g3+1;
end;

writeln(g0,' ',g1,' ',g2,' ',g3);
end.
getherefast вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с задачей на с++ JOFRIF Помощь студентам 7 23.04.2008 20:46
Помогите с задачей на С++ Nemisoi Помощь студентам 1 22.04.2008 22:09
Помогите с задачей Лёха Паскаль, Turbo Pascal, PascalABC.NET 7 08.02.2008 20:08
Помоигте с задачей на массив Juhn Паскаль, Turbo Pascal, PascalABC.NET 13 23.01.2008 22:19
Помогите с задачей на С++ zub Общие вопросы C/C++ 1 06.12.2007 19:27