Урок 42 Інформатика (АП)
Можливості та властивості компонентів для реалізації мультимедійних можливостей мови програмування(звук)
Мета.
Навчальна. Навчитися використовувати можливості та властивості компонентів для реалізації мультимедійних можливостей мови програмування, а саме відтворення звуку, створення звуку.
Розвиваюча. Розвивати логічне мислення, самостійність, вміння застосовувати набуті знання до практичних завдань.
Виховна. Виховувати наполегливість, естетичність у оформленні, грамотно висловлювати свої думки, вміння раціонально використовувати час.
Тип уроку. Засвоєння нових знань і навичок.
Матеріали для роботи з учнями:
http://nabasice.narod.ru/index/0-17
http://www.youtube.com/watch?v=S7UHg1mF6Rw
http://school4-golovko.narod.ru/kopilka/ovseenko_1.htm
http://festival.1september.ru/articles/603812/
http://wap.studactive.borda.ru/?1-1-0-00000032-000-0-0
Робота з діловою графікою засобами мови Паскаль
Відеоуроки
План
Пам’ятка для учня!
Хід уроку
1. Перевірка домашнього завдання.
1. Наявність.
2. Питання.
2. Актуалізація опорних знань.
3. Мотивація навчальної діяльності.
Крім графічних можливостей середовище програмування має інші мультимедійні можливості: відтворення звуку
4. Вивчення нового матеріалу.
Звук в Pascal ABC
Модуль Sounds містить процедури и функції для роботи з звуком:
n:=LoadSound(fname) - завантажує звук з файлу з ім'ям fname в оперативну пам'ять і повертає описувач звуку в цілу змінну п (звуковий файл повинен може мати будь-який формат);
PlaySound (n) - починає програвання звуку з описувача n;
StopSound (n) - зупиняє програвання звуку з описувача n;
RewindSound (n) - ’’ перемотує" звук з описувача n на початок;
DestroySound (n) - видаляє звук з описувача n з оперативної пам'яті, описувач звуку при цьому стає недійсним;
SoundLength (n) - повертає тривалість звуку з описателем n в мілісекундах.
Приклад використання модуля sound:
Program Player;
Uses Sounds, CRT;
var n: integer;
begin
n:=LoadSound(“С:\WINDOWS\MEDIA\ringin.wav”);//укажите расположение файла PlaySound(n);
Sleep(SoundLength(n));
DestroySound(n);
end.
uses CRT, Sounds;
var s: Sound;
begin
s:=Sound.Create('m.wav');//m - Название самой песни (обязательный формат (.wav))
s.Play;
Sleep(s.Length);
s.Destroy;
end.//Конец программы
В якості розгорнутого приклад використання функцій модуля crt напишемо програму, яка заповнює екран випадковими кольоровими вікнами, а також є прикладом програвання нескладної "музики" через вбудований динамік комп'ютера. Для малювання рамок у цій програмі використовуються символи псевдографіки, які є тільки в кодуванні DOS
Program crt_example;
uses crt;
const minLen=10; {минимальная длина окна}
pause=500; {задержка при выводе звука}
blink=128; {установка бита мерцания}
var x1,y1,x2,y2 :integer;
{координаты окна}
background, {цвет фона окна}
color, {цвет текста}
freq, {частота звука}
setblink :integer; {есть/нет мерцание}
procedure doubleFrame (x1,y1,x2,y2:integer;
Header: string);
{Процедура рисует двойной рамкой окно
с заголовком и подготавливает его
внутреннюю часть для ввода текста}
{ x1,y1,x2,y2 - координаты окна}
{ header - заголовок окна}
var i,j: integer;
begin
Window (1,1,80,25);
{Рисуем верхнюю строку рамки }
gotoxy (x1,y1); write ('╔');
for i:=x1+1 to x2-1 do write('═');
write ('╗');
{Перебираем строки внутри окна}
for i:=y1+1 to y2-1 do begin
gotoxy (x1,i); write('║');
for j:=x1+1 to x2-1 do write (' ');
{Внутренность окна - пробелы}
write('║'); {Правая граница}
end;
{Аналогично рисуем нижнюю строку}
gotoxy (x1,y2); write('╚');
for i:=x1+1 to x2-1 do write('═');
write('╝');
gotoxy (x1+(x2-x1+1-Length(Header))
div 2,y1);
{Ставим курсор в середину верхней строки}
write (Header); {Выводим заголовок}
Window (x1+1,y1+1,x2-1,y2-1);
{Устанавливаем текущее окно внутри рамки}
gotoxy (1,1);{Ставим курсор в левый
верхний угол нового окна}
end;
begin
textbackground (BLACK);
Window (1,1,80,25);
{окно вывода - весь экран}
clrscr;
{Инициализируем генератор случайных чисел}
randomize;
DirectVideo:=true;
while not keyPressed do begin
{Пока не нажата клавиша,
выполняется цикл}
x1:= 1 + random(80-minLen);
x2:=x1 + minLen + random (80-x1-minLen);
y1:= 1 + random(25);
y2:= 1 + y1 + random (25-y1);
{Выбрали случайные координаты окна }
background:=random(8);
color:=random(16);
{Выбрали цвет фона и текста}
setblink:=random(2);
{Выбрали установку мерцания ДА или НЕТ}
textbackground (background);
textcolor(color+blink*setblink);
{Цвет текста с учетом мерцания}
doubleFrame (x1,y1,x2,y2,' Hello! ');
{Рисуем окно с помощью процедуры}
background := (textAttr and 112) shr 4;
{ Из байта цвета, содержащегося в
переменной textAttr, выделяем цвет
фона. Операция shr xx сдвигает
байт вправо на xx бит, а 112 в
двоичной системе это 01110000
(включены биты, отвечающие за фон) }
case background of
{ В зависимости от цвета фона выбираем
частоту звучания динамика }
0: freq:=262; {Частота ноты До}
1: freq:=294; { -"- Ре}
2: freq:=330; { -"- Ми}
3: freq:=349; { -"- Фа}
4: freq:=392; { -"- Соль}
5: freq:=440; { -"- Ля}
6: freq:=494; { -"- Си}
7: freq:=524; { -"- До}
end;
sound (freq); {Включаем динамик}
Delay (pause);
{Ждем, пока не истечет задержка}
Nosound; {Выключаем динамик!}
end; {Конец основного цикла}
{Восстанавливаем атрибуты текста и окно}
textbackground (BLACK);
textcolor (LIGHTGRAY);
Window (1,1,80,25);
clrscr;
end.
Вставка зображення
uses
GraphABC;
var
pict: Picture;
begin
pict := Picture.Create('<путь к файлу-рисунку>');
pict.Draw(0, 0);
end.
uses GraphABC;
var pic: integer;
begin
SetWindowSize(640,520);
ClearWindow(clBlack);
SetBrushColor(clSkyBlue);
Ellipse(106,220,122,300);
pic:=LoadPicture('C:\Pabc\a1.bmp');
DrawPicture(pic,60,310,-50,-100);
DrawPicture(pic,380,10,250,500);
6. Самостійне робота.
7. Підсумки уроку.
9. Домашнє завдання.