1 2 3 4 5 6 7 8 9 10 1 2 1 2 3 4 5 Nom & prénom : ………………………………..……………………….. Imp

1 2 3 4 5 6 7 8 9 10 1 2 1 2 3 4 5 Nom & prénom : ………………………………..……………………….. Important : 1. Une solution modulaire au problème posée est exigée. 2. Enregistrer au fur et à mesure votre programme dans le dossier « 4SI » de l'unité C: en lui donnant comme nom «votre nom et prénom». Soit M une matrice de 2 lignes et N colonnes d’entiers, avec N compris entre 5 et 50. Ecrire un programme PASCAL qui réalise les tâches suivantes : Remplir aléatoirement la matrice M par des entiers compris entre 10 et 100. Trier les lignes de la matrice M dans l’ordre croissant, chaque ligne à part, sans utiliser un tableau intermédiaire. (En utilisant la méthode de tri par insertion). Fusionner, avec tri, les éléments des deux lignes de la matrice M dans un tableau T. Afficher le Tableau T après le tri. Exemple : N = 5 La matrice M après le tri : Le tableau T : 12 15 20 37 49 10 19 32 58 72 10 12 15 19 20 32 37 49 58 72 LYCÉE : Boumerdes Durée : 1 heure Date : Mardi 16 février 2016 DEVOIR DE CONTROLE Nº 03 (Pratique) Matière : Algorithmique & Programmation Classe : 4ème année S.I Professeur : Abdelkader BARRAJ Ministère de l’éducation DRE - MAHDIA © Prof.ABDELKADER BARRAJ program devoir_prat_3; uses wincrt; type mat=array[1..2,1..50]of integer; tab = array[1..100] of integer; var m:mat; t:tab; n:integer; procedure remplir_mat(var m:mat;var n:integer); var l,c:integer; begin repeat write('nombre de colonne = '); readln(n); until n in [5..50]; randomize; for l:=1 to 2 do begin for c:= 1 to n do begin m[l,c]:=random(91)+10; end; end; end; procedure tri_ligne_ins(var m:mat;l,n:integer); var i,j,tmp:integer; begin for i:= 2 to n do begin if (m[l,i]<m[l,i-1])then begin tmp:=m[l,i]; j:=i; while(m[l,j-1]>tmp)and(j>1) do begin m[l,j]:=m[l,j-1]; j:=j-1; end; m[l,j]:=tmp; end; end; end; procedure fusionner(m:mat;var t:tab); var i,j,k:integer; begin i:=1;j:=1; for k:= 1 to 2*n do begin if ((m[1,i]<m[2,j])and(i<=n))or(j>n) then begin t[k]:=m[1,i]; i:=i+1; end else begin t[k]:=m[2,j]; j:=j+1; end; end; end; © Prof.ABDELKADER BARRAJ procedure affiche_m(m:mat;n:integer); var l,c:integer; begin for l:= 1 to 2 do begin for c:= 1 to n do begin write(m[l,c],' '); end; writeln; end; end; procedure affiche(t:tab;m:integer); var i:integer; begin for i:=1 to m do begin write(t[i],' '); end; end; begin {programme principal} remplir_mat(m,n); tri_ligne_ins(m,1,n); tri_ligne_ins(m,2,n); affiche_m(m,n); fusionner(m,t); writeln;writeln; affiche(t,2*n); end. © Prof.ABDELKADER BARRAJ uploads/s1/ dc-3-prat-correction-4si.pdf

  • 24
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Oct 15, 2022
  • Catégorie Administration
  • Langue French
  • Taille du fichier 2.1080MB