Написать программу, в которой юзер избирает одну из предметных областей:математика

Написать программу, в которой юзер избирает одну из предметных областей:математика либо география. Если выбрана математика-компьютер по порядку задает три образца на вычисление (например: 4+3=?). Если выбрана география-компьютер спрашивает столицы 3-х стран. Компьютер проверяет ответы на корректность и в конце выводит оценку на экран:5-если не было ошибок, 4-одна ошибка, 3-две оплошности, 2-если все ответы неправильные.

Помогите пожалуйста, заблаговременно благодарю.

Задать свой вопрос
2 ответа
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-География --gt;');
  Readln(p);
  if (p lt; 1) or (p gt; 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-География --gt;1
29 + 32 = 61
Верно
28 - 10 = 18
Правильно
6 x 6 = 35
Ошибочно
Ваша отметка- 4

Изберите предмет: 1- Математика, 2-География --gt;2
Столица государства Испания - Мадрид
Верно
Столица страны Греция - Афины
Правильно
Столица государства Великобритания - лондон
Правильно
Ваша отметка- 5



Егор
Реализовано в Pascaд.ABC.Net. Программка трудоспособна без конфигураций в неких иных версиях. Также, работоспособна в хоть какой версии Паскаля после маленькой модификации.
Амина Вавуленкова
Необыкновенностью является генерация 3-х случайно выбранных из десяти вероятных вариантов по географии и большого числа нечаянно сгенерированных образцов на четыре деяния арифметики в границах первой сотки чисел.
Var a,b,c,z,x,h,count:integer;
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.
Николай
Непременно соблюдать шрифт
Татьяна Довжикова
спасибо огромное
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо

Разные вопросы.

Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных

Разные вопросы.

Грузовой автомобиль марки краз за одну поездку может доставить 7.500 кирпичей

Математика.

Определить предложения какие они по цели высказывания и по интонации

Русский язык.

"Три толстяка" Называли эту площадь Площадью Звезды последующей причине.

Русский язык.

на одной грядке коротышки посадили 3 ряда морковок по 8 штук

Разные вопросы.

эссе на тему какое образование дается в каждой семье

Қазақ тiлi.

Put the verb in brackets into the Present Indefinite. 1The Volga ,

Английский язык.

Сколько стоит коктейль молочный? Точную цену надо?

Математика.

Составить рассказ Из чего складывался культ монарха помазанника Божьего?

История.

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт