Algorithmique Correction TD8 : La ligue 1 de football 1.1) Match G1
Transcription
Algorithmique Correction TD8 : La ligue 1 de football 1.1) Match G1
Algorithmique Correction TD8 : La ligue 1 de football 1.1) Match G1, Match G2, …, Match G20. 1.2) Importer entréeSortie; Programme moyenneMatchGagné Glossaire i <Entier> ; --curseur S <Entier> ; --somme des valeurs G <Entier> ; --nombre de matchs gagnés moy <Réel> ; --moyenne des matchs gagnés Début i <- 0 ; S <- 0 ; tantque i =/ 20 faire lire(G) ; S <- S + G ; i <- i + 1 ; fin tantque ; moy <- S div 20 ; écrire(moy) ; Fin 1.3) Importer entréeSortie ; Programme matchGagnéSupMoy Glossaire i <Entier> ; --curseur S <Entier> ; --somme des valeurs G <Entier> ; --nombre de matchs gagnés moy <Réel> ; --moyenne des matchs gagnés ESM <Entier> ; --équipe supérieure à la moyenne tabMatchesGagnés <TabMatches> ; Début i <- 0 ; tantque i =/ 20 faire lire(G) ; lire(tabMatchesGagnés[i]) ; tabMatchesGagnés[i+1] <- G ; S <- S + G ; i <- i +1 ; fin tantque ; moy <- S div 20 ; écrire(moy) ; ESM <- 0 ; i <- 1 ; tantque i <= 20 faire si tabMatchesGagnés[i] > moy alors ESM <- ESM + 1 ; fin si ; i <- i + 1 ; fin tantque ; écrire(ESM) ; Fin 2.1) --détermine la valeur d’indice du tableau butsC correspondant à une des équipes ayant concédé le plus --nombre de buts sur l’ensemble de la saison Fonction indiceMinBc (entrée butsC <TabMaches>) retourne <Entier> ; 2.2) --détermine la valeur d’indice du tableau butsC correspondant à une des équipes ayant concédé le plus --nombre de buts sur l’ensemble de la saison Fonction indiceMinBc (entrée butsC <TabMaches>) retourne <Entier> Glossaire i <Entier> ; --compteur plusPetit <Entier> ; --indice du tableau contenant la plus petite valeur Début i <- 2 ; plusPetit <- 1 ; tantque i <= 20 faire si butsC[i] <= butsC[plusPetit] alors plusPetit <- i ; fin si ; i <- i + 1 ; fin tantque ; retourner(plusPetit) ; Fin 3.1) --mettre à jour le classement points du championnat considérant que l’équipe classéeau rang i a obtenu --nbPoints (0, 1 ou 3) à l’occasion de son match avancé Procédure mettreAJourClassement (màj classement <TabPoint> , entrée indiceEquipe <Entier>, entrée nbPoints <Entier>) ; 3.2) --le tableau est trié par ordre décroissant -- i [1..NB_EQUIPE-1] :classement[i] >= classement [i+1] 3.3) --mettre à jour le classement points du championnat considérant que l’équipe classéeau rang i a obtenu --nbPoints (0, 1 ou 3) à l’occasion de son match avancé Procédure mettreAJourClassement (màj classement <TabPoint> , entrée indiceEquipe <Entier>, entrée nbPoints <Entier>) Glossaire i , pointsEquipe <Entier> ; --indice de parcours du tableau et points de l’équipe Début i <- indiceEquipe – 1 ; classement[indiceEquipe] <- classement[indiceEquipe] + nbPoints ; pointsEquipe <- classement[indiceEquipe] ; tantque i >= 1 et pointsEquipe > classement[i] faire classement[i + 1] <- classement[i] ; classement[i] <- pointsEquipe ; i <- i + 1 ; fin tantque ; Fin 4.1) --insère le résultat nbPoints dans la tranche de tableau points[1..n] triée en ordre décroissant Procédure insérerPremiersPoints (màj points <TabPoints>, màj n <Entier>, entrée nbPoints <Entier>) ; 4.2) --insère le résultat nbPoints dans la tranche de tableau points[1..n] triée en ordre décroissant Procédure insérerPremiersPoints (màj points <TabPoints>, màj n <Entier>, entrée nbPoints <Entier>) Début n <- n + 1 ; mettreAJourClassement(points, n, nbPoints) ; Fin 6) --lit une suite de caractère d’un panneau d’affichage et comptabiliser le nombre total d’équipes ayant --une même lettre en double --on supposera qu’aucun nom d’équipe ne possède plus de deux occurrences consécutives d’une même lettre --ça c’est du programme intéressant ! -__Programme JeuEducatifFootballistique Glossaire valeur <Caractère> ; nbEquipes <Entier> ; valeurPrécédente <Caractère> ; Début lire(valeur) ; nbEquipes <- 0 ; tantque valeur /= « @ » faire valeurPrécédente <- valeur ; lire(valeur) ; si valeur = valeurPrécédente alors nbEquipes <- nbEquipes + 1 ; fin si ; fin tantque ; écrire(nbEquipes) ; Fin