var 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 endend.
Тестовые решения:Выберите предмет: 1- Математика, 2-География -->129 + 32 = 61Верно28 - 10 = 18Верно6 x 6 = 35НеверноВаша отметка- 4Выберите предмет: 1- Математика, 2-География -->2Столица государства Испания - МадридВерноСтолица государства Греция - АфиныВерноСтолица государства Великобритания - лондонВерноВаша отметка- 5