retour au sujet Examen programmation IUP 2
Première session 2004
pistes de solutions

Question 1

#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;
}

Question 2

#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');
 }

Question 3.1

//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;

Question 3.2

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 »
 }

Question 4.1

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 ?).


retour au sujet Patrick TRAU, ULP - IPST mai 04