Страница 1 из 1
Максимум, минимум и среднее одномерного массива
Добавлено: 18 май 2009, 18:48
Любанечка
Помогите, пожалуйста!!!

Ничего не понимаю...
1. В заданном массиве заменить значения минимального и максимального элементов на 0. Вещественный массив К(20).
2. Найти среднее арифметическое тех элементов массива, значение которых меньше первого элемента. Вещественный массив Х(20).
Заранее большое спасибо!!!
Re: Максимум, минимум и среднее одномерного массива
Добавлено: 23 май 2009, 00:29
Naeel Maqsudov
См. Список похожих тем ниже и поиск по меткам.
Re: Максимум, минимум и среднее одномерного массива
Добавлено: 24 май 2009, 15:30
Тимур1994
Код: Выделить всё
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var k:array [1..20] of integer;
max,min:integer;
i:integer;
begin
writeln('unsortit vassiv');
max:=-999;
min:=999;
for i:=1 to 20 do
begin
k[i]:=random(100)-50;
write(' ',k[i],' ');
if k[i]> max then max:=k[i];
if k[i]< min then min:=k[i];
end;
writeln;
writeln('sortit massiv');
for i:=1 to 20 do
begin
if k[i]=max then k[i]:=0;
if k[i]=min then k[i]:=0;
write(' ',k[i],' ');
end;
readln;
end.
Re: Максимум, минимум и среднее одномерного массива
Добавлено: 26 май 2009, 18:39
Любанечка
спасиб ))))))))) только непонятно, почему max:=-999;
min:=999;
Re: Максимум, минимум и среднее одномерного массива
Добавлено: 26 май 2009, 19:18
Тимур1994
(За граматические и пунтакционые ошибки не ругай еле смог ответить на твой вопрос)Пожауста! Ну во-первых почему max=-999 a min=999 когда мы находим максимальное значение в массиве мы проверяем переменныю max с a
поэтомы мы max делаем самым минимальным т.к. масссив берет 1 элемент он равен 34 или -34 поэтомы он проверяет если a>max then max:=a или -34 или 34 > -999 then a:=34 или -34 аналогично с min

Re: Максимум, минимум и среднее одномерного массива
Добавлено: 26 май 2009, 19:27
Naeel Maqsudov
Тимур1994,
во-первых: для обозначения "самого максимального" в типе Integer используется слово MaxInt
во-вторых: есть вычисляемое на этапе компиляции выражение High(имя_типа) и Low(имя_типа)
в-третьих: здесь уже неоднократно такие задачи решены и во всех правильных примерах полагается максимальным/минимальным первый элемент, а просмотр массива ведется со второго элемента. Понятна идея?
Re: Максимум, минимум и среднее одномерного массива
Добавлено: 26 май 2009, 19:33
Тимур1994
во первых что означает High(имя_типа) и Low(имя_типа);
Во вторых почемы минимальный\максимальный элемент берётся первы элемент массива

Re: Максимум, минимум и среднее одномерного массива
Добавлено: 26 май 2009, 20:04
Naeel Maqsudov
High и Low описаны в справочной системе.
Так константа
MaxInt определена как
High(Integer).
High(Byte), например будет равна 255, и т.д.
По поводу максимума и минимума следовало бы просто посмотреть готовые решения, имеющиеся тут в изобилии. Идея проста: какой-то из элементов обязательно окажется наибольшим. Его поиск в цикле это последовательная проверка каждого элемента. "Может этот?" Следовательно первый элемент можно сразу считать максимальным, до той поры, пока мы не знакомы с остальными. Количество итераций цикла при этом попутно уменьшается на одну.
Код: Выделить всё
Max:=a[1];
For i:=2 to N do if a[i]>Max then Max:=a[i];
Max - это максимум
Если требуется найти не только значение максимума, а еще и позицию максимального элемента, то это ничуть не сложнее:
Код: Выделить всё
PosMax:=1;
For i:=2 to N do if a[i]>a[PosMax] then PosMax:=i;
PosMax - это номер максимального элемента
a[PosMax] - это его значение
Re: Максимум, минимум и среднее одномерного массива
Добавлено: 26 май 2009, 20:13
Тимур1994
Спасибо!! Но насчет low и

High всё равно не понял
Re: Максимум, минимум и среднее одномерного массива
Добавлено: 26 май 2009, 20:16
Naeel Maqsudov
F1 нажимали?
Вместо +999 и -999 надо использовать MaxInt и Low(Integer) соответственно.