• Aucun résultat trouvé

Note : ……. / 20Exercice1. (2 Pts)Evaluer les expressions suivantes pour a=60 et b=3 :1.(a-b =69) AND ( a mod 2=0) OR NOT(b div 2<>1)……………………………………

N/A
N/A
Protected

Academic year: 2022

Partager "Note : ……. / 20Exercice1. (2 Pts)Evaluer les expressions suivantes pour a=60 et b=3 :1.(a-b =69) AND ( a mod 2=0) OR NOT(b div 2<>1)……………………………………"

Copied!
4
0
0

Texte intégral

(1)

Lycée Pilote de Sousse

Devoir de Synthèse N° 1

Année scolaire : 2013/2014

Matière : Informatique Durée : 1H 30 Min

Mr. Med Abdallah Mani Classe : 4 Tech

Nom & Prénom : ……….

Note : ……. / 20

Exercice1. (2 Pts)

Evaluer les expressions suivantes pour a=60 et b=3 : 1. (a-b =69) AND ( a mod 2=0) OR NOT(b div 2<>1)

………TRUE………..

2. NOT(‘Inconnu’<’inconnu’) AND (succ(ORD(‘A’))=Pred(ORD(‘B’)))

………FALSE………..

Exercice 2. (5 Pts)

Function verifier (ch2,ch1 : string):Boolean;

Var ok:boolean; i,l,p:integer; ch3:string;

Begin

l :=length(ch2);

ok:= true;

If l <> length (ch1) then ok:= false

Else Begin

For i:=1 to l Do

ch3:= ch3 + upcase(ch1[i]);

i:= 1;

Repeat

p:= pos(upcase(ch2[i]),ch3);

If p = 0 then ok:= false Else Begin i:= i + 1;

ch3[p] := '*';

End;

Until ((not ok) or (i > l));

End;

Verifier := ok;

End;

1) Def Proc verifier(ch2,ch1 :chaine ;var ok :booléen)

2) L long(ch2) 3) Ok vrai

4) Si l<>long(ch1) alors Ok faux

Sinon

Pour i de 1 à l faire

Ch3 ch3+majus(ch1[i]) FinPour

i 1 répéter

p pos(majus(ch2[i],ch3) si p=0 alors

ok faux sinon i i+1

ch3[p] ‘’*’’

FinSI

Jusqu’à (NON(ok)) ou (i>l) FinSI

Fin VERIFIER

1. Compléter les pointillés dans la fonction

2. Essayer la fonction avec les chaines suivantes : niche, chien et donner le résultat : ………TRUE………….

3. Donner le rôle de cette fonction

………cette fonction vérifie est ce que le mot2 est anagramme du mot1 oui/non (les deux chaines contiennent les même caractéres et de taille égale )………..

4. Réécrire la fonction en procédure en algorithme

Bon Travail P a g e | 1

(2)

Problème. (13 Pts)

Ecrire un programme qui remplit un tableau par N (N entre 5 et 20) consonnes majuscules, qui affiche le tableau et affiche le nombre d’occurrences d’une consonne donnée dans le tableau.

Exemple.

Pour n=7 : Soit T :

F R G H R P Q

1 2 3 4 5 6 7

Si on veut afficher le nombre d’occurrence de R le programme affichera le message suivant :

Le nombre d’apparition de R est 2 Travail à faire.

1. Ecrire l’analyse modulaire du programme principal en utilisant une procédure de remplissage de tableau, une procédure d’affichage et une fonction de calcul de nombre d’occurrence

2. Ecrire l’algorithme principal 3. Ecrire l’analyse des trois modules

4. Ecrire l’algorithme de la fonction de Calcul d’occurrence Analyse programme Principal :

Résultat = Ecrire ('’Le nombre d''apparition de ‘',r,'’ est ‘',FN occ(t,n,r)) R=[] Répéter

R=donnée (‘'Donner une Consonne Majuscule’')

Jusqu’à (r dans [‘'A’'..'’Z’']) ET NON(r dans ['’A’','’E’','’Y’','’U’','’I’','’O’']) Proc Affiche(t,n)

(T,N)=PROC Remplir (t,n) Fin Devoir

Algorithme Programme principal : 1) Debut Devoir

2) PROC Remplir(t,n) 3) PROC Affiche(t,n) 4) Répéter

Ecrire(‘'Donner une Consonne Majuscule’') Lire(r)

Jusqu’à (r dans [‘'A’'..'’Z’']) ET NON(r dans ['’A’','’E’','’Y’','’U’','’I’','’O’']) 5) Ecrire('’Le nombre d''apparition de ‘',r,'’ est ‘',FN occ(t,n,r))

6) Fin Devoir

Analyse de la procédure REMPLIR : Def Proc Remplir(var t :tab ;var n :entier) Resultat = t,n

T=[]pour i de 1 à n Faire []répéter

Bon Travail P a g e | 2

(3)

T[i]=donnée(‘’T[‘’,i,’’]=’’)

Jusqu’à (t[i] dans [‘'A’'..'’Z’']) ET NON(t[i] dans ['’A’','’E’','’Y’','’U’','’I’','’O’']) FinPour

N=[]répéter

N=Donnée(‘’Donner n entre 5 et 20’’) Jusqu’à n dans [5..20]

Fin Remplir

Analyse de la procédure AFFICHE : Def PROC Affiche(t :tab ; n :entier) Résultat =Af

Af=[]Pour i de 1 à N faire Ecrire(‘’ ‘’,t[i],’’ |’’) FinPour

Analyse de la fonction OCC :

Def FN OCC (t :tab ;n :entier ;r :caractère) :entier Résultat = OCC

Occ o

O=[o0]pour i de 1 à n faire []Si t[i]=r alors

O o+1 FinSI

FinPour

Algorithme de la fonction OCC :

1) Def FN OCC (t :tab ;n :entier ;r :caractère) :entier 2) o0

3) pour i de 1 à n faire Si t[i]=r alors O o+1 FinSI FinPour 4) Occ o 5) Fin OCC Traduction Pascal : program test;

uses wincrt;

type

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

var r:char;

n:integer;

t:tab;

procedure remplir(var t:tab; var n:integer);

var

Bon Travail P a g e | 3

(4)

i:integer;

begin repeat

writeln('donner n entre 5 et 20');

readln(n);

until n in [5..20];

for i:=1 to n do repeat

writeln('T[',i,']=');

readln(t[i]);

until (t[i] in ['A'..'Z']) and not(t[i] in ['A','E','Y','U','I','O']);

end;

procedure affiche (t:tab;n:integer);

var i:integer;

begin

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

writeln;

end;

function occ(t:tab;n:integer;r:char):integer;

var

i,o:integer;

begin o:=0;

for i:=1 to n do if r=t[i] then o:=o+1;

occ:=o;

end;

begin

remplir(t,n);

affiche(t,n);

repeat

writeln('Donner une Consonne Majuscule');

readln(r);

until (r in ['A'..'Z']) and not(r in ['A','E','Y','U','I','O']);

writeln('Le nombre d''apparition de ',r,' est ',occ(t,n,r));

end.

Bon Travail P a g e | 4

Références

Documents relatifs

[r]

- Tracer un angle de sommet G et qui mesure 55° (Placer le centre du rapporteur sur le sommet G et aligner une des deux graduations zéro du rapporteur sur le côté [BG) ).. - Sur

Ecrire l’équation bilan de la formation de la rouille sur le couteau (l’oxydation de fer).. Citer deux techniques pour protéger le fer contre

Exercice 7. Montrer que dans R muni de sa topologie usuelle : N est fermé mais pas ouvert, Q n’est ni ouvert ni fermé. On démontrera chaque point deux fois : une fois par des

[r]

Elle se lit : Pour tout r´ eel strictement positif, il existe un r´ eel strictement positif qui lui est strictement inf´ erieur.. L’assertion ne d´ epend d’aucun

[r]

En développant f (x) , montrer que c'est la somme d'un nombre réel et d'une combinaison d'expressions contenant des cosinus hyperboliquesb. En déduire une nouvelle preuve de