Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch"

Transcription

1 Informatique III: Programmation en C++ Lundi 24 Octobre 2005 Chargé de cours François Fleuret Assistant Mathieu Salzmann Assistants étudiants Ali Al-Shabibi Sandra Pralong Guillaume Raymondon Page web Examens Un partiel de deux heures après 6 semaines de cours, et un examen final. La note finale sera ( ) Npartiel + N examen N finale = max, N examen 2 Introduction 3 4

2 Aujourd hui Description en français de ce qu est la programmation orientée objets. Introduction à la syntaxe non-objet du C++ (très semblable au C) Quelques exercices Origine du C++ Extension objet du C Développé initialement par Bjarn Stroustrup en Normalisé ISO en 1998 puis 2002 Le C date de Autre langages Orientés Objets Smalltalk (1980?) Objective-C (Apple, Brad Cox, 1986) Python (Open source, Guido van Rossum, 1990) Java (Sun Microsystem, 1995) C# (Microsoft, 2001) La plupart des langages admettent une extension objets Caml PERL Basic PHP 7 8

3 Avantages du C++ Objectif de ce cours Comprendre la philosophie objets Apprendre la syntaxe propre au C++ Similarités syntaxiques avec le C Facilement interfaçable avec le C Proche de la machine (rapide) Possède de nombreux mécanismes modernes de l orienté-objets Très répandu Excellents compilateurs open-source (GNU) 9 10 Défauts du C++ Similarités syntaxiques avec le C Pas de gestion automatique de la mémoire Pas de protection de la mémoire Gestion des exceptions facultative Pousse-au-crime La POO (programmation orientée objets) Manière de structurer les programmes Ne nécessite pas un langage particulier (cf. Gtk) Interactions entre des objets Un objet peut être vu comme une struct accompagnée de fonctions (méthodes) pour manipuler les données qu elle contient

4 Abstraction: exemple Abstraction des données Les informations sont manipulées à l aide de méthodes qui cachent les représentations Polymorphisme: des données différentes peuvent être manipulées de manières identiques. Intégrité des données On peut prendre un type d objets déjà existant et lui rajouter des données et/ou des méthodes pour en faire un nouveau type (héritage). On veut manipuler des ensembles d entiers. On peut imaginer trois situations différentes, correspondant à trois représentations de ce concept: 1. C est un singleton int k; 2. C est un sous-ensemble de 0...N bool set[n+1]; 3. C est un ensemble quelconque struct { int nb; int *valeurs; } Il serait très difficile en C de programmer une fonction unique capable de manipuler ces trois représentations En POO, on définit une liste de méthodes suffisante pour manipuler une variable du type abstrait. Par exemple ici 1 // Combien d entiers dans notre ensemble 2 int size(); 3 // Retourne le n-ieme (premier pour n = 0) 4 int get(int n); 5 // Dit si un entier est ou pas dans l ensemble 6 bool contains(int n); Ces méthode s appliqueraient à un objet (i.e. une variable du type ensemble d entiers ), et seraient programmées pour chaque type sous-jacent. Héritage: exemple Imaginons que l on ait définit un type Rectangle et que l on ait écrit un grand nombre de fonctions pour les manipuler. Si on veut à présent manipuler des étiquettes qui sont des rectangles avec un texte, il suffit d étendre le type Rectangle pour rajouter un nouveau champ de donnée et les méthodes pour manipuler ce nouveau champ. On pourra utiliser des Etiquette avec toutes les fonctions écrites pour les Rectangle 15 16

5 Avantage de la POO Intégrité des données On peut interdire d accéder directement aux données dans un objet, et imposer que les modifications se fassent à travers des méthodes qui vérifient des contraintes d intégrité. Par exemple, on pourrait imposer que la largeur et la hauteur d un rectangle soient positives. Simplicité de conception Modularité Réutilisabilité (héritage) Polymorphisme (le même code manipule des structures de données différentes) Contrôle de l intégrité des données Gigantesques librairies déjà écrites (java, C#) Défauts de la POO Lourdeur pour des choses simples Coût algorithmique pour manipuler des types simples Syntaxe non-objet du C++ Les types fondamentaux ne sont pas des objets en C

6 Programme minimum Le C++ est un sur-ensemble de C Tout ce qui était syntaxiquement valide en C est valide en C++ Quelques changements plus élégants 1 #include <iostream> 2 3 using namespace std; 4 5 int main(int argc, char **argv) { 6 cout << "Hello world!" << endl; 7 return 0; 8 } Nous reviendrons plus tard sur iostream, using namespace et cout, etc Types fondamentaux int pour les entiers float et double pour les réels char pour les caractères bool pour les booléens Les définitions de fonctions et de struct sont identiques. Exécution conditionnelle 1 if( expression booleenne ) { 2 partie à exécuter si le test est vrai 3 } 1 if( expression booleenne ) { 2 partie à exécuter si le test est vrai 3 } else { 4 partie à exécuter si le test est faux 5 } 23 24

7 Boucles 1 for(initialisation; test; increment) { 2 partie à exécuter tant que le test est vrai 3 } 1 while(test) { 2 partie à exécuter tant que le test est vrai 3 } 1 do { 2 partie à exécuter tant que le test est vrai, 3 toujours exécutée une fois 4 } while(test) Opérateurs Opérateur Fonction Opérateur Fonction + addition && Et logique - soustraction Ou logique * multiplication & Et bit à bit / division Ou bit à bit % reste euclidien! Non logique Différences non-objet entre C++ et C Compilateur, noms de fichiers En C++, les fichiers source se terminent par l extension.cpp (au lieu de.c en C). Sous UNIX, le compilateur est g++ (au lieu de gcc pour le compilateur C). On peut utiliser emacs et la fenêtre terminal comme pour les programmes en C

8 Librairies standard Nous utiliserons trois librairies standard du C++ Les entrées-sorties iostream Les manipulations de fichiers fstream Les opérations mathématiques cmath Les définitions des fonctions d une librairie doivent être inclues dans le programme à l aide de #include, et il faut rajouter using namespace std; après les includes pour pouvoir utiliser directement la plupart des fonctions. Affichages et saisies À la place des vénérables printf et scanf, le C++ offre le concept de stream. Ce sont des objets abstraits auxquels on peut transmettre (ou dans lesquels on peut lire) des types de données quelconques Utilisation de cout Pour afficher les entiers de 1 à 100 on fera Les ostream ( output stream ) permettent d écrire des valeurs (à l écran ou dans un fichier). On envoie une valeur dans un ostream avec l opérateur <<. Les istream ( input stream ) permettent de lire des données (depuis le clavier ou un fichier). On lit une valeur dans un istream à l aide de l opérateur >>. 1 #include <iostream> 2 3 using namespace std; 4 5 int main(int argc, char **argv) { 6 for(int i = 0; i < 100; i++) cout << i << endl; 7 return 0; 8 } Le symbole cout représente le ostream particulier associé à la sortie standard. L opérateur << prend un ostream à gauche, un type quelconque à droite, et retourne un ostream (en plus d avoir fait l affichage proprement dit)

9 Utilisation de cin Détails de l évaluation Une expression telle que 1 cout << "Mon entier vaut " << n << endl; Est interprétée comme 1 ( ( cout << "Mon entier vaut " ) << n ) << endl; par le compilateur. Si l on veut demander un entier à l utilisateur et afficher tous les entiers dont le carré est plus petit. 1 int bound; 2 cin >> bound; 3 for(int k = 0; k * k <= bound; k++) 4 cout << k << endl; Le symbole cin représente le istream particulier associé à l entrée standard. L opérateur >> lit une valeur du type donné dans le istream à gauche et l affecte à la variable à droite Précision, nombre de chiffres Un grand nombre de paramètres de formatages peuvent être fixés. En particulier le nombre de chiffres significatifs. 1 double x = 11.0/17.0; 2 cout << "x = " << x << endl; 3 cout.precision(3); 4 cout << "x = " << x << endl; 5 cout.precision(25); 6 cout << "x = " << x << endl; affiche x = x = x =

10 Définition de variables Comme en C, une variable est définie par son type, et par le nombre d éléments dans le cas d un tableau. La partie de programme où elle existe s appelle son scope. Il commence à l endroit de la définition et se termine à la fin du plus petit bloc d instructions qui contient la définition. On peut définir des variables n importe où en C++, y compris dans l initialisation d une boucle for. Le scope est alors la boucle elle-même. Exemple 1 int fonction_bizarre(int k) { 2 int a = 0; 3 for(int c = 0; c < k*k; c++) { 4 int d = c + c * c + c * c * c; 5 if(c%k == 0) a += d; 6 } 7 return a; 8 } Le scope de k va de la ligne 1 à la } ligne 8, celui de a va de la ligne 2 à la } ligne 8, le scope de c va de 3 à la } ligne 6, et celui de d de 4 à la } ligne Masquage de variables 1 #include <iostream> 2 3 using namespace std; 4 5 int main(int argc, char **argv) { 6 int a = 3; 7 cout << "1: a = " << a << endl; 8 { 9 int a = 5; 10 cout << "2: a = " << a << endl; 11 } 12 cout << "3: a = " << a << endl; 13 return 0; 14 } On a défini une deuxième variable a qui masque la première dans le bloc d instruction où elle est définie. Le programme affiche 1: a = 3 2: a = 5 3: a =

