Introduction à l'informatique et à l'algorithmique (Corrections d'exercices en
Introduction à l'informatique et à l'algorithmique (Corrections d'exercices en Turbo-Pascal) Bruno Warin Avertissements Ce document propose certaines corrections d'exercices du livre L'algorithmique : votre passeport informatique pour la programmation. Ces corrections sont écrites en Turbo Pscal version 6.0. Attention l'ordre et la numérotation de la plupart des exercices ont été modifiées, ils ne correspondent pas à ceux du livre. Un peu de recherche sera nécessaire ((-: 2 Correction des exercices du chapitre 4 A5.1. QUESTION DE COURS Exercice 1 En fin d'exécution, nous devons obtenir l'état de la trace ci-dessous : Valeurs en entrée : 6, 30, 15, 23, 15, 45 HH : 6, 23 MM : 30, 15 SS : 15, 45 Total : 23415, 60330 Total2 : 83745 Valeurs en sortie : 23415, 83745, "La différence de secondes est :", 60330 Exercice 2 Les déclarations omises sont : Var Libel : chaîne de caractères PrixHT : numérique TVA : numérique TTC : numérique Msg1 : châine de caractères Msg2 : chaîne de caractères Introduction à l'informatique et à l'algorithmique (Correction des exercices) Bruno Warin (warin@iutcalais.univ-littoral.fr) 3 Exercice 3 En fin d'exécution, nous devons obtenir l'état de la trace ci-dessous : Valeurs en entrée : "Une règle en bois", 16, 0.186 Libel : "Une règle en bois", PrixHT: 16 TVA : 0.186 TTC : 18.976 Msg1 : "Une règle en bois coûte " Msg2 : " francs." Valeurs en sortie : "Une règle en bois coûte ", 18.976, " francs." A5.2. EXERCICES AVEC DES VALEURS NUMERIQUES Exercice 4 Program CERCLE; {Calcul de la circonférence d'un cercle} Uses Dos, Crt; Var Diametre : real; Circonference : real; Begin {Saisie du diamètre du cercle} Writeln('Entrez le diamètre de votre cercle :'); Readln(Diametre); {Calcul de la circonférence} Circonference:=Diametre*3.14; {Affichage de la circonférence} Writeln('La circonférence est ',Circonference:5:3); End. Exercice 5 Program TROUPEAU; {Calcul du prix d'un troupeau } Uses Dos, Crt; Var NbVaches, NbMoutons, Prix : real; Begin {Saisie du nombre de vaches et de moutons du troupeau} Writeln('Entrez le nombre de vaches :'); Readln(NbVaches); Writeln('Entrez le nombre de moutons :'); Introduction à l'informatique et à l'algorithmique (Correction des exercices) Bruno Warin (warin@iutcalais.univ-littoral.fr) 4 Readln(NbMoutons); {Calcul du prix du troupeau} Prix:=NbVaches*6000 + NbMoutons*2000; {Affichage du prix du troupeau} Writeln('Le prix du troupeau est de ',Prix:8:0, ' Francs !'); End. Exercice 6 Program CALCUL_MOYENNE; {Calcul de la moyenne d'un étudiant} Uses Dos, Crt; Var NoteFrancais, NoteMathematique, NoteAnglais, Moyenne : real; Begin {Entrée des notes} Writeln('Entrez la note de français :'); Readln(NoteFrancais); Writeln('Entrez la note de mathematique :'); Readln(NoteMathematique); Writeln('Entrez la note d''anglais :'); Readln(NoteAnglais); {Calcul de la moyenne} Moyenne:=(NoteFrancais*3 + NoteMathematique*7 + NoteAnglais)/11; {Affichage de la moyenne} Writeln('La moyenne est ',Moyenne:5:2); End. Exercice 7 Program CALCUL_PENALITE; {Calcul de pénalités pour retard de paiements} Uses Dos, Crt; Var RedevanceInitiale : real; Redevance1Mois, Redevance2Mois, Redevance3Mois : real; Begin {Entrée de la redevance initiale} Writeln('Entrez la redevance initiale :'); Readln(RedevanceInitiale); {Calcul des nouvelles redevances aprés retards de 1, 2 et 3 mois} Redevance1Mois:=RedevanceInitiale*1.10; Redevance2Mois:=Redevance1Mois*1.125; Redevance3Mois:=Redevance2Mois*1.15; {Affichage des redevances calculées} Writeln('Après 1 mois de retard, vous devrez payer ',Redevance1Mois:10:5); Writeln('Après 2 mois de retard, vous devrez payer ',Redevance2Mois:10:5); Writeln('Après 3 mois de retard, vous devrez payer ',Redevance3Mois:10:5); End. Introduction à l'informatique et à l'algorithmique (Correction des exercices) Bruno Warin (warin@iutcalais.univ-littoral.fr) 5 Exercice 8 Program CALCUL_INTERET; {Calcul d'intérêts d'un placement bancaire} Uses Dos, Crt; Var MontantInitial, Somme1An, Somme2Ans, Somme3Ans : real; Begin {Entrée du montant initial} Writeln('Entrez le montant initial :'); Readln(MontantInitial); {Calcul des sommes disponibles au bout de 1, 2 et 3 ans} Somme1An:=MontantInitial*1.036; Somme2Ans:=Somme1An*1.054; Somme3Ans:=Somme2Ans*1.072; {Affichage des sommes disponibles} Writeln('Capital disponible après 1 an : ',Somme1An:10:5); Writeln('Capital disponible après 2 ans : ',Somme2Ans:10:5); Writeln('Capital disponible après 3 ans : ',Somme3Ans:10:5); End. Exercice 9 Program CALCUL_VOITURE; {Calcul de la valeur vénale d'une voiture} Uses Dos, Crt; Var ValeurAchat, Valeur1An, Valeur2ans, Valeur3ans : real; Begin {Saisie de la valeur d'achat} Writeln('Entrez la valeur d''achat de la voiture :'); Readln(ValeurAchat); {Calcul des valeurs vénales au bout de 1, 2 et 3 ans d'ancienneté} Valeur1An:=ValeurAchat*0.80; Valeur2Ans:=Valeur1An*0.87; Valeur3ans:=Valeur2Ans*0.93; {Affichage des valeurs vénales} Writeln('Valeur de la voiture au bout d''1 an : ',Valeur1An:10:5); Writeln('Valeur de la voiture au bout de 2 ans : ',Valeur2Ans:10:5); Writeln('Valeur de la voiture au bout de 3 ans : ',Valeur3Ans:10:5); End. Exercice 10 Program CALCUL_TRANSPORT; {Calcul de coûts de transport par air, mer et fer} Uses Dos, Crt; Var Poids, Volume : real; PrixParAir, PrixParMer, PrixParFer : real; Introduction à l'informatique et à l'algorithmique (Correction des exercices) Bruno Warin (warin@iutcalais.univ-littoral.fr) 6 Begin {Saisie du poids et du volume des marchandises à transporter} Writeln('Entrez le poids de la marchandise à transporter (en kg) :'); Readln(Poids); Writeln('Entrez le volume de la marchandise à transporter (en m3) :'); Readln(Volume); {Calcul des coûts de transports} PrixParAir:=Poids*0.5; PrixParMer:=Volume*720; PrixParFer:=Volume*34 + Poids*0.20; {Affichage des coûts de transports} Writeln('Le prix du transport par air est de : ',PrixParAir:8:2, ' Francs'); Writeln('Le prix du transport par mer est de : ',PrixParMer:8:2, ' Francs'); Writeln('Le prix du transport par fer est de : ',PrixParFer:8:2, ' Francs'); End. Exercice 11 Program DECOMPOSITION; {Décomposition de mètres carrés en hectares, ares et centiares} Uses Dos, Crt; Var MetreCarre, Hectare, are, centiare : real; Reste : real; Begin {Saisie de la surface en mètre carré} Writeln('Entrez la surface en mètres carrés :'); Readln(MetreCarre); {Calcul de la décomposition} Hectare:=int(MetreCarre/10000); Reste:=MetreCarre-Hectare*10000; Are:=int(Reste/100); Centiare:=Reste-Are*100; {Affichage de la décomposition hectares, ares et centiares} Writeln('La décomposition en hectare, ares et centiares donne : '); Writeln(hectare:4:0, ' hectares ', are:2:0, ' ares et ', Centiare:2:0, ' centiares'); End. Exercice 12 Program CALCUL_DIFFERENCE; {Calcul de la différence entre deux moments d'une journée} Uses Dos, Crt; Var Heure1, Minute1, Seconde1 : real; Heure2, Minute2, Seconde2 : real; Heure3, Minute3, Seconde3 : real; Moment1, Moment2 : real; Difference, Reste : real; Introduction à l'informatique et à l'algorithmique (Correction des exercices) Bruno Warin (warin@iutcalais.univ-littoral.fr) 7 Begin {Saisie du premier moment} Writeln('Entrez les heures du premier moment :'); Readln(Heure1); Writeln('Entrez les minutes du premier moment :'); Readln(Minute1); Writeln('Entrez les secondes du premier moment :'); Readln(Seconde1); {Saisie du second moment} Writeln('Entrez les heures du second moment :'); Readln(Heure2); Writeln('Entrez les minutes du second moment :'); Readln(Minute2); Writeln('Entrez les secondes du second moment :'); Readln(Seconde2); {Conversion en secondes} Moment1:=Heure1*3600 + Minute1*60 + Seconde1; Moment2:=Heure2*3600 + Minute2*60 + Seconde2; {Calcul de la différence} Difference:=Moment1 - Moment2; {(Re)Conversion en heure, minute et seconde} Heure3:=int(Difference/3600); Reste:=Difference-Heure3*3600; Minute3:=int(Reste/60); Seconde3:=Reste - Minute3*60; {Affichage du résultat} Writeln('La différence entre les deux moments est : '); Writeln(Heure3:4:0, ' heures ', Minute3:2:0, ' minutes et ', Seconde3:2:0, ' secondes'); End. A5.3. EXERCICES AVEC DES CHAINES DE CARACTERES Exercice 13 Program PERMUT; {Permutation de la première et dernière lettre d'une chaîne de caractères} Uses Dos, Crt; Var CH : string; Debut, Milieu, Fin : string; Begin {Saisie de la chaîne à traiter} Writeln('Entrez votre chaîne de caractères :'); Introduction à l'informatique et à l'algorithmique (Correction des exercices) Bruno Warin (warin@iutcalais.univ-littoral.fr) 8 Readln(CH); {Calcul des composants de la chaîne après la permutation demandée} Debut:=copy(Ch, 1, 1); Milieu:=copy(Ch, 2, Length(Ch)-2); Fin:=copy(ch, length(ch), 1); {Construction et affichage de la chaîne souhaitée} Writeln(Fin+Milieu+Debut); Writeln('Appuyez sur une touche pour continuer'); Readln(CH); End. Exercice 14 Program TRANSFOM1; {Transformation d'une chaîne de caractères} Uses Dos, Crt; Var Ch, Debut, Fin, Ch2: string; N : integer; Begin {Saisie des données du problème} Writeln('Entrez la chaîne à traiter :'); Readln(Ch); Writeln('Entrez la position dans la chaîne :'); Readln(N); {Construction de la chaîne demandée} Debut:=Copy(ch,1,Length(Ch)-N); Fin:=Copy(Ch,Length(Ch)-N+1,N); Ch2:= Fin + Debut; {Affichage de la chaîne demandée} Writeln('on obtient :', Ch2); End. Exercice 15 Program TRANSFORM2; {Transformation d'une chaîne de caractères} Uses Dos, Crt; Var Ch, Debut, Fin, Ch2: string; P, L : integer; Begin {Saisie des données du problème} Writeln('Entrez la chaîne à traiter :'); Readln(Ch); Writeln('Entrez la position dans la chaîne :'); Readln(P); Writeln('Entrez la longueur à effacer :'); Readln(L); {Construction de la chaîne demandée} Debut:=Copy(ch,1,P); Introduction à l'informatique et à l'algorithmique (Correction des exercices) Bruno Warin (warin@iutcalais.univ-littoral.fr) 9 Fin:=Copy( Ch, P+L+1, Length(Ch)-(P+L) ); Ch2:= Debut + Fin; {Affichage de la chaîne demandée} Writeln('On obtient :', Ch2); End. Introduction à l'informatique et à l'algorithmique (Correction des exercices) Bruno Warin (warin@iutcalais.univ-littoral.fr) 10 Annexe 6 Correction des exercices du chapitre 5 Exercice 1 On obtient les résultats suivants avec 3 chiffres après la virgule : 0, 0, 0 donne "Toutes les valeurs sont admises !" 1, 0, 5 donne "Aucune valeur n'est admise !" 2, 3, -6donne - 2.637 et 0.137 3, 4, 1 donne -1 et -0.333 4, 7, -9donne -2.612 et 0.861 5, 2, 4 donne "Aucune valeur n'est admise !" Ces résultats peuvent être vérifiés à l'aide du programme PASCAL ci-après : Program DEUG_DG; {Programme de résolution d'une équation du second degré} Uses Dos, Crt; Var A, B, C, D : real; X1, X2 : real; Begin {Entrée des coefficients de l'équation} Writeln('Entrez le premier nombre (coefficient A) :'); Readln(A); Writeln('Entrez le second nombre (coefficient B) :'); Readln(B); Writeln('Entrez le troisième nombre (coefficient C) :'); Readln(C); {Calcul et sortie des solutions} If A = 0 Then Begin If B = 0 Then Begin If C = 0 Then Begin Writeln('Toutes les valeurs sont admises !'); End Else Begin Writeln('Aucune valeur n''est admise uploads/Science et Technologie/ poly-correction-algo-pascal.pdf
Documents similaires
-
21
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 15, 2022
- Catégorie Science & technolo...
- Langue French
- Taille du fichier 0.7042MB