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

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

Форум «Всё о Паскале» _ Задачи _ Разветвляющая програма

Автор: arcan 7.12.2006 17:07

Ввести рекордное значение надоя на одну корову. По каждому хозяйству ввести количество коров и суммарный надой, выдать больше, меньше или равен надой на одну корову рекордному. Значение рекорда не изменять. В конце программы выдать
МАКСИМАЛЬНЫЙ НАДОЙ НА ОДНУ КОРОВУ 99999 ЛИТРОВ
В ХОЗЯЙСТВЕ НОМЕР 999

Код

program nadoi;
var rec,sym,kol,hoz:integer;
n:char;
begin
writeln('Vvedite record');
readln(rec);
repeat
writeln('hozayctvo # ');
readln(hoz);
writeln('symmarnui nadoi');
readln(sym);
writeln('kol-vo korov');
readln(kol);
begin
writeln('summarnui nadoi');
if sym/kol<rec then
writeln('menshe recorda')
else
if sym/kol>rec then
writeln('bolshe recorda')
else
writeln('raven recordy');
end;
writeln('poc4utat? 1-da,0-net:');
readln(n);
until n='1';
writeln('max nadoi na 1 korovy',sym/kol:5:0);
writeln('v xoz #' ,hoz:3 );
readln;
end.

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

Автор: Ozzя 7.12.2006 17:15

В массив записывайте данные.

Автор: arcan 7.12.2006 18:34

Ой забыл, нельзя использовать массивы.Только с while или repeat.

Автор: hiv 7.12.2006 21:17

Не проверял, но должно быть так:

program nadoi;
var rec,sym,kol,hoz,max_nadoi,v_xoz:integer;
n:char;
begin
max_nadoi:=0;
v_xoz:=0;
writeln('Vvedite record');
readln(rec);
repeat
writeln('hozayctvo # ');
readln(hoz);
writeln('symmarnui nadoi');
readln(sym);
writeln('kol-vo korov');
readln(kol);
writeln('summarnui nadoi');
if sym/kol<rec
then writeln('menshe recorda')
else if sym/kol>rec
then writeln('bolshe recorda')
else writeln('raven recordy');
if max_nadoi>(sym/kol) then
begin
max_nadoi:=sym/kol;
v_xoz:=hoz;
end;
writeln('poc4utat? 1-da,0-net:');
readln(n);
until n='1';
writeln('max nadoi na 1 korovy',max_nadoi:5:0);
writeln('v xoz #' ,v_xoz:3 );
readln;
end.