• 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 Contrôle N° 1

Année scolaire : 2012/2013

Matière : Informatique Durée : 1H

Mr. Med Abdallah Mani Classe : 4 Math

Nom & Prénom : ……….

Note : ……. / 20

Exercice 1. (4 points) Donner la variable résultat, le résultat et son type de chacune des instructions suivantes :

Expression Résultat Type du Résultat

L  long(‘’lycée’’) L= 5 Entier

Ch1  souschaine(‘’Baccalauréat’’,1,3) CH1=’’Bac’’ Chaine de caractéres

P  pos(‘’a’’,’’Programmation’’) P =6 Entier

Ch2  ch1 + ‘’2013’’ CH2 =’’Bac2013’’ Chaine de caractéres

Efface (ch,1,5) où ch=’’Baccalauréat’’ CH = ‘’lauréat’’ Chaine de caractéres

Insère (‘’ga’’,ch,4) où ch=’’Lange’’ CH = ‘’Langage’’ Chaine de caractéres

Convch (2012, ch) CH = ‘’2012’’ Chaine de caractéres

Valeur (‘’5,26’’, n, e) N = 5.26 E = 0

Réel Entier Exercice 2. (2 points) Evaluer les expressions suivantes :

5 + 2 * 4 MOD 3 – 6 DIV 2 * 3

…………

-2

………

 Pour a=60 et b=21 (a-b/3=69) OR (a MOD 2=0) AND NOT(b div 2 <> 1)

…………FAUX…………

NOT(‘D’<’A’) OR (succ(ord(‘A’))=pred(ord(‘B’)))

………VRAI…………

 Pour a=13 et b=14 et c=3 NOT(b+15- a MOD 3 <a-10*c-b) XOR (c=a-b)

………… VRAI …………

Exercice 3. (4 points)

Ecrire l’algorithme d’une procédure Extract qui permet d’extraire les caractères non alphabétiques à partir d’une chaine donnée comme paramètre.

Exemple :

Pour la chaine ‘’a253M%xdMA$d2sS’’ il faut retourner la nouvelle chaine

‘’aMxdMAdsS’’

program Devoir;

uses WinCrt;

var ch:string;

procedure extract (var chf:string);

var i:byte;

begin i:=0;

repeat i:=i+1;

if not(upcase(ch[i]) in ['A'..'Z']) then begin

delete(ch,i,1);

i:=i-1;

end;

until i>length(ch);

end;

begin

writeln('Donner une chaine ch:');

readln(ch);

extract(ch);

writeln('La nouvelle chaine est :',ch);

end.

P a g e | 1

(2)

Problème.

(10 points)

Ecrire l’analyse et l’algorithme du programme Devoir qui permet de remplir un tableau par n caractères alphabétiques dans l’ordre croissant puis de l’éclater en deux tableaux CONSONNES et VOYELLES.

Sachant que les indices du tableau vont de ‘’A’’ à ‘’Z’’.

Exemple.

Pour n = 10

A D H U a e f o x y

A B C D E F G H I J

Tableau de CONSONNES.

D H f x

A B C D

Tableau de VOYELLES.

A U a e o y

A B C D E F

program Devoir;

uses WinCrt;

var n:byte;

i,j,k:char;

ch:string;

t,tc,tv:array['A'..'Z'] of char;

begin repeat

writeln('Donner la taille du tableau entre 1 et 26');

readln(n);

until (n in [1..26]);

writeln('Donner T[A] un caractére alphabétique');

readln(t['A']);

for i:='B' to chr(ord('A')+n-1) do repeat

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

readln(t[i]);

until (t[i]>t[pred(i)]);

P a g e | 2

(3)

j:='A';

K:='A';

for i:='A' to chr(ord('A')+n-1) do

if upcase(t[i]) in ['A','E','I','U','O','Y'] then begin

tv[k]:=t[i];

k:=succ(k);

end else begin tc[j]:=t[i];

j:=succ(j);

end;

for i:='A' to chr(ord('A')+n-1) do write (t[i], ' | ');

writeln;

for i:='A' to pred(j) do write (tc[i], ' | ');

writeln;

for i:='A' to pred(k) do write (tv[i], ' | ');

end.

Correction Modulaire

program Devoir;

uses WinCrt;

type

tab=array['A'..'Z'] of char;

var

n:integer;

i,j,k:char;

t,tc,tv:tab;

procedure remplir(var nf:integer;var tf:tab);

begin repeat

writeln('Donner la taille du tableau entre 1 et 26');

readln(nf);

until (nf in [1..26]);

P a g e | 3

(4)

writeln('Donner T[A] un caractére alphabétique');

readln(tf['A']);

for i:='B' to chr(ord('A')+nf-1) do repeat

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

readln(tf[i]);

until (tf[i]>tf[pred(i)]);

end;

procedure affiche(tf:tab;cf:char);

begin

for i:='A' to cf do write (tf[i], ' | ');

end;

procedure trait (tf:tab;nf:integer;var tcf:tab;var jf:char;var tvf:tab;var kf:char);

begin jf:='A';

Kf:='A';

for i:='A' to chr(ord('A')+nf-1) do

if upcase(tf[i]) in ['A','E','I','U','O','Y'] then begin

tvf[kf]:=tf[i];

kf:=succ(kf);

end else begin

tcf[jf]:=tf[i];

jf:=succ(jf);

end;

end;

begin

remplir(n,t);

trait(t,n,tc,j,tv,k);

affiche(t,chr(ord('A')+n-1));

writeln;

affiche(tc,pred(j));

writeln;

affiche(tv,pred(k));

end.

P a g e | 4

Références

Documents relatifs

Ce mode de tri sera implémenté avec deux procédures utilisant les variables globales A et n pour désigner le tableau et sa taille. La procédure principale (figure 3) est appelée

est géométrique de raison. b) La relation de récurrence vérifiée par cette suite est. A la fin de chaque année, la banque verse sur le compte des intérêts qui s'élèvent à 3%

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

- Ecrire une fonction récursive qui calcule le PGCD de deux entiers positifs. On suppose qu’on ne peut effectuer que

Un seul élève à la fois vient prendre la mallette et la plaquette sur le chariot.. *sachet 2

[r]

Exercice 7: Ecrire un programme permettant de saisir un entier N compris entre 5 et 10 puis de remplir un tableau T par N caractères alphabétiques majuscules ensuite on vous demande

Ecrire un programme en assembleur permettant d’effectuer les opérations suivantes sur un tableau de taille 15, dont le premier élément est placé à l’adresse $D000 :..