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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2013, 00:54   #1
vralayala
Пользователь
 
Регистрация: 23.05.2013
Сообщений: 16
По умолчанию МАССИВ.

В массиве между min и max удалить четные элементы.
Код:
program tonyyy;
 const n=20;
 var a:array[1..n]of integer;
 i,m1,m2:integer;
 begin
 randomize;
 for i:=1 to n do begin
 a[i]:=random(9);
 write(a[i],' ');
 END;
 writeln;
 m1:=a[i];
 m2:=a[i];
 for i:=1 to n do begin
 if (m1>a[i]) then
 m1:=a[i];
 if (m2<a[i]) then
 m2:=a[i];
 end;
 if(i>m1) and (a[i] mod 2=0) and (i<m2) then
НАЧАЛО ПРАВИЛЬНОЕЕ??!!




___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 20.09.2013 в 08:38.
vralayala вне форума Ответить с цитированием
Старый 20.09.2013, 01:08   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Почти.
Код:
m1:=a[i];
m2:=a[i];
Здесь вместо i надо написать 1
Вадим Мошев вне форума Ответить с цитированием
Старый 20.09.2013, 01:25   #3
vralayala
Пользователь
 
Регистрация: 23.05.2013
Сообщений: 16
По умолчанию

а дальше каковы действия?
vralayala вне форума Ответить с цитированием
Старый 20.09.2013, 08:51   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

мыслите Вы хорошо, но упускаете один важный момент.
Обратите внимание, что Вам не нужно найти ВЕЛИЧИНУ минимального и максимального значения, это верно (с поправкой от Вадима Мошева)
но Вам нужно найти ПОЗИЦИИ элементов с максимальной и минимальной величиной.
Значит, Вам нужно запоминать индексы.
Выглядеть поиск будет примерно так:
Код:
....
var 
  MaxValueIndex, MinValueIndex : integer;
....
 randomize;
 for i:=1 to n do begin
    a[i]:=random(9);
    write(a[i],' ');
 end;
 writeln;
 MaxValueIndex := 1; {считаем, что первый элемент массива максимален}
 MinValueIndex := 1; {считаем, что первый элемент массива минимален}
 for i:=1 to n do begin
    if a[i]>a[MaxValueIndex] then MaxValueIndex := i;
    if a[i]<a[MinValueIndex] then MinValueIndex := i;
 end;

 WriteLn(' Maximalnyi element = ', a[MaxValueIndex],' ego index v massive = ', MaxValueIndex );
 WriteLn(' Minimalnyi element = ', a[MinValueIndex],' ego index v massive = ', MinValueIndex );

... 
   а теперь Вам нужно проверить, 
   как взаимно расположены максимальный и минимальный элементы 
   (кто из них правее, кто левее) и если условия позволяют, то произвести удаление. 
   удаление в статическом массиве может быть произведено 
    одним единственным способом: все элементы расположенные после удаляемого,
        сдвигаются на место удаляемого
    есть ещё вариант. Если условие задачи допускает, 
    то можно ограничиться тем, что выдать якобы "новый" массив на экран, 
    это проще - не надо ничего сдвигать, удаляемые элементы просто не выводим на экран и всё.
    Но в вашем случае, скорее всего, такой вариант решения не будет принят.
    Придётся заниматься сдвигами в циклах...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан одномерный массив, сформировать новый массив по заданному правилу {Delphi} Nickolai47 Помощь студентам 5 16.12.2012 14:51
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 11:26
Запись координат в массив в реал тайм, Как записать координаты в массив Dark19 Visual C++ 2 21.06.2011 18:45
Из массив А получить массив В, удвоив все нечётные элементы удвоены ( на Pascal) KARTER Помощь студентам 1 18.06.2011 19:58