Задачи по Pascal. Тест на таблицу умножения

Задачи по Pascal

Условие задачи : написать программу-тест , которая будет выдавать случайным образом 10 примеров и в конце теста выводить количество правильных ответов и оценку.

Сложность : средняя .

Для начала давайте подумаем как мы будем решать эту задачу . Нам понадобиться цикл for, и в самом цикле мы будем делать следующее : мы будем получать два числа, занесем их в отдельные переменные , затем мы их перемножим и занесем ответ в переменную , дальше мы попросим пользователя ввести ответ , и потом сравним ответ введенный пользователем с ответом программы , и если ответ правильный то мы увеличиваем количество правильных ответов на 1 .

Давайте создадим каркас нашей программы :

uses crt ;

var i, col,res, otv , num1, num2 : integer ;

begin

end.

Итого у нас 6 переменных . До цикла нам нужно написать такое слово как randomize чтобы у нас был более качественный random подробнее читайте (тут)

Цикл у нас будет от 1 до 10 вы можете сделать больше .

randomize ;
    for i := 1 to 10 do
           begin

           end;

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

num1 := random(9)+1
num2 := random(9)+1;
res := num1 * num2 ;

Дальше мы для пользователя выводим этот пример и просим чтобы он ввел ответ :

write(num1, ' * ', num2 , ' = '); readln(otv);

Затем мы сравниваем ответ введенный пользователем с ответом программы , т.е. с переменной res :

if (res <> otv) then
          writeln('Error ! ', num1,' * ', num2, ' = ',res)
else col := col + 1 ;

Т.е. тут если ответ не верен , то мы выводим пользователю пример и правильный ответ , а иначе мы количество правильных ответов увеличиваем на 1.

И теперь нам осталось вывести оценку и кол-во правильных ответов :

writeln('Тест окончен !!!');
writeln('Количество правильных ответов : ', col);
write('Твоя оценка : ');
case col of
         10 : writeln('5');
         9,8 : writeln('4');
         7,6 : writeln('3');
         0..5 : writeln('2');
end;

Весь код программы :

uses crt ;

var i, col,res, otv , num1, num2 : integer ;

begin
        clrscr;
        writeln('*** Тест на таблицу умножения ***');
        writeln('После примера нажмите ');
        randomize ;
        for i := 1 to 10 do
                begin
                        num1 := random(9)+1;
                        num2 := random(9)+1;
                        res := num1 * num2 ;
                        write(num1, ' * ', num2 , ' = '); readln(otv);
                        if (res <> otv) then
                                writeln('Error ! ', num1,' * ', num2, ' = ',res)
                        else col := col + 1 ;
                end;
        writeln('Тест окончен !!!');
        writeln('Количество правильных ответов : ', col);
        write('Твоя оценка : ');
        case col of
                10 : writeln('5');
                9,8 : writeln('4');
                7,6 : writeln('3');
                0..5 : writeln('2');
        end;
        readln;
end.

cyber
Оцените автора
CyberLesson | Быстро освоить программирование Pascal и C++. Решение задач Pascal и C++
Добавить комментарий