[PDF] [PDF] Corrections dexercices en Turbo-Pascal - bruno warin

'); End; End Else Begin Writeln('Aucune valeur réelle n''est admise '); End; End ; End Exercice 2 La première correction n' 



Previous PDF Next PDF





[PDF] Algorithmes et programmation en Pascal TD corrigés

Sous Turbo Pascal, vu que maxint = 32767, on aurait dû déclarer ns comme un réel, puis faire writeln ('ns : ', ns:5:0); (5 chiffres en tout, dont 0 apr`es la virgule)



[PDF] Algorithmes et programmation en Pascal Annales corrigées

9 jui 1998 · ´Epreuve d'Informatique Documents, calculettes et ordinateurs sont interdits Les exercices sont indépendants, `a réaliser en langage Pascal



[PDF] Cours et exercices corrigés en Pascal - CHIHI Lotfi

En DEUG A, les premiers cours d'informatique commencent traditionnellement par des notions d'algorithmique et l'apprentissage d'un langage de programmation 



[PDF] (Série dexercices Programmation) - Informatique

Corrigé Préparé par : Zouari Lazhar Professeur d'enseignement secondaire Ecrire un programme en Pascal permet de déterminer et d'afficher le successeur  



[PDF] TD sur les tableaux en PASCAL (corrigé) - Normale Sup

TD sur les tableaux en PASCAL (corrigé) ECE 1 Lycée Dumas jeudi 26 avril Exercice 1 Voici un programme calculant le polynome dérivé (appelé q dans le 



[PDF] Exercices avec correction ( Pdf ) - DevoirTN

Rang 5 4 2 1 3 Page 16 Exercices en Turbo Pascal FENNI SALAH ©® 2000 Page 16/22 Exercice 28 Ecrire un programme Pascal qui permet de remplir un 



[PDF] Corrections dexercices en Turbo-Pascal - bruno warin

'); End; End Else Begin Writeln('Aucune valeur réelle n''est admise '); End; End ; End Exercice 2 La première correction n' 



[PDF] Exercice

TURBO PASCAL W Exercices Corrigés Prof: FENNI Salah Lycée Chebba ©R 2006 W Turbo Pascal : Exercices Corrigés FENNI SALAH ©® 2006



[PDF] Poly dexercices de programmation Pascal - Alain Tisserant

pas tous traités au cours de la séance, aussi un polycopié de corrigés est remis aux élèves pour leur langage Pascal plus tard si la nécessité s'en fait sentir



[PDF] Exercices de programmation en Pascal - olikach

Chercher “introduction langage pascal” sur Google Exercice 1 : Hello Notions : Write() et Writeln() Ecrire un programme qui affiche un mot de bienvenue,

[PDF] langage pascal informatique

[PDF] langage pascal pour debutant

[PDF] langage pascal pour debutant pdf

[PDF] langage pascal site du zero

[PDF] langage poétique définition

[PDF] langage programmation facebook

[PDF] langage python en seconde

[PDF] Langage soutenu - URGENT

[PDF] langage soutenu dictionnaire

[PDF] langage soutenu mots

[PDF] language de la continuité- limite

[PDF] Language HTML

[PDF] Language sql exercice de maison

[PDF] Language tools

[PDF] langue allemande dans le monde

Introduction à l'informatique et à l'algorithmique(Corrections d'exercices en Turbo-Pascal)Bruno WarinAvertissementsCe 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 4A5.1. QUESTION DE COURSExercice 1En 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 : 83745Valeurs en sortie : 23415, 83745, "La différence de secondes est :", 60330Exercice 2Les déclarations omises sont :VarLibel : chaîne de caractèresPrixHT : numériqueTVA : numériqueTTC : numériqueMsg1 : châine de caractèresMsg2 : chaîne de caractèresIntroduction à l'informatique et à l'algorithmique (Correction des exercices)Bruno Warin (warin@iutcalais.univ-littoral.fr)

3

Exercice 3En 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: 16TVA : 0.186TTC : 18.976Msg1 : "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 NUMERIQUESExercice 4Program CERCLE;{Calcul de la circonférence d'un cercle}Uses Dos, Crt;VarDiametre : 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 5Program 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 6Program 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 7Program CALCUL_PENALITE; {Calcul de pénalités pour retard de

paiements}Uses Dos, Crt;VarRedevanceInitiale : 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 8Program 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 9Program 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 10Program CALCUL_TRANSPORT; {Calcul de coûts de transport par air, mer

et fer}Uses Dos, Crt;VarPoids, 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 11Program DECOMPOSITION;{Décomposition de mètres carrés en

hectares, ares et centiares}Uses Dos, Crt;VarMetreCarre, 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 12Program CALCUL_DIFFERENCE;{Calcul de la différence entre deux

moments d'une journée}Uses Dos, Crt;VarHeure1, 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

CARACTERESExercice 13Program PERMUT;{Permutation de la première et dernière lettre d'une

chaîne de caractères}Uses Dos, Crt;VarCH : 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 14Program TRANSFOM1;{Transformation d'une chaîne de caractères}Uses Dos, Crt;VarCh, 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 15Program TRANSFORM2;{Transformation d'une chaîne de caractères}Uses Dos, Crt;VarCh, 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 6Correction des exercices du chapitre 5Exercice 1On obtient les résultats suivants avec 3 chiffres après la virgule :0, 0, 0donne"Toutes les valeurs sont admises !"1, 0, 5donne"Aucune valeur n'est admise !"2, 3, -6donne-2.637 et 0.1373, 4, 1donne-1 et -0.3334, 7, -9donne-2.612 et 0.8615, 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;VarA, 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 BeginIf B = 0 Then BeginIf C = 0 Then BeginWriteln('Toutes les valeurs sont admises !'); End Else BeginWriteln('Aucune valeur n''est admise !')EndIntroduction à l'informatique et à l'algorithmique (Correction des exercices)Bruno Warin (warin@iutcalais.univ-littoral.fr)

11

End Else BeginX1:=-C/B;Writeln('Seule la valeur ', X1:8:3, ' est admise !');EndEnd Else BeginD:=B*B - (4 * A * C);If D>=0 Then BeginIf D=0 Then BeginX1:=-B/(2*A);Writeln('La valeur ', X1:8:3, ' est admise deux fois !');End Else BeginX1:=(-B-Sqrt(D)) / (2*A);X2:=(-B+Sqrt(D)) / (2*A);Writeln('Les valeurs ', X1:8:3, ' et ', X2:9:5, ' sont admises !');End;End Else BeginWriteln('Aucune valeur réelle n''est admise !');End;End;End.Exercice 2La première correction n'utilise que l'instruction If...Then. On remarquera que

les blocs d'instructions ne contenant qu'une seule instruction nous avons pu utilisé la forme simplifiée de l'instruction If..Then, celle pour laquelle, on n'a pas besoin de mettre des Begin...End : Program GEL1; {Calcul des liquides gelées à une température donnée.

Version 1}

Uses Dos, Crt;VarTemperature : real;Verdict : string;Begin{Entrée de la température}Writeln('Entrez la température à traiter :');Readln(Temperature);{Calcul de la liste des liquides gelés}Verdict:='';If Temperature<=0 Then Verdict:=Verdict+'Eau gelée -';If Temperature<=-3 Then Verdict:=Verdict+' Eau salée gelée -';If Temperature<=-5 Then Verdict:=Verdict+' Fuel gelé -';If Temperature<=-13 Then Verdict:=Verdict+' Ordinaire gelé -';If Temperature<=-23 Then Verdict:=Verdict+' Super gelé -';{Sortie de la liste des liquides gelées}WriteLn('On obtient :', Verdict);End.Introduction à l'informatique et à l'algorithmique (Correction des exercices)Bruno Warin (warin@iutcalais.univ-littoral.fr)

12 La seconde correction utilise l'instruction If...Then...Else. Comme pour la première correction, on remarquera que les blocs d'instructions ne contenant qu'une seule instruction nous avons utilisé la forme simplifiée de l'instruction If..Then...Else, celle pour laquelle, on n'a pas besoin de mettre des Begin...End : Program GEL2; {Calcul des liquides gelées à une température donnée.

Version 2}Uses Dos, Crt;Var Temperature : real;Begin{Entrée de la température}Writeln('Entrez la température à traiter :');Readln(Temperature);{Détermination et sortie de la liste des liquides gelés}If Temperature>0 ThenWriteln('Aucun liquide gelé !') {Rappel : pas de ; devant un Else}Else If Temperature>-3 ThenWriteLn('Eau gelée')Else If Temperature>-5 ThenWriteLn('Eau, Eau salée gelées')Else If Temperature>-13 ThenWriteLn('Eau, Eau salée, Fuel gelés')Else If Temperature>-23 ThenWriteLn('Eau, Eau salée, Fuel, Ordinaire gelés')ElseWriteLn('Eau, Eau salée, Fuel, Ordinaire, Super gelés');End.En LAP, à l'aide de l'instruction Cas..De, il existe une troisième correction

élégante. Par contre, en PASCAL, vus les limitations portées par l'instruction Case...Of, voir annexe 4, nous sommes obliger de "tricher" un peu comme le

montre la correction ci-après. Program GEL3; {Calcul des liquides gelées à une température donnée.

Version 3}Uses Dos, Crt;VarTemperature : real;Begin{Entrée de la température}Writeln('Entrez la température à traiter :');Readln(Temperature);{Ajustement de la température entrée pour pouvoir la traiter par un Case Of}If Temperature>0 Then Temperature:=1;If Temperature<-23 Then Temperature:=-24;{Détermination et sortie de la liste des liquides gelées}Case Trunc(Temperature) Of{Trunc convertir de real en integer}1: Writeln('Aucun liquide gelé');0..-2 : WriteLn('Eau gelée');-4..-3: WriteLn('Eau, Eau salée gelées');Introduction à l'informatique et à l'algorithmique (Correction des exercices)Bruno Warin (warin@iutcalais.univ-littoral.fr)

13

-12..-5 : WriteLn('Eau, Eau salée, Fuel gelés');-22..-13: WriteLn('Eau, Eau salée, Fuel, Ordinaire gelés');-24..-23: WriteLn('Eau, Eau salée, Fuel, Ordinaire, Super gelés');End;End.Exercice 3La première correction ci-après n'utilise que l'instruction If...Then.

Program MENTION1; {Calcul de la mention d'un étudiant. Version 1}Uses Dos, Crt;Va Note1, Note2, Note3, Moyenne : real;Begin{Entrée des notes d'examens}Writeln('Entrez la première note :');Readln(Note1);Writeln('Entrez la deuxième note :');Readln(Note2);Writeln('Entrez la deuxième note :');Readln(Note3);{Calcul de la moyenne}Moyenne:=(Note1 + Note2 + Note3)/3;{Détermination et sortie d la mention}If Moyenne>=16 Then Writeln('Mention TRES BIEN');If (Moyenne<16) and (Moyenne>=14) Then Writeln('Mention BIEN');If (Moyenne<14) and (Moyenne>=12) Then Writeln('Mention ASSEZ BIEN');If (Moyenne<12) and (Moyenne>=10) Then Writeln('Mention INSUFFISANT');If (Moyenne<10) and (Moyenne>=5) Then Writeln('Mention INSUFFISANT');If (Moyenne<5) Then Writeln('Mention TRES INSUFFISANT');End.La seconde correction n'utilise que l'instruction If..Then...Else et est à la fois

plus élégante et plus efficace en temps calcul.Program MENTION2; {Calcul de la mention d'un étudiant}Uses Dos, Crt;Var Note1, Note2, Note3, Moyenne : real;Begin{Entrée des notes d'examens}Writeln('Entrez la première note :');Readln(Note1);Writeln('Entrez la deuxième note :');Readln(Note2);Writeln('Entrez la deuxième note :');Readln(Note3);{Calcul de la moyenne}Moyenne:=(Note1 + Note2 + Note3)/3;Introduction à l'informatique et à l'algorithmique (Correction des exercices)Bruno Warin (warin@iutcalais.univ-littoral.fr)

14

{Détermination et sortie de la mention}If Moyenne>=16 Then Writeln('Mention TRES BIEN')Else If Moyenne>=14 Then Writeln('Mention BIEN')Else If Moyenne>=12 Then Writeln('Mention ASSEZ BIEN')Else If Moyenne>=10 Then Writeln('Mention INSUFFISANT')Else If Moyenne>=5 Then Writeln('Mention INSUFFISANT')Else Writeln('Mention TRES INSUFFISANT');End.Exercice 4Program CLASSIFICATION; {Classification d'un caractère}Uses Dos, Crt;Var Ch : string;Begin{Entrée du caractère à classer}Writeln('Entrez un caractère :');Readln(Ch);{Analyse du caractère entré et sortie de la classification}If (Ch>='0') and (Ch<='9') ThenWriteln('CHIFFRE')ElseIf ( (Ch>='A') and (Ch<='Z') ) or ( (Ch>='a') and (Ch<='z') ) ThenWriteln('LETTRE')ElseWriteln('AUTRE');End.Exercice 5Program CONVERSION; {Conversion d'un caractère en équivalent

numérique}Uses Dos, Crt;VarCh : string;Valeur : integer;Begin{Entrée du caractère à traiter}Writeln('Entrez un caractère :');Readln(Ch);{Analyse et conversion du caractère entré}If Not ( (Ch>='0') and (Ch<='9') ) ThenWriteln('N''est pas un chiffre')Else BeginIf Ch='0' Then Valeur:=0Else If Ch='1' Then Valeur:=1Else If Ch='2' Then Valeur:=2Else If Ch='3' Then Valeur:=3Introduction à l'informatique et à l'algorithmique (Correction des exercices)Bruno Warin (warin@iutcalais.univ-littoral.fr)

15

Else If Ch='4' Then Valeur:=4Else If Ch='5' Then Valeur:=5Else If Ch='6' Then Valeur:=6Else If Ch='7' Then Valeur:=7Else If Ch='8' Then Valeur:=8Else if Ch='9' Then Valeur:=9;{Calcul avec la conversion}Valeur:=Valeur*3;{Sortie du résultat}Writeln('Chiffre ',Valeur:2);End;End.Exercice 6Program FIN_CHAINE; {Isolement d'une fin de chaîne}Uses Dos, Crt;VarCh, Resultat : string;N : integer;Begin{Entrée des des données}Writeln('Entrez votre chaîne :');Readln(Ch);Writeln('Entrez votre position :');Readln(N);{Analyse des données et sortie du résultat}If N > Length(Ch) ThenWriteln('Opération impossible : chaîne trop courte')Else BeginResultat:=Copy(Ch, Length(Ch)-N+1, N);Writeln('On obtient : ',Resultat);End;End.Exercice 7Program COMPARAISON; {Comparaison de deux chaînes de

caractères}Uses Dos, Crt;VarNom1, Nom2 : string;Begin{Entrée des noms}Writeln('Entrez le premier nom :');Readln(Nom1);Writeln('Entrez le deuxième nom :');Readln(Nom2);{Sortie des noms par ordre de tri}Introduction à l'informatique et à l'algorithmique (Correction des exercices)Bruno Warin (warin@iutcalais.univ-littoral.fr)

16

If Nom1 > Nom2 ThenWriteln(Nom2, ' ', Nom1)ElseWriteln(Nom1, ' ', Nom2);End.Exercice 8La première correction est un exercice de style, elle procède en testant les six

cas possibles.Program TRI1; {Tri de 3 nombres. Version 1}Uses Dos, Crt;VarN1, N2, N3 : Real;Begin{Entrée des trois nombres à trier}Writeln('Entrez le premier nombre :');Readln(N1);Writeln('Entrez le deuxième nombre :');Readln(N2);Writeln('Entrez le troisième nombre :');Readln(N3);{Tests de tous les cas possibles et sortie des résultats}If N1 > N2 ThenIf N1 > N3 ThenIf N2 > N3 ThenWriteln(N3:5:2, ' ', N2:5:2, ' ', N1:5:2)ElseWriteln(N2:5:2, ' ', N3:5:2, ' ', N1:5:2)ElseWriteln(N2:5:2, ' ', N1:5:2, ' ', N3:5:2)Else {donc N2 >= N1}If N2 > N3 ThenIf N1 > N3 ThenWriteln(N3:5:2, ' ', N1:5:2, ' ', N1:5:2)ElseWriteln(N1:5:2, ' ', N3:5:2, ' ', N2:5:2)ElseWriteln(N1:5:2, ' ', N2:5:2, ' ', N3:5:2);End.La seconde correction s'appuie sur une autre stratégie : elle teste les nombres

deux à deux et lorsque l'ordre N1, N2, N3 n'est pas respecté, elle permute les

contenus des variables en cause. On obtient :Program TRI2; {Tri de 3 nombres par sélection-permutation}Uses Dos, Crt;VarN1, N2, N3, Temporaire : Real;Introduction à l'informatique et à l'algorithmique (Correction des exercices)Bruno Warin (warin@iutcalais.univ-littoral.fr)

17

Begin(* Entrée des trois nombres à trier}Writeln('Entrez le premier nombre :');Readln(N1);Writeln('Entrez le deuxième nombre :');Readln(N2);Writeln('Entrez le troisième nombre :');Readln(N3);{Mise dans N1 du plus petit des 3 nombres}If N1>N2 Then Begin {échange}Temporaire:=N1;N1:=N2;N2:=Temporaire;End;If N1>N3 Then BeginTemporaire:=N1;N1:=N3;N3:=Temporaire;End;{Mise dans N2 du plus petit des 2 nombres entre N2 et N3}If N2>N3 Then BeginTemporaire:=N2;N2:=N3;N3:=Temporaire;End;{Sortie du résultat du tri}Writeln(N1:5:2, ' ', N2:5:2, ' ', N3:5:2);End.Exercice 9Question 1On obtient le tableau suivant :Tarifs DUFERTarifs DELAPOINTEMoins de

10 kilos.Les kilos 10

à 50.Les autres

kilos.Moins de 5 kilosLes kilos 5

à 100.Les autres

kilos.Clous de 10 mm.1513.95121614.4013.6

Clous de 30

mm.2018.6161917.1016.15

Introduction à l'informatique et à l'algorithmique (Correction des exercices)Bruno Warin (warin@iutcalais.univ-littoral.fr)

18 Question 24 kilos de clous de 10 mm chez Monsieur DUFER coûtent 4 x 15 soient 60 francs.75 kilos de clous de 30mm chez Monsieur DUFER coûtent (9 x 20) + (41 x

18.6) + (25x16) soient 1 342,60 francs.4 kilos de clous de 10 mm chez Monsieur DELAPOINTE coûtent 4 x 16 soient

64 francs.75 kilos de clous de 30 mm chez Monsieur DELAPOINTE coûtent (4 x 19) +

(71 x 17,10)= soient 1 290,10 francs.Question 34 kilos de clous de 10 mm chez Monsieur DUFER coûtent 60 francs et 63 kilos

de clous de 30mm chez Monsieur DUFER coûtent 1 150,60 francs. La commande passée chez Monsieur DUFER s'élèverait à donc 1 210,60 francs. Tandis que 4 kilos de clous de 10 mm chez Monsieur DELAPOINTE coûtent

64 francs et 63 kilos de clous de 30 mm chez Monsieur DELAPOINTE coûtent

1 084,90 francs. La commande passée chez Monsieur DELAPOINTE s'élèverait à

donc 1 149 francs. Pour cette première commande Monsieur DELAVIS passera commande chez Monsieur DELAPOINTE.118 kilos de clous de 10 mm chez Monsieur DUFER coûtent 1 509 francs et 63 kilos de clous de 30mm chez Monsieur DUFER coûtent 9 132 francs. La commande passée chez Monsieur DUFER s'élèverait à 10 641 francs. Tandis que 118 kilos de clous de 10 mm chez Monsieur DELAPOINTE coûtent

1 691 francs et 563 kilos de clous de 30 mm chez Monsieur DELAPOINTE coûtent

9 243 francs. La commande passée chez Monsieur DELAPOINTE s'élèverait à

10 934 francs.

Pour cette seconde commande Monsieur DELAVIS passera commande chez Monsieur DUFER.Question 4Program COMMANDE; {Détermination du coût de commandes de

clous}Uses Dos, Crt;VarQte10mm, Qte30mm : Real;Prix10mmDUFER, Prix30mmDUFER : real;Prix10mmDELAPOINTE, Prix30mmDELAPOINTE : real;TotalDUFER, TotalDELAPOINTE : real;Begin{Entrée des caractéristiques de la commande}Writeln('Entrez le poids de clous de 10mm à commander :');Readln(Qte10mm);Introduction à l'informatique et à l'algorithmique (Correction des exercices)Bruno Warin (warin@iutcalais.univ-littoral.fr)

19

Writeln('Entrez le poids de clous de 30mm à commander :');Readln(Qte30mm);{Calcul des prix chez Monsieur DUFER}{Calcul pour les clous de 10mm}If Qte10mm<=9 ThenPrix10mmDUFER:=Qte10mm*15Else If Qte10mm<=50 ThenPrix10mmDUFER:=9*15 + (Qte10mm-9)*13.95ElsePrix10mmDUFER:=9*15 + (41*13.95) + (Qte10mm-50)*12;{Calcul pour les clous de 30mm}If Qte30mm<=9 ThenPrix30mmDUFER:=Qte30mm*20Else If Qte30mm<=50 ThenPrix30mmDUFER:=9*20 + (Qte30mm-9)*18.6ElsePrix30mmDUFER:=9*20 + (41*18.6) + (Qte30mm-50)*16;{Calcul des prix chez Monsieur DELAPOINTE}{Calcul pour les clous de 10mm}If Qte10mm<=4 ThenPrix10mmDELAPOINTE:=Qte10mm*16Else If Qte10mm<=100 ThenPrix10mmDELAPOINTE:=4*16 + (Qte10mm-4)*14.40ElsePrix10mmDELAPOINTE:=4*16 + (96*14.40) + (Qte10mm-100)*13.60;{Calcul pour les clous de 30mm}If Qte30mm<=4 ThenPrix30mmDELAPOINTE:=Qte30mm*19Else If Qte30mm<=100 ThenPrix30mmDELAPOINTE:=4*19 + (Qte30mm-4)*17.10Else Prix30mmDELAPOINTE:=4*19 + (96*17.6) + (Qte30mm-100)*16.15;{Verdict}TotalDUFER:=Prix10mmDUFER + Prix30mmDUFER;TotalDELAPOINTE:=Prix10mmDELAPOINTE + Prix30mmDELAPOINTE;If TotalDUFER >= TotalDELAPOINTE Then BeginWriteln('Il est préférable de passer la commande ci-dessous chez Monsieur ','DUFER');Writeln('10mm : ',Qte10mm:5:0,' kilos pour un montant de ',Prix10mmDUFER:5:0,' francs');Writeln('30mm : ',Qte30mm:5:0,' kilos pour un montant de ',Prix30mmDUFER:5:0,' francs');End Else BeginWriteln('Il est préférable de passer la commande ci-dessous chez Monsieur ','DELAPOINTE');Writeln('10mm : ',Qte10mm:5:0,' kilos pour un montant de ',Prix10mmDELAPOINTE:5:0,' francs');Writeln('30mm : ',Qte30mm:5:0,' kilos pour un montant de ',Prix30mmDELAPOINTE:5:0,' francs');End;Introduction à l'informatique et à l'algorithmique (Correction des exercices)Bruno Warin (warin@iutcalais.univ-littoral.fr)

20

End.Introduction à l'informatique et à l'algorithmique (Correction des exercices)Bruno Warin (warin@iutcalais.univ-littoral.fr)

21

Annexe 7Correction des exercices du chapitre 6FEUILLE D'EXERCICES NUMÉRO 1Exercice 1Le programme de la figure A7.1 réalise le traitement demandé. Il est composé

de trois parties :1. L'entrée du nombre limite dans la variable N.

2. L'initialisation à 1 du compteur de boucle I.

quotesdbs_dbs3.pdfusesText_6