A voir également:
- Exercice impliquant des tableaux
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
- Fleur d'encre 5eme corrigé exercice ✓ - Forum PDF
- Comment trouver la correction d'un exercice ✓ - Forum Programmation
2 réponses
Galsungen
Messages postés
6928
Date d'inscription
vendredi 5 mars 2004
Statut
Contributeur
Dernière intervention
18 novembre 2007
1 424
4 nov. 2004 à 07:32
4 nov. 2004 à 07:32
voici une petite aide, mais il s'agit d'un algo, à toi ensuite de le traduire dans le language voulu :
Classique :
et maintenant revoici le même , mais avec des procédures et des fonctions :
à toi de transformer cela afin d'obtenir ce que tu souhaites, en fonction de ton enoncé que tu n'ais qu'une seule matière ou plusieurs ...etc... du language et autre.
Et un temps pour chaque chose sous le ciel ... ©A. McCaffrey
Classique :
PROGRAMME MOYENNES
tableau chaîne : noms(36), matieres(4)
tableau réel : moyennes(36,4)
tableau réel : moy_genes(36)
chaîne : eleve
réel : total
entier : i, mat, nbnotes
booléen : trouve
enreg : enr_eleve
{ entier : num_eleve
chaine : nom_eleve }
enreg : enr_note
{ entier : num_eleve
entier : num_matiere
réel : moyenne }
fichier de enr_note : f_note
fichier de enr_eleve : f_eleve
enr_note : vnote
enr_eleve : veleve
Début
ouvrir (f_note, f_eleve)
matieres (1) = "Français"
matieres (2) = "Math"
matieres (3) = "Langue"
matieres (4) = "Sciences"
Pour (i = 1 à 36)
noms(i) = ""
moy_genes(i) = -1
Pour (mat = 1 à 4)
moyennes(i, mat) = -1
Fpour
Fpour
Lire(f_eleve, veleve)
Tant que (NON FF(f_eleve))
Si (veleve.num_eleve >= 1 ET veleve.num_eleve <= 36)
noms (veleve.num_eleve) = veleve.nom_eleve
Fsi
Lire (f_eleve, veleve)
Ftq
Lire(f_note, vnote)
Tant que (NON FF(f_note))
Si(vnote.num_eleve >= 1 ET vnote.num_eleve <= 36 ET vnote.num_matiere >= 1 ET vnote.num_matiere <= 4)
moyennes(vnote.num_eleve,vnote.num_matiere)=vnote.moyenne
Fsi
Lire(f_note,vnote)
Ftq
fermer(f_note,f_eleve)
nbnotes = 0
Pour (i = 1 à 36)
total = 0
Pour (j = 1 à 4)
Si (moyennes(i,j) > -1)
total = total+moyennes(i,j)
nbnotes = nbnotes + 1
Fsi
Fpour
moy_genes(i) = total / nbnotes -1
Fpour
Saisir(eleve)
Tant que (eleve <> "")
i = 1
trouve = FAUX
Tant que (trouve = FAUX ET i <= 36)
Si (noms(i) = eleve)
trouve = VRAI
Sinon
i = i + 1
Fsi
Ftq
Si (trouve = VRAI)
Pour (mat = 1 à 4)
Afficher (matieres(mat), moyennes (i,mat))
Fpour
Afficher ("Moyenne générale", moy_genes(i))
Sinon
Afficher ("nom inexistant")
Fsi
Saisir(eleve)
Ftq
Fin
et maintenant revoici le même , mais avec des procédures et des fonctions :
PROGRAMME MOYENNES
constante : FIN 36
enreg : enr_eleve
{ entier : num_eleve
chaine : nom_eleve }
enreg : enr_note
{ entier : num_eleve
entier : num_matiere
réel : moyenne }
fichier de enr_note : f_note
fichier de enr_eleve : f_eleve
enr_note : vnote
enr_eleve : veleve
Début
Lancer
Fin
Procédure Lancer
tableau chaîne : noms(FIN), matieres(4)
tableau réel : moyennes(FIN,4)
tableau réel : moy_genes(FIN)
Début
init_tableau (noms(), matieres(), moyennes(), moy_genes(),FIN)
charger_tableau (noms(), matieres(), moyennes(), moy_genes(),FIN)
calcul_moyennes (moyennes(), moy_genes(),FIN)
recherche_tableau (noms(), matieres(), moyennes(), moy_genes(), FIN)
Fin
Procédure : init_tableau (adr.tableau chaîne : noms(), adr.tableau chaîne : matieres(), adr.tableau réel : moyennes(),
adr.tableau réel : moy_genes(), val.entier : maxi)
entier : i, mat
Début
ouvrir(f_eleve, f_note)
matieres (1) = "Français"
matieres (2) = "Math"
matieres (3) = "Langue"
matieres (4) = "Sciences"
Pour (i = 1 à maxi)
noms(i) = ""
moy_genes(i) = -1
Pour (mat = 1 à 4)
moyennes(i, mat) = -1
Fpour
Fpour
Fin
Fonction entier : charger_tableau (adr.tableau chaîne : noms(), adr.tableau chaîne : matieres(), adr.tableau réel : moyennes(),
adr.tableau réel : moy_genes(), val.entier : maxi)
Début
Lire(f_eleve, veleve)
Tant que (NON FF(f_eleve))
Si (veleve.num_eleve >= 1 ET veleve.num_eleve <= maxi)
noms (veleve.num_eleve) = veleve.nom_eleve
Fsi
Lire (f_eleve, veleve)
Ftq
Lire(f_note, vnote)
Tant que (NON FF(f_note))
Si(vnote.num_eleve >= 1 ET vnote.num_eleve <= maxi ET vnote.num_matiere >= 1 ET vnote.num_matiere <= 4)
moyennes(vnote.num_eleve,vnote.num_matiere)=vnote.moyenne
Fsi
Lire(f_note,vnote)
Ftq
fermer(f_note,f_eleve)
Fin
Fonction calcul_moyennes (val.tableau réel : moyennes(), adr.tableau réel : moy_genes(), val.entier : maxi)
entier : nbnotes, i, j, total
Début
nbnotes = 0
Pour (i = 1 à maxi)
total = 0
Pour (j = 1 à 4)
Si (moyennes(i,j) > -1)
total = total+moyennes(i,j)
nbnotes = nbnotes + 1
Fsi
Fpour
moy_genes(i) = total / nbnotes -1
Fpour
Fin
Fonction recherche_tableau (val.tableau chaîne : noms(), val.tableau chaîne : matieres(), val.tableau réel : moyennes(),
val.tableau réel : moy_genes(), val.entier : maxi)
entier : i, mat
chaîne : eleve
booléen : trouve
Début
Saisir(eleve)
Tant que (eleve <> "")
i = 1
trouve = FAUX
Tant que (trouve = FAUX ET i <= maxi)
Si (noms(i) = eleve)
trouve = VRAI
Sinon
i = i + 1
Fsi
Ftq
Si (trouve = VRAI)
Pour (mat = 1 à 4)
Afficher (matieres(mat), moyennes (i,mat))
Fpour
Afficher ("Moyenne générale", moy_genes(i))
Sinon
Afficher ("nom inexistant")
Fsi
Saisir(eleve)
Ftq
Fin
à toi de transformer cela afin d'obtenir ce que tu souhaites, en fonction de ton enoncé que tu n'ais qu'une seule matière ou plusieurs ...etc... du language et autre.
Et un temps pour chaque chose sous le ciel ... ©A. McCaffrey
salut galsugen et les autres vivant encore
je ne sais pas si tu existe tjrs ou tu ne plus sur terre mais quand meme je veux essayer de voir voir si tu es tjrs en vie.
j'ai un probleme mon frere de resoudre un probleme d'algo qui doit me constituer la table de muiltiplication d'un nombre de 1 a 10.
A ++
Que tu soit en vie
merci
je ne sais pas si tu existe tjrs ou tu ne plus sur terre mais quand meme je veux essayer de voir voir si tu es tjrs en vie.
j'ai un probleme mon frere de resoudre un probleme d'algo qui doit me constituer la table de muiltiplication d'un nombre de 1 a 10.
A ++
Que tu soit en vie
merci