. Надо перед циклом задать ненулевое значение переменной из условия
var
n,i: integer;
a,b,S: double;
function square(a,b:double):double;
begin
square:=a*b;
end;
begin
S:=0;
while a<>0 do
write('Введите длину: ');
readln(a);
Write('Введите ширину: ');
readln(b);
S:=S+square(a,b);
write('Общая площадь: ', S:5:5);
end.
//Пакетов может быть неограниченное количество. Сколько гречи будет в
//последнем заполненном пакете?
var x,a : longword;
begin
writeln ('Введите общую массу гречи, в граммах');
readln (x);
writeln ('Введите массу насыпаемой в пакет гречи, в граммах');
readln (a);
writeln ('полных пакетов будет ',(x div a));
if (x mod a)=0 then writeln ('В последнем насыпанном пакете будет ',a,' грамм гречи')
else writeln ('В последнем насыпанном пакете будет ',(x mod a),' грамм гречи');
end.