Voila je voudrai faire la meme chose que ceci http://www.ticalc.org/archives/files/fileinfo/136/13600.html.
J'ai deja commencer mes mes resultats sont bien en dessous de ca et je voudrai obtenir les meme performance.
Pouvez vous m'aidez merci.
#include <tigcclib.h>
float vin_carre(float f,float t,float Vcc,float r)
{
float P;
float v=0;
P=1/f;
//on regarde si t>P (on va travailler dans la premiere periode pour faire plus simple
while(t>P)
t-=P;
//donc on est dans l'intervalle de temps 0-P
//r*P est l'instant de commutation entre l'tat bas et l'état haut
if (t<=(r*P)) //on est a l'état haut
v=-(Vcc)/2;
else // on est a l'état bas
v=Vcc/2+1;
return v;
}
void trace(float yscl)
{
short x=80,y=49,key=0;
float ysc=0;
char buffer[50];
while(key!=264)
{
DrawPix(x,y,A_XOR);
key=ngetchx();
DrawPix(x,y,A_XOR);
if (key==344) x+=1;
else if (key==338) x-=1;
else if (key==340) {y+=1; ysc-=yscl;}
else if (key==337) {y-=1; ysc+=yscl;}
else if (key==4440) x+=10;
else if (key==4434) x-=10;
else if (key==4436) {y+=10; ysc-=(10*yscl);}
else if (key==4433) {y-=10; ysc+=(10*yscl);}
sprintf (buffer, "%f",ysc);
DrawStr(25, 1, buffer, A_REPLACE);
}
}
void grid(void)
{
clrscr();
DrawLine (0, 49, 159, 49, A_NORMAL);
DrawLine (0, 0, 0, 99, A_NORMAL);
}
void _main(void)
{
float frequence=10, //frequence en Hz
yscl=(fabs(12)+fabs(-12))/99,
//tension=(12*sqrt(2)), //tension alternative max v racine de 2
tension=12/yscl, //tension alternative max v sans racine de 2
nb_per=1, //nombre de periode souhaite
pix=nb_per/frequence/159, //temps par pix
dephasage=(PI*180/180), //dephasage
w=(2*PI*frequence), //omega= 2*PI*F
y,absisse,t,xp=1,yp=-1;
grid();
for(t=0,absisse=0;absisse<160;t=pix*absisse,absisse+=1)
{
y=tension*sin(w*t+dephasage);
DrawLine(xp,yp+49,absisse,y+49,A_NORMAL);
//DrawPix (absisse,y+49,A_NORMAL);
xp=absisse;
yp=y;
}
trace(yscl);
grid();
yscl=(fabs(2)+fabs(-2))/99;
xp=yp=0;
for(t=0,absisse=0;absisse<160;t=pix*absisse,absisse+=1)
{
y=vin_carre(10,t,4/yscl,0.5);
DrawLine(xp,yp+49,absisse,y+49,A_NORMAL);
//DrawPix (absisse,y+49,A_NORMAL);
xp=absisse;
yp=y;
}
ngetchx();
}
cerede2000
: et bien c'est un peu des deux en faite bon voila deja ce que j'ai fait.
Mais il ya des problemes avec la sinusoïde elle est aussi belle que celle du programme ci dessus.
Et aussi je ne sait pas comment interpreter les expression du style sin(x) sin(x^2) des choses comme ca.
//Structure d'un tag typedef struct { //Phase 1 unsigned char type; unsigned char tag; unsigned char subtag; //Phase 2 unsigned char token_type; //Token de command ou token de fonction unsigned char token_index; //Index dans la table unsigned char symbol_index; //Index du symbol //Phase 3 unsigned char priority; //Priorité de calcul //Stockage de données float fnum; long lnum; lstring string; } s_tag;