- •Лекции по Turbo Pascal 7.0
- •1 Курс, «Информатика»
- •Интегрированная среда Turbo Pascal 7.0
- •Первый шаг
- •Создание нового файла
- •Набор и редактирование текста программы
- •Клавиши перемещения курсора
- •Клавиши для редактирования текста:
- •Сохранение и открытие программ
- •Запуск программы
- •Завершение работы
- •А теперь, когда вы уже знаете, как набирать и запускать программы на компьютере, начнём изучать язык паскаль.
- •Первая программа
- •Краткая история
- •Что такое программа?
- •Зарезервированные слова
- •Переменные
- •Константы
- •Стандартные математические операции
- •В информатике, как и в математике, на ноль делить нельзя!
- •Оператор присваивания
- •Пример программы
- •Операторы ввода и вывода.
- •Оператор ввода Readln
- •Оператор вывода Write
- •Самостоятельные задания
- •Работа с цифрами
- •Выделение цифр числа
- •Конструирование числа по его цифрам
- •Обобщение
- •Самостоятельные задания
- •Условный оператор
- •Что такое условие?
- •Укороченный вариант условного оператора
- •Составной оператор
- •Составные условия
- •“Защита от дурака”
- •Вложенные условные операторы
- •Оператор выбора Case
- •Самостоятельные задания
- •Стандартные типы переменных
- •Общий обзор стандартных типов.
- •Целые типы
- •Вещественные типы
- •Способ записи вещественных чисел
- •Вывод на экран вещественных чисел
- •Точность и диапазон вещественных чисел различных типов
- •Вещественные функции
- •Линейная запись математических выражений
- •Логический тип
- •Символьные типы
- •Стандартные функции для работы со строками
- •Стандартные функции для типа char
- •Подпрограммы
- •Зачем нужны подпрограммы?
- •Процедуры
- •Аргументы процедуры
- •Результаты процедуры
- •Функции
- •Самостоятельные задания
- •Цикл For
- •Руками не трогать!
- •Нахождение суммы
- •Нахождение произведения
- •Нахождение количества
- •Цикл While ... Do
- •Цикл Repeat ... Until
- •2.7. Самостоятельные задания
- •Цикл в цикле
- •Натуральные числа
- •Делители чисел
- •Самостоятельные задания.
- •Простые числа
- •Самостоятельные задания.
- •Наибольший общий делитель двух чисел.
- •Самостоятельные задания.
- •Наименьшее общее кратное двух чисел
- •Самостоятельные задания.
- •Массивы
- •Определение и примеры
- •Операции с элементами массива
- •Анализ информации в массиве
- •Рекуррентные соотношения
- •Самостоятельное задание
- •Последовательность Фибоначчи
- •Другие рекуррентные последовательности
- •Оптимизация программ
- •Задача про интеллигентного студента.
- •Самостоятельные задания
- •Оформление программ
- •Понятие модуля
- •Управление цветом
- •Управление звуком
- •Опрос клавиатуры
- •Управление курсором.
- •Дополнительные задачи и вопросы
- •Теоретические вопросы
- •Практические задачи
- •Условия
- •Ряды и рекуррентные последовательности
- •Просмотр всех команд меню
- •Команды меню File
- •Команды меню Edit
- •Команды меню Search
- •Команды меню Run
- •Команды меню Compile
- •Команды меню Debug
- •Команды меню Options
- •Команды меню Window
- •Команды меню Help
- •Синтаксические ошибки
- •Ошибки выполнения
- •Логические ошибки
- •Средства отладки
- •Пошаговый режим работы программы
- •Просмотр/изменение переменных
- •Окно Watch
- •1. Теоретическая часть
- •1.1. Понятие алгоритма и его свойства.
- •1.2. Культура программирования
- •1.3. Устройство компьютера и его компоненты.
- •1.4. Информация
- •1.5. Логика
- •1.6. Системы счисления
- •1.7. Арифметические действия с двоичными числами
- •1.8. Информационные взаимодействия – коммуникации
- •1.9. Информационная революция
- •1.10. Компьютеры и информационное общество.
- •1.11. Польза и опасности компьютеризации.
- •1.12. Киберфобия.
- •1.13. Компьютеры и будущее
- •1.14. Понятие информационного моделирования.
- •2. Толковый словарик
-
Управление звуком
В модуле crt есть процедуры для воспроизведения простых звуковых эффектов через динамик компьютера. Для этого используется процедура
Sound (f);
Здесь f – целое число, указвыющее частоту звука в герцах. При выполнении этого оператора компьютер включает свой внутренний динамик на указанную частоту и продолжает работать дальше по программе. Для того чтобы заставить динамик компьютера замолчать, надо использовать процедуру
NoSound;
Учтите, что если вы не вызовете эту процедуру перед выходом из программы, то есть вовремя не заставите компьютер замолчать, то он будет пищать даже после завершения работы программы!!
Используя эти операторы можно создавать достаточно интересные звуковые эфекты, например:
Program Vzhik;
Uses crt;
Var i : integer;
Begin
For i := 20 to 10000 do
Sound(i);
NoSound;
End.
Запустите эту программу и наслаждайтесь! Переделайте её так, чтобы частота звука менялась в обратную сторону. Если программа будет работать слишком быстро, используйте процедуру delay (см. ниже).
Можно еще более усилить эффект этой программки, если переписать цикл for так:
For i := 20 to 10000 do
Begin
Sound (i);
Sound (10020-i);
End;
Одним словом вам здесь предоставляется полная свобода действий – эксперементируйте!
Как уже упоминалась, процедура Sound только включает динамик компьютера и ничего больше не ждёт. Для того, чтобы указать длительность проигрывания одной ноты, можно использовать процедуру
Delay (ms);
Эта процедура приостанавливает работу программы на ms единиц времени. Предполагалось, что ms – это будет время в миллисекундах, но на самом деле это не так. Оказалось, что эта процедура с одинаковыми параметрами работает разное время на разных компьютерах.
Вот как можно совместно использовать эти операторы в программе:
Program Sound_Demo;
Uses crt;
Begin
Sound (100); Delay (50);
Sound (150); Delay (100);
NoSound;
End.
Если этот оператор вам очень понравился и вы решили писать музыку, то очень удобно будет создать собственную процедуру, для проигрывания одной ноты. Вместе с этой процедурой показанная выше программа изменится следующим образом:
Program Sound_Demo;
Uses crt;
Procedure Beep (note, time : integer);
Begin
If note > 0
Then Sound (note);
Delay (time);
NoSound;
End;
Begin
Beep (100, 100);
Beep (150, 50);
End.
Не правда ли, основная программа теперь записана более компактно?! Мало того, написанная нами процедура позволяет еще задавать паузы в мелодии, для этого первый параметр (частота ноты) должен быть равен нулю.
Думаю, вам будет интересно ввести запустить и прослушать следующий музыкальный фрагмент, написанный на языке Pascal:
program Melody;
uses crt;
const p = 50 ; { Меняя эту константу можно изменить скорость мелодии }
Procedure Beep (note, time : integer);
begin
If note > 0
Then Sound (note);
Delay (time*p);
NoSound;
end;
begin
Beep (330, 2); Beep (439, 2); Beep (414, 2); Beep (439, 2);
Beep (493, 2); Beep (439, 2); Beep (391, 2); Beep (439, 2);
Beep (391, 4); Beep (349, 4); Beep (348, 6); Beep ( 0, 2);
Beep (293, 2); Beep (391, 2); Beep (369, 2); Beep (391, 2);
Beep (439, 2); Beep (391, 2); Beep (293, 2); Beep (348, 2);
Beep (329, 6); Beep ( 0, 6);
Beep (329, 2); Beep (439, 2); Beep (414, 2); Beep (439, 2);
Beep (493, 2); Beep (439, 2); Beep (391, 2); Beep (348, 2);
Beep (329, 4); Beep (293, 4); Beep (439, 6); Beep ( 0, 2);
Beep (329, 2); Beep (523, 2); Beep (493, 2); Beep (439, 2);
Beep (414, 2); Beep (439, 2); Beep (493, 2); Beep (414, 2);
Beep (439, 6); Beep ( 0, 6);
end.
И хотя автор конспекта по специальности не совсем музыкант, всё-таки здесь приведено соответствие между нотами и их частотами.
Таблица 9. Частоты нот
Первая октава |
Нота |
Частота |
Вторая октава |
Нота |
Частота |
Третья октава |
Нота |
Частота |
Do |
131 |
Do |
261 |
Do |
522 |
|||
Do# |
138 |
Do# |
277 |
Do# |
553 |
|||
Re |
146 |
Re |
293 |
Re |
586 |
|||
Re# |
155 |
Re# |
310 |
Re# |
621 |
|||
Mi |
164 |
Mi |
329 |
Mi |
658 |
|||
Fa |
174 |
Fa |
348 |
Fa |
697 |
|||
Fa# |
185 |
Fa# |
369 |
Fa# |
738 |
|||
Sol |
196 |
Sol |
391 |
Sol |
782 |
|||
Sol# |
207 |
Sol# |
414 |
Sol# |
829 |
|||
La |
219 |
La |
439 |
La |
878 |
|||
La# |
233 |
La# |
465 |
La# |
930 |
|||
Si |
246 |
Si |
493 |
Si |
985 |