11 Exercice: Calcul de la surface d un disque (3min) Écrire un programme qui demande à l utilisateur le rayon d un disque, puis affiche la surface avec 3 chiffres significatifs. La constante π est définie dans cmath par le symbole M PI. 1 #include <iostream> 2 #include <cmath> 3 4 using namespace std; 5 6 int main(int argc, char **argv) { 7 float radius; 8 cout << "Entrez le rayon: "; 9 cin >> radius; 10 cout.precision(3); 11 cout << "La surface du disque est " 12 << M_PI * radius * radius << endl; 13 return 0; 14 } Exercice: Afficher les diviseurs d un entier (5min) Écrire un programme qui demande à l utilisateur un entier puis affiche la liste de ses diviseurs. Le programme re-demandera l entier jusqu à en obtenir un strictement positif. 1 #include <iostream> 2 3 using namespace std; 4 5 int main(int argc, char **argv) { 6 int n; 7 do { cin >> n; } while(n <= 0); 8 for(int k = 1; k <= n; k++) 9 if(n%k == 0) cout << k << endl; 10 return 0; 11 } 43 44

12 Allocation mémoire (exemple) Allocation et déallocation de mémoire L allocation dynamique de mémoire se fait en C à l aide des deux appels systèmes malloc et free. En C++, trois nouveaux opérateurs remplissent la même fonction: new, delete et delete[]. Le premier permet d allouer une variable ou un tableau, et les deux autres de libérer des zones allouées. Le bout de source suivant alloue dynamiquement d abord un double unique, puis un tableau de 150 double. double *a; a = new double; *a = 3.14; delete a; a = new double[150]; for(int i = 0; i < 150; i++) a[i] = i; delete[] a; 45 46

Informatique II : Cours de programmation (C++) INTRODUCTION

Informatique II : Cours de programmation (C++) INTRODUCTION Informatique II : Cours de () INTRODUCTION Haroud Laboratoire d Intelligence Artificielle Faculté I&C Informatique II Cours 1 : Introduction 1 / 65 Objectifs du d aujourd hui Présenter le Objectifs («Quoi?»)

Plus en détail

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un

Plus en détail

Algorithmique Partie 1

Algorithmique Partie 1 Algorithmique Partie 1 IUT Informatique de Lens, 1ère Année Université d Artois Frédéric Koriche koriche@cril.fr 2011 - Semestre 1 Modalités Sommaire 1 Modalités 2 Programmation 3 Données 4 Opérateurs

Plus en détail

TP Interface graphique et C++ numéro 1

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

Plus en détail

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

Programmation I : Cours de programmation (C++) Variables et opérateurs

Programmation I : Cours de programmation (C++) Variables et opérateurs Programmation I : Cours de () Variables et opérateurs Laboratoire d Intelligence Artificielle Faculté I&C Programmation I Cours 2 : Variables et opérateurs 1 / 25 Vidéos, Quiz et transparents https://www.coursera.org/learn/init-prog-cpp/home/week/1

Plus en détail

X. Juvigny. Septembre 2007

X. Juvigny. Septembre 2007 De C à C++ X Juvigny Septembre 2007 1 Introduction Outre les nouvelles possibilités en programmation orienté objet, le C++ offre de plus de nouvelles caractéristiques par rapport au langage C dont il est

Plus en détail

Cours C++ Lorsque je lance Dev C++, il apparaître l'écran ci-contre.

Cours C++ Lorsque je lance Dev C++, il apparaître l'écran ci-contre. Cours C++ Définition : Le langage C est un langage de programmation inventé par MM. Kernighan et Ritchie au début des années 70. Au début des années 90, Bjarne Stroustrup fait évoluer le langage vers le

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

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

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali 3. Langage Python 3 2 a. Introduction Présentation du langage Python : Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans l imposer) une approche modulaire et orientée objet

