6 Algorithmes et programmation en Pascal Edouard Thiel I Les variables en Pascal 1 Premiers programmes 1 1 Le programme bonjour Un programme est une suite d’instructions, certaines etan t des mots cl es Ce programme a che la cha^ ne de caract eres < Bonjour > a l’ ecran : PROGRAM bonjour; BEGIN writeln (’Bonjour’); END
5 1 Le programme AppaLet 19 6 Tableaux, record et string 23 6 1 Le programme RendezV 23 6 2 Cryptage 25 7 D etection de mots 27 7 1 Le programme ColEcran 27 8 Fichiers texte 31 8 1 Le programme MinusCol 31 9 Recherche dans un chier 35 9 1 Recherche de mots 35 9 2 Le programme NuMots 37
En DEUG A, les premiers cours d'informatique commencent traditionnellement par des notions d'algorithmique et l'apprentissage d'un langage de programmation Cette première approche est discutable car elle implique un grand nombre d'impasses et les étudiants ne perçoivent paradoxalement qu'un monde relativement étriqué
Le langage PASCAL - P TRAU le Langage PASCAL Patrick TRAU Janvier 92 version HTML mars 97 Ce document présente (de manière claire je crois, d'après ce qu'en ont dit certains) le langage PASCAL Il a été publié dans APTEP - INFO il y a quelques années Depuis, bien que je maîtrisais
4 Le langage Pascal En informatique, un programme qui n’est pas syntaxiquement juste ne va pas être compilé par le compilateur; ce dernier va avertir le programmeur qu’il y a une erreur En revanche le compilateur ne peut pas avertir le programmeur d’une erreur de sémantique : c’est à l’exécution que l’utilisateur s’en
Problème Enoncé algorithme Programme 3-Langage PASCAL Langage pascal est un Langage structuré qu'on utilise souvent pour débuter la programmation 4- Structure d’un programme en langage Pascal Un programme PASCAL est composé de trois parties : l’entête, partie déclarative et le corps
Soit un programme en langage pascal, veuillez corriger les erreurs ou compléter le programme en remplissant les trous : NB : 1 Ne mettez pas d'espace entre les valeurs que vous rentrez 2 Toutes les valeurs doivent être en minuscules 3 Les writeln ayant les symbole suivant //* doivent permettre d'avoir une résultat sous le format 10+3=13
[PDF] programme entrainement musculation
[PDF] Programme entre 2 calculs
[PDF] Programme équation
[PDF] programme erasmus c'est quoi
[PDF] programme es maths première
[PDF] programme espagnol lycée
[PDF] programme espagnol terminale algerie
[PDF] programme et exercice ce2
[PDF] programme feria de bayonne 2017
[PDF] programme fonction ti 83
[PDF] programme formation tre
[PDF] programme forme canonique
[PDF] programme forme canonique ti 82 advanced
[PDF] programme français 1ere s 2017
[PDF] programme francais 1ere stmg
AlgorithmesetprogrammationenPascal
FacultedesSciencesdeLuminyEdouardThiel
TDcorriges
Deug1MassMA
Modulede75heures
1997a2004
Tabledesmatieres
1Expressionsetaectations4
1.1Typed'uneexpression4
1.2Anneebissextile5
1.3Boulangerie5
1.4LogiquedeBoole5
1.5SupplementspourleTP6
2Intervallesetenregistrements7
2.1Heures7
2.2SupplementspourleTP10
3Procedures11
3.1MinetMax11
3.2
Echangedansl'ordrecroissant12
3.3Passaged'enregistrements13
3.4SupplementspourleTP14
4Bouclesetfonctions15
4.1Fonctionsnumeriques15
4.2Lectureauclavier16
4.3Intervallesdetemps17
4.4SupplementspourleTP18
5Tableauxetindices19
5.1LeprogrammeAppaLet19
6Tableaux,recordetstring23
6.1LeprogrammeRendezV23
6.2Cryptage25
7Detectiondemots27
7.1LeprogrammeColEcran27
8Fichierstexte31
8.1LeprogrammeMinusCol31
9Recherchedansunchier35
9.1Recherchedemots35
9.2LeprogrammeNuMots37
TDDeug1MassMA,1997a20043
10Tris39
10.1Triparpermutation39
10.2Triabullesoptimise40
10.3SupplementspourleTP42
1.Expressionsetaectations
1.1Typed'uneexpression
Rappel
Tabledesprioritesclasseesparordre
decroissant,lesoperateurssurunem^eme ligneayantuneprioriteegale(onevaluealors degaucheadroite).()fonction()primaire +-notunaire */divmodandmultiplicatif +-oradditif =<><<=>=>relation pasbienformees.Exemple: round(2:6|{z} reel+1|{z} entier| {z} reel3.6) {z} entier4>4|{z} entier=3|{z} entier| {z} reel1.33.. {z} booleentrue
1.2-5*3+4(2-5)*(3+4)2-(5*3+4)
2.12/312div311div3div211mod3+5.2
3.1.0*2+3-4round(2*6.3)-15/3(50<3*8)
4.falseornotfalseandtrue(12>24)+(2+4=12)
5.(37-3>=14)-'a'+3pred('b')>'k'12>3>4
6.3.5+7>4>falsenot(12<>3*16.8/4)andtrue
7.3*cos(8.0/(17-(3*4)-5))
Correction
1.entier9entier21entier17
2.reel4:0entier4entier1reel7:2
3.reel1:0reel8:0booleenfalse
4.booleentrueerreur:bool+bool
6.booleentruebooleenfaux
7.erreur:divisionpar0
TDDeug1MassMA,1997a20045
1.2Anneebissextile
TD
Ecrireb:=l'expression.
TP
Correction
(1)!(3):(xandy)or(xandz)=xand(yorz).
1.3Boulangerie
TD TP estouverte.
Correction
b:=(h>=7)and(h<=13)and(j<>1)or (h>=16)and(h<=20)and(j>1); !Re echirchezsoiaucasoulesminutessontxees.
1.4LogiquedeBoole
TD
Simplierlesexpressions:
Correction
xory=yorx(idempourand){10} :=(x<7);{5} q:=not(aand(notaorb))orb; :=true;{7}
Remarque:(x)y)s'ecritnotxory
1.5SupplementspourleTP
1)CodesASCII
2)Erreurs
3)Portrait
TDDeug1MassMA,1997a20047
2.Intervallesetenregistrements
2.1Heures
enregistrementtemps_t.
Correction
TYPEheure_t=0..23;minute_t=0..59;
s:seconde_t;End;
2)Soitt1ett2deuxtemps_t.
Correction
PROGRAMtp_egaux;TYPE{cf1)}
VARt1,t2:temps_t;egal:boolean;
writeln('Egalite:',egal);END.
3)Modierleprogrammepourqu'ildisesit1 a)Avecuneexpressionbooleenne. b)Avecdesifthenelse. Correction
a)Ondeclareinf:boolean. Onpeutencorereduirel'expression:
nement. inf:=false;if(t1.h4)Soittuntemps_t.
depuis0:0:0.
Correction
virgule).
PROGRAMnb_sec;TYPE{cf1)}
VARt:temps_t;ns:integer;
writeln('ns:',ns);END.
TDDeug1MassMA,1997a20049
passantparlaconversionensecondes.
Correction
PROGRAMtp_comp;TYPE
{cf1)}VARt1,t2:temps_t; ns1,ns2:integer;BEGIN{Lecturet1ett2...} ns2:=t2.h*3600+t2.m*60+t2.s; if(ns1
Correction Onplaceleresultatdanst3:temps_t.
ecrire: 2.2SupplementspourleTP
1)Procedures
2)Programmemystere
Quefaitceprogramme?
PROGRAMabyz;VARd:char;
BEGINread(d);
END. TDDeug1MassMA,1997a200411
3.Procedures
3.1MinetMax
1)ProcedureMinde2entiers.
2)ProcedureMaxde2entiers.
Correction
BEGINifa END; BEGINifa>bthensup:=aelsesup:=b;
END; BEGINMin(x,y,p);Max(x,y,g);
END; 4)PROGRAMexo1;
VARu,v,pp,pg:integer;{varglobales}
{iciproceduresMin,MaxetMinMax} BEGIN writeln('min',pp,'max',pg);END. 3.2 Echangedansl'ordrecroissant
estabc.Ecrireplusieursversions. Correction
BEGINifa>bthenbegint:=a;a:=b;b:=t;end;
END; PROGRAMTri1;
VARu,v:real;{Mettreicilaprocedure}BEGIN
END. Onseposelaquestion:varoupasvar?
apres. .Avecunvar:aetbsontdesaliasdeuetv. 2)PROCEDUREEchange3(vara,b,c:real);BEGIN
END; Ilyad'autressolutionspossibles.Exemple:
Echange2(a,b);{onmetleplusgranddansb}
TDDeug1MassMA,1997a200413
3.3Passaged'enregistrements
parametres. 1) detsouslaformeh:m:ssansretouralaligne. 2) leschampsdet. 3) ecouleesdepuis0:0:0. Correction
PROGRAMtemps;
TYPE heure_t=0..23;minute_t=0..59; seconde_t=0..59;temps_t=Recordh:heure_t; m:minute_t;s:seconde_t;End; 1)PROCEDUREecriture(t:temps_t);BEGIN
write(t.h,':',t.m,':',t.s);END; readln(t.h,t.m,t.s);END; END; 4)VARt1,t2:temps_t;
n1,n2:integer;c:char; BEGIN ifn13.4SupplementspourleTP 1)Programmemystere
Laballeestsousquelgobelet?
PROGRAMballe;
TYPEgobelet_t=recordballe:boolean;
abra(g1,g2);cad(g2,g3);abra(g3,g1); END. TDDeug1MassMA,1997a200415
4.Bouclesetfonctions
4.1Fonctionsnumeriques
1)Factorielle
Faireunefonctionfacto(n)quirenvoien!.
2)Puissance
Faireunefonctionpuiss(x,n)quirenvoiexn.
3)Exponentielleex'1+x
1+x22!+x33!++xnn!
appelauxfonctionsfactoetpuiss. Correction
END; {Lafonctionestjusteegalementpourn=0. {Onpeutaussicommencerlefora2. puiss:=r;END; {00n'estmathematiquementpasdeni. expn:=r;END; deplusenpluslents. 4.2Lectureauclavier
1)Compterdescaracteres
2)CompterlesL
Correction
c:char;BEGINres:=0;{init} END; 3)CompterlesLEUniquementenTP
Correction
c,d:char;BEGINres:=0;{init} whilec<>CFindo end; readln; nb_couple:=res; END; TDDeug1MassMA,1997a200417
4.3Intervallesdetemps
Soitletypetemps_tdeniaux2.
1) periodedetemps. 2) depuis0:0:0. 3) etrenvoieleresultatsousformed'untemps_t. 4) etdeconvertir. Correction
1)TYPEheure_t=0..23;
h:heure_t;m:minute_t;s:seconde_t; End;inter_t=Recorddebut,fin:temps_t;
End; 2)FUNCTIONcalc_ns(t:temps_t):integer;
BEGINcalc_ns:=t.h*3600+t.m*60+t.s;END;
BEGINres.h:=nsdiv3600;ns:=nsmod3600;
res.m:=nsdiv60;ns:=nsmod60;res.s:=ns; convertir:=res;END; END; 4.4SupplementspourleTP
1)Calculdepi
4=113+1517+19
lorsqueleterme1 xestpluspetitque". Correction
PROGRAMcalculpi;
repeat s:=-s;{inverselesigne} untilabs(t)VARe:real;
END. TDDeug1MassMA,1997a200419
5.Tableauxetindices
5.1LeprogrammeAppaLet
Ondisposedestypessuivants.
CONSTMaxTabCar=4096;CMin='a';
1)Lectureauclavier
2)Achageal'envers
contenudetabCar:TabCar_t. 3)Calculdepourcentage
detabCar. 4)Recherchedumaximum
5)Recherchedesplusfrequents
t^ete. 6)Programmeprincipal
achedansl'ordrecroissantdefrequence. Correction
varnbCar:integer;CarFin:char);VARc:char; whilec<>CarFindobeginnbCar:=nbCar+1; readln;{absorbeleretourchariot}END; END; VARi,n:integer;c:char;BEGIN
{comptage}fori:=1tonbCardo tabP[c]:=tabP[c]+1.0;n:=n+1;end; end; {calculpourcentages} TDDeug1MassMA,1997a200421
n:integer);VARi:integer;c:char; BEGINfori:=1tondobegin
end;{lemaxsuivantnesoitpluscec}END; 6)PROGRAMAppaLet;
VAR tc,tf:TabCar_t; tp:TabPourcent_t;nc:integer;BEGIN AfficheEnvers(tf,5);END.
TDDeug1MassMA,1997a200423
6.Tableaux,recordetstring
6.1LeprogrammeRendezV
introduitlestypessuivants: 1)Saisie
besoinenappelantlaprocedurelecture(). 2)Achage
besoinenappelantlaprocedureecriture(). 3)Chevauchement
vousr1,r2:Rdv_tsechevauchent. 4)Testjournee
5)Programmeprincipal
Correction
1)PROCEDURESaisieRdv(varr:Rdv_t);
lecture(r.fin);END; ecriture(r.debut);ecriture(r.fin);END; AffiRdv(j[k]);end;END;
5)PROGRAMRendezV;
TDDeug1MassMA,1997a200425
6.2Cryptage
TD successivesdesvariablesetexpressions). TP successivesdesvariablesetexpressions). VARm,c:t;
END. Correction
1ord('o')1ord('i')ord('i')-ord('a')=8'w'
2ord('n')2ord('e')ord('e')-ord('a')=4'r'
3ord('c')3ord('g')ord('g')-ord('a')=6'i'
4ord('l')1ord('i')ord('i')-ord('a')=8't'
5ord('a')2ord('e')ord('e')-ord('a')=4'e'
6ord('f')3ord('g')ord('g')-ord('a')=6'l'
7ord('f')1ord('i')ord('i')-ord('a')=8'n'
TDDeug1MassMA,1997a200427
7.Detectiondemots
7.1LeprogrammeColEcran
1)Debutavecdes'a'
ousiin'estpasdansl'intervalle1::255. 2)Finavecdes'a'
mot.Ecrire: majusculeousouligne). 4)Debutetnavecdeslettres
pasdeslettres. 5)Achaged'unmot
6)Programmeprincipal
Correction
ifs[i]='a'thenDetecteDebut:=i;end;End; (c>='A')and(c<='Z')or(c='_');End; elseDetecteFin:=i-1;End; fori:=debuttofindowrite(s[i]);End; TDDeug1MassMA,1997a200429
6)PROGRAMColEcran;
Vars:ligne_t;i,j:integer;
i:=DetecteDebut(s,1);whilei<>0dobegin i:=DetecteDebut(s,j+1);end;End. TDDeug1MassMA,1997a200431
8.Fichierstexte
Rappel
8.1LeprogrammeMinusCol
cestunelettre,sinonrenvoiecinchange. desenminuscules. 3)Ouvertureetfermeture
chiers. 4)GestiondeserreursEnTPuniquement
surnom2. 5)Caractereparcaractere
6)Ligneparligne
7)Unmotparligne
8)Programmeprincipal
endessousdesautres. Correction
1)FunctionMinusCar(c:char):char;Begin
End; 2)ProcedureMinusLig(vars:ligne_t);
Vari:integer;Beginfori:=1tolength(s)do
s[i]:=MinusCar(s[i]);End; rewrite(f2);CasseFi(f1,f2);close(f1); close(f2);End; err:integer;Beginerr:=0; assign(f1,nom1);assign(f2,nom2); iferr=0thenbegin end; iferr=0thenCasseFi(f1,f2); CasseNom:=err;End;
TDDeug1MassMA,1997a200433
cule. ProcedureCasseFi(varf1,f2:text);
Varc:char;Beginwhilenoteof(f1)do
beginread(f1,c);write(f2,MinusCar(c)); end;End; whilenoteof(f1)dobeginreadln(f1,s); MinusLig(s);writeln(f2,s);end;
End; uneprocedureAffiMotFi. Beginwhilenoteof(f1)dobegin
readln(f1,s);MinusLig(s); i:=DetecteDebut(s,1); whilei<>0dobeginj:=DetecteFin(s,i); fork:=itojdowrite(f2,s[k]);writeln(f2); i:=DetecteDebut(s,j+1);end; end;End; 8)PROGRAMMinusCol;
VARn1,n2:ligne_t;BEGIN
END. TDDeug1MassMA,1997a200435
9.Recherchedansunchier
d'erreural'ouverturedeschiers. 9.1Recherchedemots
nombredemotspresentsdanslechiernomf. leplust^otpossible. 5)Programmeprincipal
Correction
Beginassign(f,nomf);reset(f);n:=0;
whilenoteof(f)dobeginreadln(f,s); iflength(s)>0thenn:=n+1;end; close(f);NombreMots:=n;End; end; close(f);RechercheMot:=trouve; End; assign(f,nomf);reset(f);n:=0; whilenoteof(f)do beginreadln(f,s);ifs=mthenn:=n+1; end; close(f);CompterMot:=n; End; whilenoteof(f)andcontinuerdo beginreadln(f,s);ifs=mthenn:=n+1quotesdbs_dbs48.pdfusesText_48