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

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

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

Автор: noflymouse 16.05.2010 19:20

Помогите написать программу, пожалуиста..

В одномерном массиве Т хранятся данные о температуре окружающего воздуха за июнь месяц. Сколько дней температура была минимальной? Массив заполнить целыми случайными числами в диапазоне от 20 до 35.

Бьюсь уже второй час, ничё не помогает. Буду оч признателен тому кто поможет. Программа то простая..

Автор: Client 16.05.2010 19:31

что не получается? описать массив из 30 элементов, заполнить случайными числами или найти минимальный элемент?

Автор: noflymouse 16.05.2010 19:48

program fg;
uses crt;
var min,count : real; i, a : integer;
T: array[0..31] of real;

begin
for i:=1 to 31 do begin T[i]:=20+random(16); Write(T[i]:3);
min:=T[0];
for i:=1 to 31 do
begin
if (T[i] < min) min:=T[i];
end;
for i:=0 to 31 do
begin
if(T[i]=min) count:=count+1;
end;

writeln(min);
end.

и не работает программа.. =\

Автор: Freedom 16.05.2010 19:54

program fg;
uses crt;
var min,count : real; i, a : integer;
T: array[1..31] of real;

begin
for i:=1 to 31 do begin T[i]:=20+random(16); Write(T[i]:0:2,' ');
end;
min:=T[1];
for i:=1 to 31 do
begin
if (T[i] < min) then min:=T[i];
end;
for i:=0 to 31 do
begin
if(T[i]=min) then count:=count+1;
end;
writeln;
writeln(min:2:2);
readln;
end.

Сурово использовать If без then. И да выводит 0 потому что min:=t[0] где в t[0] ты не забивал никакого значения и он равняется 0 следовательно он и минимальным остаётся исправил на min:=t[1]

Автор: noflymouse 16.05.2010 19:57

Ох, спасибо тебе добрый человек. Я вобще когда то шарил в паскале, но уже 5 лет прошло и всё к чертям забыл

Автор: Client 16.05.2010 19:58

program fg;
uses crt;
var
min,count : integer;
i : integer;
T: array[1..30] of integer;

begin
randomize;
for i:=1 to 30 do begin
T[i]:=20+random(16);
Write(T[i]:3);
end;
min:=T[1];
for i:=2 to 30 do
if (T[i] < min) then min:=T[i];
for i := 1 to 30 do
if (T[i] = min) then count:=count+1;
writeln;
writeln(min, ' ', count);
end.
Да и 32 дня не многовато? smile.gif

Автор: volvo 16.05.2010 21:50

Сколько раз еще надо говорить, чтобы программист в конце концов начал инициализировать переменные? Повторяю в 12878-ой раз: НЕ НАДЕЙТЕСЬ на то, что добрый дяденька-компилятор сделает за вас работу! Переменные должны быть инициализированы программистом. Точка. Не давайте даже повода для возможной ошибки...