Не работает if r = 2 then begin - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

if r = 2 then begin не работает,но если поставить вместо if r = 1 then begin то if r = 2 then begin работает,а if r = 1 then begin нет.

Решение задачи: «Не работает if r = 2 then begin»

textual
Листинг программы
program Morze;
 
uses
  crt;
 
const
  x = 5; y = 35;
 
var
  r: integer;a: char;b: string;
 
begin
  repeat;
    ClrScr;textcolor(10);
    gotoxy(y, x + 1); write('       Меню       ');textcolor(13);
    gotoxy(y, x + 2); write('Ввести слово  "1" ');textcolor(10);
    gotoxy(y, x + 3); write('Ввести шифр  "2" ');textcolor(13);
    gotoxy(y, x + 4); write('     Выход "3"    ');textcolor(10);
    gotoxy(y, x + 5); readln(r);
    ClrScr;
    case r of
    1: begin
        repeat
        writeln('Введите букву (для выхода в меню введите "q")');
        readln(a);
        case a of
          'а': writeln('* -');
          'б': writeln('- * * *');
          'в': writeln('* - - ');
          'г': writeln(' - - *');
          'д': writeln(' - * *');
          'е': writeln('*');
          'ж': writeln('* * * -');
          'з': writeln('- - * *');
          'и': writeln('* *');
          'й': writeln('* - - -');
          'к': writeln('- * -');
          'л': writeln('* - * *');
          'м': writeln('- -');
          'н': writeln('- *');
          'о': writeln('- - -');
          'п': writeln('* - - *');
          'р': writeln('* - *');
          'с': writeln('* * *');
          'т': writeln('-');
          'у': writeln('* * -');
          'ф': writeln('* * - *');
          'х': writeln('* * * *');
          'ц': writeln('- * - *');
          'ч': writeln('- - - *');
          'ш': writeln('- - - -');
          'щ': writeln('- - * -');
          'ъ': writeln('* - - * - *');
          'ы': writeln('- * - -');
          'ь': writeln('- * * -');
          'э': writeln('* * * - * * *');
          'ю': writeln('* * - -');
          'я': writeln('* - * -');
          'q': writeln('Нажмите Enter');
           else writeln('Это не буква русского алфавита(с маленькой).Проверьте роскладку');
        end;
        until a = 'q';
        textcolor(13);
      end;
    2:begin
       repeat
        writeln('Введите шифр (для выхода в меню введите "q")');
        readln(b);
        case b of
        '* -': writeln('a');
        '- * * *': writeln('б');
        '* - - ': writeln('в');
        ' - - *': writeln('г');
        ' - * *': writeln('д');
        '* ': writeln('е');
        '* * * -': writeln('ж');
        '- - * *': writeln('з');
        '* *': writeln('и');
        '* - - -': writeln('й');
        '- * -': writeln('к');
        '* - * *': writeln('л');
        '- -': writeln('м');
        '- *': writeln('н');
        '- - -': writeln('о');
        '* - - *': writeln('п');
        '* - *': writeln('р');
        '* * *': writeln('с');
        '- ': writeln('т');
        '* * -': writeln('у');
        '* * - *': writeln('ф');
        '* * * *': writeln('х');
        '- * - *': writeln('ц');
        '- - - *': writeln('ч');
        '- - - -': writeln('ш');
        '- - * -': writeln('щ');
        '* - - * - *': writeln('ъ');
        '- * - -': writeln('ы');
        '- * * -': writeln('ь');
        '* * * - * * *': writeln('э');
        '* * - -': writeln('ю');
        '* - * -': writeln('я');
        'q ': writeln(' ');
        else writeln('Это не азбука морзе');
        end;
        until b = 'q';
        readln;
      end;
   3:exit; 
   end;
  until r=3; 
end.

Объяснение кода листинга программы

В данном коде используется язык программирования Pascal ABC. Задача программы - работать с меню и шифром. В начале программы объявляются переменные: r, a, b. Переменная r используется для чтения ввода пользователя, переменные a и b используются для вывода на экран. Далее идет цикл repeat, внутри которого происходит ввод пользователя. Пользователю предлагается ввести либо букву, либо шифр. Если пользователь вводит 'q', то программа завершается. Если пользователь вводит '1', то выводится меню, состоящее из трех пунктов. Если пользователь вводит '2', то выводится шифр, состоящий из пяти пунктов. Если пользователь вводит '3', то программа завершается. Внутри каждого из условий if-case пользователь вводит данные, которые затем обрабатываются и выводятся на экран. В конце программы выводится сообщение 'Нажмите Enter' и программа завершается, если пользователь вводит 'q'. Если пользователь вводит что-то другое, то выводится сообщение 'Это не буква русского алфавита(с маленькой).Проверьте роскладку' или 'Это не азбука морзе'.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы