 | sc2mosta LE LANGAGE DE PROGRAMATION PASCAL . |
| | | | Auteur | Message |
|---|
Admin Admin

Age : 47 Inscrit le : 15 Mar 2008 Messages : 22
| Sujet: TD NO 04 Mar 1 Avr - 12:25 | |
| Fiche TD N°4
REMARQUE : Envoyez moi vos solutions des EXERCICES 04 , 05 , 06 , 07 et 08 et vous gagnez Deux Points sur le EMD2
1.EXERCICE 01 : Affichage et entrée 1 – Ecrire une procédure lire(var T:Tablo; var n:Integer) qui permet à l'utilisateur d'entrer le nombre n d'éléments ainsi que les éléments de T. 2 - Ecrire une procédure afficher(T:Tablo; n:Integer) qui affiche à l'écran les "n" premiers éléments du tableau T. (soigner la présentation à l'écran en affichant les entiers sur 8 caractères) . 3 - Ecrire un programme utilisant les procédures Lire et afficher.
EXERCICE 02: Recherche d'un élément dans un tableau 1.Ecrire la fonction nb(x:Integer; T:Tablo; n:Integer):Integer qui indique combien de fois x apparait parmi les "n" premiers éléments du tableau T . 2.Ecrire la fonction rang(x:Integer; T:Tablo; n:Integer):Integer qui cherche la première occurence de x parmi les "n" premiers éléments du tableau T et renvoie son indice en cas de succès ou 0 en cas d'échec. 3.Ecrire un programme utilisant les fonctions nb et rang.
EXERCICE 03 : Recherche du maximum. Premier tri 1.Ecrire la fonction rangmax(T:Tablo; n:Integer):Integer qui renvoie l'indice du plus grand des "n" premiers éléments du tableau T. 2.Ecrire la procédure change(var T:Tablo; i,j:Integer) qui échange les éléments d'indices i et j du tableau T. 3.Pour trier les "n" premiers éléments du tableau T on recherche son plus grand élément T[k], on échange T[k] et T[n] et il ne reste plus qu'à trier les n-1 éléments restants. Ecrire la procédure tri(var T:tablo; n:Integer) faisant ce tri.
EXERCICE 04 : Ecrire une procédure permettant de déterminer si un nombre est premier. Elle comportera deux arguments : le nombre à examiner, un indicateur booléen précisant si ce nombre est premier ou non.
EXERCICE 05 : Ecrire la procédure précédente sous forme de fonction.
EXERCICE 06 : Ecrire une fonction calculant la norme d’un vecteur à 3 composantes réelles.
EXERCICE 07 : Ecrire la fonction précédente sous formes d’une procédure.
EXERCICE 08 : Ecrire une fonction calculant le produit vectoriel de deux vecteurs à 3 composantes réelles.
SOLUTION TD NO 04
1.EXERCICE 01 : Affichage et entrée Fait par : safer fatima zohra groupe 08
program td04ex1; type indice=1..10; tablo=array[indice]of real; var TT:tablo; I:indice; M:integer; procedure lire(var T:tablo; var n :integer); BEGIN Read(N) for I:=1 to N do Read(T[I] ); End; procedure afficher (T:tablo;n:integer); BEGIN for I:=1 to N do writeln(T[I]:8:2); End; BEGIN lire(TT,M); afficher(TT,M); END.
T[1] T[2] T[3] I N T[1] T[2] T[3] N TT[1] TT[2] TT[3] 1 M 2 3 1 3 2 3 1 2 3 3 4 1 2 3 4
ecran _ _ _ _ 2.00 _ _ _ _ 3.00 _ _ _ _ 1.00
Dernière édition par Admin le Lun 5 Mai - 12:59, édité 6 fois |
|  | | sahli as Invité
| Sujet: solution exercice3td4 Mer 7 Mai - 17:51 | |
| PROGRAM TD4EX3; CONST M=5; type INDICE=1..M; tablo=ARRAY[INDICE]ofINTEGER; VAR J,J2,II,I:INDICE; TT:tablo; Function rangmax(T:Tablo;n:INTEGER):INTEGER; VAR MAX:INTEGER; BEGIN MAX:=T[1]; rangmax:=1; FORI2:=2 to n do if T[I2]>MAX THEN BEGIN MAX:=T[I2]; |
|  | | sahli as Invité
| Sujet: solution exercice3td4 lasiut exercice3 Mer 7 Mai - 18:08 | |
| rangmax:=[i2] end; END; PROCédure change(var T:tablo;i,j:integer); VAR X:INTEGER; BEGIN X:=T[i]; T[i]:=T[j]; T[j]:=x; END; BEGIN (*debut PP*) FOR i:=1toMDO BEGIN READ(TT[I]); Write(TT[I]) END; FOR J2:=0 TO M-1 DO II:=rangmax(TT,M-J2); |
|  | | SAHLI AS Invité
| Sujet: Re: TD NO 04 Mer 7 Mai - 21:38 | |
| change(TT,II,M-J2); FOR I:=1 TO M DO WRITE(TT[I]); END. L'éxecution: M J2 II T[1] T[2] T[3] T[4] T[5] I TT[1] TT[2] TT[3] TT[4] TT[5 II T[1] T[2] T[3] T[4] T[5] N rangmax
5 0 2 2 1 2 15 1 4 3 5 1 1 4 15 2 2 3 1 4 2 2 1 3 3 3 4 4 2 3 1 1 4 1 3 5 5 2 1 2 5 1 2 3 6 4 2 15 3 2 4 1 5 6 2 4 2 l'écran 215143 123415
max J X I2 2 5 15 2 15 4 4 3 2 3 4 3 5 4 |
|  | | safi sam Invité
| Sujet: solution ex 2 td 4 Jeu 8 Mai - 18:18 | |
| solition Ex2 TD4 PROGRAM EX2tDu comst M= 5; type INOICE=1..M; TABLO=ARRAY[INDICE]ofINTEGER; VAR I:INDICE; TT:TABLO; xx,nbb,rangg:IANTEGER; FUNCTION nb(x:integer;T:tabls;n:integer):integer; VAR COMPT:integer; BEGEN COMPT:=0 FOR I:=1 to N do if x=T[I] then COPMT:=COMPT; END; FUNCTION rang(x:integer:T:tablo;n:integer):integer; BEGEN FOR I:=1 to N do BEGEN if x=T[I] then rang:=I; EXIT END; END; |
|  | | mascri e Invité
| Sujet: un ptite correction exo 2 td 4 g10 Lun 26 Mai - 23:24 | |
| PROGRAM EX2tDu comst M= 5; type INOICE=1..M; TABLO=ARRAY[INDICE]ofINTEGER; VAR I:INDICE; TT:TABLO; xx,nbb,rangg:IANTEGER; FUNCTION nb(x:integer;T:tabls;n:integer):integer; VAR COMPT:integer; BEGEN COMPT:=0 FOR I:=1 to N do if x=T[I] then COPMT:=COMPT+1; END; FUNCTION rang(x:integer:T:tablo;n:integer):integer; BEGEN FOR I:=1 to N do BEGEN if x=T[I] then rang:=I; EXIT END; END; |
|  | | mascri e Invité
| Sujet: les exo 6,7,8 mon g 10 Ven 30 Mai - 1:39 | |
| Program ex06 ; const m=3 Type indice=array[1...3]of integer; vec=array[indice]of real; Var I:indice; tab:vec; Resultat:real; x:integer; Function norme(var tab1:tab):real; Var I:indice; Norm:real; x:integer; Begin Norm:=0; For i:=0 to 2 do Norm:=norm+sqr(tab1[i]); Norm:=sqrt(norm); Norme:=norm; End; Begin For i:=0 to 2 do Begin Write(‘tab[‘,i,’]=?’);readln(tab[i]); End; Resultat:=norme(tab2); Writeln(‘la norme est:’,resultat) ;
End. Program ex07 ; const m=3 Type indice=array[1...3]of integer; vec=array[indice]of real; Var I:=integer; Tab:vec; Resultat:real; Procedure norme(var tab1:tab); Var I:=indice; Norm:real; Begin For i:=0 to 2 do Norm:=norm+sqr(tab1[i]); Resultat:=sqr(norm); End; Begin For i:=0 to 2 do Begin Write(‘tab[‘,i,’]=?’); Readln(tab[i]); End; Norme(tab1); Writeln(‘la norme est:’,resultat :8 :3) ; End. Program ex08 ; const m=3
Type indice=array[1...3]of integer; vec=array[indice]of real; Var I:=indice; Tab,tabx:vec; Resultat:real; Function prod_vect(var tab1,tab2:tab):real; Var I:=indice; Prod:real; Begin Prod:=0; For i:=0 to 2 do Prod:=prod+tab1[i]*tab2[i]; Prod_vect:=prod; End; Begin Writeln(‘veuillez saisir les elements de vecteur ligne’) ; For i :=0 to 2 do Begin Write(‘tab[‘,i,’]=?); Readln(tab[i]); End; Writeln(‘veuillez saisir les elements de vecteur colonne’) ; For i :=0 to 2 do Begin Write(‘tabx[‘,i,’]=?’); Readln(tabx[i]); End; Resultat:=prod_vect(tab_l,tabx); Writeln(‘la norme est:’resultat :8 :3) ; End. |
|  | | mascri e Invité
| Sujet: les exo 4;5 mon g 10 Ven 30 Mai - 2:23 | |
| Program ex04; Var bool :boolean ; N :integer ; Procedure premier(var x :integer) ; Var I :integer ; begin bool:=false; for i:=2 to (x mod i) do read(x); if(x mod i)=0 then bool:=true else i:=i+1; bool=true; end; begin writeln(’n=’); readln(n); premier(n); if bool=true then writeln(‘n,n"est pas un nombre premier’) else writeln(n,’est un nombre premier’) ; end. Program ex05 ; Var Bool :boolean ; N:integer; Function premier(var x:integer;test:boolean):boolean; Var I:integer; Begin Test:=false; for i:=2 to (x mod i) do read (x); If(x mod i)=0 then Test:=true; Else I:=i+1; bool=true; Premier:=test; End; Begin Writeln(‘n=’); Readln(n); Bool:=premier(n,bool); If bool=true then Writeln(n,’n"est un nombre premier’) Else writeln(n,’est un nombre premier’) ; End. |
|  | | |
| Page 1 sur 1 |
| | Permission de ce forum: | Vous pouvez répondre aux sujets dans ce forum
| | |
| |
|