#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