• Aucun résultat trouvé

Note : ……. / 20

N/A
N/A
Protected

Academic year: 2022

Partager "Note : ……. / 20"

Copied!
4
0
0

Texte intégral

(1)

Lycée Pilote de Sousse

Devoir de Contrôle N° 2

Année scolaire : 2012/2013

Matière : Informatique Durée : 1H

Mr. Med Abdallah Mani Classe : 4 Math4

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

Ecrire un programme Pascal qui permet de remplir T un tableau contenant N chaines formées par des lettres alphabétiques majuscules chacune commençant par une lettre de la chaine qui la précède et N est un nombre pair compris entre 4 et 20 et qui permet d’afficher les chaines symétriques dans le tableau T.

Pour N=6 T

AVIVA VARGAS SONOS OMO MONDO MALAYALAM

1 2 3 4 5 6

Alors le résultat afficher et le suivant :

AVIVA SONOS OMO MALAYALAM

program symm;

uses wincrt ;

var t:array [1..20]of string;

n,i:integer;

ch:string;

function verif(ch:string):boolean;

var i:integer;

b:boolean;

begin i:=0 ; repeat i:=i+1;

b:=ch[i] in ['A'..'Z'] ;

until not (b) or (i=length (ch));

verif:=b;

end;

function exist (c:char;ch:string):boolean;

var i:integer;

b:boolean;

begin b:=false;

i:=0;

repeat i:=i+1;

(2)

if ch[i]=c then b:=true;

until (b) or (i=length(ch));

exist:=b;

end;

function sym(ch:string):boolean ; var b: boolean;

i:integer;

begin i:=0;

repeat i:=i+1;

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

until not (b) or (i=length (ch)div 2) ; sym:=b ;

end;

begin

repeat

writeln ('donner la valeur n ');

readln (n);

until (n in [4..20]) and (n mod 2 =0);

REPEAT

writeln ('Donner T[1]');

readln (t[1]);

UNTIL verif(T[1]);

for i:=2 to n do repeat

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

readln (t[i]);

until (verif(t[i])) and exist(t[i][1],t[i-1]);

write ('les chaines symetrique dans t sont:');

for i:=1 to n do end.

(3)

Lycée Pilote de Sousse

Devoir de Contrôle N° 2

Année scolaire : 2012/2013

Matière : Informatique Durée : 1H

Mr. Med Abdallah Mani Classe : 4 Math4

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

Ecrire un programme Pascal qui permet de remplir T un tableau contenant N caractères majuscules d'une manière aléatoire et sans doublons sachant que N est un nombre impair compris entre 3 et 20 puis permet d'afficher que les lettres consonnes triées d'une manière croissante.

Pour N=11 T

A X V E C N O Z I M T

1 2 3 4 5 6 7 8 9 10 11

Alors le résultat afficher et le suivant :

C M N T V X Z

1 2 3 4 5 6 7

program devoir;

uses wincrt;

type

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

var t,tc:tab;

i,n,nc:integer;

procedure affiche (tc:tab;nc:integer);

var i:integer;

begin

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

writeln;

end;

function exist (t:tab;p:integer):boolean;

var i:integer;

b:boolean;

begin b:=false;

i:=0;

repeat i:=i+1;

if t[i]=t[p] then b:=true;

until (b) or (i=p-1);

exist:=b;

end;

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

var i:integer;

begin randomize;

(4)

repeat

writeln('Donner N impair entre 3 et 20');

readln(n);

until (n mod 2 =1) and (n in [3..20]);

t[1]:=chr(random(26)+ord('A'));

i:=1;

for i:=2 to n do repeat

t[i]:=chr(random(26)+ord('A'));

until exist(t,i)=false;

affiche(t,n);

end;

procedure extract (t:tab;n:integer; var tc:tab; var nc:integer);

var i:integer;

begin NC:=1;

for i:=1 to n do

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

tc[nc]:=t[i];

nc:=nc+1;

end;

nc:=nc-1;

end;

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

Var p : char;

begin p:=a;

a:=b;

b:=p;

end;

Procedure tri(var Tc:tab; nc:integer);

var

i,j,pmin:integer;

begin

for i:=1 to nc-1 do begin

pmin:=i;

for j:=i+1 to nc do

if tc[j]<Tc[pmin] then pmin:=j;

if i<>pmin then

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

end;

end;

begin remplir(t,n);

extract(t,n,tc,nc);

tri(tc,nc);

affiche (tc,nc);

end.

Références

Documents relatifs

Si l’ion sulfate est présent, il se forme un précipité blanc On verse dans l’autre une solution de soude (ou solution d’hydroxyde de sodium).. Si l’ion fer III est présent, il

[r]

Il faut donc prélever la solution mère, placée préalablement dans un bécher, d’un volume de 50/10 = 5,0 mL avec une pipette graduée (ou jaugée) munie d’une poire aspirante

[r]

4- Nathalie insère son doigt dans le circuit pour savoir si son corps est conducteur. La lampe ne s'allume pas et elle en déduit que son corps est isolant et qu'elle peut toucher

3-d) Le voltmètre doit-il être branché en série ou en dérivation pour mesurer une tension électrique ??. 4-a) Quel est l'ordre de grandeur de la tension aux bornes d'une pile ?

Transforme chacun des nombres suivants en une fraction décimale, en prenant soin de ne pas écrire les éventuels zéros inutiles.. /3 points. Écris les nombres suivants comme somme

À l’aide des deux documents suivants, détermine la quantité totale de liquide, en cL, que Marion doit utili-