Разбор задания С4 из ДемоЕГЭ-2014 по информатике на сайте ФИПИ ( http://www.fipi.ru/view/sections/228/docs/660.html )
Мы с ребятами написали программу на языке программирования Pascal, в которой есть несколько содержательных ошибок (минимум 4 ошибки). Попробуйте их найти и исправить программу.
Проверить работу программы можно без установки Pascal в браузере в он-лайн Pascal http://primat.org/index/0-128
var N,i,x:integer;
max3,max7:integer;
R:longint;
begin
readln(N);
for i:=1 to N do
begin
read(x);
if (x mod 3=0) and (x > max3) then max3:=x;
if (x mod 7=0) and (x > max7) then max7:=x;
end;
readln(R);
writeln('Вычисленное контрольное значение:',max3 * max7);
if (R mod 21 = 0) and (max3 * max7 = R)
then writeln('Контроль пройден')
else writeln('Контроль не пройден');
end.
var x,n,r,r1,i:longint;
max3,max7,max21,max:longint;
begin
max3:=0;
max7:=0;
max21:=0;
max:=0;
readln(n);
for i:=1 to n do
begin
readln(x);
if (x mod 3 = 0) and (x mod 7 <> 0) and (max3<x) then max3:=x;
if (x mod 7 = 0) and (x mod 3 <> 0) and (max7<x) then max7:=x;
if (x mod 21 = 0) and (max21<x) then
begin
if max21 > max then max:=max21;
max21:=x;
end
else if (max<x)then max:=x;
end;
readln(r);
if (max3*max7 < max21*max)
then r1:=max21 * max
else r1:=max3 * max7;
writeln('Вычисленное контрольное значение:',r1);
if r = r1
then writeln('Контроль пройден')
else writeln('Контроль не пройден');
end.
Мы с ребятами написали программу на языке программирования Pascal, в которой есть несколько содержательных ошибок (минимум 4 ошибки). Попробуйте их найти и исправить программу.
Проверить работу программы можно без установки Pascal в браузере в он-лайн Pascal http://primat.org/index/0-128
var N,i,x:integer;
max3,max7:integer;
R:longint;
begin
readln(N);
for i:=1 to N do
begin
read(x);
if (x mod 3=0) and (x > max3) then max3:=x;
if (x mod 7=0) and (x > max7) then max7:=x;
end;
readln(R);
writeln('Вычисленное контрольное значение:',max3 * max7);
if (R mod 21 = 0) and (max3 * max7 = R)
then writeln('Контроль пройден')
else writeln('Контроль не пройден');
end.
Корректное решение:
var x,n,r,r1,i:longint;
max3,max7,max21,max:longint;
begin
max3:=0;
max7:=0;
max21:=0;
max:=0;
readln(n);
for i:=1 to n do
begin
readln(x);
if (x mod 3 = 0) and (x mod 7 <> 0) and (max3<x) then max3:=x;
if (x mod 7 = 0) and (x mod 3 <> 0) and (max7<x) then max7:=x;
if (x mod 21 = 0) and (max21<x) then
begin
if max21 > max then max:=max21;
max21:=x;
end
else if (max<x)then max:=x;
end;
readln(r);
if (max3*max7 < max21*max)
then r1:=max21 * max
else r1:=max3 * max7;
writeln('Вычисленное контрольное значение:',r1);
if r = r1
then writeln('Контроль пройден')
else writeln('Контроль не пройден');
end.