• Aucun résultat trouvé

Note : ……. / 20Exercice 1.

N/A
N/A
Protected

Academic year: 2022

Partager "Note : ……. / 20Exercice 1."

Copied!
4
0
0

Texte intégral

(1)

Lycée Pilote de Sousse

Devoir de Synthèse N° 2

Année scolaire : 2011/2012

Matière : Informatique

Durée : 1H

Mr. Med Abdallah Mani

Classe : 4 Tech

Nom & Prénom : ………. Note : ……. / 20

Exercice 1.

(3.5 pts)

Soit l’algorithme suivant : 1) Debut devoir 2) Lire(n) 3) Convch(N,ch)

4) Pour i de 1 à long(ch) DIV 2 faire C  ch[i]

Ch[i]  ch[long(ch)-i+1]

ch[long(ch)-i+1]  c FinPour

5) Valeur(ch,n,e) 6) Ecrire(n) 7) Fin Devoir

1. Exécuter l’algorithme précédent pour N=3247

………7423………

2. Donner le rôle de l’algorithme

………Afficher le nombre miroir d’un nombre (inverse)………

3. Transformer l’instruction n°3 en remplaçant la boucle POUR par la structure Répéter … Jusqu’à.

i1 Répéter C  ch[i]

Ch[i]  ch[long(ch)-i+1]

ch[long(ch)-i+1]  c i i+1

jusqu’à (i> long(ch) DIV 2)

i:=1;

repeat C := ch[i];

Ch[i] := ch[length(ch)-i+1];

ch[length(ch)-i+1] := c ; i:=i+1;

until(i>length(ch) DIV 2);

Exercice 2.

(2.5 pts)

Compléter le tableau suivant par les entêtes des modules (analyse Procédure ou Fonction) :

Actions Entêtes des modules

Trier un tableau T de n chaînes par ordre alphabétiques

Def proc tri (var t :tab ;n :entier) Eclater un tableau T de n entiers en deux

tableaux T1 contenant les entiers positifs et T2 contenant les entiers négatifs

Def proc eclat (t :tab ;var

t1,t2 :tab ;n :entier ;var n1,n2 :entier) Déterminer la position du minimum d’un

tableau de n réels

Def fn min(t :tab ;n :entier) :entier Inverser l’ordre des éléments d’un tableau T

de n caractères

Def proc inv(var t :tab ; n :entier) Vérifier si un tableau T de n entiers est

symétrique ou non

Def fn symet(t :tab ;n :entier) :booleen

(2)

Problème.

(14 pts)

On désire résoudre un problème qui permet :

 Saisir un tableau T de N chaînes avec 2≤N≤20 et la taille de la chaîne entre 2 et 10 caractères

 Remplir un deuxième tableau V par le nombre de caractères non alphabétiques dans chaque case

 Trier le tableau T dans l’ordre croissant selon le tableau V

 Afficher le(s) mot(s) contenant le plus grand nombre de caractères non alphabétiques Exemple :

Pour N=5 et T contenant :

A5+M+2 ScO@p* BAC 12*0 T*ech*/

On obtient le tableau V suivant :

4 2 0 4 3

Après le tri de T selon le tableau V on obtient :

BAC ScO@p* T*ech*/ 12*0 A5+M+2

0 2 3 4 4

Le(s) mot(s) contenant le plus grand nombre de caractères non alphabétiques : A5+M+2

12*0

1. Analyser le programme principal en le décomposant en modules.

2. Analyser chacun des modules envisagés

3.

Déduire l’algorithme de programme principal ainsi que celui d’un module de votre choix.

program devoir;

uses wincrt;

type

tabc=array [1..20] of String;

tab=array[1..20] of integer;

var t:tabc;

v:tab;

n,i:integer;

procedure saisie (var ft:tabc;var fn:integer);

var i:integer;

begin repeat

writeln('Donner la taille du tableau:');

readln(fn)

until (n in [2..20]);

for i:=1 to n do repeat

writeln('Donner une chaine n° ',i,':');

readln(ft[i]);

until (length(ft[i]) in [2..10]);

(3)

end;

procedure remplir(ft:tabc;var fv:tab;fn:integer);

var c,j,i:integer;

ch:string;

begin

for i:=1 to n do begin

fv[i]:=0;

ch:=ft[i];

c:=length(ch);

for j:=1 to length(ch) do if ch[j] in ['A'..'z'] then c:=c-1;

fv[i]:=c;

end;

end;

Procedure permuter( var a:integer; var b:integer);

Var

p : integer;

begin p:=a;

a:=b;

b:=p;

end;

procedure tri(var ft:tabc;var fv:tab;fn:integer);

var

i,j,pmin:integer;

ch:string;

begin

for i:=1 to n-1 do begin

pmin:=i;

for j:=i+1 to n do

if fv[j]<fv[pmin] then pmin:=j;

if i<>pmin then begin

permuter(fv[i],fv[pmin]);

ch:=ft[i] ; ft[i]:=ft[pmin];

ft[pmin]:=ch;

end;

end;

end;

procedure affiche (ft:tabc;fv:tab;fn:integer);

var i,max:integer;

begin max:=fv[fn];

i:=fn;

while fv[i]=max do begin

writeln(ft[i]);

i:=i-1;

end;

end;

(4)

begin saisie(t,n);

remplir(t,v,n);

tri(t,v,n);

for i:=1 to n do write (t[i],'|');

writeln;

for i:=1 to n do write (v[i],'|');

writeln;

Affiche(t,v,n);

end.

Références

Documents relatifs

2) Calculer la probabilité de l'événement « Le candidat a préparé son examen avec la filière CA et il l'a obtenu du premier coup».. 3) Calculer la probabilité d'obtenir

[r]

On supprime les deux derniers chiffres du nombre donné, on multiplie par 7 le nombre qu'ils forment-, on retranche le produit, des centaines du nombre, et l'on obtient im-

Les fonctions Chx, Shx sont appelées cosinus et sinus hyperboliques de x, parce que, en les regardant comme des coordonnées rapportées à deux axes rectangulaires, elles appartiennent

— Le produit de deux sommes étant égal à la somme des produits de toutes les parties de la première par chacune des parties de la seconde, le pro- duit de la somme des m diviseurs de

Et si, de plus, tous les termes de la série sont positifs, on pourra affirmer avec certitude que U n tend vers une limite positive fixe (et l'on sait qu'il en sera de même de U_ B

Mais, et c'est là le fait capital, il suffit de Tune quelconque de ces deux relations, posée à priori comme une condition à laquelle doit satisfaire le nombre inconnu e, pour en

Hauteur des courbes d’intégration = proportionnelle au nombre d’atomes équivalents dans chacun