Sciences de l'informatique

Bienvenue dans notre forum de partage et d'échange d'information technique dans le domaine NTIC (Informatique, Programmation, Réseau, Multimédia), ce forum est destinée à tous les élèves Tunisiens
 
AccueilCalendrierFAQMembresGroupesS'enregistrerConnexion
Sujets similaires
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Derniers sujets
Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Janvier 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 6 le Ven 13 Jan - 2:22

Partagez | 
 

 série révision finale

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
asma slama



Messages : 1
Date d'inscription : 14/04/2011
Age : 33

MessageSujet: série révision finale    Jeu 14 Avr - 17:16

Série d’exercices de révision

Sujet 1 :

Soit l’algorithme suivant :
0) Début Nombres
1) Lire(n)
2) Si FN Verif(n) Alors
Ecrire(n,  est valable)
Finsi
3) Fin Nombres

L’algorithme ci-dessus permet de saisir un entier positif n formé da quatre chiffres et de l’afficher avec la mention  est valable , s’il vérifie la condition suivante : Le chiffre des milliers, qui ne doit pas être nul, est suivi par ses multiples.
Exemple :
n = 2888 8 est un multiple de 2
n = 3696 6 et 9 sont des multiples de 3.
n = 1541 5, 4 et 1 sont des multiples de 1.

Questions :
1) Traduire l’algorithme Nombres en Pascal.
2) Transformer la séquence 1) en une procédure saisie en ajoutant les contrôles nécessaires et en tenir compte dans le programme principal.
3) Ecrire la fonction Verif permettant de vérifier si le premier chiffre du nombre n est suivi effectivement par ses multiples ou non.

Sujet 2 :

L’algorithme suivant est celui d’un programme permettant de déterminer et d’afficher si les éléments d’un tableau T de n entiers constituent ou non une suite géométrique.

0) Début suite
1) Répéter
Ecrire (" Donner un entier n " ) ; lire(n)
Jusqu’à n dans [2..15]
2) pour i de 1 à n répéter
3) Répéter
Ecrire (" t[",i, " ]= ") ; lire(t[i])
Jusqu’à (t[i] >0) et ( t[i]<100)
4) Si FN Geometrie(n,t)
Alors Ecrire(" C’est une progression géométrique ")
Sinon Ecrire(" Ce n’est pas une progression géométrique ")
Finsi
5) Fin Suite
Questions :
1. Traduire cet algorithme en Pascal.
2. Transformer la séquence 2) en une procédure Lecture en remplaçant sa boucle Répéter…….. jusqu’à par la fonction Random avec des bons paramètres, et en tenir compte dans le programme principal.
3. Ecrire la fonction Geometrique, de type booléen, permettant de vérifier si les éléments du tableau T forment ou non une suite géométrique.
N.B : Une suite U est dite géométrique si et seulement si il existe un réel q tel que pour tout entier n on a : Un = q * Un – 1





Sujet 3 :

Deux entiers N1 et N2 sont dits frères si chaque chiffre de N1 apparaît au moins une fois dans N2 et inversement.
Ecrire un programme Pascal qui saisit deux entiers N1 et N2, vérifie et affiche s’ils sont frères ou non.

Exemples :
- Si N1 = 1164 et N2 = 614 alors le programme affichera : N1 et N2 sont frères.
- Si N1 = 905 et N2 = 9059 alors le programme affichera : N1 et N2 sont frères.
- Si N1 = 405 et N2 = 554 alors le programme affichera : N1 et N2 ne sont pas frères.

N.B : La solution doit comporter au moins deux modules.

Sujet 4 :

Ecrire un programme Pascal intitulé TRIANGLE qui permet :
- de remplir un tableau T de n chaînes de caractères (2<n<20). Chaque chaîne doit avoir un nombre de caractères supérieur ou égal à son indice dans le tableau T.
- d’afficher pour chaque élément T[i] du tableau, les i premiers caractères de la chaîne.

Exemple : Soit T un tableau de 6 chaînes de caractères :

