помогите найти ошибку!!!

1. "Дано число, определить количество четных цифр."

Program task3;

var a, ost, k: integer;
begin
write ('Ввести число a ->'); read (a);
k:=0;
while a<>0 do begin
ost:= a mod 10;
if ost div 2 = 0 then k:=k+1;
end;
writeln (k);
end.

2. "Ученики 4 класса вели дневники наблюдения за погодой и ежедневно записывали в дневник температуру. Найти среднюю температуру для дней с температурой выше 0 градусов. Определите количество дней. Программа получает на выход количество дней, в течении которых проводится наблюдение."

Program task4;

var a, s, t, y, k: integer; n: real;
begin
write ('Введи количество дней ->');
read (a);
k:=1;
s:=0;
t:=y;
repeat
write ('Введи температуру в ',k,'-ый день');
read (y);
if a>31 then write ('Количество дней в месяце меньше 31');
if t>0 then k:=k+1;
if t>0 then s:=s+t;
if t=y then write ('k=',k); write ('s=',s);
until t=y;
if t=y then n:=s/k;
writeln ('n=',n);
end.

1

Ответы и объяснения

2013-05-12T08:17:56+00:00

1) Program task3;
var a, ost, k: integer;
begin
write (Ввести число a ->'); read (a);
k:=0;
while a<>0 do begin
ost:= a mod 10;
if ost mod 2 = 0 then k:=k+1;
a := a div 10
end;
writeln (k); 
end. 

 

2)  Эту не знала как исправить, поэтому в основном просто переписала :)

Program task4;
var a, s, t, i, k: integer; n: real;
begin
write ('Введи кол-во дней -> ');
readln (a);
k:=0;
s:=0;
For i := 1 to a do
begin
write ('введи температуру в  ',i,-ый день');
readln(t);
if t>0 then
begin
k:=k+1;
s:=s+t;
end;
end;
writeln('Кол-во дней, в течение которых проводилось наблюдение ', a);
writeln('Кол-во дней с  t>0 = ', k);
n:=s/k;
writeln (Средняя температура в дни с  t>0 ',n)
end.