Plus en détail

La programmation Impérative par le Langage C

La programmation Impérative par le Langage C La programmation Impérative par le Langage C 1. Introduction 1.1 Qu est-ce que la programmation impérative? Un programme est constitué de plusieurs lignes d instructions. Chaque instruction permet d effectuer

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

Traduction des arbres programmatiques en C

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

Plus en détail

Introduction au langage C - types et variables

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

Plus en détail

Une introduction au langage C++ Marc Jachym, Lurpa

Une introduction au langage C++ Marc Jachym, Lurpa Une introduction au langage C++ Marc Jachym, Lurpa Janvier 2008 À l origine, le langage C Langage procédural créé dans les années 1970 aux laboratoires Bell (ATT : télécoms américains) en vue d écrire

Plus en détail

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

Plus en détail

Compte en banque : Exemple de conception et implantation par raffinement successif

Compte en banque : Exemple de conception et implantation par raffinement successif Compte en banque : Exemple de conception et implantation par raffinement successif 11 octobre 2014 1 Énoncé On veut écrire un programme qui fait la mise à jour de votre compte en banque. Le programme traite

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes

Programmation en Python - Cours 2 : Premiers programmes Programmation en Python - Cours 2 : Premiers programmes 2013/2014 Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Saisie de données par l utilisateur : input(),

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

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

Algorithmie ISI301 TP 1 : Python et premiers algorithmes

Algorithmie ISI301 TP 1 : Python et premiers algorithmes Algorithmie ISI301 TP 1 : Python et premiers algorithmes 1 Python : apprentissage Pour avoir une vision plus large des différentes possibilités du langage Python, nous ne pouvons que vous conseiller d

Plus en détail

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 7 : Structures et Fichiers OBJECTIFS DE LA SÉANCE Deux notions abordées dans ce cours Celle

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

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

TP1 - Introduction au langage C

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

Plus en détail

Chapitre 3 : Pointeurs et références

Chapitre 3 : Pointeurs et références p. 1/18 Chapitre 3 : Pointeurs et références Notion de pointeur L adresse d une variable est une valeur. On peut donc la stocker dans une variable. Un pointeur est une variable qui contient l adresse d

Plus en détail

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

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

Plus en détail

Chapitre I Langages de programmation et langage C

Chapitre I Langages de programmation et langage C Chapitre I Langages de programmation et langage C un chapitre où l on situe le langage C dans la très nombreuse famille des langages de programmation et où l on écrit son premier programme dans ce langage.

Plus en détail

Les entrées et les sorties sont considérées comme des flots. Un flot est associé à un fichier ou à un périphérique.

Les entrées et les sorties sont considérées comme des flots. Un flot est associé à un fichier ou à un périphérique. Le langage C++ Master Actuariat Séance 5 : Les flots C++ - F.CHAKER- M1 Actuariat 2014/2015 1 Les entrées sorties en C++ Les entrées et les sorties sont considérées comme des flots. Un flot est associé

Plus en détail

Cours Visual Basic URCA

Cours Visual Basic URCA Cours Visual Basic URCA Sommaire Introduction à la programmation VBA et VB Syntaxe de base, variables Opérateurs de base, boucles Introduction à la programmation Qu est-ce que la programmation? Séquences

Plus en détail

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

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

Plus en détail

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

2.5- Les flux. 1- Librairies de flux. 2- Manipulation de cin. 3- Lecture et écriture de fichiers. 4- Les flux et les chaînes

2.5- Les flux. 1- Librairies de flux. 2- Manipulation de cin. 3- Lecture et écriture de fichiers. 4- Les flux et les chaînes 2.5- Les flux 1- Librairies de flux 2- Manipulation de cin 3- Lecture et écriture de fichiers 4- Les flux et les chaînes 5- Passage de paramètres en ligne de commande 6- Un exemple de récupération CSV

Plus en détail

420KEL Petite révision v. 1,65. Petite révision

420KEL Petite révision v. 1,65. Petite révision Petite révision Quelques petits exercices pour vous rafraîchir la mémoire et vous remettre en forme. Dans les exercices pour lesquels on vous demande de programmer, cherchez à produire un résultat à la

Plus en détail

Introduction à la Programmation Orientée Objet

