|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.12.2006, 18:03 | #1 |
Новичок
Джуниор
Регистрация: 25.12.2006
Сообщений: 2
|
Воспроизведение мелодии с геометрическими фигурами
Прога делается в Борланде 3.1
Задание Создать программу которая создаёт задержку на заданое число секунд. Создать интерфейс для ввода с клавиатуры значение задержки и втечении задержки выводить на экран геометрические фигуры, которые иллюстрируют отсчет времени. Вот исходник . Она Выполняет задержку как надо, проблема с фигурами, она использует квадрат (меняеться только цвет) Помогите плз чтоб чередовались : квадрат , круг, ромб и треугольник. #include <graphics.h> #include <dos.h> #include <stdio.h> #include <conio.h> #include <math.h> void main (void); void tm_sound (int, int, int); void tm_delay (int); int iMel[ ] = {329, 440, 440, 392, 392, 440, 440, 493, 0 }; int iDel[ ] = {9, 9, 4, 4, 4, 5, 5, 18 }; int iOct; void main (void) {int gdriver = VGA, gmode = VGAHI; initgraph(&gdriver, &gmode, ""); int i, g=0, d=0, q=0, w=0, t=0, t1=0, t2=0, dt=0; struct time timer1; struct time timer2; gotoxy(10,1);printf("Programma 'Ygaday melodiu'"); gotoxy(2,2);printf("Vvedite koef. oktavu (s-po): ");scanf("%d %d",&q,&w); gotoxy(2,3);printf("Vvedite zaderjky(in seconds): ");scanf("%d",&t); for(iOct=q;iOct<w+1;iOct++) {for ( i = 0; iMel[i] != 0; i++ ) {if(i==0) {gotoxy(1,6);printf("Oktava=%d\n",i Oct); if(iOct>q) {gettime(&timer1); t1=(timer1.ti_min*60)+timer1.ti_sec ; for(;{gettime(&timer2); setfillstyle(1,11); t2=(timer2.ti_min*60)+timer2.ti_sec +1; dt=t2-t1; gotoxy(3,7); printf("%02d/%02d:",dt,t); if(dt-t==0){break;}} }} tm_sound ( iMel[i], iDel[i], iOct-1); g++;d=iMel[i]/16; setfillstyle(1,d);bar(100, 100, 150, 150); }} getch();} void tm_sound(int iFreq, int iTime, int Oct) { int iPer, iOct = Oct, i; outp(0x43, 0xb6); iPer = 1193180L / (pow(2,iOct)*iFreq); outp(0x42, iPer & 0x00ff); outp(0x42, ((iPer & 0xff00)>>8)); outp(0x61, inp(0x61) | 3); tm_delay(iTime); outp(0x61, inp(0x61) & 0xfc); } void tm_delay ( int iTicks) {_asm { push si mov si,iTicks mov ah,0 int 1ah mov bx,dx add bx,si } delay_loop: _asm { int 1ah cmp dx, bx jne delay_loop pop si } } Последний раз редактировалось Let; 25.12.2006 в 18:06. |
26.12.2006, 18:24 | #2 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
это С , при чем тут Delphi ?
Берегите друг друга!
|
27.12.2006, 08:03 | #3 |
Новичок
Джуниор
Регистрация: 25.12.2006
Сообщений: 2
|
а тут , что тока по делфи студентам помогают?
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Воспроизведение звука | Djaconda | Общие вопросы C/C++ | 14 | 09.06.2008 00:19 |
Воспроизведение Flash (*.swf) | Airou | Компоненты Delphi | 2 | 19.05.2008 12:24 |
Воспроизведение видеофайла | Airou | Мультимедиа в Delphi | 5 | 16.05.2008 11:28 |
воспроизведение звука.. | Kaktys v tymane | Помощь студентам | 1 | 01.05.2008 20:55 |
Работа с графическими фигурами | Fanat1k | Помощь студентам | 1 | 03.05.2007 07:59 |