Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по TURBO PASCAL.doc
Скачиваний:
18
Добавлен:
04.11.2018
Размер:
1.13 Mб
Скачать
  1. Опрос клавиатуры

Как известно, клавиатура является устройством ввода информации, в противовес монитору, который является устройством вывода информации. Пока мы знакомы только с одним оператором ввода данных с клавиатуры – оператором readln. При всей его универсальности у него есть большой недостаток – он приостанавливает работу всей программы до тех пор, пока не будет введена ожидаемая компьютером информация.

Познакомимся с функцией keypressed. Эта функция возвращает логическое значение

  • true – если была нажата какая-нибудь клавиша на клавиатуре

  • false – в противном случае.

Вот как это можно использовать в программе:

program keypressed_demo;

uses crt; { подключение модуля crt }

begin

writeln (’Нажмите любую клавишу, чтоб кукушка замолчала!’);

while not keypressed do

begin

write (’Ku-ku! ’); {печатаем фразу, пока не нажмут любую клавишу}

delay (100)

end

end.

Измените эту программу так, чтобы она не молчала, а "ку-ку-кала"!

Следующая функция – ReadKey. Как следует из её названия, она "читает клавишу", то есть возвращает символ, соответствующий нажатой клавише. Если никакой клавиши нажато не было, то эта функция ждёт, пока её не нажмут. Вот как можно использовать эту функцию в программе:

program readkey_demo;

uses crt; { подключение модуля crt }

begin

repeat

c := ReadKey;

writeln (’Вы нажали клавишу ’, c);

until c = ’ ’; { пробел }

end.

  1. Управление курсором.

Помните, что такое курсор? Если нет, то вернитесь назад, туда где проходили оператор write и writeln!

Kурсор может быть перемещен в любое место экрана процедурой

GoToXY (x, y);

где x и y – целые числа, указывающие координаты курсора. x – указывает координату по горизонтали (то есть номер столбца), у – координату по вертикали (то есть номер строки). Координата (1, 1) относится к верхнему левому углу. На обычном экране х может изменяться от 1 до 80, а у от 1 до 25. Следующий фрагмент программы выводит строчку по центру экрана:

gotoxy (34, 12);

write (’Hello World!’);

Составьте программу, которая нарисует по центру экрана вашу визитную карточку! Для этого вы можете использовать процедуру gotoxy перед каждым оператором вывода на экран.

  1. Дополнительные задачи и вопросы

  1. Теоретические вопросы

  1. Кто и когда придумал язык Паскаль?

  2. Из каких частей состоит любая программа?

  3. Что называют зарезервированным словом? Является ли им слово write ?

  4. Чем отличается оператор write от writeln?

  5. Какие стандартные типы вы знаете?

  6. Сколько раз выполнится каждый из циклов? Объясните, как вы это определяете. for i := 2 to 5 do ; for i := -1 to 3 do ; for i := 100 to 100 do ; for i := 100 downto 200 do ; for i := 1000 to 2000 do ;

  7. Какие логические операции вы знаете? Напишите для них таблицу значений.

  8. Сколько раз может выполнится цикл Repeat ? Отчего это зависит?

  9. Чем отличаются операторы write(’a’) и write(a)? Когда они могут привести к одинаковому результату?

  10. Чем отличается имя от переменной?

  11. Чем отличается переменная от константы?

  12. Можно ли в качестве имени переменной использовать такие имена: Masha, Program, Repeet, Readln, Length, HMR, integer, Good_Day, _love_, Samo^Soboj, and, from1to2, 1_for_ALL, begin, string, case_of_end, Nr#7.

  13. Дано предложение: If a > b Then c := a Else c := c+1; Замените его аналогичным фрагментом программы, в котором не будет использован условный оператор if. Можно использовать дополнительные переменные.(Подсказка: используйте цикл While).

  14. В каких конструкциях языка Паскаль используется служебное слово of?

  15. Для чего используют массивы?

  16. Чем отличаются одномерные таблицы от многомерных?

  17. Какие данные могут хранится в таблице? В массиве?

  18. Что означает запись A[4]? А запись A[A[1]] ?

  19. Дайте определение рекуррентной последовательности и рекуррентного соотношения.

  20. Придумайте рекуррентную последовательность, в которой каждый последующий элемент будет меньше предыдущего (убывающая последовательность).

  21. Что называют модулем в Паскаль-программе?

  22. Чем отличается цвет фона от цвета символов? Какие процедуры управляют этими цветами?

  23. Что произойдёт, если после вызова процедуры Sound не вызвать процедуру NoSound?

  24. Чем отличается процедура Readkey от Readln?

  25. Что такое курсор?

  26. Куда перемещается курсор после выполнения процедуры ClrScr?