Introduction à la Programmation Orientée Objet Licence Sciences, Technologies, Santé Université de Perpignan Via Domitia Semestre 5 (L3) - Mention Mathématiques, Informatique Année universitaire 2011/2012 Programmation Orientée Objet Introduction à

Plus en détail

Programmation orientée objet : le cas de C++

Programmation orientée objet : le cas de C++ Ecole Doctorale MathIf Programmation orientée objet : le cas de C++ Violaine Louvet 1 1 ICJ - CNRS Année 2009-2010 Objectifs de ce cours Connaître et comprendre les concepts de la programmation orientée

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

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

Algorithmique - Programmation 1. Cours 1

Algorithmique - Programmation 1. Cours 1 Algorithmique - Programmation 1 Cours 1 Université Henri Poincaré CESS Epinal Automne 2008 1/ 24 Plan Introduction Introduction A propos d AP1 Quelques concepts de base Premiers pas avec Caml Le branchement

Plus en détail

Premiers exemples de traitements

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

Plus en détail

CTRAVAUX PRATIQUES INTRODUCTION À LA PROGRAMMATION 2EBAC BIOLOGIE - 2 ND QUAD- 2010-2011 TP 0 BELGIQUE 04/366.90.43

CTRAVAUX PRATIQUES INTRODUCTION À LA PROGRAMMATION 2EBAC BIOLOGIE - 2 ND QUAD- 2010-2011 TP 0 BELGIQUE 04/366.90.43 PROFESSEUR CTRAVAUX PRATIQUES INTRODUCTION À LA PROGRAMMATION 2EBAC BIOLOGIE - 2 ND QUAD- 2010-2011 TP 0 PR. PETER SCHLAGHECK BÂT. B5 PHYSIQUE QUANTIQUE STATISTIQUE ALLÉE DU 6 AOÛT 17 4000 LIÈGE 1 BELGIQUE

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

Langage Élémentaire Algorithmique Spécifications du langage

Langage Élémentaire Algorithmique Spécifications du langage Langage Élémentaire Algorithmique Spécifications du langage Lionel Clément Version provisoire Novembre 2012 Le but de ce projet est de livrer un compilateur pour un langage élémentaire algorithmique (Léa).

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

Avant-propos. 1. Introduction

Avant-propos. 1. Introduction Avant-propos Les sections ou sous-sections marquées d un astérisque (*) ne font pas partie de la matière du cours IFT1969. Elles sont destinées à définir complètement le langage C (ANSI-C99) et à en préciser

Plus en détail

IFT159 Analyse et programmation

IFT159 Analyse et programmation IFT159 Analyse et programmation Chapitre 2 Gabriel Girard Département d informatique 2 septembre 2008 1 Qu est-ce qu un programme C++ 2 Commentaires (1) Directives au compilateur (2) Fonctions (4) 3 float

Plus en détail

De Java (et C) à C++

De Java (et C) à C++ De Java (et C) à C++ Historique Syntaxe basée sur le langage C Bjarne Stroustrup 1979 : C with classes 1983 : renommé C++ 1985 : The C++ Programming Language, première édition 1998 : premier standard 2003

Plus en détail

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

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

Plus en détail

Expressions, types et variables en Python

Expressions, types et variables en Python Expressions, types et variables en Python 2015-08-26 1 Expressions Les valeurs désignent les données manipulées par un algorithme ou une fonction. Une valeur peut ainsi être : un nombre, un caractère,

Plus en détail

Organisation des données et structures de stockage

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

Plus en détail

1. 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

} 7 Variables (composantes)

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

Plus en détail

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

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

Plus en détail

Résolution d exercices avec Visual Studio

Résolution d exercices avec Visual Studio Résolution d exercices avec Visual Studio Document rédigé par David Taralla 3 e Bachelier en Sciences Informatiques david.taralla@student.ulg.ac.be Dernière version : 7 novembre 2011 Préambule Ce petit

Plus en détail

Programmation I : Cours d introduction à la programmation Pointeurs

Programmation I : Cours d introduction à la programmation Pointeurs Programmation I : Cours d introduction à la programmation Pointeurs Laboratoire d Intelligence Artificielle Faculté I&C Programmation I Pointeurs 1 / 23 Rappel du calendrier Programmation I Pointeurs 2

Plus en détail

Examen de Programmation I

Examen de Programmation I Examen de Programmation I Sciences et Technologies du Vivant, Semestre 1 Mercredi 22 décembre 2010 1. N oubliez pas de mettre vos NOM et PRÉNOM sur toutes vos copies. 2. Merci de garder la donnée. 3. Vous

Plus en détail

Petit résumé pour IFT1166

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

Plus en détail

Introduction au langage C++

Introduction au langage C++ Introduction au langage C++ D après les notes d introductives au C++ de Stéphane Menozzi http://www.proba.jussieu.fr/~menozzi/ Maxime Pallud IMACS/X-TEC Bat 404 Tel: 01 69 33 46 86 Mail: pallud@imacs.polytechnique.fr

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Introduction au langage

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

Plus en détail

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

Plus en détail

Le langage C. Les bases Jean-Pierre Fournier,

Le langage C. Les bases Jean-Pierre Fournier, Le langage C Les bases Jean-Pierre Fournier, http://www.iut-orsay.fr/~fournier jpf@fiifo.u-psud.fr Un peu d histoire B (Bell labs) (1970) [Ken Thompson] NB (new B) (B + types) (1971) [Dennis Ritchie] C

Plus en détail

Fiche de révisions - Algorithmique

Fiche de révisions - Algorithmique Fiche de révisions - Algorithmique Rédigé par : Jimmy Paquereau 1. Généralités Algorithme : un algorithme est la description d une procédure à suivre afin de résoudre un problème donné. Il n est pas nécessairement

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

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

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

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

Plus en détail

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

Informatique III: Programmation en C++

Informatique III: Programmation en C++ Rappel: fstream Informatique III: Programmation en C++ void open(const char *nom fichier, openmode mode) ouvre le fichiers nom fichier dans le mode mode (ifstream: par défaut en lecture, ofstream: par

Plus en détail

Java & Algorithme Corrigé du test final

Java & Algorithme Corrigé du test final Java & Algorithme Corrigé du test final 1 QUESTIONS EN JAVA Chaque question est sur un point, sauf certaines sur deux points. En tout, le QCM est noté sur 24 : la note est divisée par 6 pour revenir entre

Plus en détail

L agenda électronique

L agenda électronique L agenda électronique Figure 1 : vision d'un agenda électronique pour une semaine donnée Dans cette application, nous allons programmer en C++ les sous-programmes et le programme nécessaire à la saisie

Plus en détail

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

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

Plus en détail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Informatique. Programmation en Python.

Informatique. Programmation en Python. BCPST 1 B 13 septembre 2015 Informatique. Programmation en Python. Ce document est un support de cours, il vous permet d avoir sa structure et ses éléments les plus importants. Au cours des séances en

Plus en détail

Le langage Forth. Brique ROSE. Samuel Tardieu sam@rfc1149.net. École Nationale Supérieure des Télécommunications

Le langage Forth. Brique ROSE. Samuel Tardieu sam@rfc1149.net. École Nationale Supérieure des Télécommunications Le langage Forth Brique ROSE Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Le langage Forth 1 / 26 Qu est-ce que Forth? Langage sans syntaxe Mots

Plus en détail

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

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

Plus en détail

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

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

Plus en détail

Langage C. Chapitre 2. 2.1 Le langage C, un langage non interprété. 2.1.1 L écriture du programme. 2.1.2 La compilation

Langage C. Chapitre 2. 2.1 Le langage C, un langage non interprété. 2.1.1 L écriture du programme. 2.1.2 La compilation Chapitre 2 Langage C 2.1 Le langage C, un langage non interprété Le C est un langage de programmation comme il en existe beaucoup d autres (C++, Fortran, Python, Matlab, IDL, ADA...). Il existe deux grandes

Plus en détail

1 Hello world. 2 Sorties en C. DUT Informatique M3101 Système S3 2015 / 2016. Travaux Pratiques n o 0 : Rappels de programmation C

1 Hello world. 2 Sorties en C. DUT Informatique M3101 Système S3 2015 / 2016. Travaux Pratiques n o 0 : Rappels de programmation C DUT Informatique 2015 / 2016 Travaux Pratiques n o 0 : Rappels de programmation C Nom(s) : Groupe : Date : Objectifs : renouer avec les notions, la manipulation et l écriture de programmes C, en particulier

Plus en détail

S. Laporte C# mode console DAIGL TS1

S. Laporte C# mode console DAIGL TS1 Bases du langage C# I. C# en mode console (mode texte) Avantages par rapport au mode graphique (Application Windows): - C'est un mode plus proche de l'approche algorithmique (pas de notions de composants,

Plus en détail

Série 2 Premiers programmes

Série 2 Premiers programmes Licence pro. GTSBD 2013-2014 Structures de données, langage Python Série 2 Premiers programmes Programmes avec des affectations, des lectures et des écritures Exo 2.1 Le problème de la machine qui rend

Plus en détail

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis Anne Tasso Un best-seller qui a déjà conquis des milliers d'étudiants! Java Le livre Java Le livrede de premier premier langage langage Avec 80 exercices corrigés Avec 80 exercices corrigés 5 e édition

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers

Programmation en Python - Cours 2 : Premiers programmes. MPSI - Lycée Thiers Programmation en Python - Cours 2 : Premiers programmes Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Utilisation en mode interactif Ecriture d un programme

Plus en détail

Algorithmique et programmation : les bases (C) Corrigé

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

Plus en détail

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation.

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Sébastien COLLETTE et Gilles GEERAERTS 1 Introduction Ce document décrit

Plus en détail

Langage C notes de cours

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

Plus en détail

renforcer le contrôle de type :

renforcer le contrôle de type : renforcer le contrôle de type : définitions, prototypes de fonctions surcharge références conversions de void * préférer le compilateur au préprocesseur considérer les entrées/sorties opérations abstraites

Plus en détail

Introduction à l informatique, à Python, et représentation des nombres en machine

Introduction à l informatique, à Python, et représentation des nombres en machine Introduction à l informatique, à Python, et représentation des nombres en machine Table des matières Qu est-ce-que l informatique? Qu est-ce-qu un ordinateur? 2 Principaux composants...............................................

Plus en détail

3 Lien entre pointeurs et tableaux.

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

Plus en détail

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

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

Plus en détail

Série d exercices. o Cas 2 : gcc o nomexecutable c nomsource.c. o Cas 3 : gcc o nomexecutable W -Wall nomsource.c

Série d exercices. o Cas 2 : gcc o nomexecutable c nomsource.c. o Cas 3 : gcc o nomexecutable W -Wall nomsource.c Langage Impératif 1 TP 1 du 11 octobre 2010 Série d exercices Rappels rapides : - Un programme C s écrit toujours dans un fichier d extension.c (en minuscule!! sinon ce serait compilé comme du C++). Ce

Plus en détail

INF 2005 Programmation orientée objet avec C++ Texte 2

INF 2005 Programmation orientée objet avec C++ Texte 2 INF 2005 Programmation orientée objet avec C++ Texte 2 1. Mots clés du langage C++ et premiers pas... 2 1.1 Les mots clés du langage C++... 2 1.2 Familiarisation avec le langage... 3 2. Les entrées-sorties...

Plus en détail

Héritage en java : Calculatrice SDC

Héritage en java : Calculatrice SDC Programmation orientée objet L3 MIAGE Héritage en java : Calculatrice SDC Travail à rendre : le code complet du projet SDC sous forme d une archive tar.gz. L archive comportera trois répertoires : un répertoire

Plus en détail

Cours 3. La conditionnelle: instructions si et selon Les boucles Comment raisonner sur les boucles: les invariants de boucle

Cours 3. La conditionnelle: instructions si et selon Les boucles Comment raisonner sur les boucles: les invariants de boucle Cours 3 : Instructions qui changent l ordre d exécution séquentiel 1 Cours 3 Instructions qui changent l ordre d exécution séquentiel La conditionnelle: instructions si et selon Les boucles Comment raisonner

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

Les entrées sorties en C/C++

Les entrées sorties en C/C++ Les entrées sorties en C/C++ Dans ce chapitre, nous allons voir les fonctions d entrée/sortie du langage C++, extension du langage C. Écriture sur la sortie standard Fonction printf et opérateur

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

Programmation Répartie - Langage C

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

Plus en détail

Algorithmique et Programmation 2 LMI 1 Semestre 2 Cours 2 La séquence et l alternative

Algorithmique et Programmation 2 LMI 1 Semestre 2 Cours 2 La séquence et l alternative Algorithmique et Programmation 2 LMI 1 Semestre 2 Cours 2 La séquence et l alternative 2 janvier 2009 1 Les structures de contrôle En Scheme, le programmation se fait par composition de fonctions, et même

Plus en détail