• Aucun résultat trouvé

Sujet: Programmation en Pascal

N/A
N/A
Protected

Academic year: 2022

Partager "Sujet: Programmation en Pascal"

Copied!
3
0
0

Texte intégral

(1)

Sections : Math. + Tech. + Sc.Exp.

REPUBLIQUE TUNISIENNE MINISTERE DE L’EDUCATION

***

EPREUVE PRATIQUE D’INFORMATIQUE

DATE : Mardi 23 mai 2006 ( Heure : 15 :30h ) EXAMEN DU BACCALAUREAT

SESSION 2006 DUREE : 1 h – COEFFICIENT : 0.5

Sujet : Programmation en Pascal

Ecrire un programme Pascal qui permet de remplir deux tableau T1 et T2 de n entiers à deux chiffres chacun (2<=n<=15) puis de former un tableau T tel que un élément t[i] est le résultat de la fusion de deux élémentsT1[i] etT2[i] selon le principe suivant :

- Insérer le chiffre des dizaines du plus petit nombre parmi T1[i] et T2[i], entre les deux chiffres du plus grand nombre parmiT1[i] etT2[i].

- Mettre le chiffre des unités du plus petit nombre parmi T1[i] et T2[i], à droite du nombre obtenu.

Exemple :

- PourT1[i] = 52 et T2[i] = 36 ,T[i] sera égal à 5326 - PourT1[i] = 13 et T2[i] = 47 ,T[i] sera égal à 4173 On propose l’algorithme suivant :

0) début trait_tab 1) Répéter

Ecrire(" Donner un entier n"), lire (n) Jusqu’à n dans [2..15]

2) Procsaisie (n,T1) 3) Procsaisie (n,T2)

4) ProcFusion (n,T1,T2,T) 5) Pour i de 1 à n faire Ecrire (T[i]) Finpour

6) Fin trait_tab

Questions :

1. Traduire cet algorithme en Pascal.

2. Ecrire la procéduresaisie permettant de remplir un tableau T parn entiers à deux chiffres.

3. Ecrire procédure Fusion permettant de remplir un tableau T, à partir de deux tableauxT1 etT2 de n éléments chacun, selon le principe ci-dessus.

Enregistrer au fur et à mesure votre programme dans le dossier bac2006 situé à la racine C : en lui donnant comme nom le numéro de votre carte d’identité.

Grille d’évaluation :

(2)

Correction :

program trait_tab;

uses wincrt;

type

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

var

t,t1,t2 : tab;

n,i : integer;

procedure saisien (var n: integer);

begin repeat

writeln('donner un entier N'); readln(n);

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

end;

procedure saisie( p : integer; var T:tab);

var i: integer;

begin

for i:= 1 to p do repeat

writeln('donner un entier numero ', i);

readln(T[i]);

until (T[i] in [0..99]);

end;

procedure fusion (N:integer; t1, t2: tab; var t:tab);

var

i,UMX,UMN,DMX,DMN, Min, Max : integer;

begin

for i:=1 to n do begin

if T1[i]>T2[i] then Max := T1[i]

else Max := T2[i];

Questions Nbre de points

Enregistrement dansbac2006 2

1. Traduction en Pascal

2. Ecriture de la procédure saisie 3. Ecriture de la procédure Fusion

6 4 8

(3)

if T1[i]<T2[i] then Min := T1[i]

else Min := T2[i];

UMX := Max mod 10;

DMX := Max div 10;

UMN := Min mod 10;

DMN := Min div 10;

T[i] := DMN*100 + UMN*1+DMX*1000+ UMX*10;

end;

end;

begin saisien(n);

saisie(N,T1);

saisie(N,T2);

fusion (N,T1,T2,T);

for i:= 1 to n do writeln (T[i]);

end.

Références

Documents relatifs

Enregistrer au fur et à mesure votre programme dans le dossier bac2006 situé à la racine C : en lui donnant comme nom le numéro de votre carte d’identité.. Grille

[r]

2. Transformer la séquence 1) en une procédure saisie et y ajouter les contrôles nécessaires pour la saisie des éléments du tableau T.. 3. Ecrire la procédure

[r]

Compléter les coordonnées des points dans le script pour réaliser le tracer d'un rectangle ABCD de longueur 200 et de largeur 100. Complète aussi:

1°) Étant donnée une matrice carrée A, il n’est en général pas possible de savoir s’il existe une matrice B telle que B 2 = A et lorsqu’il en existe, il n’y a pas de

Rappel Table des priorit´es class´ees par ordre d´ecroissant, les op´erateurs sur une mˆeme ligne ayant une priorit´e ´egale (on ´evalue alors de gauche `a droite).. ()

enregistrez au fur et à mesure votre programme dans le dossier Bac2009 se trouvant sur la racine C:\ en lui donnant comme nom votre numéro d'inscription.. On se propose de former