Помощь - Поиск - Пользователи - Календарь
Полная версия: Поиск в массиве
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Дима
program lab01;
uses crt;
var i,sh:integer;
m:array[1..50] of real;
max:integer;

const a=-150;
b=150;
begin
ClrScr;
writeln('zadaetsta masiv sluchainim obrazom -150 do 150 ');
writeln('Najmite <ENTER> dlyz generacii');
readln;
randomize;

for i:=1 to 50 do begin m[i]:=random(b-a)+a;
write(m[i]:3 :0,'....');
sh:=sh+1;

if sh=10 then begin
readln;
writeln;
sh:=0;
end;



end;
max := 0;

for i := 1 to 50 do
if (m[i] < 0) and (abs(m[i]) > abs(m[max])) then max := i;

writeln('i = ', max, ' m[', max, '] = ', m[max]:3 :0);
readln;
end.

Дан неупорядочный массив, найти максимальный отрицательный элемент по модулю, мне вот кто-то помог на этом сайте с помощью пиременной макс вот в таком ввиде, кто может объясните пожалуйста какая смысловая нагрузка на переменну max т.е что за что отвечает немогу понять как оно работает! пожалуйста подскажите, я вот читал про линейный поиск ну что то не понял, почему max=0? и не может принять значение real
volvo
Цитата
почему max=0? и не может принять значение real
Изначально ты не знаешь, какой элемент максимальный, поэтому обнуляешь индекс... А не может принять значение типа Real - потому, что я уже сказал: это не сам максимальный элемент, а его позиция (индекс) в массиве.
Дима
т.е получается что переменна "макс" несет смысловую нагрузку как индекс, т.е получается что если элемент меньше 0 и по модулю этот элемент больше чего ?? вот не могу понять больше чего, т.е оно как сравнивает между ссобой это?
if (m[i] < 0) and (abs(m[i]) > abs(m[max])) then max := i;

Дима
Т.е простыми словами как работает цикл нахождение макс. отриц. элемента по модулю
Дима
ребят что сложно помочь? просто я плохо разбираюсь в паскале а здавать лабы надо (
мисс_граффити
если элемент меньше 0 и по модулю больше ранее найденного максимального, то он становится новым максимальным.
З.Ы. максимальный отрицательный элемент по модулю - это не то же самое, что найти минимальный, который обязательно должен быть отрицательным?
Дима
да вот что то не понятно, я ему вначале сделал как ты сказал т.е нашел самый минимальный отриц элемент, он мол говорит это не по модулю, вот я решил по другому сделать, спасиб ну вроде что то понял!
мисс_граффити
мог бы и посмотреть на пол... :-/
Дима
таакс ну т.е я понял получается первоночально макс =0 т.е сравнивается элемент с нулем потом занимает максимальное и сравнивается дальше пока не будет самое большое по модулю чило?! так? если я не прав поправте меня, т.е логический смысл макс это занимать самое большое и сранивать его далее
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.