Объясните, , эту программу, по пунктам! зачем б и с обнулять, почему д=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.
Вообще программа странно написана.
Я так понимаю это Турбо Паскаль, так как в нем обязательно нужно указать значение переменной перед тем как использовать ее в циклах. Поэтому 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.