Консультация № 146342
07.10.2008, 16:12
0.00 руб.
0 2 2
Дорогие Эксперты, помагите мне с задачей:
Найти максимальный элемент массива A(N), среди отрицательных числел и минимальных среди положилетльных

Обсуждение

давно
Старший Модератор
31795
6196
07.10.2008, 17:28
общий
это ответ
Здравствуйте, Соловьёв Алексей Александрович!

Программа в приложении.
Ноль не участвует в поиске, т.к. не относится к положительным и отрицательным числам.
Удачи!

Приложение:
const
n=20;
var
a:array[1..n]of integer;
i,imin,imax:integer;
begin
{создаем случайно массив}
randomize;
for i:=1 to n do
begin
a[i]:=50-random(99);
write(a[i]:4);
{поиск индексов отрицательных и положительных чисел}
if a[i]<0 then imax:=i
else if a[i]>0 then imin:=i;
end;
{цикл поиска результата}
for i:=1 to n do
if (a[i]<0)and(a[i]>a[imax])then imax:=i
else if (a[i]>0)and(a[i]<a[imin])then imin:=i;
writeln;
{вывод результата}
writeln('min:',a[imin]:5,'max:':10,a[imax]:5);
readln;
end.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
08.10.2008, 14:04
общий
это ответ
Здравствуйте, Соловьёв Алексей Александрович!
Предлагаю такой вариант реализации.
Код в приложении.
Это для массива целых чисел.
соответственно max, min и a нужно сделать real для массива действительных чисел.

Приложение:
var
i, n, min, max: integer;
a: array of integer;

begin
Readln(n); {вводим размерность}
SetLength(a, n);
for i:= 0 to Length(a) -1 do Readln(a[i]); {вводим массив}
min:= 0; max:= 0;
{ищем максимальное значение среди отрицательных чисел, как минимальное по абсолютной величине}
i:=1;
while (max = 0) and (i <= Length(a)) do
begin
if a[i] < 0 then max:= a[i];
i:=i+1;
end;

for i:= 0 to Length(a) -1 do
begin
if a[i] < 0 then
if Abs(a[i]) < Abs(max) then max:= a[i];
end;
{ищем минимальное среди положительных}
i:= 1;
while (min = 0) and (i <= Length(a))do
begin
if a[i] > 0 then min:= a[i];
i:=i+1;
end;
for i:= 0 to Length(a) -1 do
begin
if a[i] > 0 then
if a[i] < min then min:= a[i];
end;
writeln(max);
writeln(min);
Форма ответа