Tableaux à deux dimensions

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "Tableaux à deux dimensions"

Transcription

1 Cours 8 Tableaux à deux dimensions Un tableau à deux dimensions (tableau 2D) est un tableau contenant des lignes et des colonnes comme celui-ci : Ce tableau à deux dimensions contient lignes et 4 colonnes. Pour accéder à un élément, il faut spécifier un couple d indices (deux dimensions, donc deux indices) : le premier indice indique le numéro de la ligne : [0][0] [0][1] [0][2] [0][] le deuxième indice indique le numéro de la colonne : [0][1] [1][1] [2][1] Attention : Il est important de retenir que pour un tableau de dimension n m, les indices des lignes et des colonnes varient respectivement de 0 à n 1 et de 0 à m

2 IUT de Villetaneuse Un tableau (statique) à deux dimensions est déclaré de la manière suivante : 1 TYPE nom_du_tableau[nombre_de_lignes][nombre_de_colonnes]; Par exemple, pour déclarer une matrice composée d entiers organisés en 10 lignes et colonnes, on écrira ceci : 1 int tab[10][]; Remarque : Les tableaux à deux dimensions ne sont pas forcément des tableaux d entiers. Ils peuvent contenir d autres types de données. Par contre, comme pour les tableaux à une dimension, le type de chaque case est le même. 8.1 Parcours et affichage d un tableau 2D Parcourir un tableau à deux dimensions peut être fait naturellement avec deux boucles imbriquées : une sur les lignes et une sur les colonnes. L exemple suivant affiche le tableau de deux manières différentes. Pour cela, on parcourt deux fois le tableau. La première fois à l aide de deux boucles while et la deuxième à l aide de deux boucles for. 1 int tableau[][4] = { {4, 22, 55, 2}, {5, 2, 4, 4}, {2, 24, 2, 12} }; 2 int i,j; 4 i = 0 ; 5 while (i < ) 6 { 7 j = 0; 8 while (j < 4) 9 { 10 printf ( "la valeur du tableau à la ligne %d et colone %d est %d\n", i, j, tableau[i][j]); 11 j++; 12 } 1 i++; 14 } for (i = 0 ; i < ; i++) 17 { 18 for (j = 0 ; j < 4 ; j++) 19 printf ("%d ", tableau[i][j]); 20 printf ("\n"); 21 } Sur ce thème : Exercices 1 et 2, TD8 8.2 Tableaux 2D dynamiques De la même manière que dans le cas unidimensionnel, il serait souhaitable que l allocation de la mémoire dépende du nombre d éléments à saisir. Soient les deux tableaux suivants : 1 int tab1[7][8]; 2 int* tab2[7]; Lors de la déclaration de tab1, 56 emplacements de la taille d un entier sont réservés en mémoire. Par contre, lors de la déclaration de tab2, 7 pointeurs sont déclarés, mais pas initialisés. La figure ci-dessous illustre le cas d une allocation dynamique d un tableau à deux dimensions avec 7 lignes et 8 colonnes. Pour l exemple illustré dans la figure ci-dessous il nous faudra allouer l espace mémoire nécessaire comme suit : 110

3 Département informatique tab2 (7 lignes * 8 colonnes) 1 int* tab2[7]; 2 tab[0] = malloc(8*sizeof(int)); 4 5 tab[1] = malloc(8*sizeof(int)); tab[6] = malloc(8*sizeof(int)); ou mieux encore : 1 int i; 2 for (i = 0; i <7; i++) tab[i] = malloc(8*sizeof(int)); Remarque : Si l on souhaite, avec l allocation dynamique, on peut avoir des lignes de taille différente. On va aussi libérer l espace alloué en utilisant la fonction free. 1 free (tab[0]); 2 free (tab[1]); free (tab[6]); ou mieux encore : 1 int i; 2 for (i = 0; i <7; i++) free (tab[i]); Et si l on ne connait pas le nombre de lignes? On alloue d abord le tableau contenant les pointeurs des lignes comme indiqué sur la figure ci-dessous. Chaque case de ce tableau contenant un pointeur (par exemple un pointeur d entiers), 111

4 IUT de Villetaneuse le pointeur contenant l adresse de ce tableau doit être de type pointeur de pointeur (exemple : pointeur de pointeur d entiers). tab2 1 int nblignes = 5; 2 int **tab2; 4 tab2 = malloc( nblignes*sizeof(int*)) ; Puis, on alloue chaque ligne à la longueur souhaitée mais on remarque que chaque ligne est bien totalement indépendante des autres. 1 int nbcolonnes = 5; 2 int i; for (i=0 ; i<nblignes ; i++) 4 { 5 tab2[i]=malloc(nbcolonnes*sizeof(int)) ; 6 } 1 int i; Pour libérer l espace allouer il suffit de faire : 2 for (i=0 ; i<nblignes ; i++) free (tab2[i]); 4 5 free (tab2); Attention : Il est préférable d utiliser des tableaux à deux dimensions alloués dynamiquement plutôt que des tableaux 2D statiques, notamment pour passer des tableaux 2D en paramètre de fonctions. Sur ce thème : Exercice, TD8 112

5 Département informatique TD8 : Tableaux à deux dimensions (Corrigé) Exercice 1 : Manipulations de tableaux* Soit un tableau à deux dimensions de 5 par 5 entiers complètement initialisé : Question 1.1 : Effectuer les actions suivantes : afficher le tableau, afficher le tableau constitué uniquement des lignes d indice pair, afficher le tableau constitué uniquement des colonnes d indice impair. 1 int tab[5][5]={{6,2,,5,6},{4,6,2,6,1},{1,,6,7,9},{1,6,,6,8},{6,0,1,4,6}}; 2 int i,j; for (i=0; i<5; i++) 4 { 5 for (j=0; j<5; j++) 6 printf ("%d ", tab[i][j]); 7 printf ("\n"); 8 } 9 10 for (i=0; i<5; i+=2) 11 { 12 for (j=0; j<5; j++) 1 printf ("%d ", tab[i][j]); 14 printf ("\n"); 15 } for (i=0; i<5; i++) 18 { 19 for (j=1; j<5; j+=2) 20 printf ("%d ", tab[i][j]); 21 printf ("\n"); 22 } Question 1.2 : Écrire un algorithme qui affiche les deux diagonales. 1 int tab[5][5]={ {6,2,,5,6}, {4,6,2,6,1}, {1,,6,7,9}, {1,6,,6,8}, {6,0,1,4,6} }; 2 int n = 5; 4 printf ("Première diagonale : "); 5 int i = 0; 6 while (i< n) 7 { 8 printf (" %d", tab[i][i]); 9 i++; 11

6 IUT de Villetaneuse 10 } 11 printf ("\ndeuxième diagonale : "); 12 1 i = 0; 14 while (i < n) 15 { 16 printf (" %d", tab[i][n-1-i]); 17 i++; 18 } 19 printf ("\n"); Question 1. : Tester si les nombres qui apparaissent dans les deux diagonales sont tous égaux à une seule et même valeur. Le programme affichera "OUI" ou "NON" en fonction du résultat. 1 int tab[5][5]={ {6,2,,5,6}, {4,6,2,6,1}, {1,,6,7,9}, {1,6,,6,8}, {6,0,1,4,6} }; 2 int val = tab[0][0]; 4 int i = 0; 5 int n = 5; 6 7 while ((i < n) && (tab[i][i] == val) && (tab[i][n-1-i] == val)) // garder l ordre des conditions 8 { 9 i++; 10 } 11 if (i==n) 12 printf ("OUI\n"); 1 else 14 printf ("NON\n"); Exercice 2 : Échange de triangles** Écrire l algorithme qui échange le triangle inférieur avec le triangle supérieur dans un tableau à deux dimensions carré, c est-à-dire ayant le même nombre de lignes et de colonnes. C est donc le tableau obtenu en faisant une symétrie par rapport à la diagonale principale. Exemple : \ / int tab[4][4]={ {10, 11, 45, 78}, {2, 44, 12, 56}, {56, 90, 67, 89}, {47, 78, 55, 4} }; 2 int n = 4; 4 5 int tmp; 6 int i=0; 7 while (i<n) 8 { 9 int j=i+1; 10 while (j<n) 11 { 12 tmp = tab[i][j]; 114

