Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача на массивы

Автор: DreamerFX 17.04.2014 3:26

написать программу,которая формирует одномерный массив(массив температур),вычисляет минимальное среди отрицательных элементов массива D(1..30)

Автор: DreamerFX 17.04.2014 18:04

const
n=30;
var
a:array[1..n] of integer;
i,min:integer;
begin
for i:=1 to n do read (a[i]);
min:=0;
for i:=1 to n do
if a[i]<min then min:=a[i];
write('Минимальное среди отрицательных',min);
end.


правильно?

Автор: Федосеев Павел 17.04.2014 23:55

В принципе - почти да.
Но есть вопрос - что будет при отсутствии отрицательных элементов в массиве?
Можешь решить или добавлением булевой переменной и тогда вид условия станет

  min:=0;
NegativePresent:=false;
for i:=1 to n do
if a[i]<min then
begin
min:=a[i];
NegativePresent:=true;
end;
if NegativePresent then
writeln('Минимальное среди отрицательных', min)
else
writeln('В массиве нет отрицательных элементов.');

Ещё улучшение, обычно добавляемое к требованиям в ЕГЭ по информатике - ввод массива и его обработка должна быть реализована в одном цикле. Хотя для читабельности и обучения с "нуля" - в двух циклах нагляднее.

Автор: DreamerFX 18.04.2014 1:12

Короче я затупил
необходимо переделать на рандомный массив,а не ввод его руками. Есть идеи?

Автор: Федосеев Павел 18.04.2014 2:41

Навалом - http://yandex.ru/yandsearch?clid=9582&text=pascal+%D1%80%D0%B0%D0%BD%D0%B4%D0%BE%D0%BC%D0%BD%D1%8B%D0%B9+%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2&lr=35