- c=1 : en effet, on passe l adresse de c et non la valeur. */ void somme(int x, int y, int S) { S=x+y; void produit(int x, int y) {

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

Download "- c=1 : en effet, on passe l adresse de c et non la valeur. */ void somme(int x, int y, int S) { S=x+y; void produit(int x, int y) {"

Transcription

1 Université Mohamed 1 er Année 2011/2012 Ecole Nationale des Sciences Appliquées Filière STPI Oujda Niveau CP2, Semestre 1 Prof. E.M. DAOUDI Cours programmation en Langage C Liste d exercices avec correction : N 3 Très important : Il faut implémenter les programmes proposés pour les tester et éventuellement les corriger. Exercice 1: Donner les résultats d exécution du programme C suivant, justifier vos réponses : void somme(int, int, int); void produit(int, int); void difference(int, int, int *); int S,P; main(){ int x=8, y=7, c; somme(x,y,s); printf(" S= %d \n ",S); /* Solution : - S=0 : en effet dans la procédure somme() on passe la valeur et non l adresse de S. */ produit(x,y) ; printf(" P= %d S= %d \n ",P,S); /* Solution : P= 0 S=15. - P=0 : en effet, il n a y pas de relation entre la variable globale P, et la variable P déclarée localement dans la procédure produit(). Comme P est une variable globale alors elle est initialisée à 0 par défaut. - S=15 : En effet, la variable S utilisé dans la procédure produit() c est la variable globale S. Puisque sa valeur est modifiée dans la procédure produit(), cette modification est prise en compte. */ difference(x,y,&c) ; printf(" c= %d \n",c); /* Solution : - c=1 : en effet, on passe l adresse de c et non la valeur. */ void somme(int x, int y, int S) { S=x+y; void produit(int x, int y) { int P; P=x*y; S=x+y;

2 void difference(int x, int y, int *z) { *z=x-y ; Exercice 2: Quelles sont les valeurs affichées par les fonctions printf() dans le programme suivant : int n, k ; void fonction_test(int, int * ); int k=1, x=2, j; printf(" k= %d n= %d x= %d j= %d \n ", k, n, x, j); /* Solution: k= 1, n= 0, x= 2, j= k=1: en effet, k est une variable locale initialisée à 1. - n=0: Puisque n est une variable globale, elle est initialisée par défaut à 0 - x=2 : en effet, x est une variable locale initialisée à 2. - j= : en effet, j est une variable locale non initialisée, elle prend une valeur quelconque. */ fonction_test(x, &j); printf(" k= %d n= %d x= %d j= %d \n ", k, n, x, j); /* Solution: k= 1, n= 5, x= 2, j= 10 - k=1: en effet, k est une variable locale initialisée à 1. Attention: Ne pas la confondre avec la variable globale k utilisée dans la procédure fonction_test(). - n=5: en effet, n est une variable globale. Puisque elle est modifiée dans la procédure. Cette modification est prise en compte après la sortie de la procédure. - x=2 : en effet, x est une variable locale initialisée à 2. Dans l appel la procédure fonction_test(), on passe la valeur et non l adresse de x. - j= 10: en effet, dans l appel de la procédure fonction_test(), on passe l adresse de j (passage par adresse), donc toute modification de j dans la procédure, elle sera prise en compte à la sortie de la procédure. */ void fonction_test(int x, int *j) { int i=3; n=x+i; k=8; x=x+k; *j=x;

3 Exercice 3 : Soit T un tableau de N éléments de type int. 1. Ecrire un programme qui calcule le nombre d éléments pairs, le nombre d éléments impairs et le nombre d éléments égaux à 0, du tableau T. 2. Refaire la question 1 en utilisant une procédure. Solution : /* Question 1. */ #define N 100 int n,i; /* n désigne la taille réelle du tableau. i est une variable de travail */ int nbp=0, nbip=0, nbz=0; /* nbz : désigne le nombre d éléments nuls */ nbp : désigne le nombre d éléments pairs nbip : désigne le nombre d éléments impairs int Tab[N]; /* saisir la taille et les éléments du tableau Tab */ printf("entrer la taille reelle du tableau : "); for(i=0; i<n; i++) { printf("entrer Tab[%d] : ", i); /* affiche : Entrer Tab[i] */ scanf("%d", &Tab[i]); for(i=0;i<n;i++) { /* On parcourt tous les éléments du tableau Tab */ if(tab[i]==0) /* On teste si l élément courant est nul */ nbz++; /* On incrémente le nombre de zéro par 1*/ else if(tab[i]%2==0) /* On teste si l élément courant est pair */ nbp++; else /* Sinon, l élément courant est impair */ nbip++; printf("le nombre de zeros est : %d \n",nbz); printf("le nombre d elements pairs est : %d \n",nbp); printf("le nombre d elements impairs : %d \n",nbip); /* Question 2 : */ #define N 100 void pair_impair(int *, int, int *, int *, int *); /* Déclaration de la procédure */

4 int n, i; int nbp=0,nbip=0,nbz=0; int Tab[N]; printf("entrer la taille reelle du tableau : "); for(i=0; i<n; i++) { printf("entrer Tab[%d] : ", i); scanf("%d", &Tab[i]); pair_impair(tab, n, &nbp, &nbip, &nbz); /* Appel de la procédure */ printf("le nombre de zeros : %d \n",nbz); printf("le nombre d elements pairs : %d \n",nbp); printf("le nombre d elements impairs : %d \n",nbip); void pair_impair(int T[], int n, int *pp, int *ip, int *nz) { for(i=0; i<n; i++) { if(t[i]==0) *nz=*nz+1; else if(t[i]%2==0) *pp=*pp+1; else *ip=*ip+1; Exercice 4 : Soit T un tableau de n éléments triés par ordre croissant. 1. Ecrire une procédure qui insère (ajoute) un élément dans le tableau en préservant l'ordre des éléments du tableau. 2. Ecrire une procédure qui effectue la suppression d'un élément du tableau. 3. Ecrire une fonction non récursive qui détermine la position dans le tableau T d un élément donné. Solution: Question 1: /* le but est de rajouter dans un tableau trié une valeur donnée. Pour préserver l ordre, on doit tout d abord, chercher la position pour insérer la valeur x. */

5 int cherche_position(int T[],int n, int x) { int pos; pos=0; while ((T[pos]<x) && (pos!=n)) return pos; pos=pos+1; /* La procédure insertion () suivante, permet d insérer une valeur x en préservant l ordre des éléments du tableau. Remarque 1 : On doit tout d abord chercher la position «pos» dans la quelle on insère x, et ensuite effectue l insertion de x. Remarque2 : On doit faire un décalage vers la droite à partir de la position «pos». Remarque 3 : La taille du tableau augmente de 1 puisque on rajoute un élément dans le tableau. Remarque 4 : Il faut faire les tests de validité : si n=n, on ne peut pas rajouter d éléments dans le tableau : N est la taille maximale. */ void insertion(int T[], int *n, int x) { int j; int pos; /*Appel de la fonction cherche_position() pour déterminer la position d insertion de x */ pos= cherche_position(t,*n, x) ; if (pos==*n) /* Pas besoin de faire le décalage*/ T[*n]=x; /* On insère en fin du tableau : en position */ else{ /* On doit faire un décalage vers la droite de la manière suivante: */ Question 2: /* T[n] =T[n-1], T[n-1] =T[n-2],, T[pos+1] =T[pos ] */ for (j=*n; j>pos; j--) T[j]=T[j-1]; T[pos]=x; /* après le décalage, on insère x à sa position dans le tableau */ *n=*n+1; /* puisque on a rajouter un élément, la taille augmente de 1 */ /* la procédure supression () suivante permet de supprimer un élément d une position «pos» donnée Remarque 1 : Pour ne pas laisser une case vide dans le tableau, on doit faire un décalage vers la gauche des éléments du tableau à partir de la position «pos» de la manière suivante : T[pos]=T[pos+1], T[pos+1]=T[pos+2],., T[n-2]=T[n-1];

6 Remarque 2 : Puisque on supprime un élément, la taille du tableau doit diminuer de 1 */ void supression(int T[],int *n, int pos ) { int j; for (j=pos; j<*n-1; j++) { T[j]=T[j+1]; *n=*n-1; Question 3 : /* La fonction cherche_position () permet de chercher la position d une valeur donnée x. si x existe dans le tableau, il donne sa position si non, il donne la position d insertion de la valeur x */ int cherche_position(int T[],int n, int x) { int pos; pos=0; while ((T[pos]<x) && (pos!=n)) return pos; pos = pos+1; Un Programme complet : Exemple d utilisation #define N 100 int cherche_position(int *,int,int ); void insertion(int *, int *, int); void supression(int *,int *, int ); int n,pos; int i,x; int Tab[N]; printf("entrer la taille reelle du tableau : "); for(i=0; i<n; i++) { printf("entrer Tab[%d] : ",i); scanf("%d",&tab[i]); printf("entrer l'element à rajouter dans le tableau : "); scanf("%d",&x);

7 insertion(tab,&n,x); /* Affichage pour tests */ for(i=0;i<n;i++) { printf(" Tab[%d] = %d : \n",i,tab[i]); printf("entrer la position de l element a supprimer : "); scanf("%d",&pos); supression(tab,&n,pos ); /* Affichage pour tests */ for(i=0;i<n;i++) { printf(" Tab[%d] = %d : \n",i,tab[i]); int cherche_position(int T[],int n, int x) { int pos; pos=0; while ((T[pos]<x) && (pos!=n)) return pos; pos = pos+1; void insertion(int T[], int *n, int x) { int j; int pos; pos= cherche_position(t,*n, x) ; if (pos==*n) else{ *n=*n+1; T[*n]=x; for (j=*n; j>pos; j--) T[pos]=x; T[j]=T[j-1]; void supression(int T[],int *n, int pos ) { int j; for (j=pos; j<*n-1; j++) { *n=*n-1; T[j]=T[j+1];

8 Exercice 5: Le but de cet exercice est d écrire des programmes pour trier, par ordre croissant, les éléments d un tableau de type float. 1. Ecrire un programme qui saisi au clavier les éléments d un tableau tab de type float, 2. Ecrire une fonction nommée pos_max qui retourne la position du plus grand élément d un tableau de type float. Exemple pour A=[1, 4, 8, 3, 6, 7], la fonction pos_max retourne 2 qui est la position du plus grand élément du tableau A. 3. Utiliser la fonction pos_max dans un programme pour trier les éléments du tableau tab. Solution : Question 1: #define N 100 int pos_max(float *, int ) ; int n, i, pos; float x, memo; float Tab[N]; /* saisi de la taille et des éléments du tableau Tab */ printf("entrer la taille reelle du tableau : "); for(i=0;i<n;i++) { printf("entrer Tab[%d] : ",i); scanf("%f",&tab[i]); /* trie par ordre croissant */ for (i=0;i<n;i++) { /* appel de la fonction pos_max() qui cherche la position du plus grand élément dans le sous tableau Tab[0 ; n-i] (contient les éléments en positions 0 à n-i-1) */ pos = pos_max(tab,n-i); /* Puisque on fait un trie par ordre croissant, alors on doit mettre le plus grand élément trouvé (l élément en position «pos») en fin du sous tableau (en position «n-i-1»). */ memo=tab[pos]; Tab[pos]=Tab[n-i-1]; Tab[n-i-1]=memo; for(i=0;i<n;i++) { /* Affichage pour vérification */ printf(" Tab[%d] = %f : \n", i, Tab[i]);

9 int pos_max(float T[], int n) { float g; int i, pos; g=t[0]; pos=0; for(i=1;i<n;i++) { if (g<t[i]) { g=t[i]; pos=i; return pos; Exercice 6 : 1. Ecrire une fonction nommée fact() qui calcule la factorielle d un entier : a. de manière itérative. b. de manière récursive. 2. Refaire les questions a et b sous forme de procédures. 3. Ecrire un programme qui demande en entrée un entier n et donne en sortie n! en utilisant la fonction (procédure) fact(). Solution: Question 1 a. long fact(int n) { /*fonction non récursive */ long f=1; for(i=1;i<=n;i++) f=f*i; return f; b. long rfact(int n) { /* fonction non récursive */ long f=1; if(n==1) f=1; else f=rfact(n-1)*n; return f; Question 2 a. void pfact(int n, long *f) { /* procédure non récursive */ *f=1; for(i=1; i<=n;i++) *f=(*f)*i;

10 b. void rpfact(int n, long *f) { /* procédure récursive */ if(n==1) *f=1; else { rfact(n-1, f); *f=(*f)*n; Question 3 long fact(int); long rfact(int ); void pfact(int, long *); void rpfact(int, long * ); int n; long f1,f2; double r, rr; printf("entrer un entier n :"); f1=fact(n); /* Appel de la function fact() */ pfact(n,&f2); /* Appel de la procédure pfact() */ printf("fonction non recursive : %d! = %d \n",n,f1); printf("procedure non recursive : %d! = %d \n",n,f2); long fact(int n) { /* fonction non recursive */ long f=1; for(i=1; i<=n; i++) f=f*i; return f; long rfact(int n) { /* fonction récursive */ long f=1; if(n==1) f=1; else f=rfact(n-1)*n; return f; void pfact(int n, long *f) { /* procédure non récursive */ *f=1; for(i=1; i<=n;i++) *f=(*f)*i;

11 void rpfact(int n, long *f) { /* procédure récursive */ if(n==1) *f=1; else { rfact(n-1, f); *f=(*f)*n; Exercice 7 : Ecrire une fonction récursive qui calcule la somme S= / /n Solution : double serie(int); double rserie(int); int n; double r1, r2; printf("entrer un entier n :"); r1=serie(n); r2=rserie(n); printf("fonction non recursive : serie(%d) = %f \n",n,r1); printf("fonction recursive : rserie(%d) = %f \n",n,r2); double serie(int n) { double s=0; for(i=1;i<=n;i++) s=s+1.0/i; return s; double rserie(int n) { double s=0; if (n==1) else s=1; s=rserie(n-1)+1.0/n; return s;

12 Exercice 8 : Le but de l exercice est de calculer x n, avec x de type float et n de type int, en utilisant moins de multiplications. 1. Quel est le nombre de multiplications pour calculer x n. 2. Ecrire une fonction non récursive qui calcule x n en effectuant n-1 multiplications. 3. Utiliser la fonction précédente dans un programme pour calculer y k avec y et k sont saisis au clavier. 4. Ecrire une fonction récursive qui calcule x n en effectuant seulement log 2 (n) multiplications. 5. Refaire la question 4 sous forme d une procédure. Solution : Question 1 : x n = x*x*.*x Le nombre de multiplications est égal à (n-1) Question 2 : Soit puissance() une fonction non récursive qui retourne x n Elle peut être définie de la manière suivante : double puissance(double x, int n) { Question 3 double p=1.0; for(i=1; i<=n; i++) p=p*x; return p; double puissance(double, int ); int k; double y, r; printf("entrer le reel x :"); scanf("%lf",&y); printf("entrer la puissance n :"); scanf("%d",&k); r=puissance(y,k); printf("fonction puissance : %f puissance %d = %f \n",y, k, r);

13 double puissance(double x, int k) { /* définition de la fonction non récursive */ double p=1.0; for(i=1;i<=k;i++) p=p*x; return p; double rpuissance(double x, int k) { /* définition de la fonction récursive */ if (k==0) return 1; else return x*rpuissance(x,k-1); Question 4 /* On se place dans le cas ou n est une puissance de 2 : n= 2 k */ double lpuissance(double x, int n) { /* fonction récursive */ double p; if(n==0) p=1; else if (n==2) p=x*x; else{ p=puissance(x,n/2); p=p*p; return p; Question 5: void ppuissance (double x, int n, double *p) { /* procédure récursive */ if(n==0) *p=1; else if (n==2) *p=x*x; else { ppuissance(x, n/2, p); *p=(*p)*(*p);

14 Exercice 9: Le but de cet exercice est de calculer, pour une valeur X donnée de type double, la valeur numérique d'un polynôme de degré n: P(X) = a n X n + a n-1 X n a 1 X + a 0. Les valeurs de n, de X et les coefficients a n,..., a 0 et de X sont saisis au clavier. I. Calcule de P(X) en utilisant explicitement les puissances X k où k est un entier. 1. Ecrire une fonction nommée PUISSANCE qui calcule X k, où k est un entier. 2. Ecrire un programme qui : a. Saisi le degré n du polynôme P(X), les coefficients a i, pour 0 i n, et la valeur de X. b. Appelle la fonction PUISSANCE pour calculer P(X). 3. Donner le nombre de multiplications que nécessite ce programme. II. Calcule de P(X), sans calculer explicitement les puissances X k, en utilisant le schéma de Horner qui procède de la façon suivante : P(X) = X(. X(X(a n X + a n-1 ) + a n-2 )... + a 1 ) + a 0 Par exemple pour n=3, P(X) = X(X(a 3 X + a 2 ) + a 1 ) + a 0 1. Ecrire un programme qui calcule P(X) en utilisant le schéma de Horner. Le degré n du polynôme P(X), les coefficients a i pour 0 i n, et la valeur de X, sont saisis au clavier. Donner le nombre de multiplications que nécessite ce programme. Solution : I. Question I.1 : double puissance(double x, int k) { /* fonction non récursive */ double p=1.0; for(i=1; i<=k; i++) p=p*x; return p; ou double rpuissance(double x, int k) { /* fonction récursive */ if (k==0) return 1; else return x*rpuissance(x, k-1); Question I.2 Solution1: allocation dynamique double puissance(double, int ); /* Déclaration de la fonction puissance() */ int n, i; /* n = degrés du Polynôme */ double x, Px; /* Px =P(x) double *a; /* un pointeur vers une zone mémoire dans laquelle on sauvegarde les coefficients du Polynôme */

15 printf("entrer le degres du polynome : "); /* Réservation de la mémoire pour n réels double précision */ a=(double *)malloc(n*sizeof(double)); /* Allocation de la mémoire: /* for(i=0; i<n; i++) { /* saisie des coefficients du polynôme */ printf("entrer a%d : ",i); scanf("%lf", (a+i)); /* lecture du coefficient ai */ printf("entrer la valeur de x : "); scanf("%lf",&x); Px=0; for (i=0;i<n;i++) { /* le calcul de P(x)=a0+a1x+ a2x 2 + an x n */ Px=Px+(*(a+i))*puissance(x,i); /* Appel de la fonction puissance() */ printf(" P(%f) = %f : \n",x,px); /* affiche la valeur de P(x) */ double puissance(double x, int k) { /* Définition de la fonction puissance() */ double p=1.0; for(i=1; i<=k; i++) p=p*x; return p; Solution2: en utilisant les tableaux #define N 100 double puissance(double, int ); int n, i; double x, Px; double a[n]; /* les éléments du tableau «a» sont les coefficients du polynôme P */ printf("entrer le degres du polynome : "); for(i=0; i<n; i++) { printf("entrer a%d : ",i); scanf("%lf",&a[i]); /* saisie des coefficients */ printf("entrer la valeur de x : "); scanf("%lf",&x); Px=0; for (i=0; i<n; i++) { Px=Px+a[i]*puissance(x,i);

16 I. Question II.1 : printf(" P(%f) = %f : \n", x, Px); double puissance(double x, int k) { double p=1.0; for(i=1;i<=k;i++) p=p*x; return p; #define N 100 int n, i; double x, Px; double a[n]; printf("entrer le degres du polynome : "); for(i=0; i<=n; i++) { printf("entrer a%d : ",i); scanf("%lf", &a[i]); printf("entrer la valeur de x : "); scanf("%lf",&x); /* calcul de P(X) avec le schéma de Horner P(X) = X(. X(X(anX + an-1) + an-2)... + a1) + a0 */ Px=a[n]*x; for (i=n-1; i>=1; i--) { Px=x*(Px+a[i]); Px=Px+a[0]; printf(" P(%f) = %f : \n",x,px);

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année 2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par

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

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

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

Plus en détail

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

Algorithmique, Structures de données et langage C

Algorithmique, Structures de données et langage C UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

INF111. Initiation à la programmation impérative en C http://ama.liglab.fr/ amini/cours/l1/inf111/ Massih-Reza Amini

INF111. Initiation à la programmation impérative en C http://ama.liglab.fr/ amini/cours/l1/inf111/ Massih-Reza Amini Initiation à la programmation impérative en C http://ama.liglab.fr/ amini/cours/l1// Massih-Reza Amini Université Joseph Fourier Laboratoire d Informatique de Grenoble 2/52 Introduction Structures de contrôle

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

TP, première séquence d exercices.

TP, première séquence d exercices. TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la

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

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

Initiation. àl algorithmique et à la programmation. en C

Initiation. àl algorithmique et à la programmation. en C Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,

Plus en détail

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables

Plus en détail

Chapitre 1 : La gestion dynamique de la mémoire

Chapitre 1 : La gestion dynamique de la mémoire Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Solutions du chapitre 4

Solutions du chapitre 4 Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Les fichiers. Chapitre 4

Les fichiers. Chapitre 4 Chapitre 4 Les fichiers Jusqu à maintenant tous les programmes que nous avons conçus travaillaient sur des données qui étaient perdues après chaque session de travail. On peut cependant, c est bien naturel,

Plus en détail

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail

Architecture des Systèmes d Information Architecture des Systèmes d Information

Architecture des Systèmes d Information Architecture des Systèmes d Information Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

Algorithmes récursifs

Algorithmes récursifs Licence 1 MASS - Algorithmique et Calcul Formel S. Verel, M.-E. Voge www.i3s.unice.fr/ verel 23 mars 2007 Objectifs de la séance 3 écrire des algorithmes récursifs avec un seul test rechercher un élément

Plus en détail

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel) Algorithmes et Programmes Introduction à l informatiquel! Vie d'un programme! Algorithme! Programmation : le langage! Exécution et test des programmes Chapitre : Algorithmes et Programmes 2 Cycle de vie

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

ARBRES BINAIRES DE RECHERCHE

ARBRES BINAIRES DE RECHERCHE ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia Ministère de l Enseignement Supérieur, de la Recherche Scientifique et de la Technologie Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Djerba SUPPORT DE COURS

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

4. Les structures de données statiques

4. Les structures de données statiques 4. Les structures de données statiques 4.1 Tableaux à une dimension 4.1.1 Introduction Imaginons que dans un programme, nous ayons besoin simultanément de 25 valeurs (par exemple, des notes pour calculer

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

INITIATION A LA PROGRAMMATION

INITIATION A LA PROGRAMMATION 2004-2005 Université Paris Dauphine IUP Génie Mathématique et Informatique INITIATION A LA PROGRAMMATION PROCEDURALE, A L'ALGORITHMIQUE ET AUX STRUCTURES DE DONNEES PAR LE LANGAGE C Maude Manouvrier La

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

Plus en détail

Programmation en langage C

Programmation en langage C Programmation en langage C Anne CANTEAUT INRIA - projet CODES B.P. 105 78153 Le Chesnay Cedex Anne.Canteaut@inria.fr http://www-rocq.inria.fr/codes/anne.canteaut/cours C 2 Table des matières 3 Table des

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

Plus en détail

Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012

Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012 Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012 2011/2012 Pr. Ben Mamoun 1 Plan du cours (1) 1. Introduction 2. Types, opérateurs

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Programmation Classique en langage C

Programmation Classique en langage C DI GALLO Frédéric Programmation Classique en langage C Cours du Cycle d Approfondissement CNAM ANGOULEME 2000-2001 DI GALLO Frédéric Page 1 01/04/01 PROGRAMMATION CLASSIQUE : LANGAGE C DI GALLO Frédéric

Plus en détail

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin. Exo7 Matrice d une application linéaire Corrections d Arnaud odin. Exercice Soit R muni de la base canonique = ( i, j). Soit f : R R la projection sur l axe des abscisses R i parallèlement à R( i + j).

Plus en détail

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; }; #include #include struct cell int clef; struct cell suiv; ; / longueur. pc->suiv est l abréviation de (pc).suiv. pour cette fonction comme pour les suivantes, on donne, lorsqu il existe

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers. I Présentation : Dans le chapitre 1, nous avons vu comment utiliser les appels-systèmes de bas niveau pour créer et accéder à des fichiers sur le disque. Nous avons notamment mis en évidence leur dépouillement

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Package Java.util Classe générique

Package Java.util Classe générique Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object

Plus en détail

1.6- Génération de nombres aléatoires

1.6- Génération de nombres aléatoires 1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale

Plus en détail

Rappels Entrées -Sorties

Rappels Entrées -Sorties Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk

Plus en détail

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation. Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1 Algorithmique 1 Durée : 2h Machines électroniques interdites Tous documents papiers autorisés Il est conseillé de traiter les deux parties dans l ordre du sujet. Veuillez respecter les notations introduites

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Logiciel de base. Première année ENSIMAG

Logiciel de base. Première année ENSIMAG Logiciel de base Première année ENSIMAG 1 Procédures, paramètres, pile En assembleur une fonction est une étiquette, c'est l'adresse de sa première instruction Lors de l'appel d'une fonction, la pile sert

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 7 17 décembre 2012 Archi 1/1 Fonctions, suite et fin Archi 2/1 Rappel Forme générale d un sous-programme (fonction) : etiquette sousprogramme: push ebp ; empile la valeur

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

Par combien de zéros se termine N!?

Par combien de zéros se termine N!? La recherche à l'école page 79 Par combien de zéros se termine N!? par d es co llèg es An dré Do ucet de Nanterre et Victor Hugo de Noisy le Grand en seignants : Danielle Buteau, Martine Brunstein, Marie-Christine

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

Application 1- VBA : Test de comportements d'investissements

Application 1- VBA : Test de comportements d'investissements Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

Plus en détail

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

PROJET 1 : BASE DE DONNÉES REPARTIES

PROJET 1 : BASE DE DONNÉES REPARTIES PROJET 1 : BASE DE DONNÉES REPARTIES GESTION D UNE BANQUE Elèves : David Bréchet Frédéric Jacot Charles Secrétan DONNÉES DU PROJET SSC - Bases de Données II Laboratoire de Bases de Données BD réparties

Plus en détail

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2. Eo7 Calculs de déterminants Fiche corrigée par Arnaud Bodin Eercice Calculer les déterminants des matrices suivantes : Correction Vidéo ( ) 0 6 7 3 4 5 8 4 5 6 0 3 4 5 5 6 7 0 3 5 4 3 0 3 0 0 3 0 0 0 3

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

Plus en détail

Quelques algorithmes simples dont l analyse n est pas si simple

Quelques algorithmes simples dont l analyse n est pas si simple Quelques algorithmes simples dont l analyse n est pas si simple Michel Habib habib@liafa.jussieu.fr http://www.liafa.jussieu.fr/~habib Algorithmique Avancée M1 Bioinformatique, Octobre 2008 Plan Histoire

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts

Plus en détail

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12 Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B Excel : Réalisation d un classeur Compta Saisir les étiquettes Renommer la première feuille Compta Laisser la première ligne vide et sur la deuxième ligne saisir les étiquettes Se placer sur A2 et saisir

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail