Объясните, пожалуйста, эту программу, по пунктам! Зачем б и с обнулять, почему д=1000?...

0 голосов
41 просмотров

Объясните, пожалуйста, эту программу, по пунктам! Зачем б и с обнулять, почему д=1000? Если распишите, буду безмерно благодарна!program four; uses crt; var a, b, c, d, kop, rub:real; begin clrscr; writeln('sena 1 kg fruktov'); readln(a); b:=0; c:=0; d:=1000; repeat c:=c+b; writeln('ves fructa ne bolee 150 g'); readln(b); d:=d-b; until d<0; c:=c/1000; a:=a*c; rub:=trunc(a); kop:=(frac(a))*100; writeln(rub:4:0,' rub ',kop:4:0,' kop'); readkey; end.​<hr>image


Информатика (61 баллов) | 41 просмотров
0

Программа работает не совсем правильно. Она принимает вес немного больше чем 1 кг

0

Другой цикл нужен?

0

давайте, было бы замечательно

Дан 1 ответ
0 голосов

Вообще программа странно написана.

Я так понимаю это Турбо Паскаль, так как в нем обязательно нужно указать значение переменной перед тем как использовать ее в циклах. Поэтому b и c присвоили 0. (В PascalABC нулю присваивать не обязательно)

d = 1000, потому что максимальный вес, который может вместить в себя пакет равен 1кг. Так как фрукты в граммах, то d присваиваем не 1, а 1000.

Я бы написал программу так:

program ll1;

var sum, a, vf: integer;

pr_rub, pr_kop: real;

begin

readln(a); //цена фруктов за кг в руб

max_v:=1000; //максимально возможный вес в гр.

sum:=0; //изначальный вес пакета

while sum<=max_v do</p>

begin

readln(vf); //вводим вес фруктов

if vf > 150 then

while vf > 150 do

begin

writeln('a<=150');</p>

readln(vf);

end; //по условию, вес фрукта не должен превышать 150гр

sum:=sum+vf; //находим общий вес фруктов

end;

pr_rub:= (sum * a) / max_v; //находим цену в рублях

pr_kop:= pr_rub * 100; //переводим рубли в копейки

writeln('Price RUB: ', pr_rub:4:0);

writeln('Price KOP: ', pr_kop:4:0);

readln();

end.

(104 баллов)
0

огромное спасибо!

0

кто шарит, напишите, пожалуйста, в лс!