7 Département informatique 1 tab[i][j] = tab[j][i]; 14 tab[j][i] = tmp; 15 j++; 16 } 17 i++; 18 } Exercice : Allocation dynamique** Question.1 : Écrire un programme allouant dynamiquement et initialisant un tableau 2D dont le nombre de lignes et de colonnes et les valeurs du tableau sont saisis par l utilisateur. Afficher le tableau puis désallouer la mémoire. 1 #include <stdio.h> 2 #include <stdlib.h> 4 int main() 5 { 6 int ** t2d; 7 int n; 8 int m; 9 10 printf ("n? "); 11 scanf("%d",&n); 12 printf ("m? "); 1 scanf("%d",&m); t2d = malloc(sizeof(int *) * n); 16 int i; 17 for (i = 0 ; i < n ; i++) 18 t2d[i] = malloc(sizeof(int) * m); int j; 21 printf ("Saisie des valeurs :\n"); 22 for (i = 0 ; i < n ; i++) 2 for (j = 0 ; j < m ; j++) 24 { 25 printf ("t2d[%d][%d] =? ",i,j); 26 scanf("%d", &t2d[i][j]); 27 } printf ("Affichage du tableau : \n"); 0 for (i = 0 ; i < n ; i++) 1 { 2 for (j = 0 ; j < m ; j++) printf ("%6d",t2D[i][j]); 4 printf ("\n"); 5 } 6 7 for (i = 0 ; i < n ; i++) 8 free (t2d[i]); 9 free (t2d); return 0; 42 } 115

8 IUT de Villetaneuse Question.2 : Modifier le code précédent en créant 4 fonctions : allouetableau : cette fonction prend en paramètre deux entiers n et m, alloue un tableau en deux dimensions (n * m) et retourne l adresse de ce tableau. liberetableau : cette fonction prend en paramètre un tableau à deux dimensions, un entier n (correspondant au nombre de lignes) et libère la mémoire du tableau. affichetableau : cette fonction prend en paramètre un tableau à deux dimensions, son nombre de lignes et de colonnes, et affiche le tableau. saisietableau : cette fonction prend en paramètre un tableau à deux dimensions, son nombre de lignes et de colonnes, et remplit le tableau avec des valeurs saisies par l utilisateur. 1 #include <stdio.h> 2 #include <stdlib.h> 4 int ** allouetableau(int n, int m) 5 { 6 int ** t = malloc(sizeof(int *) * n); 7 int i; 8 for (i = 0 ; i < n ; i++) 9 t[i] = malloc(sizeof(int) * m); 10 return t; 11 } 12 1 void liberetableau(int ** t, int n) 14 { 15 int i; 16 for (i = 0 ; i < n ; i++) 17 free (t[i]); 18 free (t); 19 } void affichetableau(int ** t, int n, int m) 2 2 int i,j; 24 for (i = 0 ; i < n ; i++) 25 { 26 for (j = 0 ; j < m ; j++) 27 printf ("%6d",t[i][j]); 28 printf ("\n"); 29 } 0 } 1 2 void saisietableau (int ** t, int n, int m) { 4 printf ("Saisie des valeurs :\n"); 5 int i,j; 6 for (i = 0 ; i < n ; i++) 7 for (j = 0 ; j < m ; j++) 8 { 9 printf ("t2d[%d][%d] =? ",i,j); 40 scanf("%d", &t[i][j]); 41 } 42 } 4 44 int main() 45 { 46 int ** t2d; 116

9 Département informatique 47 int n; 48 int m; printf ("n? "); 51 scanf("%d",&n); 52 printf ("m? "); 5 scanf("%d",&m); t2d = allouetableau(n,m); 56 saisietableau (t2d,n,m); 57 printf ("Affichage du tableau : \n"); 58 affichetableau (t2d,n,m); 59 liberetableau (t2d,n); 60 return 0; 61 } Question. : Définir une fonction correspondant à l exercice 2. 1 void permute(int ** t, int n) int i,j,tmp; 4 for (i = 0 ; i < n ; i++) 5 for (j = i+1 ; j < n ; j++) 6 { 7 tmp = t[i][j]; 8 t[i][j] = t[j][i]; 9 t[j][i] = tmp; 10 } 11 } 117

10 IUT de Villetaneuse TP8 : Tableaux à deux dimensions (Corrigé) Exercice 4 : Manipulation des matrices en dynamique** Question 4.1 : Écrire un programme qui permet de construire une matrice nulle de taille n m. 1 int nblignes; 2 int nbcolonnes; 4 printf ("combien de lignes : "); 5 scanf("%d", &nblignes); 6 7 printf ("combien de colonnes : "); 8 scanf("%d", &nbcolonnes); 9 10 int ** I = malloc(nblignes*sizeof(int*)); int i; 1 int j ; 14 for (i=0 ; i<nblignes ; i++) 15 I[i]=malloc(nbcolonnes*sizeof(int)); for (i=0; i< nblignes ; i++) 18 for (j=0; j<nbcolonnes; j++) 19 I[i][j]=0; Question 4.2 : Modifier le programme pour construire la matrice carrée identité I (tous les éléments de la diagonale sont égaux à 1, les autres valent 0). Demander seulement une dimension (matrice carrée). Même initialisation, puis 1 for (i=0; i< nblignes ; i++) I[i][i]=1; 4 } Question 4. : Écrire une fonction qui calcule la trace d une matrice carrée, c est-à-dire la somme des coefficients diagonaux de cette matrice. 1 int trace(int ** A, int n) int i; 4 int tr = 0; 5 for (i=0 ; i<n ; i++) 6 tr += A[i][i]; 7 8 return tr; 9 } 118

