#define NbMesures 10
float mesurer(void)
{
int i;
float som=0;
for (i=0;i<NbMesures;i++)som+=(lire_cna()-412)/6.6;
return som/NbMesures;
}#include <stdio.h>
#include "moteur.h"
//inclure question 1 ici
void main(void)
{
float pd;
char rep;
int i,nbpas;
do
{
printf("pression désirée ?");
scanf(("%f",&pd);
printf("appuyez D pour démarrer");
do rep=getchar(); while (rep!='D');
activer();
nbpas=0;
do
{
un_pas(0);//supposons que comme un robinet, sens trigo ouvre
nbpas++;
}
while(mesurer()<pd*0.9);
do
{
delay(10);
un_pas(0);
nbpas++;
}
while(mesurer()<pd*0.96);
do
{
delay(20);
un_pas(0);
nbpas++;
}
while(mesurer()<pd);
printf("\nla pression est atteinte !\n"
printf("appuyez R pour vider l'azote");
do rep=getchar(); while (rep!='R');
for(i=0;i<nbpas;i++)un_pas(1);
desactiver();
printf("refaire un cycle (O/N) ?"
do rep=getchar(); while (rep!='O' && rep!='N');
}
while(rep=='O');
}//déclarations globales à rajouter (en début du fichier source) #include "init-ref.h" #define DIM 100 typedef float ftab[DIM]; typedef int itab[DIM]; //déclarations dans main itab ref; ftab consig; int nbref;
float consigne(itab ref,ftab consig,int nbref)
{
int i,r;
float p;
do
{
printf("référence désirée ?");
scanf("%d",&r);
if(r==0)
{
printf("pression désirée ?");
scanf("%f",&p);
return p;
}
for(i=0;i<nbref;i++)
if(ref[i]==r)return consig[i];
//si je ne suis pas retourné, c'est qu'il n'existe pas
printf("référence inconnue !\n");
}
while(1); //on boucle tant qu'on n'a pas validé un « return »
}typedef struct cycle
{
float perdue;
float mise_en_p;
float relachmt;
int ref;
}cycle;
#define MaxCycl 2000
typedef cycle tabcycl[MaxCycl];
tabcycl journal;
pour retourner au sujets de cet examen, cliquez ici (n'est-il pas dans une autre fenêtre ?).
Patrick
TRAU, ULP - IPST
mai 04