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.
т.е получается что переменна "макс" несет смысловую нагрузку как индекс, т.е получается что если элемент меньше 0 и по модулю этот элемент больше чего ?? вот не могу понять больше чего, т.е оно как сравнивает между ссобой это?
if (m[i] < 0) and (abs(m[i]) > abs(m[max])) then max := i;
Т.е простыми словами как работает цикл нахождение макс. отриц. элемента по модулю
ребят что сложно помочь? просто я плохо разбираюсь в паскале а здавать лабы надо (
если элемент меньше 0 и по модулю больше ранее найденного максимального, то он становится новым максимальным.
З.Ы. максимальный отрицательный элемент по модулю - это не то же самое, что найти минимальный, который обязательно должен быть отрицательным?
да вот что то не понятно, я ему вначале сделал как ты сказал т.е нашел самый минимальный отриц элемент, он мол говорит это не по модулю, вот я решил по другому сделать, спасиб ну вроде что то понял!
мог бы и посмотреть на пол... :-/
таакс ну т.е я понял получается первоночально макс =0 т.е сравнивается элемент с нулем потом занимает максимальное и сравнивается дальше пока не будет самое большое по модулю чило?! так? если я не прав поправте меня, т.е логический смысл макс это занимать самое большое и сранивать его далее