11 Département informatique Question 4.4 : Écrire une fonction qui teste si un élément x appartient à une matrice A. 1 int appartenance(int ** A, int nblignes, int nbcolonnes, int x) int i; 4 int j; 5 for (i=0; i< nblignes ; i++) 6 for (j=0; j<nbcolonnes; j++) 7 if (A[i][j] == x) 8 return 1; 9 return 0; 10 } Question 4.5 : Écrire une fonction qui permute deux colonnes d une matrice. 1 void permutationcolonnes(int **A, int nblignes, int k, int l) int i=0; 4 int tempo; 5 while (i<nblignes) 6 { 7 tempo=a[i][k]; 8 A[i][k] = A[i][l]; 9 A[i][l] = tempo; 10 i++; 11 } 12 } Question 4.6 : Écrire une fonction qui permute deux lignes d une matrice. 1 void permutationlignes(int **A, int k, int l) int * tmp; 4 tmp = A[k]; 5 A[k] = A[l]; 6 A[l] = tmp; 7 } Question 4.7 : Écrire une fonction qui remplace dans une matrice A toutes les occurrences de x par y. 1 int remplace(int ** A, int nblignes, int nbcolonnes, int x, int y) int i, j; 4 for (i=0, i< nblignes, i++) 5 for (j=0, j<nbcolonnes, j++) 6 if (A[i][j] == x) 7 A[i][j] = y; 8 } 119

12 IUT de Villetaneuse Exercice 5 : Addition de matrices*** Le but de cet exercice est de permettre l addition de matrices de flottants, ainsi que la lecture et l écriture de matrices dans des fichiers. Question 5.1 : Définir le type structuré matrice comportant le nombre de lignes, le nombre de colonnes et un pointeur sur un tableau 2D de double. 1 typedef struct int n; 4 int m; 5 double ** t; 6 } matrice; Question 5.2 : Définir la fonction creer prenant en paramètre un nombre de lignes et un nombre de colonnes et retournant une matrice de flottants allouée dynamiquement. 1 matrice creer(int n, int m) matrice tmp; 4 tmp.n = n; 5 tmp.m = m; 6 tmp.t = malloc(sizeof(double*) * tmp.n); 7 if (tmp.t == NULL) 8 exit (1); 9 10 int i; 11 for (i = 0 ; i < tmp.n ; i++) 1 1 tmp.t[i] = malloc(sizeof(double) * tmp.m); 14 if (tmp.t[i] == NULL) 15 exit (1); 16 } 17 return tmp; 18 } Question 5. : Définir la fonction libere prenant en paramètre une matrice allouée et libérant la mémoire prise par cette matrice. 1 void libere (matrice m) int i; 4 for (i = 0 ; i < m.n ; i++) 5 free (m.t[i]); 6 free (m.t); 7 } Question 5.4 : Définir la fonction creeravecfichier prenant en paramètre un nom de fichier. Cette fonction ouvrira le fichier dont le nom est passé en paramètre. Ce fichier doit contenir le 120

13 Département informatique nombre de lignes, le nombre de colonnes ainsi que les valeurs d une matrice. La fonction utilisera ces informations pour allouer dynamiquement une matrice et l initialiser avec les valeurs du fichier. La fonction retournera la matrice ainsi créée. 1 matrice creeravecfichier (char nomf[]) FILE * f = fopen(nomf,"rt"); 4 if (f == NULL) 5 { 6 printf ("Problème lors de l ouverture du fichier %s\n",nomf); 7 exit (1); 8 } 9 int i,j; 10 fscanf (f,"%d",&i); 11 fscanf (f,"%d",&j); 12 matrice tmp = creer(i,j); 1 14 for (i = 0 ; i < tmp.n ; i++) 15 for (j = 0 ; j < tmp.m ; j++) 16 fscanf (f,"%lf",&(tmp.t[i][j])); 17 fclose (f); 18 return tmp; 19 } Question 5.5 : Définir la fonction ecrirematrice prenant en paramètre une matrice et un nom de fichier et écrivant dans ce fichier les informations de la matrice. 1 void ecrirematrice (char nomf[], matrice m) FILE * f = fopen(nomf,"wt"); 4 if (f == NULL) 5 exit (1); 6 fprintf (f,"%d\n%d\n",m.n,m.m); 7 int i,j; 8 for (i = 0 ; i < m.n ; i++) 9 for (j = 0 ; j < m.m ; j++) 10 fprintf (f,"%lf",m.t[i][j]); 11 fclose (f); 12 } Question 5.6 : Écrire une fonction addition qui prend en paramètre deux matrices et retourne une matrice correspondant à la somme des deux matrices. 1 matrice addition (matrice a, matrice b) if (a.n!= b.n a.m!= b.m) 4 { 5 printf ("Addition impossible\n"); 6 exit (1); 7 } 8 matrice res = creer(a.n,a.m); 9 int i,j; 10 for (i = 0 ; i < a.n ; i++) 121

14 IUT de Villetaneuse 11 for (j = 0 ; j < a.m ; j++) 12 res.t[i][j] = a.t[i][j] + b.t[i][j]; 1 return res; 14 } Question 5.7 : Écrire un programme principal permettant de créer deux matrices à partir des fichiers de données mat1.txt et mat2.txt, de calculer la somme de ces deux matrices et d écrire ce résultat dans le fichier mat.txt. Les matrices seront également affichées à l écran. 1 int main() matrice a,b; 4 a = creeravecfichier ("mat1.txt"); 5 b = creeravecfichier ("mat2.txt"); 6 matrice c = addition(a,b); 7 8 printf ("MATRICE A :\n"); 9 affiche (a); printf ("MATRICE B :\n"); 12 affiche (a); 1 14 printf ("MATRICE A+B :\n"); 15 affiche (c); ecrirematrice ("mat.txt",c); 18 libere (a); 19 libere (b); 20 libere (c); return 0; 2 } Exercice 6 : Carré magique*** Un tableau 2D carré est dit magique si la somme d une ligne, d une colonne ou d une diagonale quelconque est toujours égale au même nombre. Voici un exemple de carré magique : Question 6.1 : Définir une fonction qui vérifie si un carré passé en paramètre est magique. 1 int carre_magique(int **tab, int n) int i,j; 4 5 //Première diagonale 6 int somme = 0; 7 for (i = 0 ; i < n ; i++) 8 somme += tab [i][i]; 9 122

15 Département informatique 10 //Deuxième diagonale 11 int tmp = 0; 12 for (i = 0 ; i < n ; i++) 1 tmp += tab[n-1-i][i]; 14 if (tmp!= somme) 15 return 0; for (i = 0 ; i < n ; i++) 18 { 19 //Calcul de la somme de la ième ligne 20 tmp = 0; 21 for (j = 0 ; j < n ; j++) 22 tmp += tab[i][j]; 2 if (tmp!= somme) 24 return 0; 25 } for (j = 0 ; j < n ; j++) 28 { 29 //Calcul de la somme de la jème colonne 0 tmp = 0 ; 1 for (i = 0 ; i < n ; i++) 2 tmp += tab[i][j]; if (tmp!= somme) 4 return 0; 5 } 6 return 1; 7 } Question 6.2 : Écrire un programme demandant à l utilisateur de saisir un carré (avec uniquement des nombres positifs ou nuls) et affichant si ce carré est magique. 1 int ** creer(int n) int ** tmp = malloc(sizeof(int*) * n); 4 if (tmp == NULL) 5 exit (1); 6 7 int i; 8 for (i = 0 ; i < n ; i++) 9 { 10 tmp[i] = malloc(sizeof(int) * n); 11 if (tmp[i] == NULL) 12 exit (1); 1 } int j; 16 for (i = 0 ; i < n ; i++) 17 for (j = 0 ; j < n ; j++) 18 { 19 do 20 { 21 printf ("valeur de M[%d][%d]? ",i,j); 22 scanf("%d",&tmp[i][j]); 2 } 24 while (tmp[i][j] < 0); 12

16 IUT de Villetaneuse 25 } 26 return tmp; 27 } int main() 0 { 1 printf ("Taille? "); 2 int n; scanf("%d",&n); 4 int ** t = creer(n); 5 if (carre_magique(t,n)) 6 printf ("Le carré est magique!\n"); 7 else 8 printf ("Le carré n est pas magique...\n"); 9 return 0; 40 } 124

Programmation : Exercices

Programmation : Exercices Programmation : Exercices IUT de Villetaneuse R&T 1 ère année Laure Petrucci 6 novembre 2007 1 Premiers programmes Exercice 1.1 : Machine à dessiner On souhaite écrire un programme pour afficher des dessins.

Plus en détail

3 Lien entre pointeurs et tableaux.

3 Lien entre pointeurs et tableaux. programme sont dit dynamiques. On se limite ici aux tableaux statiques à une seule dimension, analogue aux vecteurs manipulés en mathématiques. Ils se déclarent sous la forme : type_d_élément variable_tableau[taille];

Plus en détail

Langage C notes de cours

Langage C notes de cours Langage C notes de cours K. El Omari IUT GTE, UPPA 1 Présentation générale 1.1 Introduction La programmation par le langage C (ainsi que par d autres langages dit compilés) est basée sur : 1. la rédaction

Plus en détail

Comment bien déclarer et utiliser en C un tableau de dimension 2 (matrice)

Comment bien déclarer et utiliser en C un tableau de dimension 2 (matrice) Comment bien déclarer et utiliser en C un tableau de dimension 2 (matrice) #include #include #define NDIM1 3 #define NDIM2 5 // pour printf, puts, putchar // pour malloc, free // par

Plus en détail

Tableaux et boucle For

Tableaux et boucle For Tableaux et boucle For Pierre-Alain FOUQUE Département d Informatique École normale supérieure Plan 1 -Tableaux 2 -Boucles for 3 -Paramètres sur la ligne de commande 2 Limite des types de base Définir

Plus en détail

L1 Informatique Université Paris 8-2010-2011 Programmation Impérative I Rim Chaabane rchaabane@ai.univ-paris8.fr - Cours 6 - Les pointeurs

L1 Informatique Université Paris 8-2010-2011 Programmation Impérative I Rim Chaabane rchaabane@ai.univ-paris8.fr - Cours 6 - Les pointeurs Les pointeurs Le langage C permet de manipuler des adresses d objets ou de fonctions par le biais de pointeurs. Pour ce faire on peut désigner des variables dites de type pointeur, destinées à contenir

Plus en détail

IN3T01 Programmation C TP 2 corrigé Jean-Claude Georges - Michel Landschoot

IN3T01 Programmation C TP 2 corrigé Jean-Claude Georges - Michel Landschoot ESIEE 2011 2012 IN3T01 Programmation C TP 2 corrigé Jean-Claude Georges - Michel Landschoot PARTIE 1: LES FONCTIONS ET LES POINTEURS fichier fonctions.h #ifndef _FONCTION_H_ #define _FONCTION_H_ #include

Plus en détail

INF 201 - TP 2 - Programmation C T. Grandpierre 12/2008

INF 201 - TP 2 - Programmation C T. Grandpierre 12/2008 INF 201 - TP 2 - Programmation C T. Grandpierre 12/2008 Ce qu il faut rendre : A la fin du TP il faudra archiver et compresser l ensemble de votre travail (y compris le rapport avec vos noms) avec la commande

Plus en détail

TD2. EXERCICE 1: Etoiles Écrire un programme qui affiche à l écran 10 étoiles sous la forme suivante:

TD2. EXERCICE 1: Etoiles Écrire un programme qui affiche à l écran 10 étoiles sous la forme suivante: TD2 EXERCICE 1: Etoiles Écrire un programme qui affiche à l écran 10 étoiles sous la forme suivante: * * * * etc.... ************************ Correction Exercice 1 ************************ void exercice1()

Plus en détail

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes ISMIN 1A Programmation 1 : Examen de programmation C Réponses Partie 1. Questions ouvertes 1. Soit la déclaration suivante, char tab[] = "". Que contient le tableau tab? Réponse : tab[0] = \0. tab est

Plus en détail

Organisation des données et structures de stockage

Organisation des données et structures de stockage ING2 - ING3 Nvx 2009-2010 Organisation des données et structures de stockage I. Stockage de l information en C Ce chapitre rappelle brièvement et complète certaines notions de base vues en première année

Plus en détail

1 Pointeurs, références, alias et tableaux

1 Pointeurs, références, alias et tableaux 1 Pointeurs, références, alias et tableaux 1 1.1 Définitions Un pointeur est une variable contenant l'adresse d'un objet en mémoire. Un pointeur est déni par le couple (type, adresse) de l'objet pointé.

Plus en détail

VII- Enumérations dans l ordre alphabétique

VII- Enumérations dans l ordre alphabétique VII- Enumérations dans l ordre alphabétique Prenons un dictionnaire. Comment savoir si un mot se trouve avant ou après un autre? On commence par comparer la première lettre de ces deux mots. Si elles sont

Plus en détail

C, seconde séance. le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de:

C, seconde séance. le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de: C, seconde séance le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de: false, c est 0 ( \0 aussi) test d égalité: == pour printf: %d entier, %f flottant, %c caractère,

Plus en détail

LIF 1 TP 3 : Passage de paramètres / Tableaux 1D

LIF 1 TP 3 : Passage de paramètres / Tableaux 1D LIF 1 TP 3 : Passage de paramètres / Tableaux 1D Objectifs : Traduction d algorithmes en langage C Mode de passage des paramètres : données, données/résultats (cas particulier des tableaux). Utilisation

Plus en détail

Introduction au langage C - types et variables

