Бытовое програмирование

Наверно каждый задумывался сколько будет 356+452? На решение этого задания в среднем уходит до 3ех минут.

Многие школьники (8+ классов) не умеют находить корни уравнения x2-7x+10=0 (в уме), я уже не говорю о 2x2-14x+20=0. Как решить эту проблему с минимальными затратими? Все очень просто: компьютер мне в руки!

Для решения наших задач мы будем использовать Pascal (желательно ABC). Pascal ABC можно скачать с официального сайта (http://pascalabc.net/) или воспользоваться онлайн компилятором (http://pascalabc.net/WDE/).

Задача №1: Арифметика

Мы будем решать проблему сложения и вычитания в уме.

Сложение
Мы будем складывать только трехзначные числа.

program name;
uses crt;
var get,otv,i:integer;
A,B:integer;
begin
i:=1;
while i=1 do begin
A:= Random(1000);
B:= Random(1000);
while (A<=100) do A:= Random(1000);
while (B<=100) do B:= Random(1000);
otv:=A+B;
writeln(A,'+',B);
readln(get);
if otv=get then writeln('Ответ верный')
else writeln('Ответ не верный, правильный ответ: ',otv);
end;
end.


Вычитание
Мы будем вычитать только трехзначные числа, при этом ответ всегда будет больше нуля. (Код останется почти без изменений)

program name;
uses crt;
var get,otv,i:integer;
A,B:integer;
begin
i:=1;
while i=1 do begin
A:= Random(1000);
B:= Random(1000);
while (A<=100) do A:= Random(1000);
while (B<=100) do B:= Random(1000);
while (A<B) do begin A:= Random(1000); B:= Random(1000); end;
otv:=A-B;
writeln(A,'-',B);
readln(get);
if otv=get then writeln('Ответ верный')
else writeln('Ответ не верный, правильный ответ: ',otv);
end;
end.


Умножение
Данный метод позволяет учить таблицу квадратов. (Только для школьников старших классов)

program name;
uses crt;
var get,otv,i:integer;
A:integer;
begin
i:=1;
while i=1 do begin
A:=Random(99);
while A<10 do A:=Random(99);
otv:=A*A;
writeln(A,'*',A);
readln(get);
if get=otv then writeln('Ответ верный')
else writeln('Ответ не верный, правильный ответ:',A);
end;
end.


Теорема Виета

Для тех кто не помнит: в уравнении x2-bx+c=0 корни x2-(x1+x2)x+(x1*x2)=0.Задача очень типична для школы, а в ЕГЭ она поможет сэкономить время.
Корни будут не больше 10, однако если вы чувствуете в себе силы можно увеличить до 99. (Для этого требуется мегамозг)

program name;
uses crt;
var x1,x2,i:integer;
wh:string;
A:array[1..2] of integer;
begin
wh := 'y';
while wh='y' do begin
x1:= Random(9);
x2:= Random(9);
while x1=0 do x1:= Random(9);
while x2=0 do x2:= Random(9);
writeln('x^2-',(x1+x2),'x+',x1*x2,'=0');
for i:=1 to 2 do read(A[i]);
if ((A[1]=x1) or (A[1]=x2)) and ((A[2]=x1) or (A[2]=x2)) and (x1<>x2) then writeln('Ответ верный')
else writeln('Ошибка, корни x1=',x1,' x2=',x2);
end;
end.


0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.