Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2006, 18:03   #1
Let
Новичок
Джуниор
 
Регистрация: 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.
Let вне форума Ответить с цитированием
Старый 26.12.2006, 18:24   #2
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

это С , при чем тут Delphi ?
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 27.12.2006, 08:03   #3
Let
Новичок
Джуниор
 
Регистрация: 25.12.2006
Сообщений: 2
По умолчанию

а тут , что тока по делфи студентам помогают?
Let вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Воспроизведение звука 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