Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 673
от 19.09.2008, 01:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 217, Экспертов: 39
В номере:Вопросов: 3, Ответов: 3

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 143788: Даны действительные положительные числа a, b, c, x, y. Выяснить, пройдет ли кирпич с ребрами a, b, c в прямоугольное отверстие со сторонами x, y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или пе...
Вопрос № 143801: Здравствуйте Уважаемые эксперты. Я недавно занялся изученим Turbo pascal и еще далеко не со всеми его функциями знаком. Но меня интересует такая вещь, есть ли в нем такая функция чтобы при нажатии определенной клавиши осуществлялось определенное дейс...
Вопрос № 143829: Добрый вечер! Не могли бы вы, объяснить как работает эта программа (комментарии к программе)! Заранее спасибо!...

Вопрос № 143.788
Даны действительные положительные числа a, b, c, x, y. Выяснить, пройдет ли кирпич с ребрами a, b, c в прямоугольное отверстие со сторонами x, y. Просовывать кирпич в отверстие разрешается только так, чтобы каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия.

Приложение:

Отправлен: 13.09.2008, 13:05
Вопрос задал: Николаев Денис Игоревич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Иваненко Дмитрий Геннадьевич
Здравствуйте, Николаев Денис Игоревич!
Вот решение:

Приложение:

Ответ отправил: Иваненко Дмитрий Геннадьевич (статус: 1-ый класс)
Ответ отправлен: 13.09.2008, 21:47


Вопрос № 143.801
Здравствуйте Уважаемые эксперты. Я недавно занялся изученим Turbo pascal и еще далеко не со всеми его функциями знаком. Но меня интересует такая вещь, есть ли в нем такая функция чтобы при нажатии определенной клавиши осуществлялось определенное действие. Тоесть я представляю это таким образом
...
readln(x);
if x = 'd' then goto m1;
if x = 'a' then goto m2;
...
В общем я представляю х как string. Но мне хочется чтобы не надо было вводить и нажимать ЕNTER, а чтобы сразу после щелчка на определеную кнопку выполнялось действие. Пожалуйста подскажите, что для этого необходимо сделать. Заранее огромное спасибо.
Отправлен: 13.09.2008, 14:58
Вопрос задал: Пашков Дмитрий Владимирович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: sir Henry
Здравствуйте, Пашков Дмитрий Владимирович!
Если это действие одноразовое, то можно воспользоваться одной функцией ReadKey из модуля CRT, вот например:
Код:
Program myprog1;
Uses Crt;

Var
x: Char;
Begin
x:=ReadKey; {Если до этого момента никакая клавиша не была нажата, то ReadKey ожидает нажати}
{Теперь, в зависимости от той или иной нажатой клавиши, выполняем определённые действия}
Case x of
'a': Begin
{Нажата клавиша a}
WriteLn('Нажата клавиша <a>');
WriteLn('Имитируем Abort...');
End;
'd': Begin
{Нажата клавиша d}
WriteLn('Нажата клавиша <d>');
Write('Имитируем бурную деятел ьность...');
End;
else
{Этот блок выполняется, если нажата любая другая клавиша кроме a и d.
Вставлять его желательно, т.к. люди часто ошибаются и им надо об ошибке сообщить.}
WriteLn('Эге! Про эту клавишу мы не договаривались - ', x);
End;
End.

Заметьте, я не использую goto, чтобы не бегать по программе в поисках того, что у нас назначено на нажатию определённой клавиши, а записал нужные действия сразу в блоке рапознавания нажатой клавиши.
Несколько другой случай, когда выход из программы осуществляется по нажатию какой-то определённой клавиши. Тут нам поможет ReadKey в сочетании с циклом:
Код:
Program myprog2;
Uses Crt;

Var
x: Char;
Begin
Repeat
x:=ReadKey;
WriteLn('Нажата клавиша - ', x);
Until x = #27;
WriteLn('Выход из программы...');
End.

Здесь программа в цикле отображает все нажатые клавиши и если нажата клавиша ESC, то цикл завершается и программа прерывается. Поскольку клавиша ESC не имеет отображения на экране, по крайней мере в текстовом режиме, то использован её код в сочетании с символом #. Многие неотображаемые на экране клавиши можно проверять по их коду в сочетании с символом #. Например клавиши "Стрелка влево" и "Стрелка вправо" имеют коды соответственно 75 и 77. При написании программы они будут обозначаться #75 и #77.
Ответ отправил: sir Henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 15.09.2008, 05:40
Оценка за ответ: 5
Комментарий оценки:
Cпасибо большое. Я бы и не додумался сам. Большое спасибо. Еще раз.


Вопрос № 143.829
Добрый вечер!
Не могли бы вы, объяснить как работает эта программа (комментарии к программе)!
Заранее спасибо!

Приложение:

Отправлен: 13.09.2008, 19:36
Вопрос задал: Miracle (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 9)

Отвечает: Евчик Сергей Александрович
Здравствуйте, Miracle! Программа с коммантами в приложении. Надеюсь я объяснил что она делает т.к. учитель с меня никакой :-((( Удачи.

Приложение:

Ответ отправил: Евчик Сергей Александрович (статус: 3-ий класс)
Ответ отправлен: 14.09.2008, 18:28
Оценка за ответ: 5
Комментарий оценки:
Большое Вам спасибо! Вот теперь всё понятно! Жаль, что не поставить 10+!


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.3 RC 2 от 09.09.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное