LOPES Thomas TP C Tableaux et Structures TS1IRIS
Page n°1/6
Compte rendu de Travaux Pratiques.
TP C: Tableaux et structures.
Partie C
Problème Technique :
Une station météorologique doit pouvoir mémoriser des informations collectées :
- Température : 1 échantillon par heure.
- Humidité : 1 échantillon par heure.
- Pression.
Solution Technique :
Il faut créer une structure de données sous la forme d’un tableau d’échantillons qui « pointe » sur des structures permettant de
mémoriser les échantillons mesurés sur la journée.
I)Cahier des charges :
On désire mémoriser les échantillons des différentes grandeurs météorologiques mesurées : température, humidité, pression.
En condition normale d’utilisation, ces échantillons sont mémorisés toutes les 10 minutes : il faut donc en même temps
mémoriser la date et l’heure de l’échantillon .
La date est composée du jour (1..31) du mois (Janvier…Décembre) de l’année(ex : 2010).
L’heure est composée : heure, minute seconde.
Les informations des grandeurs météorologiques ainsi que la date et l’heure doivent faire partie de la même structure de
données.
II)Préalgorithme :
Effacer l'écran.
On affiche le Premier janvier.
On demande à l'utilisateur de saisir les températures entre -40°C et +50°C.
(Filtrage des données grâce à la fonction SaisieClavier ).
On demande à l'utilisateur de saisir le taux d'humidité qui varie entre 0 à 100%.
(Filtrage de 0 a 100 grâce à la fonction SaisieClavier ).
On demande à l'utilisateur de saisir la pression atmosphérique qui varie entre 800 à 1100 hectopascals.
(Filtrage de 0 a 100 grâce à la fonction SaisieClavier ).
On restitue la Température , l'humidité de l'air et la Pression atmosphérique.
Toutes les 24 heures on récupère les échantillons et les restituons .
Puis tous les jours du mois de Janvier on demande les échantillons
On demande à l'utilisateur la reprise du programme.
LOPES Thomas TP C Tableaux et Structures TS1IRIS
Page n°2/6
III)Algorithme:
{Fonction de la Saisie de clavier}
SaisieEntier ( BorneInf : entier , BorneSup : entier ) : entier ;
Début
{Déclarations des variables.}
var:
BorneMini : entier ;
BorneMaxi : entier ;
resultat : entier ;
{Initialisations des bornes.}
Répeter
Début
Faire gotoxy ;
et effacer ligne ;
Vider le buffer; resultat Saisie clavier ;
Fin
Jusqu'a ce que ( resultat >= BorneMini ET resultat <= BorneMaxi )
{Retour du résultat}
retourner ( résultat ) ;
Fin
Températures (néant) : néant
Début
{Déclarations des variables}
{Déclarations des structures}
struct ECHJOUR
{
int temp[24] ;
int humi[24] ;
int pression[24];
}ECHJOUR ;
Echjour = enregistrement
Début
temp : réel ;
humi : entier ;
pression : entier ;
Fin
LOPES Thomas TP C Tableaux et Structures TS1IRIS
Page n°3/6
var:
i , j: entier non signé ;
{Le Programme}
{Saisie des Échantillons }
{ Saisie de la date. }
Répeter
Début
Présentation écran ;
Pour i ← 0 à i < 7 par pas de 1 Faire {Boucle pour les jours}
Début
Pour j ← 0 à j < 24 par pas de 1 Faire {Boucle pour les heures}
Début
{Saisie de l'échantillon}
{Saisie des températures.}
Afficher "Veuillez saisir la temperature (entre -40 et +50 degres): " ;
saisieEchanti.temp SaisieEntier( -40 , 50 ) ;
{Saisie de l'humidité.}
Afficher "Veuillez saisir l'humidite (entre 0 et 100): " ;
saisieEchanti.humiSaisieEntier( 0 , 100 ) ;
{Saisie de la pression.}
Afficher "Veuillez saisir la pression (entre 800 et 1100): " ;
saisieEchanti.pressionSaisieEntier( 800 , 1100 ) ;
Fin
Fin
{Restitution des échantillons par jour}
Pour i ← 0 à i < 7 par pas de 1 Faire {Boucle pour les jours}
Début
Pour j ← 0 à j < 24 par pas de 1 Faire {Boucle pour les heures}
Début
Afficher « Aujourd'hui le ,i+1, janvier a , j , h :" »;
Afficher « La temperature est de ,janvier[i].temp[j] , la pression est de,
janvier[i].pression[j] , hectopascals»;
Afficher « et le taux d humidite de % .",janvier[i].humi[j] »;
Fin
Fin
Afficher " Appuyer sur 'n' pour quitter le programme ou autre pour continuer ";
Fin
Jusqu'à ce que ( saisie clavier 'N' )
Fin
LOPES Thomas TP C Tableaux et Structures TS1IRIS
Page n°4/6
IV)Le Programme.
/*******************************************************************************************************
* NOM :Station météo
* SUJET :Saisir les températures, presion, humdité toutes les heures , tous les jours du mois de janvier.
* AUTEUR :LOPES Thomas .
* VERSIO :v1.2
* CREATION :03/01/2011
* DER.MODIF :06/01/2011
* ACCESS SOURCE :H:\Tido\Lycée\Programmation\Source - Projet\Revy\Borland\Tableaux et structures\Partie C
* ACCES OBJ :H:\Tido\Lycée\Programmation\Source - Projet\Revy\Borland\Tableaux et structures\Partie C
* ACCESS EXE :H:\Tido\Lycée\Programmation\Source - Projet\Revy\Borland\Tableaux et structures\Partie C
* LIMITES :environnement DOS
* CONTRAINTES :Fonctionne sur PC
*******************************************************************************************************/
/* les directives*/
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#define FF fflush(stdin)
/*******************************************************************************
*Le programme principal :
*Paramètres entrant : aucun
*Paramètres sortant : aucun
****************************************************************************/
/*Déclarations des structures*/
/*Fonction de la Saisie de clavier*/
int SaisieEntier ( int BorneMini , int BorneMaxi )
{
/*Déclarations des variables.*/
int resultat ;
/*Initialisations des bornes.*/
do
{
gotoxy(1,6);
clreol();
FF; scanf("%d", &resultat) ;
}
while ( resultat < BorneMini || resultat > BorneMaxi ) ;
/*Retour du résultat*/
return ( resultat ) ;
}
void main (void)
LOPES Thomas TP C Tableaux et Structures TS1IRIS
Page n°5/6
{
/* les déclarations */
struct ECHJOUR
{
int temp[24] ;
int humi[24] ;
int pression[24];
}ECHJOUR ;
struct ECHJOUR janvier[31];
int unsigned i , j ;
do
{
/*Programme*/
clrscr();
gotoxy(25,1);
puts("***************");
gotoxy(25,2);
puts("*Station meteo*");
gotoxy(25,3);
puts("***************");
for ( i = 0 ; i < 7 ; i++ ) /*Boucle pour les jours */
{
for ( j = 0 ; j < 24 ; j++ )/*Boucle pour les heures */
{
gotoxy(1,5);
printf("Saisissez la temperature a %dh : ", j);
janvier[i].temp[j] = SaisieEntier( -40 , 50 );
gotoxy(1,5);
printf("Saisissez l humidite a %dh : ", j);
janvier[i].humi[j] = SaisieEntier( 0 , 100 );
gotoxy(1,5);
printf("Saisissez la pression a %dh : ", j);
janvier[i].pression[j] = SaisieEntier( 800 , 1100 );
}
}
/*restitution des valeurs */
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !