Пример использования звуковых процедур в среде программирования ТП

Вы знаете, что компьютер предназначен в основном для облегчения работы человека с большими информационными объемами. Как же, используя только переменные известных вам типов, сохранить в памяти и обработать данные, содержащие десяток, сотню, тысячу чисел или, к примеру, строк? А ведь такие задачи встречаются в любой области знания. Конечно, можно завести столько переменных, сколько данных, можно даже занести в них значения, но только представьте, какой величины будет текст такой программы, скольк...
Раздел Информатика
Класс -
Тип Другие методич. материалы
Автор
Дата
Формат docx
Изображения Есть
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Пример использования звуковых процедур в среде программирования ТППример использования звуковых процедур в среде программирования ТППример использования звуковых процедур в среде программирования ТПМассивы

До сих пор мы рассматривали переменные, которые имели только одно значение, могли содержать в себе только одну величину определенного типа. Исключением являлись лишь строковые переменные, которые представляют собой совокупность данных символьного типа, но и при этом мы говорили о строке, как об отдельной величине.

Массив (ARRAY) объединяет элементы одного типа данных. Индексная переменная, служащая для указания отдельного элемента массива, должна быть простого типа (например, типа Integer). Массивы бывает двух видов:

  1. Одномерные.

Массив называется одномерным, если для получения доступа к его элементам достаточно одной индексной переменной. Например, описание типа линейного массива выглядит так:
VAR A (имя массива): ARRAY [0(начальный индекс)..5 (конечный индекс)] Of integer (тип данных);

Примеры описания массивов:
Var

S, BB : Array [1..40] Of Real;
N : Array ['A'..'Z'] Of Integer;
R : Array [-20..20] Of Word;
T : Array [1..40] Of Real;

Теперь переменные S, BB и T представляют собой массивы из сорока вещественных чисел; массив N имеет индексы символьного типа и целочисленные элементы; массив R может хранить в себе 41 число типа Word.

Единственным действием, которое возможно произвести с массивом целиком - присваивание. Для данного примера описания впоследствии допустима следующая запись:
S:=BB;

Однако, присваивать можно только массивы одинаковых типов. Даже массиву T присвоить массив S нельзя, хотя, казалось бы, их описания совпадают, произведены они в различных записях раздела описания.

Никаких других операций с массивами целиком произвести невозможно, но с элементами массивов можно работать точно так же, как с простыми переменными соответствующего типа. Обращение к отдельному элементу массива производится при помощи указания имени всего массива и в квадратных скобках - индекса конкретного элемента. Например:
R[10] - элемент массива R с индексом 10.

Фундаментальное отличие компонента массива от простой переменной состоит в том, что для элемента массива в квадратных скобках может стоять не только непосредственное значение индекса, но и выражение, приводящее к значению индексного типа. Таким образом, реализуется косвенная адресация:
BB[15] - прямая адресация;
BB[K] - косвенная адресация через переменную K, значение которой будет использовано в качестве индекса элемента массива BB.

Такая организация работы с такой структурой данных, как массив, позволяет использовать цикл для заполнения, обработки и распечатки его содержимого.

Если вы помните, с такой формой организации данных мы встречались, когда изучали строковые переменные. Действительно, переменные типа String очень близки по своим свойствам массивам типа Char. Отличия в следующем: строковые переменные можно было вводить с клавиатуры и распечатывать на экране (с обычным массивом это не проходит); длина строковой переменной была ограничена 255 символами (255 B), а для размера массива критическим объемом информации является 64 KB.

При объявлении массива необходимо определить, каким образом производится нумерация элементов, указав начальное и конечное значение для индексной переменной. Тем самым указывается и число элементов в массиве - его размер. Кроме того, необходимо указать имя массива и тип данных элементов массива.

  1. Двумерные.

Массив называется двумерным, если для получения доступа к его элементам требуется две и более индексных переменных. Например:

VAR А (имя массива): ARRAY [0..30,0..18] OF char (тип данных);

Обработка одномерного и двумерного массивов ведется при помощи циклического оператора FORTODO.


Создание простейших мелодий на языке программирования TURBO PASCAL


Один из способов применения одномерных массивов - создание простейших мелодий. Приведем пример программы одной самой широко известной детской мелодии

«КУЗНЕЧИК»:

PROGRAM Music;

USES crt;

CONST freed:ARRAY[0..87] OF word=(440,262,440,262,440,392,392,0,392,262,392,

262,392,440,440,0,440,262,440,262,440,392,392,0,392,262,392,262,392,440,440,0,0,440,524,3,524,524,524,0, 0,524,648,3,648,648,648,0,0, 648,0,524,524,0,440, 0,392,0,440,440,0,0,440,524,3,524,524,524,0,0,524,648,5,648,648,648,0,0,648,0,524,524,0,440,0,392,0,440);

VAR I:byte;

BEGIN

Textbackground(14);

Textcolor(2);

Clrscr;

Gotoxy(37,9);

Write('МЕЛОДИЯ - КУЗНЕЧИК');

FOR I:=0 TO 33 DO

BEGIN

Sound (freed[ I ]);

Delay(17000);

Nosound;

END;

FOR I:=34 TO 87 DO

BEGIN

Sound (freed[ I ]);

Delay(11000);

Nosound;

END;

END.

ПРИМЕЧАНИЕ:

CONST - Постоянная переменная

WORD - Тип данных, длиной в слово

TEXTBACKGROUND - Фон (заливка экрана заданным цветом)

TEXTCOLOR - Цвет символов

CLRSCR - Очистка экрана

GOTOXY - Положение курсора

SOUND - Включить звук

NOSOUND - Выключение звука

DELAY - Задержка дальнейшего выполнения программы

440,262… - Ноты

Пример использования звуковых процедур в среде программирования ТП

Ноты:

262 - до

294 - ре

330 - ми

349 - фа

392 - соль

440 - ля

494 - си

524 - до



© 2010-2022