Introduction au langage C - types et variables Chapitre 2 Introduction au langage C - types et variables 1 Le Langage C Le langage C est un langage de bas niveau dans le sens où il permet l accès à des données que manipulent les ordinateurs (bits,

Plus en détail

Cours Langage C. Passage de paramètres à la fonction main Pointeur de fonction Allocation dynamique

Cours Langage C. Passage de paramètres à la fonction main Pointeur de fonction Allocation dynamique Cours Langage C Passage de paramètres à la fonction main Pointeur de fonction Allocation dynamique I Passage de paramètres à la fonction main Tout exécutable C doit comporter une fonction main dont le

Plus en détail

} 7 Variables (composantes)

} 7 Variables (composantes) Chapitre 4 Tableaux Jusqu ici, nous avons employé les variables pour stocker les valeurs individuelles de types primitifs : une variable de type int pour stocker un entier, une variable de type boolean

Plus en détail

Les sous-programmes : exercices résolus en C Corrigé

Les sous-programmes : exercices résolus en C Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Exercices résolus en C, Semaine 3 avril mai 2013 Corrigé Objectifs Savoir écrire des sous-programmes ; Comprendre les modes de passage de paramètres ; Faire la

Plus en détail

Université Paris 7 IUP2 Année 2004-2005. Structures de contrôle. Exercice 1 Ecrire et sauvegarder le programme suivant sous le nom premiers_pas.

