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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2011, 22:10   #1
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию заменить элементы одномерного массива, стоящие перед минимальным - на нули, а стоящие после максимального - на единицы (Паскаль)

Мне нужно заменить элементы одномерного массива, стоящие перед минимальным элементом на нули, а стоя щие после максимального - на единицы.
Программу пытался писать, смог найти максимальный и минимальный элемент, а вот как заменять элементы не разобрался
помогите плз

Вот то, что я сделал:

Код:
Program Xme1ez_mas;
Uses CRT;
type mymasyv=array[1..9] of real;
     Const y:mymasyv=(-1.2,-0.1,8.3,-9.5,6.3,-2.7,9.9,-3.6,-2.8);
Var v:mymasyv;
    k,j:integer;
    min,max:real;
Begin;
CLRSCR;
min:=v[1];
Max:=v[1];
   For j:=1 to 9 do
     begin
     v[j]:=cos(3*y[j]);
     Write(v[j]:5:1);
     end;
     Writeln;
   For j:=1 to 9 do
     begin
     If min>v[j] then
     min:=v[j];
     end;
   For  j:=1 to 9 do
     begin
       If max<v[j] then
       max:=v[j];
     end;
readln;
end.

_________
Убедительнейшая просьба - давать название темы так,
чтобы название адекватно отражало суть решаемой задачи/проблемы.
эту тему я исправил.

Но в будущем неукоснительно соблюдайте это правило!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 01.12.2011 в 08:20.
Женька Good вне форума Ответить с цитированием
Старый 30.11.2011, 22:24   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

1. Это:
Код:
min:=v[1];
Max:=v[1];
Надо вынести ниже цикла, формирующего массив. Надеюсь, понимаете, зачем?

2. Циклы поиска минимума и максимума можно начинать с 2, а не с 1. Для минимума и максимума достаточно одного общего цикла.

3. Кроме самих значений max и min надо сохранять еще и индексы элементов, например, в переменные i_max, i_min.

4. Ну а нулями и единицами заполняем в цикле. Индексы у нас есть, так что проблем тут возникнуть не может.
Arigato вне форума Ответить с цитированием
Старый 01.12.2011, 06:22   #3
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Arigato, я конечно понимаю что здесь массив задан определенными значениями, но ведь при проверке значения могут поменять, и в массиве окажется например два числа равных максимальному, так что проще при втором и третьем выводе массива сразу проверять эти элементы, чем сохранять в память индексы
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из текста удалить все цифры, стоящие перед первой буквой Aleksandr15 Помощь студентам 4 30.03.2011 11:32
Дана последовательность, расположить ее положительные элементы, стоящие на нечетных местах по возра daimonTM Общие вопросы C/C++ 1 09.03.2011 08:39
Дано число. Отбросить в нем все цифры, стоящие левее самой правой единицы. SkApY Помощь студентам 5 09.11.2009 20:58
В матрице отрицательные элементы заменить на нули denis12345 Паскаль, Turbo Pascal, PascalABC.NET 2 13.06.2009 17:25
Задачка про массив - Из массива удалить четные элементы, стоящие после максимального Crookers Общие вопросы C/C++ 4 23.09.2008 19:35