• Помогите с задачей по Delphi! Надо вывести 10 задач(a*b=c) в цикле, программа проверяет задачи и считает баллы. В ходе цикла надо вывести правильный ответ(если вы ввели неправильный ответ). Также программа считает количество баллов в зависимости от правильных ответов.
    -------------------------------------------------------------------------------------
    var i,x,y,answer,input:Integer;

    begin
    Writeln('*TEST*');
    randomize;
    answer:=10;

    for i:=1 to 10 do
    begin
    Write(Random(x),' * ',Random(y),' = '); //я не знаю как задать диапазон для
    //переменной
    Readln(input);
    if input:=x*y then //программа выдает ошибку что нужен тип
    //переменной boolean
    begin
    answer:=answer;
    end
    else
    begin
    write('WRONG!',x,' * ',y,' = ',x*y)
    answer:=answer-1;
    end;
    end;

    Writeln('Correct answers - ',answer);
    case answer of
    10:Writeln('Excellent!');
    9,8:Writeln('Good!');
    6,7:Writeln('OK!');
    0..5:Writeln('Bad!');
    end;

    Readln;
    -------------------------------------------------------------------------------------

Ответы 6

  • И я не понял один момент, почему надо писать random(9)+1 вместо random(10)?
  • И как answer тут используется? Я не понял как идет счет answer-а
  • А, всё, там ошибочка была :)
  • random(9) позволяет получить случайное число из диапазона [0..8] (включительно); random(9)+1 - из диапазона [1..9]; random(10) - из диапазона [0..9]. Так как 0 здесь не нужен, то нужно писать random(9)+1.
    • Автор:

      evanbaker
    • 5 лет назад
    • 0
  • answer - это просто количество примеров, количество верных ответов подсчитывается в переменной k.
    • Автор:

      dixie
    • 5 лет назад
    • 0
  • var i,x,y,answer,input,k:Integer;beginWriteln('*TEST*');randomize;answer:=10;k:=0;for i:=1 to answer do begin x:=Random(9)+1; y:=Random(9)+1; Write(x,' * ',y,' = ');  Readln(input); if input=x*y then  begin  k:=k+1;   writeln('RIGHT!');  end else writeln('WRONG! ',x,' * ',y,' = ',x*y);end;Writeln('Correct answers - ',k);case answer of10:Writeln('Excellent!');9,8:Writeln('Good!');6,7:Writeln('OK!');0..5:Writeln('Bad!');end;end.Пример:*TEST*2 * 4 = 8RIGHT!7 * 9 = 7WRONG! 7 * 9 = 634 * 4 = 16RIGHT!1 * 2 = 2RIGHT!4 * 1 = 4RIGHT!9 * 7 = 63RIGHT!9 * 8 = 72RIGHT!3 * 1 = 3RIGHT!9 * 4 = 36RIGHT!6 * 4 = 24RIGHT!Correct answers - 9Excellent!
    • Автор:

      boo bug
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years