Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2009, 22:01   #1
Banderas123
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 14
Радость Выход из цикла нажатием ESC

Ко мне обратился друг, попросил решить задачку...
Цитата:
Задача:
Надо ввести первую букву реки, а программа выводит её полное название, после чего опять вводишь букву и все повторяется, пока не захочется выйти из программы.
Я решил таким способом:
Код:
program rivers;
uses CRT;
var
x, ESC : char;
begin
ClrScr;
repeat
  readln(x);
    case x of
        'A' : writeln('Amazonka');
        'B' : writeln('Babaika');
        'C' : writeln('Custerna');
        else writeln('Sho tu vvodush???')
    end;
    ESC:=readkey;
until ESC = chr(27);
end.
Но прикол в том, что после того как readln(x) запросил ввести букву, и после выполнение case, начинает свой запрос на ввод буквы readkey, что приводит к небольшой путанине.

Как сделать, что бы можно было выйти из цикла нажатием клавиши ESC?

Последний раз редактировалось Banderas123; 05.12.2009 в 22:04.
Banderas123 вне форума Ответить с цитированием
Старый 05.12.2009, 22:39   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Код:
repeat
x:=readkey;
case x of
...
#27: {ESC} break;
end;
until true
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 05.12.2009, 22:44   #3
Banderas123
Пользователь
 
Регистрация: 05.12.2009
Сообщений: 14
По умолчанию

Спасибо =)
Только что сам напечатал вот так:
Код:
program C;
uses CRT;
var
x, ESC : char;
begin
ClrScr;
repeat
    x:=readkey;
    case x of
        'A' : writeln(x, '- > Amazonka');
        'B' : writeln(x, '-> Babaika');
        'C' : writeln(x, '->Custerna');
        else writeln('Sho tu vvodush???')
    end;
until x = chr(27);
end.
Banderas123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нюанс в цикле Superlotles Помощь студентам 9 18.10.2009 13:38
Компилятор не распазнает функцию readkey и keypressed _PROGRAMM_ Паскаль, Turbo Pascal, PascalABC.NET 2 09.09.2009 16:06
массив в цикле for mazak Общие вопросы C/C++ 6 07.09.2009 21:35
Как с помощье ReadKey определить что нажата клавиша "Стрелка" Викдон Паскаль, Turbo Pascal, PascalABC.NET 5 05.02.2009 00:47
readkey в Delphi slips Общие вопросы Delphi 3 28.10.2008 21:04