В связи с участившимися случаями спама, у вновь зарегистрированных пользователей отключена возможность создания сообщений на форуме. Возможность писать сообщения будет включаться администратором вручную — через некоторое время после регистрации пользователя. Для включения этой функции быстрее, пишите личное сообщение администратору сайта (в сообщении напишите кратко о себе и с какой целью регистрировались на сайте).
Обратите внимание: пользователям, нарушающим п.2.1 возможность писать сообщения включаться не будет!
Просим отнестись с пониманием: это вынужденная мера.
Ну а как искать максимум и минимум, если не использовать функции min и max, по-моему проще отсортировать и взять крайние элементы массива.
а можно по-простому -
maxA:=A[1];
minA:=A[1];
for i:=2 to 30 do
begin
if A[i]>maxA then maxA:=A[i];
if A[i]<minA then minA:=A[i];
end;
после такого прохода в этих переменных будут максимальное и минимальное значение из массива. _________________ когда-то было "Veni, Vidi, Modero"
Сорри за оффтопик , просто идя навстречу пожеланиям большинства поменял название темы на вариант , придложенный Krom`ом .
Если неправильно - пишите , верну назад . _________________
Можно по простому, только все равно еще надо будет повторно прогонять, надо ведь найти не значения, а номера дней с этими значениями.
Лучше тогда так:
Код:
maxA:=A[1];
minA:=A[1];
for i:=2 to 30 do
begin
if A[i]>maxA then
begin
i:=maxday[j];
j:=j+1;
end;
if A[i]<minA then
begin
i:=minday[z];
z:=z+1;
end;
end;
maxday, minday - массивы номеров дней с максимальным и минимальным числом осадков соответственно.
Можно по простому, только все равно еще надо будет повторно прогонять надо ведь найти не значения, а номера дней с этими значениями.
а я же об этом писал выше.
НО - если во время ввода элементов массива сделать эту проверку, то по окончании ввода всех 30 элементов массива, у нас в переменных уже будут максимум и минимум. Это раз, и не надо будет лишний раз шерстить массив, не так ли?
А уже потом можно будет или за два прохода по массиву (максимум и минимум) получить список максимальных и минимальных элементов, да? _________________ когда-то было "Veni, Vidi, Modero"
Krom, да. я там ошиблась i+1 должно быть.
Archangel, осадки измеряются в мм. Например, 1 числа выпало 10 мм осадков. Влажность не нужна. math не используем
что-то все пропали, больше нет никаких предложений?
увы, работа...
да и по задаче было уже несколько идей выложено - попробуйте реализовать, не будет получаться - поправим. _________________ когда-то было "Veni, Vidi, Modero"
Паскаля под рукой нет. Пишу по памяти. Могу напортачить.
Код:
var
i: integer;
Smax, Smin, Ssum: integer;
S: array [1..30] of integer;
Stmax, Stmin : string;
Smid: real;
begin
Smax = Smin = Ssum = 0;
writln('Введите 30 чисел массива S');
for i:=1 to 30 do
begin
writeln ('Введите', i,'-й элемент');
readln (S[i]);
if (S[i] > Smax) then
Smax := S[i];
if (S[i] < Smin) then
Smin := S[i];
Ssum := Ssum + S[i];
end;
for i:=1 to 30 do
begin
if (S[i] = Smax) then
Stmax := Concat(Stmax, IntToStr(i), ' ');
if (S[i] = Smin) then
Stmin := Concat(Stmin, IntToStr(i), ' ');
end;
Smid = Ssum / 30;
end
В результате должно получиться в Smid - среднее значение
В строке Stmax дни через пробел с максимальным значением, Stmin - с минимальным.
Осталось просто вывести в файл. (Я уже не помню основы вывода).
Да и начальный массив можно задавать из файла.
Krom, я пробовала вот это тело. Ну добавила переменные. У меня вообще ничего не выводит.
maxA:=A[1];
minA:=A[1];
for i:=2 to 30 do
begin
if A[i]>maxA then
begin
i:=maxday[j];
j:=j+1;
end;
if A[i]<minA then
begin
i:=minday[z];
z:=z+1;
end;
end;
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах