Projet scolaire ... a l'aide !

Fermé
Shino - 4 avril 2012 à 17:19
 shino - 8 avril 2012 à 11:58
Bonjour, notre lycée propose en option une matière qui consiste à réaliser un projet au choix qui sera noté en fin d'année.
J'ai donc formé un groupe avec d'autres élèves pour réaliser un système électronique programmable qui permettrait l'allumage des lumières des salles de classe en fonction d'un emploi du temps (les ampoules s'allument automatiquement quand la salle est occupée d'après l'emploi du temps et s'éteignent dans le cas contraire) , dans le cas ou la salle serait occupée pour éviter de gaspiller de l'énergie nous avons également prévu un capteur de lumière pour que même si la salle est occupé la lumière ne s'allume que quand celle si manque de lumière.
Nous avons donc réalisé un modèle réduit du projet avec une maquette représentant les classes et le montage permettant de réaliser notre objectif... le seul pépin c'est que nos connaissances se limitent a l'électronique et aucun de nous n'a idée de comment programmer le système (nous avons acheté une plateforme ARDUINO pour contrôler le système). C'est pourquoi je demande votre aide en espérant avoir des réponses et ainsi nous sortir de notre problème. Je joint une image qui représente notre montage :

http://www.casimages.com/img.php?i=120404052633549098.jpg

MERCI D'AVANCE POUR VOS REPONSES.



2 réponses

anisbennaceur Messages postés 2 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 4 avril 2012
4 avril 2012 à 23:37
PARTIE 1
Les files d'attentes sont des structures de données dont la gestion se fait en FIFO
(First In First Out) :
* l'ajout dans une file = enfiler : se fait toujours à la fin
* la suppression dans une file = défiler : se fait toujours au début
Travail demandé
Implémenter les primitives suivantes pour les files (FILEPRIM.h) d'une manière
simplement chainée (vous pouvez profiter de l'implémentation simplement chainée
des listes)
File fileCreer(void);
void fileDetruire (File);
int estVide(File);
int estSaturee(File);
int fileTaille(File);
ELEMENT Sommet(File);
int Enfiler(File, ELEMENT);
ELEMENT Defiler(File);
void fileAfficher(File);
File fileCopier(File);
int fileComparer(File, File);
0
anisbennaceur Messages postés 2 Date d'inscription mercredi 4 avril 2012 Statut Membre Dernière intervention 4 avril 2012
4 avril 2012 à 23:42
j'ai un probleme dans mes travail pour cette partie1:/************************************************************************
* Fichier : FILETAB.C
* Contenu : Définition des primitives pour une réalisation
* par tableau du TDA FILE.
**************************************************************************/
#include <stdlib.h>
#include <stdio.h>
#include "FILEPRIM.H"

NOEUD noeudCreer(ELEMENT e){
NOEUD n;
n =(NOEUD)malloc(sizeof(structNoeud));
if(!n)
printf ("\nPlus d'espace");
else
{
elementAffecter(&n->info, e);
n->suivant = NULL;
}
return n;
}
void noeudDetruire(NOEUD n){
elementDetruire(n->info);
free(n);
}

//File fileCreer(void)
File fileCreer(void)
{File f;
f = (File) malloc(sizeof(laStruct));
if(!f) {
printf(" \nProblème de mémoire") ;
}
else
{
f->debut=0;
f->fin=0;
}
return(f);
}

//void fileDetruire (File f)
void fileDetruire (File f)
{NOEUD n = f->debut;
while (n!= NULL)
{
f->debut=n->suivant;
noeudDetruire(n);
n = f->debut;
}
free(f);
}

//int estVide(File f)
int estVide(File f)
{
return (f->debut == 0);

}


//int estSaturee(File)
int estSaturee(File f)
{
NOEUD temp;
int saturee = 1; /* on suppose mémoire saturée */
temp = (NOEUD) malloc ( sizeof ( structNoeud ) );
if(temp != NULL) {
saturee = 0; /* mémoire non saturée */
free(temp);
}
return saturee;
}

//int fileTaille(File)
int filetaille(File f)
{int taille = 0;
NOEUD n;
n = f->debut;
while (n != NULL)
{ taille++;
n = n->suivant ;}
return(taille);
}
//ELEMENT Sommet(File);
ELEMENT Sommet(File f)
{return(f->debut->info);}



int Enfiler(File f, ELEMENT e)
{int succes=1;
NOEUD nouveau;
if (estSaturee(f)){
printf ("\n file saturée");
succes=0;}
else
{
nouveau=noeudCreer(e);
nouveau->suivant = f->fin;
f->fin= nouveau;
}
f->lg++;
return succes;
}








//ELEMENT Defiler(File);

//void fileAfficher(File)
void fileAfficher(File f)
{ int i;
NOEUD n;
n= f->fin;
for(i=0;i<f->lg;i++)
{elementAfficher(n->info);
}
}



//File fileCopier(File)
File fileCopier(File f)
{
File PR = fileCreer();
ELEMENT elt;
NOEUD n1, n2, n3;
n1 = f->debut;
while (n1 != NULL) {

elt=elementCreer();
elementCopier(&elt, n1->info);
n2 = noeudCreer(elt);
if (n1 == f->debut)
{PR->debut = n2;
n3 = n2;}
else
{ n3->suivant = n2;
n3 = n2;}
n1 = n1->suivant;
}
return PR;
}



//int fileComparer
int fileComparer(File f1, File f2)
{
int test= 1;

NOEUD n1 = f1->debut;
NOEUD n2 = f2->debut;
if (fileTaille(f1) != fileTaille(f2)) test= 0;
while ((n1!=NULL) && (test)) {
if (elementComparer(n1->info, n2->info)!=0)
test=0;
else
{n1 = n1->suivant;
n2 = n2->suivant;
}
}
return test;
}
0
je suis désolé mais je ne comprend pas ta réponse ... est-ce une solution a mon probleme ou est-ce que tu expose ton propre problème ??
0