Program p; var i: integer; quest:array [1..2] of string; ans:array [1..2] of string; answ:array [1..2] of string; begin quest[1]:='20*2='; quest[2]:='3*5='; ans[1]:='40'; ans[2]:='15'; for i:=1 to 2 do begin writeln ('Вопрос номер ', i); writeln (quest[i]); write ('Ваш ответ - '); readln (answ[i]); while answ[i]<>ans[i] do begin writeln ('ответ неверный, попробуйте снова'); readln(answ[i]); end; writeln ('ответ верный'); writeln; end; writeln ('Congrats'); end.
Пример: Вопрос номер 1 20*2= Ваш ответ - 40 ответ верный
Вопрос номер 2 3*5= Ваш ответ - 10 ответ неверный, попробуйте снова 14 ответ неверный, попробуйте снова 15 ответ верный
Можно учесть все случаи, используя больше 16 условий, но я предпочту более оптимальный вариант, так как знаю как зависит количество корней линейного уравнения от коэффициентов.
Программа на паскале:
var a, b, c, d: real; begin read(a, b, c, d); if (c = 0) and (d = 0) then writeln('NO') else if (a = 0) and (b = 0) then writeln('INF') else if a = 0 then writeln('NO') else if c = 0 then writeln(-b/a) else if b/a = d/c then writeln('NO') else writeln(-b/a) end.
var i: integer;
quest:array [1..2] of string;
ans:array [1..2] of string;
answ:array [1..2] of string;
begin
quest[1]:='20*2=';
quest[2]:='3*5=';
ans[1]:='40';
ans[2]:='15';
for i:=1 to 2 do begin
writeln ('Вопрос номер ', i);
writeln (quest[i]);
write ('Ваш ответ - ');
readln (answ[i]);
while answ[i]<>ans[i] do
begin
writeln ('ответ неверный, попробуйте снова');
readln(answ[i]);
end;
writeln ('ответ верный');
writeln;
end;
writeln ('Congrats');
end.
Пример:
Вопрос номер 1
20*2=
Ваш ответ - 40
ответ верный
Вопрос номер 2
3*5=
Ваш ответ - 10
ответ неверный, попробуйте снова
14
ответ неверный, попробуйте снова
15
ответ верный
Congrats
Сводим уравнение к системе:
{ ax + b = 0
{ cx + d ≠ 0
{ ax = -b
{ cx ≠ -d
Можно учесть все случаи, используя больше 16 условий, но я предпочту более оптимальный вариант, так как знаю как зависит количество корней линейного уравнения от коэффициентов.
Программа на паскале:
var a, b, c, d: real;
begin
read(a, b, c, d);
if (c = 0) and (d = 0) then writeln('NO')
else if (a = 0) and (b = 0) then writeln('INF')
else if a = 0 then writeln('NO')
else if c = 0 then writeln(-b/a)
else if b/a = d/c then writeln('NO')
else writeln(-b/a)
end.