Программа рабочая, скорее всего ты просто вводил элементы в строчку, а у тебя стоит в чтении переход на новую строку(окончание LN), и паскаль просто не видел никакие числа, кроме первого.
И очень муторный и непонятный код, я переписал немножко:
var
col, a: integer;
begin
col := 0;Read(a);
while a <> 0 do
begin
read(a);
if (a mod 3 = 0) and (a mod 2 = 0) then
col := col + 1;
end;
writeln('количество ', col);
end.
Пример:
6 12 9 36 0
количество 3
Var a, b: word;
k: byte;
begin
write ('Введите двузначное число: ');
readln (a);
b := a;
k := 0;
while b <> 0 do begin
a := a mod 10;
k := k + 1;
b := b div 10
end;
if (k <> 2) then
writeln ('Вводите только двузначные числа')
end.
Ответ:
42 (число 11), 99 (число 30), 10050 (число 55)
Объяснение:
Написал код по этому алгоритму и посмотрел, какие из представленных чисел получаются в итоге.
DECLARE
b NUMBER;
c NUMBER;
d NUMBER;
e NUMBER;
BEGIN
FOR a IN 10..99 LOOP
IF length(a) = 2 THEN
b := power(substr(a, 1, 1),2); -- отрезаем первый разряд и возводим в квадрат
c := power(substr(a, 2, 1),2); -- отрезаем второй разряд и возводим в квадрат
d := b + c;
e := power(substr(a, 1, 1) + substr(a, 2, 1),2);
IF d > e THEN dbms_output.put_line(d || e);
ELSE dbms_output.put_line(e || d);
END IF;
END IF;
END LOOP;
END;
а)
var
p,d,h:real;
begin
readln(h);
p:=1200*9.8*h;
writeln(p);
end.
б)
var
m,h,r:real;
begin
readln(h);
readln(r);
m:=1200*3.14*h*r*r;
writeln(m);
end;
в) необходимы дополнительные условия количество сосудов
если принять количество сосудов за k тогда
var
i,k:integer;
m,h,r,S:real;
begin
readln(k);
S:=0;
for i:=1 to k do
begin
readln(h);
readln(r);
m:=1200*3.14*h*r*r;
S:=S+m;
end;
writeln(S);
end.
Var
a,b:real;
begin
read(a,b);
writeln(a*b);
end.