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

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

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

Transcription

1 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 d'un programme (d'un logiciel)! Conception - Modélisation! Analyse du problème! Solution algorithmique! langage d'algorithmes! Programmation! Programme! langage de «haut niveau»! Compilation Interprétation! Exécution sur machine! langage machine de «bas niveau»! assembleur et code machine! Mise au point! Vérification par test pour corriger! Evaluation du coût pour optimiser Cycle de vie d'un programme (d'un logiciel)! Conception - Modélisation! Langage de description d'algorithme! simplicité, précision! indépendant de la programmation et de la machine! Exemple : diagramme, pseudo C,...! Programmation! Exécution

2 Cycle de vie d'un programme (d'un logiciel)! Conception - Modélisation! Programmation! Langage de programmation (langages «évolués»)! syntaxe contraignante, différents styles d'abstraction! indépendant de la machine! Types de langages! Exécution! impératifs : Fortran, Cobol, Pascal, C! fonctionnels : Lisp, ML, Caml! logiques : Prolog! objets : C++, Java Cycle de vie d'un programme (d'un logiciel)! Conception - Modélisation! Programmation! Exécution! Langage assembleur! dépendant de la machine, du processeur! Exemples : Assembleur pour PC (IA-2), PowerPC, MIPS, SPARC, etc. 5 6 L'entier N est-il pair? L'entier N est-il pair?! Conception - Modélisation! Analyse du problème! Un nombre N est pair si le reste de la division de N par 2 est nul! Solution algorithmique!. calculer le reste R de la division de N par 2! 2. si R est égal à alors N est pair!. sinon N n'est pas pair! Programmation! Programme C main () {// début du programme principal int nombreateste ; printf("donner un nombre :") ; scanf("%d", & nombreateste) ; if ((nombreateste % 2) == ) printf("%d est pair \n", nombreateste); else printf("%d n'est pas pair \n", nombreateste); // fin du programme principal 7 8

3 L'entier N est-il pair?! Compilation - Codage load N modi 2 jzer P... halt Assembleur 9debfc 9. 88a6 2 8a2 28 a2 289 Code machine d2 922 Algorithme! (!) Recette, règle, mécanisme, procédé, procédure, méthode,! (=) Description d'une procédure de calcul par une suite d'étapes de calcul, d'actions (plus ou moins) élémentaires.! Un algorithme n'est pas forcément destiné à décrire la solution d'un problème pour la programmation et l'informatique...! Un algorithme en cuisine s'appelle une recette! Un algorithme en musique s'appelle une partition! Un algorithme en tissage s'appelle un point 9 Algorithme (historique)! Les premières formulations de règles précises pour la résolution de certains types d'équations remontent aux Babyloniens (époque d'hammurabi, (8 avant J.C.).! Depuis l'antiquité : algorithmes sur les nombres.! Exemple : l'algorithme d'euclide qui permet de calculer le p.g.c.d. de deux nombres entiers.! Le mot algorithme est plus récent, il vient du nom d'un mathématicien perse du IXe siècle: Muhammad ibn Musa al-khowârizmî.! La signification du mot évolue au cours des temps :! pratique de l'algèbre (d'alembert, XVIIIe siècle)! méthode et notation de toute espèce de calcul! tout procédé de calcul systématique, voire automatique Algorithme de la mousse au chocolat (6 p)! Ingrédients :! 25g de chocolat, 25g de beurre, 6 œufs, 5 g de sucre, café! Etapes :! faire fondre le chocolat avec 2 cuillères d'eau! ajouter le beurre! laisser refroidir avant d'ajouter les jaunes d œufs! ajouter le sucre et comme parfum un peu de café! battre les blancs en neige et les ajouter au mélange.! A partir des ingrédients (données en entrée), appliquer la recette (les étapes) va produire une mousse au chocolat (le résultat). L abus de mousse au chocolat est déconseillé 2

4 Algorithme : un peu de méthodologie! identifier les données fournies / nécessaires (données en entrée)! identifier le résultat (données en sortie)! déterminer les actions ou opérations élémentaires! spécifier l'enchaînement des actions! langage d'algorithmes = langage de description des données, des actions et des enchaînements Langage de description d'algorithmes Algorithme titre % commentaire Lexique : variables // entrée : variables // sortie : variables // auxiliaire actions : noms des opérations début liste d'instructions fin Calculer le carré de N avec l'addition seule! Analyse! N 2 = N + N N N fois! Algorithme : Algorithme Calcul-Carré-par-Add %Calcul du carré d'un entier Lexique : N entier // Entrée Carré entier // Sortie Action : + Debut Initialiser Carré à Faire N fois : Carré! Carré + N Fin 5 Variable! Une variable est le nom d'un «récipient» destiné à contenir une valeur. Lorsque nous nous intéresserons un peu plus à l'ordinateur, le récipient sera une «zone» mémoire.! Le type d'une variable sert à préciser la nature des valeurs acceptables par le récipient. Un type est un nom pour un ensemble de valeurs.! Exemple : Carré est une variable de type entier. La valeur de (dans) Carré est un entier. La valeur de Carré ne peut être un caractère ou un réel 6

5 Affectation par une valeur! L'affectation variable! valeur est une instruction qui permet de changer la valeur d'une variable. L'affectation modifie le contenu du récipient désigné par la variable.! La valeur de la variable à gauche de! est remplacée par la valeur à droite de!.! Exemple : Carré! «se lit» le récipient Carré reçoit la valeur.! Avertissement! L'affectation est une instruction qui est dite «destructrice».! L'ancienne valeur de la variable est détruite, écrasée, effacée par la nouvelle valeur!! Carré! N Copie de la valeur de N. La valeur de N (par exemple 7) existe en double 7 Affectation par une expression! L'affectation variable! expression est effectuée par :!. évaluation de l'expression! 2. placement du résultat dans le récipient désigné par la variable à gauche.! Attention! A droite de!, dans l'expression, les variables sont abusivement utilisées pour désigner les valeurs qu'elles contiennent. Ceci est une convention.! Exemple : Carré! Carré + N a pour effet de mettre le résultat de la somme de la valeur de Carré avec la valeur de N dans le récipient Carré. 8 Tester si N est un carré parfait! Analyse! N est un carré parfait si il existe un entier J dont le carré vaut N. (6 en est un, 2 non!)! Algorithme! Algorithme Test-Carré-Parfait! Lexique :! N entier! Réponse booléen! Actions : +, *, ", =! Auxiliaire : I, J entier! (* voir page suivante *) Tester si N est un carré parfait Début. I! Répéter 2. J!I*I. I!I+. jusqu à J # N 5a. Si J = N 5b alors Reponse! Vrai 5c sinon Reponse! Faux Finsi Fin 9 2

6 Algorithme = Abstraction de séquences de calcul Calcul-Carré-par-Add pour N= Instruction Expression évaluée Valeur de carré Algorithme = Abstraction de séquences de calcul Test du carré parfait (N=7) Instruction Expression évaluée Valeur de i Valeur de J Valeur de réponse I*I I+ J # 7? Calcul-Carré-par-Add pour N= Instruction Expression évaluée Valeur de carré 2 2 I*I I+ J # 7? I*I Carré + N Carré + N Carré + N I+ J # 7? I*I I+ J # 7? J=N 9 5c faux Faux 2 22 Instruction conditionnelle! Si «condition» alors faire liste d'instructions sinon faire liste d'instructions FINSI! Exemple : l'instruction 5 de l'algorithme Test- Carré-Parfait est une conditionnelle.! Condition est une expression booléenne! Exemple : Reprenons l'exécution de Test-Carré- Parfait pour N=7.! La première évaluation de la condition J # 7 produit la valeur booléenne «faux» donc les instructions 2. et. sont exécutées. Algèbre de Boole! Un ensemble $ = {, muni de l'ordre total ( < ) et des opérations suivantes :! Addition : x + y = max(x,y)! Multiplication : x.y = min(x,y)! Complémentation : x = si x = et x = si x =! propriétés! l'addition et la multiplication sont commutatives! est élément neutre de l'addition! est élément neutre de la multiplication! l'addition est distributive sur la multiplication et vice versa.! Propriété des compléments : x + x = et x. x = 2 2

7 Fonctions booléennes tables de vérité Une fonction booléenne f est une application de $ 2 dans $! cas n=.! Il existe fonctions booléennes de {, dans {, :! l'identité, la complémentation et...! cas n=2.! Il existe 2 fonctions booléennes de {, 2 dans {, Algèbre de Boole et Logique! Utiliser faux et vrai (ou F et V) à la place de et! Renommer l'addition, la multiplication et la complémentation par ou, et et non respectivement appelée disjonction, conjonction et négation. x y f f f2 f f f5 f9 f f f5 x F F y F V ou F V et F F Non (x) V V V F V F F V V V V F Condition et Expression booléenne! Expression booléenne élémentaire par l'exemple! (J < 7) est une expression booléenne élémentaire.! J est de type entier, 7 est un entier et la comparaison < est un opérateur de N x N dans { F, V.! (Réponse) est une expression booléenne élémentaire.! Réponse est de type booléen.! (Lettre = `a`) est une expression booléenne élémentaire si la variable Lettre est de type caractère.! Remarque! Les mêmes symboles (=, <, etc.) sont utilisés pour la comparaison d'entiers, de caractères, de booléens. Condition et Expression booléenne! Expression booléenne élémentaire par l'exemple! (J < 7 et J > ) est une expression booléenne.! C'est la conjonction de deux expressions booléennes élémentaires.! Elle est évaluée à vraie si la valeur de la variable J appartient à ],7[.! Considérons les variables cv pour la couleur de ma voiture, mv pour la marque et div pour l'immatriculation (département).! Que signifie l'expression ci-dessous? (cv = blanc et mv = peugeot) ou ((cv = gris ou cv = blanc) et div = 75 ) 27 28

8 Algèbre de Boole (suite)! Théorème de De Morgan! non (a ou b) % (non a) et (non b)! non (a et b) % (non a) ou (non b)! Exemple! Quel est le contraire de le prof porte un pantalon bleu OU bien il porte un pull beige?! Si un étudiant soutient une telle affirmation, par quelle affirmation pouvait vous soutenir exactement l inverse?! Le prof ne porte pas un pantalon bleu! ET! Le prof ne porte pas un pull beige Langage de programmation C #include <stdio.h> main() { const type nom = valeur ; //bibliothèque //entête // bloc déclaration type nom, nom2 ; type2 nom ; instruction;... //bloc d'instructions instruction; 29 Syntaxe : symboles, mots, règles! symboles spéciaux! [ ] \{., ; : # =< > - * / ( )!! mots réservés! if else int char float double while for switch case, const etc.! règles syntaxiques! point virgule après chaque instruction! accolade ouvrante au début { et fermante à la fin de chaque fonction (y compris «main»), de chaque bloc d instructions! La syntaxe d'un programme est définie par une grammaire. Autres règles! Contraintes imposées par le langage! Toute variable apparaissant dans le bloc d'instructions doit être déclarée.! Contraintes imposées par l'usage! Tout programme doit être commenté!! Un commentaire est du texte encadré par des symboles de début /* et de fin */ ou une ligne commençant par //! Ignoré lors des traitements du programme /* Tout l algo repose sur la recherche du plus grand nombre premier après le carré parfait */ int i = ; // sert d indice dans la boucle 2

9 Bloc déclaration type nom-variable ;! Syntaxe! nom-variable est un identificateur :! les caractères sont les lettres (A..Z,a..z) et les chiffres..9 et le soulignement (pas de caractères spéciaux, pas de blancs) mais ne commencent pas par un chiffre! ne commence pas par un chiffre! minuscules et majuscules sont différentes fred! Fred! longueur maximum = (plus de caractères sont tolérés, mais ils sont ignorés)! Déclarer une variable sert à! désigner un récipient par son nom! spécifier le domaine des valeurs que peut «contenir» cette variable Types! Généralités! Un type est un nom pour un ensemble de valeurs. Un type est muni d'opérateurs. Donc :! Déclarer une variable sert aussi à connaître les opérateurs applicables à (la valeur de) la variable! Avertissement Les compilateurs C ne peuvent détecter certaines erreurs de typage.! Exemple! un caractère (lettre de l alphabet, chiffres) sera représenté par un entier de type char (8 bits) : la lettre a sera représentée par l entier 97!! Une erreur flagrante de typage ( * a ) ne sera pas détectée! Les types entiers! Pour manipuler les entiers, C propose 6 types (Table cidessous). D autres existent.! Les opérations sur les entiers sont l addition +, la soustraction -, la multiplication *, la division / et les comparaisons (=,!=, >; >=, etc.) TYPE unsigned char char unsigned short short unsigned int int Intervalle [,255] [-28,27] [, 6556] [-2768, 2767] [, ] [-27868, 27867] Codage octet (= 8 bits) octet 2 octets 2 octets octets octets 5 Les types réels! Pour manipuler les réels, C propose 2 types (d autres existent) présentés dans la table ci-dessous! Les opérateurs sur les réels sont l addition +, la soustraction -, la multiplication *, la division /, les comparaisons (=,!=, >, >=, etc.) TYPE float double Intervalle [-2-5, ],, [+2-5, ] [-2-75, -2 2 ],, [+2-75, +2 2 ] Codage octets 8 octets Chiffres significatifs 7 chiffres décimaux 5 chiffres décimaux 6

10 Type booléen! Le type booléen n existe pas en C.! Le booléen faux est représenté par l entier, et le booléen vrai par tout entier différent de.! Les opérations de comparaison produisent quand la condition est fausse et quand la condition est vraie.! Les opérateurs sur les expressions booléennes sont le ET : &&, le OU : et le NON :! Type caractère! Le type caractère n existe pas de manière indépendante en C! Les caractères sont représentés par des «char» correspondant au codage ASCII des caractères alphanumériques (lettres et chiffres), typographiques (ponctuation), etc.! Les caractères sont entrés entre quotes a, b, 9, etc. 7 8 Déclarations de constantes! const type nom-constante = valeur! nom-constante est un identificateur qui sert à nommer une valeur.! Une constante sert souvent à simplifier la lisibilité d'un programme.! Le nom donné à la valeur correspondant à l'utilisation de cette valeur dans un contexte particulier (ici le programme).! Exemples! const float PI =.59; // PI est la valeur.59! const float euro 6.56; // euro est le réel 6.56! const int duo = 2; // duo est synonyme de 2! Avertissement! Il est impossible de changer la valeur 2 :! De la même manière il est impossible de toucher à la constante duo dans le programme! 9 Affectation nom-variable = expression ;! sémantique! seule la notation change par rapport au langage algorithmique i!i+ le type de l'expression à droite de = doit être identique au type de la variable à gauche! Exemples I = ; I = I + ; res = (J = =I*I) ; // res = ou res =! Attention : le compilateur C fait des conversions pour que la valeur affectée corresponde au type de la variable à gauche.! Exemple :! int n; float x=5.;! n=x; // Les deux types sont différents! printf("n=%d \n", n); // résultat affiché : n=5

11 Instructions d entrée-sortied scanf("format", &nom-variable);! Permet de saisir (lire) des données tapées au clavier! FORMAT permet de spécifier le type de la variable lue. Par exemple, "%d" pour un entier, "%f" pour un réel ( d = décimal, f = floating point ) L'exécution de l'instruction ci-dessus! Attend que l'utilisateur tape une valeur au clavier! Cette valeur est affectée à la variable (idem au pluriel)! La variable doit avoir été declarée (avec le bon type) (const) Exemple int I= 2 ; scanf ("%d",&i) ;! Si l'utilisateur tape, la valeur de la variable I est après exécution des deux instructions. Instructions d entrée-sortied scanf ("FORMATS", liste de variables); Exemple scanf ("%d %d %d", &I, &J, &N) si l'utilisateur tape 22, la valeur de la variable I est, celle de J est et celle de N est 22 après exécution. Avertissement Si la valeur saisie n'est pas du type de la variable alors une erreur d'exécution se produit. Si la valeur n'est pas saisie, alors l'exécution du programme attend! 2 Instructions d entrée-sortied printf ("FORMAT", expression) printf ("FORMATS", liste d'expressions)! permet d'afficher des valeurs (résultats de calcul)à l'écran. Exemple I = ; //la valeur de I est printf("%d", I) ; //affichage de à l'écran printf("%d", 5+7) ; //affichage de 2 à l'écran printf("valeur de I= %d", I) ; //affichage de valeur de I= printf ("FORMAT \n", expression) affiche le résultat de l'évaluation de l'expression puis effectue un retour à la ligne (voir console) Programmation en C du Test-Carré-Parfait main() { int I, N;... printf ("Donnez l'entier a tester : \n"); scanf("%d", &N); I = ; // initialisation de I... printf( "Oui la valeur que vous avez entré ");! Avertissement! Toute instruction est suivie d un point virgule ; // saisie de la valeur de N au clavier

12 Conditionnelle Conditionnelle if (condition) instruction ; Erreur à éviter : if (condition); instruction ; condition est une expression booléenne L'exécution de l'instruction globale! évalue la condition! si la condition est vraie, exécute l'instruction. Attention : si la condition est fausse, il ne se passe rien dans ce cas. if (condition) instruction; if (condition) instruction; else instruction2; if ( ); instruction; EST TOUJOURS EXECUTE A CAUSE DU ;! Permet d'introduire des branchements d'instructions.! L'exécution de l'instruction globale! évalue la condition! si la condition est vraie, exécute l'instruction! sinon exécute l'instruction 2.! Exemple N = ; I=2; if (N==I*I) printf ("L'entier %d est un carré parfait", N);! Exemple N = 5; I=2; if (N= =I*I) printf ("L'entier %d est un carre parfait", N); else printf("l'entier %d n'est pas un carre parfait", N); Affichage à l'écran de : L'entier est un carré parfait Affichage à l'écran de L'entier 5 n'est pas un carre parfait 5 6 Conditionnelle if (condition) bloc-instruction else bloc-instruction2 Un bloc d'instructions est une liste d'instructions encadrée par les mots clé { et! Exemple N = 5 ; if (N % 2 = =) printf("%d est pair", N); else { N = N- ; printf ("%d est pair", N); Affichage à l'écran : est pair % est le reste de la division entière Conditionnelle switch (expression) { case expression-constante : bloc-instruction ; break; case expression-constante : bloc-instruction 2; break;... case expression-constante : bloc-instruction n; break; default : bloc-instruction; break;! le cas default est facultatif.! Pas de break signifie que les 2 cas sont traités ensemble! L'instruction break provoque une sortie immédiate du switch 7 8

13 Conditionnelle! Exemple N=5 switch (N%2) { case : printf ("%d est impair", N) ; break; case : printf ("%d est pair", N) ; break;! Exemple switch (C) { case : case 2 : case : case 6 : case 8 : printf("%d est un chiffre pair", C); break; case : case : case 5 : case 7 : case 9 : printf("%d est un chiffre impair", C); break; default : printf ("%d n est pas un chiffre", C); Itération! Une itération correspond à la répétition d'une séquence de calcul.! Exemple : l'instruction. est itérée N fois dans l'algorithme du Calcul-Carré-par-Add! Le nombre d'exécutions répétées de l'instruction ne dépend pas des calculs effectués par l'instruction.! Exemple : la séquence d'instructions [ 2...] est itérée dans l'algorithme Test-Carré-Parfait.! Le nombre d'exécutions répétées de [ 2...] dépend des calculs effectués par la séquence elle-même. 9 5 Itération : tant que Itération : Répéter jusqu à Tant que (expression) Instructions fin tant que Répéter Instructions jusqu à (expression)! Attention! Initialiser les variables testées dans l expression! Modifier les variables dans la boucle pour qu elle s arrête.! Attention! Initialiser les variables testées dans l expression avant le «répéter»! Modifier les variables dans la boucle pour qu elle s arrête.! On exécute des instructions avant de tester l expression! Exemple : calcul de factorielle Lexique : N, Res entier; ecrire ("entrez N") ; lire (N); Res!; Tant que (N>) Res!Res*N; N!N-; Fin tant que! Exemple : calcul de factorielle Lexique : N, Res entier; ecrire ("entrez N") ; lire (N); Res!; répéter Res!Res*N; N!N-; jusqu à (N " );! Exécution pour N=, N=.! Exécution pour N=, N=; 5 52

14 Itération : Pour Pour i allant de borne_inf à borne sup (par pas de ) faire instructions Fin pour! Exemple : calcul de factorielle Lexique : N, Res, i entier; ecrire ("entrez N") ; lire (N); Res!; Pour i allant de 2 à N faire Res!Res*i; Fin pour! Exécution pour N=, N=; Itération! Une écriture concise pour la répétition de blocs d'instructions! Il existe 2 sortes d'itération :!. Le nombre de répétitions est fixe! faire N fois! en C : for! 2. Le nombre de répétitions n'est pas fixe! Il dépend des calculs effectués par les instructions répétées! si... alors repartir! en C : while ou do...while 5 5 Itération-while Itération - do...while! Le nombre de répétitions n'est pas fixe while (condition) bloc-instruction;! condition est une expression booléenne! L'exécution de cette itération s'effectue par :!. évaluation de la condition! 2.! si la condition est vraie alors exécution du bloc-instruction et repartir (recommencer) en.! si la condition est fausse alors l'exécution est terminée.! Tant que la condition est vraie, le bloc d'instructions est exécuté.! A la sortie de la boucle, la condition est toujours fausse ( ne pas tester) 55 Le nombre de répétitions n'est pas fixe do liste-instruction while (condition); L'exécution de cette itération s'effectue par :.- exécution de la liste d'instructions 2.- évaluation de la condition.-! si la condition est vraie alors repartir (recommencer) en.! si la condition est fausse alors l'exécution est terminée.! Exécuter la liste d'instructions tant que la condition est vraie et toujours au moins une fois!!! 56

15 Itération - do...while Exemple Main () { scanf("%d", &N); Res = ; do { Res = Res * N ; N = N - ; // N est modifié while (N > ) ; // N est testé printf("%d \n", Res); Simulation de l'exécution! pour la saisie de et pour la saisie de 5 Itération - for Le nombre de répétitions est fixe for (expr; expr2; expr;) {bloc-instructions L'exécution de cette itération s'effectue par :. initialiser le compteur d'itération par expr 2. Tant que la condition expr2 est vraie, exécuter le bloc d'instructions. Le compteur est modifié par expr à chaque itération Utilisation typique (boucle pour du langage de description d algorithme) for (i=; i<n; i=i+) {bloc-instructions Remarque générale d'utilisation Veiller à ce que l'intervalle [début, fin] soit identifiable avant l'itération Itération - for Exemple scanf("%d", &N) ; res = ; for (I = 2; I <=N; I = I + ) res = res * I ; printf("%d \n", res); Simulation de l'exécution (pour la saisie de et pour la saisie de 5) Simulation par while scanf("%d", &N) ; res = ; I = 2 ; while (I <= N) { res = res * I ; I = I + ; printf("%d", res); Itération - for Exemple d'itération avec décrémentation scanf("%d", &N) ; res = ; for (I = N; I >=2; I = I - ) res = res * I ; printf ("%d", res); Simulation de l'exécution pour la saisie de et pour la saisie de 5 Remarque générale! pour l'itération for, on peut mettre plusieurs autres variantes pour les expressions expr, expr2 et expr. 59 6

16 Programmation de Test-Carré-Parfait! Rappel de l'algorithme Début. I! Répéter 2. J!I*I. I!I+. jusqu à J # N 5a. Si J = N alors Reponse! Vrai 5b. Sinon Reponse! Faux Finsi Fin 6 Programme Test-Carré-Parfait #include <stdio.h> ; // bibliothèque main() { /* Test-Carré-Parfait : Ce programme vérifie si l'entier N est ou non un carré parfait */ int N, I, J ; // bloc déclaration printf ("Donnez l'entier à tester : "); scanf("%d", &N); // saisie de la valeur de N au clavier I = ; // initialisation de I J = ; while (J<N) { I = I+ ; J = I * I ; if (J == N) printf("%d est un carré parfait", N); else printf("%d n'est pas un carré parfait", N); 62 Autres prog.. de Test-Carré-Parfait Imbrication de boucles main(){ // Test-Carré-Parfait... I = ; // initialisation de I do {J = I * I ; I = I+ ; while (J<N);... main(){ // Test-Carré-Parfait... // enlever J de la déclaration I = -; // initialisation de I do I = I+ ; while (I * I <N);... main(){ // Test-Carré-Parfait... for (I=; I*I<N; I=I+); // BOUCLE AUTO-SUFFISANTE... 6! Supposons que la multiplication soit interdite! main(){ // Test-Carré-Parfait... I = ; // initialisation de I do { J = ; for (k=; k <= I; k = k + ) J = J + I; // calcul de J=I*I par additions successives I = I+; // incrémentation de I while (J<N);...! La boucle «for» est imbriquée dans la boucle «do...while». 6

17 Tableaux mono-dimensionnels! Définition! Le type tableau permet de représenter des fonctions à domaine fini! A chaque valeur d'un indice, le tableau associe une valeur ou élément de tableau.! Exemple! On peut représenter les N entiers premiers par : main (){... const int N = ; int Tprem[N]; 65 Tableaux mono-dimensionnels! Définitions sur un exemple! A chaque case i, le tableau fait correspondre un nombre premier! Accessible par l'opération Tprem[i]! On peut changer la valeur d'une case par Tprem[i]=valeur! Le type des éléments (ici entier) peut être quelconque! Attention : les compilateurs C ne vérifient pas que l indice est compris dans l intervalle défini à la déclaration du tableau. S il n est pas dans cet intervalle, il y a généralement erreur à l exécution Tableaux mono-dimensionnels! Utilisation! Le programme Tableau est un exemple simple qui affiche sur l'écran tous les éléments du tableau des nombres premiers Tprem main() { const int N = ; int Tprem [N]; Tprem[] = ; Tprem[] = 2; Tprem[9] = 2 ; // pas Tprem[]!!! int i; for (i= ; i < N; i = i +) printf("%d \n", Tprem[i]); 67 Tableaux mono-dimensionnels Utilisation (suite)! Le programme TabCar compte et affiche le nombre de 'a' dans le tableau Tcar main(){ // programme TabCar const int N = ; char Tcar [N]; int i, Nba; Nba = ; for (i= ; i < N; i = i +) if (Tcar[i] == 'a') Nba = Nba + ; printf("le nombre de a est : %d", Nba); 68

18 Tableaux mono-dimensionnels Utilisation (suite)! Le programme PremCar vérifie et affiche si 'a' est présent dans le tableau Tcar Tableaux multi-dimensionnels! Définition! A chaque valeur d'un couple d indice, le tableau associe une valeur ou élément de tableau. main(){ const int N = ; char Tcar [N]; int i ; // programme PremCar i = ; while ((i < N) && (Tcar[i]!= 'a')) i = i + ; if (i == N) printf("a n'est pas dans le tableau ", i); else printf("a est dans le tableau à la pos %d ");! Exemple! On peut représenter les N*M entiers par : const int N = ; const int M = ; int Matrice[N] [M]; 69 7 Tableaux multi-dimensionnels 2 7 8! Définitions sur un exemple! A chaque case i,j le tableau fait correspondre un nombre entier! Accessible par l'opération Matrice[i][j]! i.e : grdnb = Matrice[][6];! On peut changer la valeur d'une case par Matrice[i][j]=valeur! Le type des éléments (ici entier) peut être quelconque Boucles imbriquées et tableaux 2D! Les boucles imbriquées permettent de parcourir un tableau multi-dimensions. main () { const int N = ; //Attention a ne pas se melanger les pinceaux const int M = ; // entre les 2 dimensions!!!! int Matrice[N] [M]; for (i= ; i < N; i = i +) { for (j= ; j < M; j = j +) { if (Matrice[i][j] ==) NbZero = NbZero+; printf("le nombre de est : %d", NbZero); 72

19 Boucles imbriquées et tableaux 2D main () { const int N = 7; const int M = 7; int Mat[N] [M]; int Mat2[N-2] [M-2]; for (i= ; i < N-; i = i +) { for (j= ; j < M-; j = j +) { Mat2[i-][j-] = (Mat[i-][j]+Mat[i+][j]+ Mat[i][j-]+Mat[i][j+])/; for (i= ; i < N-2; i = i +) { for (j= ; j < M-2; j = j +) { printf("%d ", Mat2[i][j]); printf( "\n"); Que fait ce code? 7 Tableaux multi-dimensionnels! Utilisation! Le programme Tableau2 est un exemple simple qui affiche sur l'écran tous les éléments du tableau des nombres Tprem main() { const int N = ; const int M = ; int Matrice [N][M]; Matrice [][] = ; Matrice [][] = 2; Matrice [9][] = 2 ; // pas Tprem[]!!! Matrice [][9] = 2; Matrice [9][9] = 5 ; // pas Tprem[]!!! int i; for (i= ; i < N; i = i +) for (j= ; j < M; j = j +) printf("%d \n", Matrice [i][j]); 7 Généralités sur les fonctions! Les fonctions permettent:! de scinder un programme en plusieurs parties, et de décrire le déroulement du programme principal de façon claire! de mettre en commun des ressources entre programmeurs! d éviter des séquences d instructions répétitives! de spécialiser des séquences d instructions grâce à leurs paramètres! de calculer des valeurs, et/ou d agir sur des objets Algorithmique action NOM { DESCRIPTION DE L ACTION Données : LES DONNES EN ENTRÉE Résultats : LE OU LES DONNES RETOURNEES Début INSTRUCTIONS (construisant la valeur des données retournées) Fin 75 76

20 Exemple action div { les variables résultats q et r sont respectivement calculées comme le quotient et le reste de la division entière Données : a, b : entier; Résultats : q, r : entier; Début q!; tant que a"b faire a! a-b; q! q+; Appel : fin tant que div (25, 7, x, y); r! a; Fin 77 Algorithmique fonction NOM " type de retour { DESCRIPTION DE LA FONCTION Lexique : LES DONNES LOCALES Début INSTRUCTIONS retourner variable; Fin 78 Exemple fonction puissance " entier { calcul la puissance n d un entier a donné Lexique: res, i : entier; Début res! ; pour I allant de a N faire res! res*a; fin pour Appel retourner res; : Fin x=puissance x=puissance (25, 7); 79 Particularités des fonctions en C! Types de modules: les «fonctions» et «procédures» ne sont pas distinguées! Mode de transmission des arguments: uniquement par valeur! Variables globales: accessibles à toutes les fonctions 8

21 Types de modules! Les fonctions fournissent un résultat (valeur de retour), calculé à partir des valeurs de ses paramètres, qui peut ensuite apparaître dans une expression.! Typiquement, les procédures des autres langages réalisent des actions, mais en pratique rien n empêche les fonctions d en réaliser également.! En C, il n existe que la notion de fonction:! la valeur de retour d une fonction peut être ignorée (ex: printf)! une fonction peut ne retourner aucune valeur! une fonction peut retourner une valeur non scalaire (ex: structures)! une fonction peut modifier (indirectement) les valeurs de certains paramètres 8 Transmission des paramètres! En C, la transmission des paramètres se fait uniquement par valeur:! les valeurs des paramètres passés lors de l appel d une fonction sont copiées localement à la fonction, et les copies sont ensuite utilisées en lecture/écriture! toute modification des valeurs est perdue lorsque la fonction se termine! Il est néanmoins possible de modifier les paramètres d une fonction grâce à la notion de pointeur (variable pointant en mémoire vers un objet d un certain type):! la fonction peut alors opérer en lecture/écriture sur l objet pointé par le pointeur! les modifications sont alors effectuées sur l objet d origine, et restent donc effectives après la fin de la fonction 82 Définition d une fonction! Syntaxe générale:! Ex: <type-de-retour> <nom>(<liste-paramètres>) <instructions> /* définition d une fonction «abs» retournant un entier et prenant deux entiers comme paramètres */ int abs(int a, int b) { /* corps de la fonction */ if (a > b) return (a b); return (b a); 8 Paramètres d une fonction! Tout type d objet peut être passé comme paramètre d une fonction:! types de base (variantes de int, float, double, char)! structures! tableaux! pointeurs! Les déclarations des paramètres, séparées par des virgules, associent un spécificateur de type à un déclarateur (nom de variable)! Un liste de paramètres vide est possible 8

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

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

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

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

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

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

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

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

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

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

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

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

Cours d Informatique

Cours d Informatique Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

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

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

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence Licence Algorithmique & Langage C Paternité - Pas d'utilisation Commerciale Partage des Conditions Initiales à l'identique 2.0 France Vous êtes libres : * de reproduire, distribuer et communiquer cette

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

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

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

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

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

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

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

Informatique Générale

Informatique Générale Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html

Plus en détail

SUPPORT DE COURS. Langage C

SUPPORT DE COURS. Langage C Dpt Informatique 2010-2011 SUPPORT DE COURS Langage C Semestre 1 par : «CaDePe» Marie-Françoise Canut Marianne de Michiel André Péninou Table des Matières 1 Généralités...8 1.1 Introduction aux langages

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

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

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

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

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

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

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

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

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

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE ET PROGRAMMATION En C Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2

Plus en détail

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

Plus en détail

Claude Delannoy. 3 e édition C++

Claude Delannoy. 3 e édition C++ Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.

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

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

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

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

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

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

Logiciel de Base. I. Représentation des nombres

Logiciel de Base. I. Représentation des nombres Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr I. Représentation des nombres Codage et représentation de l'information Information externe formats

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

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

Chapitre 2 Devine mon nombre!

Chapitre 2 Devine mon nombre! Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction

Plus en détail

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

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

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

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

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

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

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

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

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

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2 1 Univ. Lille1 - Licence info 3ème année 2013-2014 Expression Logique et Fonctionnelle... Évidemment Cours n o 1 : Introduction à la programmation fonctionnelle 1 Introduction La programmation fonctionnelle

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Introduction à l algorithmique et à la programmation M1102 CM n 3

Introduction à l algorithmique et à la programmation M1102 CM n 3 Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY eric.remy@univ-amu.fr IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT d

Plus en détail

Conversion d un entier. Méthode par soustraction

Conversion d un entier. Méthode par soustraction Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

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

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

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

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

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

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

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

Plus en détail

Notions fondamentales du langage C# Version 1.0

Notions fondamentales du langage C# Version 1.0 Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage

Plus en détail

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon 13 janvier 2015 2 Table des matières Organisation générale du cours 7 1 Notions générales d algorithmique et de programmation

Plus en détail

Algorithmique avec Algobox

Algorithmique avec Algobox Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions

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

Introduction au Langage de Programmation C

Introduction au Langage de Programmation C Faculté Polytechnique de Mons Service d'informatique Introduction au Langage de Programmation C Mohammed Benjelloun 1 ère Candidature Année académique 2003-2004 Avant-propos Ces notes permettent de se

Plus en détail

Langage Éric Guérin 5 octobre 2010

Langage Éric Guérin 5 octobre 2010 Langage Éric Guérin 5 octobre 2010 Langage C TABLE DES MATIÈRES Table des matières 1 Introduction 7 1.1 Historique........................................... 7 1.2 Architecture matérielle....................................

Plus en détail

Les différents types de données et leurs opérations de base

Les différents types de données et leurs opérations de base Séquence 2 Les différents types de données et leurs opérations de base Contenu Présentation générale... 21 Partie 1 Les 3 familles de données et l'opération d'affectation... 22 1. Les trois familles de

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

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

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

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

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

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009 Déroulement Algorithmes et structures de données Cours 1 et 2 Patrick Reuter http://www.labri.fr/~preuter/asd2009 CM mercredi de 8h00 à 9h00 (Amphi Bât. E, 3 ème étage) ED - Groupe 3 : mercredi, 10h30

Plus en détail

Le langage C. Introduction, guide de reference

Le langage C. Introduction, guide de reference Le langage C Introduction, guide de reference Ce document est une présentation du langage de programmation C, de sa syntaxe et de ses spécificités. Il est destiné essentiellement à servir de mémo-guide

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

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail