• Aucun résultat trouvé

Note : ……. / 20

N/A
N/A
Protected

Academic year: 2022

Partager "Note : ……. / 20"

Copied!
6
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 Math 1

Nom & Prénom : ……….

Note : ……. / 20

Exercice 1. (6 Pts) Program ANAGRAMME;

Uses WinCrt;

Var MOT1,MOT2:string;

…PROCEDURE.. lire(var c1,c2:string);

Begin Repeat

Writeln('Tapez votre premier mot');

Readln(c1);

Writeln('Tapez votre deuxième mot');

Readln(c2);

Until ((c1 <> '') and (c2 <> '') and (c1 <>

c2));

…END;.

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;

Begin

lire (MOT1,MOT2);

If verifier(MOT2,MOT1) then

Writeln(MOT2,' est une anagramme de ',MOT1)

Else

Writeln(MOT2,' n"est pas une anagramme de ',MOT1);

End.

1. Compléter les pointillés 2. Remplir le tableau suivant

Objets globaux MOT1,MOT2

Objets locaux Ok, i, l,p, ch3

Paramètres effectifs MOT1, MOT2

Paramètres formels c1, c2, ch2, ch1 Paramètres passés par variable C1

Paramètres passés par valeur C2, ch2, ch1

3. Quel est le résultat du programme pour MOT1=’’chien’’ et MOT2=’’niche’’

...niche est une anagramme de de chien...

4. Quel est le rôle de la fonction Verifier en expliquant l’anagramme.

...Permet de verifier si le mot2 est une anagramme du mot1, une

anagramme est un mot qui contient les meme letters que le premier mot et de même longueur..

5.Transformer l’entête de la fonction verifier en une procédure ...procedure verifier (ch2,ch1 : string; var ok:BOOLEAN);...

(2)

Problème. (14 pts)

Le programme Cryptage permet de remplir un tableau par N chaines de caractères alphabétiques majuscules non vides de taille max 15 (sachant que N entre 5 et 20). Après le remplissage, le programme doit afficher le tableau, crypter les chaines (selon la méthode suivante : permuter le premier et le dernier caractère de la chaine puis remplacer le caractère de milieu par son caractère complémentaire) et enfin afficher le tableau (après cryptage).

Pour cela vous devez :

1. Ecrire l’analyse du programme principal en utilisant la procédure Remplir, la procédure Affiche et la fonction Crypte.

2. Ecrire l’algorithme principal

3. Ecrire l’analyse des trois sous programmes 4. Ecrire l’algorithme de la fonction Crypte Exemple :

Pour N = 6

Soit le tableau T :

BONJOUR AMIN INFORMATIQUE FOULEN PASCAL IMEN

1 2 3 4 5 6

Méthode de Cryptage : T[i]=’’BONJOUR’’

Permutation premier et dernier caractère : T[i]=’’RONJOUB’’

Remplacement du caractère de milieu par son caractère complémentaire : Le caractère de milieu est ‘’J’’, son code ASCII est 74 le code complémentaire est 255-74=181 et le caractère complémentaire est µ d’où la chaine devient T[i]=’’

RONµOUB’’

Résultat final

(3)

Traduction Pascal

Program cryptage;

uses wincrt;

type

tab=array[1..20] of string [15];

var t:tab;

(4)

i,n:integer;

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

var

i,j:integer;

ch:string;

verif:boolean;

begin repeat

writeln('Donner N entre 5 et 20 :');

readln(n);

until n in [5..20];

for i:=1 to n do repeat

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

readln(t[i]);

ch:=t[i];

verif:=true;

j:=0;

repeat j:=j+1;

if not(ch[j] in ['A'..'Z']) then verif:=false;

until (verif=false) or (j=length(ch));

until (length(t[i]) in [1..15]) and (verif=true);

end;

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

var

i:integer;

begin

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

writeln;

end;

Function Crypte (ch:string):string;

var

i,l,mil:integer;

(5)

x:char;

begin

l:=length(ch);

x:=ch[1];

ch[1]:=ch[l];

ch[l]:=x;

if l mod 2 = 1 then mil:=l div 2 + 1 else

mil:=l div 2;

ch[mil]:=chr(255-ord(ch[mil]));

crypte:=ch;

end;

begin

remplir(t,n);

affiche(t,n);

for i:=1 to n do t[i]:=crypte(t[i]);

affiche(t,n);

end.

Analyse du programme principal Résultat = Proc Affiche(t,n)

T=[]pour i de 1 à N faire T [i]FN crypte(t[i]) Fin Pour

Proc Affiche(t,n) T,n=Proc Remplir(t,n) Fin Devoir

Algorithme du programme principal 1) Debut Devoir

2) Proc Remplir(t,n) 3) Proc Affiche(t,n) 4) Pour i de 1 à N faire

T [i]FN crypte(t[i]) Fin Pour

5) Proc Affiche(t,n) 6) Fin Devoir

Analyse de la procedure Remplir

Def Proc Remplir(var t :tab ;var n :entier) Resultat = t,n

(6)

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

T[i]=donnée(‘’T[‘’,i,’’]=’’) [verifvrai,j0]répéter Jj+1

Si NON(t[i][j] dans [‘’A’’..’’Z’’]) alors Verif faux

FinSI

Jusqu’à verif=faux ou j=long(t[i])

Jusqu’à verif ET long(ch)>0 ET long(ch)<=15 FinPour

N=[]répéter

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

Fin Remplir

Abalyse 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 Crypte Def FN crypte(ch :chaine) :chaine Résultat =crypte

Crypte ch

Ch [mil]chr(255-ord(ch[mil])) Mil=[]si l mod 2 =1 alors

Mill div 2 + 1 Sinon

Mil l div 2 FinSI

Xch[1]

ch[1]ch[l]

ch[l]x llong(ch) Fin CRYPTE

Algorithme de la fonction Crypte 1) Def FN crypte(ch :chaine) :chaine 2) llong(ch)

3) Xch[1]

(7)

4) ch[1]ch[l]

5) ch[l]x

6) si l mod 2 =1 alors Mill div 2 + 1 Sinon

Mil l div 2 FinSI

7) Ch [mil]chr(255-ord(ch[mil])) 8) Crypte ch

9) Fin CRYPTE

Références

Documents relatifs

« muette » l’amuse. Son « cri » est aussi sa révolte face aux injustices infligées aux sourds. Le cri est la parole engagée B) L’autobiographie d’Emmanuelle Laborit est

Vite entre deux cailloux la casse, L’épluche, la mange et lui dit : « Votre mère eut raison, ma mie,. Les noix ont fort bon goût, mais il faut

Ce qui manque à ce paon : c'est bien voir, j'en conviens ; Mais votre chant, vos pieds, sont plus laids que les siens, Et vous n'aurez jamais sa queue. Jean-Pierre Claris de

Se tient-il dans les bois, farouche et solitaire, Tandis que mon palais est rempli de moineaux. C'est, lui dit le mentor, afin de vous instruire De ce qu'un jour vous devez

nom propre masc.. nom

 dans certains proverbes Ex : Patience et longueur de temps font plus que force ni

Exceptions : bail, émail, corail, soupirail, travail, vitrail, vantail font leur pluriel en aux. Les noms terminés par x, s ou z ne changent pas au pluriel

Pour donner à ce genre de journal plus de vraisemblance, le narrateur nous explique que les geôliers lui ont fourni de quoi écrire, et lui laissent du temps pour écrire. Pour