Bit Modem Ecran Souris Processeur Mémoire

Le programme affichera :

B
Mo
Ecr
Sour
Proce
Mémoir

N.B : La solution doit comporter au moins deux modules.

Sujet 5 :

Ecrire un programme Pascal qui permet de saisir n entiers dans un tableau T (10<n<40) et deux entiers non nuls p et s (p et s doivent être des éléments de T).
On demande d’afficher tous les blocs d’éléments de T placés entre p et s dans l’ordre ; p et s peuvent figurer dans cet ordre plusieurs fois dans T.
Exemple :
Si p = 5 et s = 3
Et si on donne le tableau T suivant :

7 5 0 2 3 9 1 5 6 3

Alors le résultat de l’affichage sera : 0 2 6

N.B : La solution doit comporter au moins deux modules.






Sujet 6 :

Soit un tableau T de n caractères (5<=n<nmax) qui ne peuvent être que A, B, C et tels que deux éléments successifs du tableau ne sont pas égaux. (nmax est une constante de valeur 15).
On se propose d’insérer un caractère donné Car dans la première position possible dans la position possible dans le tableau T en respectant la règle ci-dessus mentionnée puis d’afficher le tableau T dans son nouvel état(après insertion).
N.B : - Car ne peut être que A, B, ou C et ne peut être inséré ni à la première ni à la dernière position du tableau.
- On suppose que l’insertion d’un nouvel élément est possible en effet n<nmax.

Exemple :

T à l’état initial T à l’état final
B A B C A C B A B A B C B A C B A
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9

Par la suite on donne l’algorithme suivant:
0) Début Insertion
1) Ecrire( Donner un entier n avec 5<=n<nmax ) , lire (n)
Pour i de 1 à n répéter
Ecrire ( Donner une lettre A ou B ou C )
Lire (t[i])
Fin pour
2) Proc insert_car (car, t, n)
3) Proc Affiche (n, t)
4) Fin Insertion
Questions :
4) Traduire l’algorithme Nombres en Pascal.
5) Transformer la séquence 1) en une procédure saisie en ajoutant les contrôles nécessaires et en tenir compte dans le programme principal.
6) Ecrire la procédure insert_car permettant d’insérer un caractère Car dans un tableau T, tout en respectant les conditions mentionnées ci-dessous.
7) Ecrire la procédure Affiche permettant d’fficher les éléments de T après insertion de Car.

Sujet 7 :

Ecrire un programme Pascal qui permet de :
a) de saisir un tableau T de N chaînes de caractères non vides composée chacune d’un maximum de 5 caractères (N est une constante de valeur 10).
b) de garder la première occurrence pour les éléments redondants (qui apparaissent plus q’une fois) et de remplacer toutes les autres occurrences par des chaînes vides.
c) d’afficher les chaînes non vides restantes du tableau T.

Exemple :

Ali Ali Salem Amal Eya Mohamed Amal Salem Salem Aziz
1 2 3 4 5 6 7 8 9 10
T initial

Ali Salem Amal Eya Mohamed Aziz
1 2 3 4 5 6 7 8 9 10
T final


On propose l’algorithme suivant :
0) Début non_redondance
1) Pour i de 1 à n Répéter
lire (t[i])
Finpour
2) Proc Remplace (N,T)
3) Proc Affiche (N,T)
4) Fin non_redondance

Questions :
4. Traduire cet algorithme en Pascal.
5. Transformer la séquence 1) en une procédure saisie et y ajouter les contrôles nécessaires pour la saisie des éléments du tableau T.
6. Ecrire la procédure remplace permettant de réaliser le traitement b) ci-dessus mentionné.
7. Ecrire la procédure Affiche permettant d’afficher les éléments non redondants du tableau T.


Sujet 8 :

Ecrire un programme Pascal qui permet de saisir n entiers de trois chiffres chacun (n est une constante) puis de chercher et d’afficher les nombres symétriques de T.

Exemple :
424 715 133 121 454 616 566
1 2 3 4 5 6 7
Pour n = 7 et T

