IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Прерывание цикла
-=АнЮтА=-
сообщение 12.06.2007 21:40
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский
Реальное имя: АнЯ

Репутация: -  0  +


Подскажите еще такую вещь, пожалуйста). Как мне прервать процедуру или цикл не выходя из программы. Halt не подходит. А exit - не помогает. nea.gif

Сообщение отредактировано: -=АнЮтА=- - 12.06.2007 21:40
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 12.06.2007 21:46
Сообщение #2


Гость






Break (для цикла), или Exit (для процедуры) обязано работать... Показывай, как пробовала...
 К началу страницы 
+ Ответить 
-=АнЮтА=-
сообщение 12.06.2007 21:51
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский
Реальное имя: АнЯ

Репутация: -  0  +


procedure passw;
begin
writeln('Для продолжения нажмите Enter или для выхода нажмите Esc');
q:=readkey;
if q=#27 then exit ;
.....

end;

Примерно вот так) blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 12.06.2007 21:56
Сообщение #4


Гость






И что? Не работает? Как ты это определила?

(просто по приведенному фрагменту я ничего не могу сказать, я не знаю, ни ОТКУДА вызывается процедура Passw, ни что ДАЛЬШЕ в ней происходит, при нажатии Enter-а)...
 К началу страницы 
+ Ответить 
-=АнЮтА=-
сообщение 12.06.2007 22:16
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский
Реальное имя: АнЯ

Репутация: -  0  +


 procedure passw;
begin
writeln('Для продолжения нажмите Enter или для выхода нажмите Esc');
q:=readkey;
if q=#27 then exit ;
writeln('Введите пароль');
end;



Процедура вызывается в программе. Хочу, чтоб если нажат Esc - процедура завершала работу. А если не нажат - то просит ввести пароль.

Добавлено через 2 мин.
Если нажимаю Esc - она все равно просит пароль(((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 12.06.2007 22:39
Сообщение #6


Гость






У меня не просит (если работает ТОЛЬКО этот код)... Я ж тебе говорю, совсем нет уверенности, что, например, в буфере клавиатуры что-нибудь не осталось с предыдущих вводов данных (если так - то в переменную q будет читаться то, что осталось в буфере, и, естественно, это будет не код Esc, и будет запрос пароля...).

В крайнем случае - добавляй перед выводом сообщения очистку буфера:
while keypressed do readkey;
 К началу страницы 
+ Ответить 
-=АнЮтА=-
сообщение 12.06.2007 22:45
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский
Реальное имя: АнЯ

Репутация: -  0  +


Спасибо) Сейчас попробую)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 22.06.2025 23:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"