Разделы: Программирование |
1:. 27.12.2006 : 07:07:15 : anonymous Прога делается в Борланде 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",iOct);
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
}
}
2:. 27.12.2006 : 09:39:20 : Vladimir Если я правильно понимаю, то строчка которая рисует квадрат вот:
bar(100, 100, 150, 150);
Поменяйте ее на алгоритм рисования нужных Вам фигур.
3:. 28.12.2006 : 15:05:15 : anonymous
| Цитата: 2:. 27.12.2006 : 09:39:20 : Vladimir
Если я правильно понимаю, то строчка которая рисует квадрат вот:
bar(100, 100, 150, 150);
Поменяйте ее на алгоритм рисования нужных Вам фигур. |
bar это квадрат
circle-круг
bar3d -параллепипед
это надо засунуть в цикл, что они чередовалиб. Это как раз и не получается
4:. 28.12.2006 : 17:25:43 : Vladimir А в чем проблема то?
Такой алгоритм не будет работать?
if (m==1) рисум квадрат
if (m==2) рисуем круг
....
if (m>5) m=0
m=m+1
5:. 28.12.2006 : 22:56:33 : .Squid Блин ну вы в универе уже с курсаком достали, так еще и через инет решили?? 
6:. 29.12.2006 : 02:29:49 : NUKE anonymous, научись объяснять че те нада
Насколько я понял - тебе надо вложить все еще в один цикл и сделать как сказал Владимир
2.Squid
это точно!
7:. 29.12.2006 : 02:48:19 : Griffon Походу если этот человек учится на програмёра. То ему стоит задуматся над сменой факультета.
Как я понял человек не только не понимает элементарных вещей. Но и не хочет понять.
Про асмовские вставки промолчу. Может так надо :)
8:. 29.12.2006 : 11:35:11 : anonymous я сетевик , а не программер
9:. 05.01.2007 : 04:17:03 : ARAYIK
| Цитата: anonymous
я сетевик , а не программер |
Слыш сетевик а с какой ты группы и на каком курсаче*?
10:. 06.01.2007 : 16:42:58 : anonymous ARAYIK
| Цитата: Слыш сетевик а с какой ты группы и на каком курсаче*? |
а те оно зачем?
11:. 07.01.2007 : 01:16:18 : ARAYIK мало ли может знаю тя и может помогу
Тема закрыта, новые сообщения добавить нельзя. |