Le programme affichera : Les nombres symétriques de T sont : 424, 121, 454 et 616
On propose l’algorithme suivant :

1) Début Symétrique
2) Proc saisie(T)
3) Ecrire ("Les nombres symétriques de T sont :")
4) Pour i de 1 à n répéter
Si FN verif(T[i]) alors
Ecrire(T[i] :4)
Finsi
Finpour
5) Fin Symétrique

Questions :
1. Traduire cet algorithme en Pascal.
2. Ecrire la procédure saisie permettant de remplir un tableau V par p entiers à trois chiffres.
3. Transformer la séquence 3) en une procédure Affiche et en tenir compte dans le programme principal.
4. Ecrire la fonction Verif permettant de vérifier si un entier m de trois chiffres est symétrique ou non.

Sujet 9 :

Ecrire un programme Pascal qui permet de remplir deux tableau T1 et T2 de n entiers à deux chiffres chacun(2<=n<=15) puis de former un tableau T tel que un élément t[i] est le résultat de la fusion de deux éléments T1[i] et T2[i] selon le principe suivant :
- Insérer le chiffre des dizaines du plus petit nombre parmi T1[i] et T2[i], entre les deux chiffres du plus grand nombre parmi T1[i] et T2[i].
- Mettre le chiffre des unités du plus petit nombre parmi T1[i] et T2[i], à droite du nombre obtenu.
Exemple :
- Pour T1[i] = 52 et T2[i] = 36 , T[i] sera égal à 5326
- Pour T1[i] = 13 et T2[i] = 47 , T[i] sera égal à 4173

On propose l’algorithme suivant :
5) début trait_tab
6) Répéter
Ecrire(" Donner un entier n"), lire (n)
Jusqu’à n dans [2..15]
7) Proc saisie (n,T1)
Cool Proc saisie (n,T2)
9) Proc Fusion (n,T1,T2,T)
10) Pour i de 1 à n répéter
Ecrire (T[i])
Finpour
6) Fin trait_tab

Questions :
5. Traduire cet algorithme en Pascal.
6. Ecrire la procédure saisie permettant de remplir un tableau T par p entiers à deux chiffres.
7. Ecrire procédure Fusion permettant de remplir un tableau F, à partir de deux tableaux V1 et V2 de p éléments chacun, selon le principe ci-dessus.












































Solutions des exercices de révision



Sujet 1 :


program nombres;
uses wincrt;
var
n:integer;

procedure saisie(var n:integer);
begin
repeat
writeln('Donner un entier composé de 4 chiffres');
readln(n);
until n>1000;
end;

function verif(n:integer):boolean;
var
u,d,c,m:integer;
begin
u:= n mod 10;
d:=(n mod 100)div 10;
c:=(n mod 1000) div 100;
m:= n div 1000;
verif:=false;
if (u mod m = 0) and (d mod m = 0) and (c mod m =0) then
verif:=true;
end;

begin
saisie(n);
if verif(n) = true then Writeln(n ,' est valable')
else
Writeln(n ,' n''est pas valable');
end.




Sujet 2 :


program suite;
uses wincrt;
type
tab = array [1..100] of integer;
var
n,i : integer;
t : tab;

procedure lecture (var t:tab; n:integer);
var i:integer;
begin
randomize;
for i:=1 to n do
T[i] := random(99)+1;
end;

function geometrie(n: integer ; t:tab): boolean;
var
q: real;
i:integer;
geo : boolean;
begin
q := T[2] / T[1];
geo := false;
i:=1;
repeat
if T[i+1] / T[i] = q then
geo := true else geo:= false;
i:=i+1;
until((i= n-1) or (geo = false));
geometrie := geo;
end;

begin
repeat
writeln('donner un entier'); readln(n);
until(n in [2..15]);
lecture(t,n);
for i:= 1 to n do
writeln(T[i]);
if geometrie(n,t) then
writeln('c''est une progression geometrique') else
writeln('ce n''est pas une progression geometrique');
end.







Sujet 3 :


program frere;
uses wincrt;
var
n1,n2:integer;

procedure saisie(var n1,n2:integer);
begin
writeln('Donner n1');
readln(n1);
writeln('Donner n2');
readln(n2);
end;

procedure freres(n1,n2:integer);
var
i,j,c1,c2:integer;
ch1,ch2:string;
begin
str(n1,ch1);
str(n2,ch2);
i:=0;c1:=0;c2:=0;
repeat
i:=i+1;
if (pos(ch1[i],ch2)<> 0 ) then
c1:=c1+1;
until (i=length(ch1))or(ch1[i],ch2)= 0);
j:=0;
repeat
j:=j+1;
if (pos(ch2[j],ch1)<> 0 ) then
c2:=c2+1;
until (j=length(ch2)) or(ch2[i],ch1)= 0);;
if (length(ch2) = c2) and (length(ch1)=c1)then
writeln('Frere')
else
writeln('Non Frere');
end;

begin
saisie(n1,n2);
freres(n1,n2);
end.


Sujet 4 :


program triangle;
uses wincrt;
type
tab=array [1..20]of string;
var
t:tab;
n:integer;

procedure saisie_n_t (var n:integer;var t:tab);
var
i:integer;
begin
repeat
write('Donner la taille du tableau ');
readln (n);
until n in [3..19];

for i:=1 to n do
repeat
write('t[',i,']=');readln (t[i]);
until length (t[i])>i;
end;

procedure affiche (t:tab;n:integer);
var
i:integer;
ch:string;
begin
for i:=1 to n do
begin
ch:=copy(t[i],1,i);
writeln(ch);
end;
end;

begin
saisie_n_t(n,t);
affiche(t,n);
end.













Sujet 5 :


program sequence_p_s;
uses wincrt;
type tab=array[1..100] of integer;
var
n:integer;
t:tab;

procedure saisiet(var t:tab;n:integer);
var i:integer;
begin
for i:=1 to n do
begin
writeln('T[',i,']= '); readln(T[i]);
end;
end;

function existe(t:tab;n,p:integer):boolean;
var
i:integer;
begin
i:=0;
existe:=false;
repeat
i:=i+1;
until (t[i]=p) or (i=n);
if t[i]=p then existe:=true;
end;

Procedure sequence( t:tab; n:integer);
var
i,j,p,s:integer;
begin
repeat
write('p=');
readln(p);
until (p<>0) and existe (t,n,p);
repeat
write('s=');
readln(s);
until (s<>0) and existe (t,n,s);
for i:= 1 to n-1 do
begin
if t[i]=p then begin
j:=i+1;
while (t[j]<>s) do
begin
write(t[j],' ');
j:=j+1;
end;
end;
end;

end;

begin
repeat
write ('Donner la taille du tableau');
readln(n);
until n in [11..39];
saisiet(t,n);
sequence(t,n);
end.



























































Sujet 6 :


program insertion;
uses wincrt;
const Nmax = 15;
type
tab = array[1..15] of char;
var
t:tab;
n:integer;
car : char;
procedure saisie( var t:tab ; var n: integer);
var i: integer;
begin
repeat
writeln('donner un enetier n avec 5<=n<Nmax'); readln(n);
until ((n>=5) and( n <Nmax));

repeat
writeln('donner le premier caractere'); readln(T[1]);
until(T[1] in ['A','B','C']);

for i:= 2 to n do
repeat
writeln('donner une lettre A ou B ou C');
readln(T[i]);
until((T[i] = 'A') or (T[i] = 'B') or (T[i] = 'C') and (T[i] <> T[i+1]));
end;
procedure affiche(n:integer ; t:tab);
var i: integer;
begin
for i:=1 to n+1 do
writeln(T[i]);
end;