Université Paris 7 IUP2 Année 2004-2005. Structures de contrôle. Exercice 1 Ecrire et sauvegarder le programme suivant sous le nom premiers_pas. Université Paris 7 C IUP2 Année 2004-2005 TD n 1 - Correction Structures de contrôle Exercice 1 Ecrire et sauvegarder le programme suivant sous le nom premiers_pas.c : int main(void) { int resultat ; int

Plus en détail

Complément du cours Langage C

Complément du cours Langage C Complément du cours Langage C Licence Fondamentale SMI (semestre 3) Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2013/2014 2013/2014 Pr. Ben Mamoun 1 Chapitre 9 Types structures, unions

Plus en détail

TP Interface graphique et C++ numéro 1

TP Interface graphique et C++ numéro 1 TP Interface graphique et C++ numéro 1 Master IGC - 1 re année année 2010-2011 Ce premier TP a pour objectif de vous familiariser avec le compilateur C++, les entréessorties du langage et l utilisation

Plus en détail

Objectifs. Pointeurs et tableaux. Arithmétique des pointeurs et sizeof. sizeof. Exemple : liste chaînées. Cast. Débordement de tampons

Objectifs. Pointeurs et tableaux. Arithmétique des pointeurs et sizeof. sizeof. Exemple : liste chaînées. Cast. Débordement de tampons du cours d aujourd hui Programmation «orientée système» LANGAGE C POINTEURS (5/5) des pointeurs Complément (et mise en garde) sur Exemple pratique : listes Forçage de type (casting) Laboratoire d Intelligence

Plus en détail

Programmation parallèle en CUDA C

Programmation parallèle en CUDA C 4 Programmation parallèle en CUDA C Au chapitre précédent, nous avons vu qu il était très facile d écrire du code pour qu il s exécute sur le GPU. Nous avons même été jusqu à additionner les deux nombres

Plus en détail

Programmation Répartie - Langage C

Programmation Répartie - Langage C frederic.guinand@univ-lehavre.fr IUT Le Havre Plan les bases quelques rappels de langage C les structures de contrôle conditionnelles les structures de contrôle itératives les tableaux les pointeurs les

Plus en détail

Corrigé des exercices sur les fonctions (suite)

Corrigé des exercices sur les fonctions (suite) Corrigé des exercices sur les fonctions (suite) Exercice 5.2.1 somme des carrés Ecrire une fonction qui calcule la somme des n premiers carrés 1 2 +2 2 +...+n 2. class Exo9_1{ static int npremierscarres(int

Plus en détail

Informatique (Algorithmique et Langage C) TABLE DES MATIÈRES 1. Algorithme et organigramme 2

Informatique (Algorithmique et Langage C) TABLE DES MATIÈRES 1. Algorithme et organigramme 2 Licence 3 IST INFORMATIQUE Informatique (Algorithmique et Langage C) TABLE DES MATIÈRES 1. Algorithme et organigramme 2 1.1. Généralités 2 1.2. Principales structures algorithmiques 3 2. Le passage au

Plus en détail

Sujet d examen 1. Pratique du C. Novembre 2009

Sujet d examen 1. Pratique du C. Novembre 2009 Durée 1 h 30 Documents autorisés Sujet d examen 1 Pratique du C Novembre 2009 Introduction Écrivez lisiblement et n hésitez pas à commenter votre code en langage C. Vous ne pouvez utiliser que les fonctions

Plus en détail

Eléments du langage. Eléments du langage PHP. Variables. Variables

Eléments du langage. Eléments du langage PHP. Variables. Variables Eléments du langage Eléments du langage PHP Séparation des instructions Comme en C, C++, Perl, les instructions doivent être séparées par un point virgule. Les commentaires // Ceci est un commentaire sur

Plus en détail

Les matrices. 1 Définitions. 1.1 Matrice

Les matrices. 1 Définitions. 1.1 Matrice Les matrices 2012-2013 1 Définitions 11 Matrice Définition 1 Une matrice m n est un tableau de nombres à m lignes et n colonnes Les nombres qui composent la matrice sont appelés les éléments de la matrice

Plus en détail

Soutien Informatique

Soutien Informatique 1/51 Soutien Informatique Nicolas Castagné et François Portet PHELMA 2/51 Sommaire Allocation Mémoire Les types abstraits de données 3/51 Allocation dynamique de mémoire (stdlib.h,string.h) Réserver un

Plus en détail

MÉRÉ Aurélien FIIFO1. Pathfinder

MÉRÉ Aurélien FIIFO1. Pathfinder MÉRÉ Aurélien FIIFO1 AMC Pathfinder 1 Sommaire Préambule... 3 Modélisation de l espace... 4 Modélisation des cases δ, α... 4 Interface en mode texte... 5 Modélisation du robot... 8 1 ) Le type Robot...

Plus en détail

PLAN DU COURS ENTRÉE SORTIE FONCTION PRINTF. Fonction de la bibliothèque stdio.h. Affichage d'un texte:

PLAN DU COURS ENTRÉE SORTIE FONCTION PRINTF. Fonction de la bibliothèque stdio.h. Affichage d'un texte: PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, Tableaux, opérateurs Entrées sorties de base Structures de contrôle Algorithmes de recherche Algorithmes de

Plus en détail

TP1 - Introduction au langage C

TP1 - Introduction au langage C ENS Lyon L-Info PROJ1 2014-2015 TP1 - Introduction au langage C Sujet à terminer pour le dimanche 20 à 2h59, sous forme d une archive.zip contenant votre code source, par email à aurelien.cavelan@ens-lyon.fr.

Plus en détail

Travaux Pratiques en Dev C++ (1 GIM)

Travaux Pratiques en Dev C++ (1 GIM) Université Sidi Mohammed Ben Abdellah École Supérieure de Technologie de Fès Filière Génie Industriel et Maintenance Travaux Pratiques en Dev C++ (1 GIM) Mr KHATORY TABLE DE MATIERES PREMIERS PAS EN DEV

Plus en détail

Systèmes Informatiques TD 1: langage C entrées/sorties et la fonction main()

Systèmes Informatiques TD 1: langage C entrées/sorties et la fonction main() Systèmes Informatiques TD 1: langage C entrées/sorties et la fonction main() P. Bakowski bako@ieee.org Fonctions printf() et scanf() Les programmes en langages C ont besoin des fonctions qui permettent

Plus en détail

Traduction des arbres programmatiques en C

Traduction des arbres programmatiques en C Traduction des arbres programmatiques en C Table des matières 1 Premier exemple : helloworld.c 1 2 Méthode de programmation 2 3 Déclaration de variables 2 4 Structures de contrôle 3 5 Opérateurs C 5 6

Plus en détail

Programmation système : tampons

Programmation système : tampons Programmation système : tampons Juliusz Chroboczek 12 Octobre 2009 1 Tampons Le programme de copie décrit au cours précédent effectue deux appels système pour chaque octet copié ce qui est tragique. Une

Plus en détail

Procédures et fonctions

Procédures et fonctions Chapitre 5 Procédures et fonctions 5.1 Introduction Considérons le programme suivant, dont le but est d inverser les éléments d un tableau : public class InversionTableau1 { int t[]= {8, 2, 1, 23; Terminal.ecrireStringln("Tableau

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS 1. PRÉSENTATION. Le langage C a fait son apparition en 1972 pour le développement du système d exploitation Unix. Il est devenu un standard de la norme ANSI en 1983.

Plus en détail

IN 101 - Cours 05. 7 octobre 2011. Un problème concret Recherche de collisions

IN 101 - Cours 05. 7 octobre 2011. Un problème concret Recherche de collisions Un problème concret Recherche de collisions IN 101 - Cours 05 7 octobre 2011 Le paradoxe des anniversaires dit que 365 élèves sont suffisants (en moyenne) pour avoir une collision d anniversaire, deux

Plus en détail

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles GL / C++ Chapitre 7 Lien Dynamique Méthodes Virtuelles 1. Pointeur sur un objet d'une classe dérivée Considérons les classes écrites précédemment : Personne Etudiant // dérive de personne Salarie // dérive

Plus en détail

6. Lecture/écriture formatées et Fichiers. printf / scanf Fichier: Mémoire tampon Accès aux fichiers Modes d'ouverture Lecture / écriture

6. Lecture/écriture formatées et Fichiers. printf / scanf Fichier: Mémoire tampon Accès aux fichiers Modes d'ouverture Lecture / écriture 1 6. Lecture/écriture formatées et Fichiers printf / scanf Fichier: Mémoire tampon Accès aux fichiers Modes d'ouverture Lecture / écriture 2 Références Site du zèro : Programmer en C http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html

Plus en détail

Programmation C++ (débutant)/les tableaux statiques

Programmation C++ (débutant)/les tableaux statiques Programmation C++ (débutant)/les tableaux statiques 1 Programmation C++ (débutant)/les tableaux statiques Le cours du chapitre 6 : les tableaux statiques Les tableaux Une variable entière de type int ne

Plus en détail

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2010-2011 S. Kramm (IUT Rouen) MCII1 - Cours 3 2010-2011 1 / 47 Sommaire 1 Rappels de C et définitions

Plus en détail

Cours d informatique. 1 ère année 2014 2015

Cours d informatique. 1 ère année 2014 2015 Cours d informatique en Langage C è 1 ère année 2014 2015 L informatique à l IOGS 1A : Langage C : apprentissage d un langage de programmation structuré 3 séances Matlab : analyse numérique 2A : Langage

Plus en détail

Licence STIC, Semestre 1 Algorithmique & Programmation 1

Licence STIC, Semestre 1 Algorithmique & Programmation 1 Licence STIC, Semestre 1 Algorithmique & Programmation 1 Exercices Alexandre Tessier 1 Introduction 2 instruction de sortie 3 expressions 4 variable informatique 5 séquence d instructions, trace Exercice

Plus en détail

CHAPITRE 3 : Types de base, Opérateurs et Expressions

CHAPITRE 3 : Types de base, Opérateurs et Expressions CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que

Plus en détail

Chapitre 3 Tableaux à plusieurs dimensions

Chapitre 3 Tableaux à plusieurs dimensions Chapitre 3 Tableaux à plusieurs dimensions Pascal Lando Faculté de mathématiques et d informatique Amiens http://www.laria.u-picardie.fr/~lando pascal.lando@u-picardie.fr 19 février 2007 Plan du cours

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance 5 de cours/td Université Paris-Diderot Objectifs: Boucles while. Variables booléennes. 1 La boucle while Boucle non bornée [Cours] La boucle non bornée permet de

Plus en détail

Premiers exemples de traitements

Premiers exemples de traitements #include #include Premiers exemples de traitements void main() float b(0.0); float c(0.0); float delta(0.0); cin >> b >> c; delta = b*b - 4*c; if (delta < 0.0) cout

Plus en détail

Algorithmique et programmation : les bases (C) Corrigé

Algorithmique et programmation : les bases (C) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours C, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage C des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Cours de Programmation Impérative: Zones de mémoires et pointeurs Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien

Plus en détail

Examen Programmation ENSAE première année 2008 (rattrapage) Examen écrit (1 heure) Tous documents autorisés.

Examen Programmation ENSAE première année 2008 (rattrapage) Examen écrit (1 heure) Tous documents autorisés. Examen Programmation ENSAE première année 2008 (rattrapage) Examen écrit (1 heure) Tous documents autorisés. 1 0.0.1 Suite récurrente (Fibonacci) * Réécrire la fonction u de façon à ce qu elle ne soit

Plus en détail

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014 Langage C/C++ TD 3-4 : Création dynamique d objets Hubert Godfroy 7 novembre 014 1 Tableaux Question 1 : Écrire une fonction prenant un paramètre n et créant un tableau de taille n (contenant des entiers).

Plus en détail

Structures de Données et Algorithmes

Structures de Données et Algorithmes Structures de Données et Algorithmes Révision: structures de base en C Nadi Tomeh nadi.tomeh@lipn.univ-paris13.fr Licence 2 Informatique Institut Galilée, Université Paris 13, Sorbonne Paris Cité 18 septembre

Plus en détail

Langage C : Algorithmes + Programmation. Bastien Morier

Langage C : Algorithmes + Programmation. Bastien Morier Langage C : Algorithmes + Programmation Bastien Morier 2007/2008 Sommaire I. Introduction... 3 II. Analyse... 3 III. Variables... 3 IV. Règles d'écriture des variables et des constantes... 3 V. Opérateurs...

Plus en détail

Pointeurs et tableaux

Pointeurs et tableaux Pointeurs et tableaux Pointeur Tout mot (octet) de la mémoire est identifié par un numéro unique : son adresse mémoire On peut donc identifier toute zone mémoire servant au stockage d une variable par

Plus en détail

liblapin Documentation

liblapin Documentation liblapin Documentation Version 1.5 The liblapin Hackers 27 November 2015 Table des matières 1 Introduction 1 1.1 Exemples................................................. 1 2 Installation 3 2.1 Téléchargement.............................................

Plus en détail

Cours Langage C/C++ Mémoire et allocation dynamique

Cours Langage C/C++ Mémoire et allocation dynamique Cours Langage C/C++ Mémoire et allocation dynamique Thierry Vaira BTS IRIS Avignon tvaira@free.fr v0.1 La pile et le tas La mémoire La mémoire dans un ordinateur est une succession d octets (soit 8 bits),

Plus en détail

Travaux pratiques MPI Liste des exercices

Travaux pratiques MPI Liste des exercices Travaux pratiques MPI Liste des exercices 1 T.P. MPI Exercice 1 : Environnement MPI... 2 2 T.P. MPI Exercice 2 : Ping-pong... 3 3 T.P. MPI Exercice 3 : Communications collectives et réductions... 5 4 T.P.

Plus en détail

Apprendre à programmer

Apprendre à programmer La résolution des problèmes est traitée suivant le cycle de développement analyse conception codage. L analyse du problème conduit à la conception d un algorithme répondant aux exigences exprimées. Chaque

Plus en détail

Licence STPI Semestre 3 - Examen de Validation de Module - Janvier 2006 ULSI301 - LANGAGE C

Licence STPI Semestre 3 - Examen de Validation de Module - Janvier 2006 ULSI301 - LANGAGE C Licence STPI Semestre 3 - Examen de Validation de Module - Janvier 2006 ULSI301 - LANGAGE C Durée : 2h. - Documents et Calculatrices autorisés. Toutes les réponses doivent être justifiées - Les exercices

Plus en détail

TD 5 : Les piles. PC* - Lycée Thiers 2015/2016

TD 5 : Les piles. PC* - Lycée Thiers 2015/2016 2015/2016 Exercice 1 : Pile renversée Corrigé Consignes Pour tous les exercices de cette planche on aura préalablement écrit l implémentation des piles à capacité limitée ou illimitée vue en cours, et

Plus en détail

Algorithme et Programmation

Algorithme et Programmation Année universitaire 2009-2010 Algorithme et Programmation Sujets des Travaux Dirigés et des Travaux pratiques 2 ème année INSA MIC 2 ème année INSA MIC Année universitaire 2009-2010 Algorithme et Programmation

Plus en détail

Introduction au langage

Introduction au langage Introduction au langage Un langage de programmation : de haut niveau interprété orienté objet si on le souhaite rapide à écrire et proche du pseudo-code simple tant qu on fait des choses simples Un programme

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance 7 de cours/td Université Paris-Diderot Objectifs: Savoir écrire un programme en entier (structure du programme avec une procédure main et des déclarations de fonctions,

Plus en détail

LANGAGE C. Exercices corrigés 1

LANGAGE C. Exercices corrigés 1 LANGAGE C Exercices corrigés 1 TP1 Exercice 1 : Ecrire un programme qui lit un caractère au clavier et affiche le caractère ainsi que son code numérique en employant getchar et printf, int C ; printf("introduire

Plus en détail

Algorithmique et Structures de Données

Algorithmique et Structures de Données 1.1 Algorithmique et Structures de Données Jean-Charles Régin Licence Informatique 2ème année 1.2 Itérations Jean-Charles Régin Licence Informatique 2ème année Itération : définition 3 En informatique,

Plus en détail

Normes de programmation en langage C++

Normes de programmation en langage C++ Normes de programmation en langage C++ Bakhtouchi Abdelghani EMP, Bordj El Bahri bakhtouchi@yahoo.fr ANNEE: 2009/2010 Sommaire 1. Introduction.. 1 2. Présentation.. 1 2.1. Format des fichiers source. 1

Plus en détail

Travaux Pratiques d Informatique 1

Travaux Pratiques d Informatique 1 Faculté Polytechnique de Mons Service d Informatique Travaux Pratiques d Informatique 1 par Mohammed BENJELLOUN Avec la participation de : J-F Bauwens, Assistant S. Mahmoudi, Assistant E. Malengreau, Assistante

Plus en détail

JAVA. Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail.

JAVA. Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail. JAVA Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail.com Historique JAVA est issu d'un projet de recherche chez SUN (fin

Plus en détail

INFO-F-302 : Logique informatique Projet : Le Jeu ABCPath et Utilisation d un Solveur SAT

INFO-F-302 : Logique informatique Projet : Le Jeu ABCPath et Utilisation d un Solveur SAT UNIVERSITE LIBRE DE BRUXELLES INFO-F-302 : Logique informatique Projet : Le Jeu ABCPath et Utilisation d un Solveur SAT L objectif de ce projet est de modéliser plusieurs problèmes en logique propositionnelle

Plus en détail

Examen de Langage C Vendredi 2 Décembre 2011

Examen de Langage C Vendredi 2 Décembre 2011 Année 2011-2012 Examen de Langage C Vendredi 2 Décembre 2011 Promotion Guichet 1 ière année É. Salvat Modalités : Durée : 2 heures Seul document autorisé : carte de référence du C, pas de machine à calculer,

Plus en détail

Initiation à la programmation

Initiation à la programmation Initiation à la programmation 1 re partie Ce cours est largement inspiré de "Informatique et sciences du numérique"-gilles DOWEK(Eyrolles) Nous avons vu, par ailleurs, qu un ordinateur peut effectuer des

Plus en détail

Introduction à Matlab

Introduction à Matlab Introduction à Matlab Nicolas Kielbasiewicz 30 juillet 2007 Matlab est un logiciel payant développé par MathWorks sous Windows, Linux et Mac, et dédié au calcul numérique, ainsi qu au problèmes de commande.

Plus en détail

TP2 : instabilités numériques

TP2 : instabilités numériques TP2 : instabilités numériques Pensez à structurer l implémentation, à mettre des commentaires et à passer les arguments par référence en les protégeant (const) si besoin. On se propose de tester la méthode

Plus en détail

Informatique Chapitre 4: Types et typages

Informatique Chapitre 4: Types et typages Informatique Chapitre 4: Types et typages Booléens et listes Jérôme DIDIER 8/10/2014 Objectifs du cours Compétences visées Savoir que les variables peuvent avoir plusieurs types et les connaitre ; Type

Plus en détail

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau Plan Tableaux Université de Nice - Sophia Antipolis Richard Grin Version 1.0.4 25/11/10 Définition Déclaration d un tableau Création d un tableau Utilisation d un dun tableau Tableau des paramètres de

Plus en détail

TP 8 : Arbres binaires de recherche

TP 8 : Arbres binaires de recherche TP 8 : Arbres binaires de recherche Semaine du 17 Mars 2008 Exercice 1 Dénir une structure struct noeud_s permettant de coder un n ud d'un arbre binaire contenant une valeur entière. Ajouter des typedef

Plus en détail

Tableaux dynamiques avec vector

Tableaux dynamiques avec vector Tableaux dynamiques avec vector Tableaux statiques Les tableaux que nous avons vus jusqu'ici sont des tableaux statiques: int tab[3]; Cette forme de tableaux vient du langage C, et est encore très utilisée.

Plus en détail

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs)

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs) Année Universitaire 2006/2007 CHAPITRE 6 : Tableaux Définition Tableaux à une dimension (Vecteurs) Déclaration ; Mémorisation M ; Tableaux à plusieurs dimensions Déclaration Tableaux à deux dimensions

Plus en détail

Université des Antilles et de la Guyane Département Scientifique Interfacultaire Corrigé Examen INFO1 Informatique

Université des Antilles et de la Guyane Département Scientifique Interfacultaire Corrigé Examen INFO1 Informatique Université des Antilles et de la Guyane Département Scientifique Interfacultaire Corrigé Examen INFO1 Informatique Le corrigé propose une des réponses possibles aux problèmes posés. Le but de l'examen

Plus en détail

ULCO-L1-Algo1-CM : Initiation à l algorithmique avec le langage C++

ULCO-L1-Algo1-CM : Initiation à l algorithmique avec le langage C++ ULCO-L1-Algo1-CM : Initiation à l algorithmique avec le langage C++ Table des matières 1 Généralités 3 1.1 Définitions/Glossaire....................................... 3 1.2 Exemples d algorithmes de la

Plus en détail

Manipulations 2 Types agrégés : les tableaux en C... 2 Conteneur : les tableaux en C++... 7 Synonyme de type... 9

Manipulations 2 Types agrégés : les tableaux en C... 2 Conteneur : les tableaux en C++... 7 Synonyme de type... 9 TP Développement n 4 2012 tv - v.1.0 Sommaire Manipulations 2 Types agrégés : les tableaux en C.................................. 2 Conteneur : les tableaux en C++..................................

Plus en détail

Petit résumé pour IFT1166

Petit résumé pour IFT1166 Petit résumé pour IFT1166 C est un langage populaire (cours IFT 1810, IFT 1160). JAVA (IFT 1870, IFT 1170, IFT 1176) utilise surtout la syntaxe du C++. De plus, Java est un langage purement orienté objet.

Plus en détail

Entrée et sortie standards (stdin,stdout et cin,cout)

Entrée et sortie standards (stdin,stdout et cin,cout) Chapitre 4 Entrée et sortie standards (stdin,stdout et cin,cout) Pour réaliser les opérations élémentaires d écriture sur l écran ou de lecture des informations du clavier, le C utilise un ensemble de

Plus en détail

Travaux pratiques de M2105 Web dynamique

Travaux pratiques de M2105 Web dynamique Travaux pratiques de M2105 Web dynamique L objectif des séances de TP du module M2105 est de créer un mini site web d annuaire permettant à différents utilisateurs de gérer leurs contacts. Les informations

Plus en détail

LO43 : Bases fondamentales de la programmation orientée objet

LO43 : Bases fondamentales de la programmation orientée objet LO43 : Bases fondamentales de la programmation orientée objet Langage C++ Franck GECHTER franck.gechter@utbm.fr Template La Conception Orientée Objet, Liaison Statique et Liaison Dynamique Template La

Plus en détail

L3 Info & Miage. TP-Projet SGF

L3 Info & Miage. TP-Projet SGF TP-Projet SGF 1. Introduction L objectif de ce mini-projet est de réaliser un Système de Gestion de Fichiers simplifié capable de gérer des accès à des fichiers séquentiels de type flot. L idée est ici

Plus en détail

UNIVERSITÉ PARIS OUEST NANTERRE LA DÉFENSE U.F.R. SEGMI Année universitaire 2013 2014 MATHS/STATS. Solution des exercices d algèbre linéaire

UNIVERSITÉ PARIS OUEST NANTERRE LA DÉFENSE U.F.R. SEGMI Année universitaire 2013 2014 MATHS/STATS. Solution des exercices d algèbre linéaire UNIVERSITÉ PARIS OUEST NANTERRE LA DÉFENSE U.F.R. SEGMI Année universitaire 3 4 Master d économie Cours de M. Desgraupes MATHS/STATS Document : Solution des exercices d algèbre linéaire Table des matières

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Période 3 Les tableaux

Période 3 Les tableaux Département Génie Électrique et Informatique Industrielle Période 3 Les tableaux 1/ Recopie de certains éléments d un tableau Soit les déclarations suivantes : int Tabint[10]={65,21, 9,23, 1,32,5, 69,12,

Plus en détail

Travaux pratiques 9 : Qu y a-t-il au menu?

Travaux pratiques 9 : Qu y a-t-il au menu? Université Paris-Nord L1 Institut Galilée Année 2009-2010 Licence 1-1er semestre Travaux pratiques 9 : Qu y a-t-il au menu? Correction. Note aux chargés de TD. L objectif du TP est de les familiariser

Plus en détail

Série d exercices N 9 Arbres

Série d exercices N 9 Arbres Série d exercices N 9 Arbres Exercice 1 a) Ecrire une fonction ARBIN creerarbreentiers() qui permet de créer et de renvoyer l arbre d entiers suivant : b) Ecrire une fonction int feuilles(arbin a) qui

Plus en détail

I Quelques points d'algorithmique

I Quelques points d'algorithmique I Quelques points d'algorithmique 1) Types Type "simple" : Identificateur commençant par une majuscule = Description du type Les principaux types : les entiers naturels (int, long, long long) ou relatifs

Plus en détail

Matrices et déterminants

Matrices et déterminants Matrices et déterminants Matrices Définition.. Une matrice réelle (ou complexe) M = (m i,j ) (m, n) à m lignes et n colonnes est un tableau à m lignes et n colonnes de réels (ou de complexes). Le coefficient

Plus en détail

Algorithmique et Structures de Données

Algorithmique et Structures de Données Plan du cours Algorithmique et Structures de Données Akkouche Samir : E-mail : samir.akkouche@liris.cnrs.fr Knibbe Carole: E-mail : carole.knibbe@univ-lyon1.fr 1. Rappels 2. Tableaux dynamiques a. Introduction

Plus en détail

Le problème des multiplications matricielles enchaînées peut être énoncé comme suit : étant

Le problème des multiplications matricielles enchaînées peut être énoncé comme suit : étant Licence informatique - L Année 0/0 Conception d algorithmes et applications (LI) COURS Résumé. Dans cette cinquième séance, nous continuons l exploration des algorithmes de type Programmation Dynamique.

Plus en détail