Объясните, пожалуйста, эту программу, по пунктам! Зачем б и с обнулять, почему д=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.
Answers & Comments
Вообще программа странно написана.
Я так понимаю это Турбо Паскаль, так как в нем обязательно нужно указать значение переменной перед тем как использовать ее в циклах. Поэтому 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
begin
readln(vf); //вводим вес фруктов
if vf > 150 then
while vf > 150 do
begin
writeln('a<=150');
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.