procedure insert_Car(car:char; var t:tab;n:integer);
var
pos, i,j: integer; trv : boolean ;
begin
trv := false;
i:=2;
repeat
if ((T[i] <> car) and (T[i+1]<> car) and (T[i+2] <> car)) then
BEGIN
pos := i;
TRV := TRUE;
end;
i:=i+1;
until(i=n)or (trv = true);

for j:= n+1 downto pos+1 do
t[j] := T[j-1];

t[pos+1]:= car;
end;

begin
saisie(t,n);
repeat
writeln('donner un caractere A ou B ou C'); readln(car);
until(car in ['A','B','C']);
insert_Car(car,t,n);

writeln('***************');

affiche(n,t);
end.









Sujet 7 :


program Non_redondance;
uses wincrt;

const N = 10;

type
tab = array[1..N] of string;

var
t:tab;

procedure saisie( var t:tab ; n: integer);
var i: integer;
begin

for i:= 1 to n do
repeat
writeln('donner une chaine de caractere numero' , i);
readln(T[i]);
until((length(T[i]) <=5) and (T[i] <> ''));
end;

procedure remplace(n:integer ; var t:tab);
var i,j : integer;
begin
for i:=1 to n do
for j:=i+1 to n do
if t[i] = T[j] then
t[j] := '';

end;

procedure affiche(n:integer ; t:tab);
var i: integer;
begin
for i:=1 to n do
if (t[i] <> '' ) then
writeln(T[i]);
end;

begin

saisie(t,n);

remplace(n,t);
affiche(n,t);
end.


Sujet 8 :


program symetrie;
uses wincrt;

const N=10;
type
tab = array[1..10] of integer;

var
T:tab;
i: integer;

procedure saisie(var V:tab ; p:integer);
var i : integer;
begin
for i:=1 to p do
repeat
writeln('donner un entier de trois chiffres ', i);
readln(V[i]);
until(((V[i]) >= 100) and (V[i] <= 999));
end;

function verif(x : integer) : boolean;
var u,d,c : integer;
begin
c := x div 100;
d := x mod 100 div 10;
u := x mod 10;

if c=u then verif := true else verif := false;

end;

procedure affiche(t:tab ; n: integer);
var i: integer;
begin
for i:=1 to n do
if verif (T[i]) then
writeln(T[i]:4);
end;

begin
saisie(T,n);
writeln('les nombres symetriques de t sont:');
affiche(t,n);
end.








Sujet 9 :


program trait_tab;
uses wincrt;

type
tab = array[1..15] of integer;

var
t,t1,t2 : tab;
n,i : integer;

procedure saisien (var n: integer);
begin
repeat
writeln('donner un entier N'); readln(n);
until(n in [2..15]);
end;

procedure saisie( p : integer; var T:tab);
var i: integer;
begin
for i:= 1 to p do
repeat
writeln('donner un entier numero ', i);
readln(T[i]);
until (T[i] in [0..99]);
end;

procedure fusion (N:integer; t1, t2: tab; var t:tab);
var
i,UMX,UMN,DMX,DMN, Min, Max : integer;
begin
for i:=1 to n do
begin
if T1[i]>T2[i] then
Max := T1[i]
else Max := T2[i];

if T1[i]<T2[i] then
Min := T1[i]
else Min := T2[i];

UMX := Max mod 10;
DMX := Max div 10;

UMN := Min mod 10;
DMN := Min div 10;

T[i] := DMN*100 + UMN*1+DMX*1000+ UMX*10;

end;
end;


begin

saisien(n);
saisie(N,T1);
saisie(N,T2);
fusion (N,T1,T2,T);

for i:= 1 to n do
writeln (T[i]);

end.


Revenir en haut Aller en bas
Dhifallah Fethi
Admin


Messages : 74
Date d'inscription : 02/03/2011

MessageSujet: Re: série révision finale    Ven 15 Avr - 2:32

Merci pour le partage
Revenir en haut Aller en bas
http://ntic.moontada.net
 
série révision finale
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» ستايل نسخة المنتدى vision

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Sciences de l'informatique :: 4ème Scientifiques :: Exercices & Devoirs-
Sauter vers: