Написать программу, в которой пользователь выбирает одну из предметных областей: или . если выбрана -компьютер по порядку задает три примера на вычисление (например: 4+3= если выбрана -компьютер спрашивает столицы трех государств. компьютер проверяет ответы на правильность и в конце выводит оценку на экран: 5-если не было ошибок, 4-одна ошибка, 3-две ошибки, 2-если все ответы неверные. , заранее .
mCity: array [1..10] of string := ('Москва', 'Берлин', 'Париж', 'Лондон', 'Рим',
'Мадрид', 'Стокгольм', 'Берн', 'Вена', 'Афины');
mGov: array[1..10] of string := ('Россия', 'Германия', 'Франция',
'Великобритания', 'Италия', 'Испания', 'Швеция', 'Швейцария', 'Австрия', 'Греция');
mOps: array[1..4] of char := ('+', '-', '*', '/');
p, i, n, a, b, c, d, k: integer;
op: char;
s: string;
begin
Write('Выберите предмет: 1- Математика, 2-География -->');
Readln(p);
if (p < 1) or (p > 2) then Writeln('Неверный выбор, работа завершена')
else begin
Randomize;
k := 0;
if p = 1 then { тестируем математику }
for i := 1 to 3 do
begin
op := mOps[Random(4) + 1];
case op of
'+':
begin
a := Random(50) + 1;b := Random(50) + 1;
c := a + b;Write(a, ' + ', b, ' = ');Readln(d)
end;
'-':
begin
a := Random(99) + 1;b := Random(a) + 1;
c := a - b;Write(a, ' - ', b, ' = ');Readln(d)
end;
'*':
begin
a := Random(9) + 1;b := Random(9) + 1;
c := a * b;Write(a, ' x ', b, ' = ');Readln(d) end;
else begin
c := Random(9) + 1;b := Random(9) + 1;a := b * c;
Write(a, ' : ', b, ' = ');Readln(d)
end
end;
if c = d then Writeln('Верно')
else begin Writeln('Неверно');k := k + 1 end
end
else { тестируем географию }
for i := 1 to 3 do
begin
Write('Столица государства ');
n := Random(10) + 1;
Write(mGov[n], ' - ');Readln(s);
{
на всякий случай преобразуем ответ, записав
первую букву в верхнем регистре, прочие - в нижнем
}
s := LowerCase(s);s[1] := UpperCase(s[1]);
if s = mCity[n] then Writeln('Верно')
else begin Writeln('Неверно');k := k + 1 end
end;
{ Вывод результатов }
Write('Ваша отметка- ');
case k of
0: Write('5');
1: Write('4');
2: Write('3');
else write('2')
end
end
end.
Тестовые решения:
Выберите предмет: 1- Математика, 2-География -->1
29 + 32 = 61
Верно
28 - 10 = 18
Верно
6 x 6 = 35
Неверно
Ваша отметка- 4
Выберите предмет: 1- Математика, 2-География -->2
Столица государства Испания - Мадрид
Верно
Столица государства Греция - Афины
Верно
Столица государства Великобритания - лондон
Верно
Ваша отметка- 5
q,w,e,r,t,y,k:string;
begin
a:=99;
b:=81;
c:=63;
q:='Берлин';
w:='Москва';
e:='Бразилиа';
writeln('Выбери предмет');
writeln('математика или география ');
read(k);
case k of
'география' : begin
readln;
write('Столица Германии это ');
read(r);
readln;
writeln;
write('Столица России это ');
read(t);
readln;
writeln;
write('Столица Бразилии это ');
read(y);
readln;
writeln;
end;
'математика' : begin
write('11*9=');
read(z);
writeln;
write('9*9=');
read(x);
writeln;
write('7*9=');
read(h);
writeln;
end;
end;
if q=r then count:=count+1;
if w=t then count:=count+1;
if e=y then count:=count+1;
if a=z then count:=count+1;
if b=x then count:=count+1;
if c=h then count:=count+1;
if count=0 then writeln('Твоя оценка по предмету ',k,' это только 2');
if count=1 then writeln('Твоя оценка по предмету ',k,' это только 3');
if count=2 then writeln('Твоя оценка по предмету ',k,' это только 4');
if count=3 then writeln('Твоя оценка по предмету ',k,' это только 5');
end.