КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Управление звуковыми сигналами
Работа со строковыми переменными Работа с символьными переменными END. TextMode(3) BEGIN for i:=0 to 9 do begin {режимы работы монитора } if i<4 then N:=i else N:=256+i-4; if i=9 then N:=7; textMode(N); xm:=lo(WindMax)+1; ym:=hi(WindMax)+1; write('xm=',xm, '_ym=',ym, '_N=',N, '_Нажмите Enter');readln; TextBackGround(1);clrscr;TextColor(14);x:=1; f:=8; dx:=3; { f - длина фамилии + курсор, dx - приращение отступа} for j:=1 to ym-1 do begin y:=j; if (xm-x-f)<0 then x:=1; { контроль выхода надписи за экран } gotoXY(x, y); write('ФАМИЛИЯ'); x:= x + dx; end; Writeln; write('Нажмите Enter'); readln end; Фрагмент 4. Пример операторов для создания окон. При регулярном размещении нескольких рядов одинаковых окон на экране можно использовать двойной цикл для раздельного изменения номера строки и столбца: textmode(258);xm:=lo(windmax);ym:=hi(windmax); {размеры экрана} Nx:= 4; Ny:= 4; { Nx, Ny - число окон } hx:= xm div Nx; hy:= ym div Ny; {hx, hy - размер окна по X и по Y} for i:= 0 to Nx-1 do { чередование столбцов } for j:= 0 to Ny-1 do begin { наращивание строк } x1:= 1+hx*i; x2:=x1+hx-1; y1:= 1+hy*j; y2:=y1+hy-1; window(x1, y1, x2, y2); TextBackGroung(i+j); ClrScr; end; Repeat c:=readKey; Write(c) until c=#13; здесь "с" - переменная типа Char, #13 - код клавиши Enter #32 - SpaceBar #27 - Esc
Для запоминания вводимых символов можно использовать операторы: i:=0; repeat i:=i+1; ch[i]:=readKey; write(ch[i]) until ch[i]=#13; Здесь ch[i] - элемент массива ch типа Char.
DelLine; InsLine; Delay(M);
Фрагмент 5. Пример операторов, прокручивающих текст в окне. Window(5,5,30,9);TextBackGround(1);Clrscr; TextColor(14); repeat delay(500); GotoXY(1, 5); write('Всем большой привет!'); gotoXY(1, 1); for k:=1 to 5 do begin { прокрутка вверх } delay(300); delLine end until keyPressed; Для вывода на экран символа по номеру его кода можно использовать операторы: C:= chr(N); write(C); где N - номер кода символа (тип Byte), chr - функция преобразования целого типа в символьный.
s1:='Hello!' s2:='Привет!' s3:=s1+'_'+s2; присвоится значение: "Hello! Привет!". s1[1]:='H', s1[2]:='e'; и т. д. (см. 5.1) L:=Ord(s1[0]); L:=Length(s1); Copy(S,L1,L2);. где L1 - номер индекса первого копируемого символа, L2 - число копируемых символов. Sc:=Copy(s1,1,5); примет значение "Hello". Delete(S,L1,L2); где L1 -номер индекса первого удаляемого символа, L2 - число удаляемых символов. Delete(s1,6,1); переменная "s1" примет значение "Hello". Insert(Si, S, L1); здесь переменные L1, L2 - типа Integer.
Sound(N); - включение звука с частотой тона N (измеряется в герцах). Delay(M); - задержка выполнения программы на M миллисекунд. NoSound; - выключение звука. Здесь N и M - типа Word.
Sound(F); Delay(N); NoSound;
Формула расчета частоты звука: F=Round(440*Exp(Ln(2)*(No-(10-Nn)/12)));
где No - номер октавы -3<= No <=4; Для основной октавы No=0. Nn - номер ноты 1 - До, 2 - До#, 3 - Ре, и т. д. 12 - Cи.
При сквозной нумерации нот принять для No<0 - Nn<1, для No>0 - Nn>12. Фрагмент 6. Пример операторов, позволяющих курсорными клавишами перемещать по экрану курсор, либо выводить на экран символ нажатой клавиши. x:= whereX; y:= whereY; { опрос текущих координат курсора }
Дата добавления: 2014-01-07; Просмотров: 248; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |