0% ont trouvé ce document utile (0 vote)
75 vues1 page

Control Continu S2 2019

Le document présente deux exercices de programmation. Le premier concerne l'affichage de programmes C utilisant des pointeurs. Le second porte sur la définition et vérification de carrés magiques.

Transféré par

Younes Meniri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
75 vues1 page

Control Continu S2 2019

Le document présente deux exercices de programmation. Le premier concerne l'affichage de programmes C utilisant des pointeurs. Le second porte sur la définition et vérification de carrés magiques.

Transféré par

Younes Meniri
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Auteur : Mohamed Messabihi Université Abou Bakr Belkaïd - Tlemcen

Matière : Programmation et structures de données Faculté des Sciences


Date 11 juillet 2019 1ère Année MI
Durée 1h30 Semestre 2

Contrôle Continu
Aucun document n'est autorisé

Les solutions doivent être rédigées en C


Les appareils portables doivent être éteints et posés sur le bureau du surveillant

1 Affichage 8 pts. U30’


Qu’affichent les deux programmes suivants :
1 # include < stdio .h > 1 # include < string .h >
2 void Toto ( int *a , int * b ) 2 void main ()
3 { int * c ; 3 {
4 c=a; 4 int T [8]={0 , 1 , 2 , 3 , 4 , 5 , 6};
5 a=b; 5 int M [3][4]={{1 ,2 ,3} , {4 ,5} , {6}};
6 b=c; 6 int i , * p = T , *q = M ;
7 } 7 printf ( " * p = % d \n " , * p ) ;
8 void main () 8 for ( i =0; i <7; i ++)
9 { int i =1 , j =2; 9 {
10 int *p =& i , * q =& j ; 10 (* p ) = *( p +1) ;
11 printf ( " a =% d \ n " ,i ) ; 11 p ++;
12 printf ( " b =% d \ n " ,j ) ; 12 }
13 Toto (& i ,& j ) ; 13 printf ( " T [1]=% d \ n " ,T [1]) ;
14 printf ( " a =% d \ n " ,i ) ; 14 printf ( " ** M = % d \ n " , ** M ) ;
15 printf ( " b =% d \ n " ,j ) ; 15 printf ( " *(*( M +1) +1) = % d \ n " , *(*( M +1) +1) ) ;
16 } 16 }

2 Carrés magiques 12 pts. U60’


Un carré magique est une matrice carrée de taille n×n telle que la somme de chaque ligne, de chaque co-
lonne et de chaque diagonale principale soient égales. Un carré magique est dit normal s’il contient chaque
entier compris entre 1 et n 2 exactement une fois, où n est l’ordre du carré.
Exemples. Le tableau suivant est un carré magique normal d’ordre 3 :

6 7 2
1 5 9
8 3 4

1. Écrire deux fonctions Somme_Ligne et Somme_Colonne qui prennent en entrée un tableau et un nu-
méro de ligne (respectivement de colonne) et qui renvoient la somme des éléments de cette dernière.
2. Écrire deux fonctions Somme_Diagonale et Somme_AntiDiagonale qui retournent la somme de la
diagonale (respectivement de l’antidiagonale) du tableau passé en paramètre.
3. Écrire une fonction Carre_Magique qui retourne 1 si le tableau passé en paramètre est un carré ma-
gique normal et 0 sinon
4. Écrire un programme qui demande à l’utilisateur de saisir un tableau, et affiche s’il s’agit d’un carré
magique normal.
5. Écrire une fonction Generer_Carre_Magique qui permet de construire un carré magique d’ordre n
impair (le tableau et l’ordre n sont passés comme paramètres).
« Bon courage »
1/1

Vous aimerez peut-être aussi