Главная/Раздел 4

 

 

Главная

 

 Раздел 1

 

Раздел 2

 

Раздел 3

 

Раздел 4

 

Раздел 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Полезные примеры применения

Процедуры и функции модуля CRT имеют множество полезных применений. Некоторые из них рассмотрены в этой лабораторной работе.

ReadKey: char

Функция ReadKey используется для определения скан-кода нажатой клавиши. Клавиши на клавиатуре можно разделить на две группы. Первая группа, - обычные клавиши, возвращающие один скэнкод, вторая группа, - спецклавиши, возвращающие два сканкода подряд при одном нажатии. Первый из этих двух сканкодов всегда символ #0. Для определения кодов клавиш можно применять предлагаемую ниже программу, или программу аналогичную по своему действию.

PROGRAM Scan_Key;

Uses Crt;

Var
  ch:char;

Begin

 Repeat
  ch:=ReadKey;   { Приём первого символа }
  if ch=#0       { Если #0 то спецклавиша }
     then begin
      ch:=ReadKey;  { Приём сканкода }
      writeln('спецклавиша: ', ord(ch));
         end
    else writeln('обычная клавиша: ', ord(ch));
 Until ch=#13; { #13 - ASCII-код клавиши "Enter" }

End.

KeyPressed: boolean

Эту функцию очень удобно применять при завершении работы программы, или прекращения действия определённого фрагмента по нажатии любой клавиши и т.д. Наиболее часто она применяется как условие завершения цикла с постусловием:

     Repeat Until KeyPressed;

Возможно также применение этой функции как условия в цикле с предусловием:

     While not KeyPressed do <тело цикла>

В этом случае тело цикла будет выполняться до тех пор, пока не будет нажата любая клавиша на клавиатуре.

Пример программы

     Program EX_1;

     Uses Crt;

     Var
       ch: char;
       done: boolean;

     Begin

     Writeln('---------------------');
     Writeln('F4 - включить звук');
     Writeln('F5 - выключить звук');
     Writeln('F10 - выход.');
     Writeln('---------------------');

      done:=false;
      Repeat
       ch:=ReadKey;
       if ch=#0 then
         begin
          ch:=ReadKey;
           case ch of
            #62: sound(5000);  {включение звука клавишей F4}
            #63: nosound;      {выключение звука клавишей F5}
            #68: done:=true;   {выход - клавиша F10}
           end;
         end;
      Until done;

     End.

Контрольные вопросы.

  1. Назовите номер первого сканкода спецклавиш.
  2. В каких конструкциях наиболее часто применяется функция KeyPressed?

Задания для самостоятельного выполнения.

  1. Написать программу, выводящую на экран сообщение о своих возможностях:
       { -------------------------------------------
         F1 - включить звуковой сигнал
         F2 - выключить звуковой сигнал
         F3 - очистка нижней половины экрана
         F4 - ввод номера цвета фона
         F10 - выход (завершение работы программы);
         ------------------------------------------- }
  2. Написать программу, выводящую на экран сообщение о своих возможностях:
       { -------------------------------------------
         F1 - вывод имени
         F2 - вывод отчества
         F3 - вывод фамилии
         F10 - выход
         ------------------------------------------- }
  3. Написать программу калькулятор, выводящую на экран сообщение о своих возможностях:
       { -------------------------------------------
         ПРОГРАММА КАЛЬКУЛЯТОР
         F1 - сумма
         F2 - разность
         F3 - произведение
         F4 - частное
         F9 - выход
         ------------------------------------------ }
    
  4. Написать программу "функции", выводящую сообщение о своих возможностях:
       { ------------------------------------------
         ПРОГРАММА "ФУНКЦИИ"
         F1 - квадратный корень
         F2 - квадрат
         F3 - синус
         F4 - косинус
         F5 - тангенс
         F6 - выход
         ------------------------------------------ }
    
  5. Напишите программу перемещающую по экрану курсор клавишами управления движением курсора. Каждый шаг курсора должен быть озвучен, причём высота звука должна зависеть от направления передвижения курсора. На экране должен оставаться "след" курсора. При нажатии на клавишу "Enter", начиная с текущего положения курсора должны быть выведены ваши инициалы разным цветом.
  6. Напишите программу перемещающую по экрану ваше имя клавишами управления движением курсора. Каждый шаг "имени" должен быть озвучен, причём высота звука должна зависеть от направления движения. Окончание работы программы - клавиша Ins.
  7. Напишите программу выводящую название дня недели по нажатию клавиш F1-F7. Вывод каждого из дней недели производится различным цветом и сопровождается различным звуком. Выход из программы осуществляется при нажатии клавиши "Enter".

ДАЛЕЕ

 

 

 

 

 

 

 

 

 :::

 

 :::

 

 

 

 

 

 

 

Сайт создан в системе uCoz