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

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

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

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

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie


Le langage C. Séance n 4

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

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

Cours d Algorithmique et de Langage C v 3.0

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

Algorithmique et Programmation, IMA

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

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

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Introduction au langage C

TP1 : Initiation à Java et Eclipse

TP 1. Prise en main du langage Python

Programme Compte bancaire (code)

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.6- Génération de nombres aléatoires

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

TP1 : Initiation à Java et Eclipse

Informatique I. Sciences et Technologies du Vivant (Semestre 1)

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

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Initiation à la programmation en Python

L informatique en BCPST

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Notions fondamentales du langage C# Version 1.0

Programmation stochastique

STAGE IREM 0- Premiers pas en Python

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

ACTIVITÉ DE PROGRAMMATION

Outils pour la pratique

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

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

Présentation du PL/SQL

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

Les structures. Chapitre 3

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

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

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

Cours 1 : La compilation

Représentation d un entier en base b

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

Examen Médian - 1 heure 30

Présentation du langage et premières fonctions

Licence Sciences et Technologies Examen janvier 2010

Entraînement au concours ACM-ICPC

Création du projet : 1 sur 13

Quelques éléments de compilation en C et makefiles

Approche Contract First

Conventions d écriture et outils de mise au point

Découverte de Python

Ecran principal à l ouverture du logiciel

Algorithmique et programmation : les bases (VBA) Corrigé

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

TP : Gestion d une image au format PGM

INFO-F-105 Language de programmation I Séance VI

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

Plan du cours. Historique du langage Nouveautés de Java 7

Cours Informatique Master STEP

I. Introduction aux fonctions : les fonctions standards

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

Algorithmique I. Algorithmique I p.1/??

Direction des Systèmes d'information

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Introduction à l héritage en C++

Claude Delannoy. 3 e édition C++

Cours d algorithmique pour la classe de 2nde

Utilitaires méconnus de StrataFrame

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Cours 1 : Qu est-ce que la programmation?

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

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C mars.10 Cours 4 11.mai.10 Cours C++ 2

FIDÉICOMMIS. Être en mesure de :

Introduction au pricing d option en finance

et Programmation Objet

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Introduction à l algorithmique et à la programmation (Info 2)

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

Encryptions, compression et partitionnement des données

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

SoMachine. Solution logicielle pour votre architecture Machine Atelier de découverte. SoMachine

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

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Chapitre I Notions de base et outils de travail

Rappels Entrées -Sorties

Chap III : Les tableaux

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Évaluation et implémentation des langages

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

Programmation système en C/C++

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

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

Transcription:

Introduction à la programmation Travaux pratiques: séance introductive INFO0201-1 X. Baumans (xavier.baumans@ulg.ac.be) [Copyright F. Ludewig & B. Baert, ULg]

Notes de TP Slides de TP accessibles à l adresse : mate06.phys.ulg.ac.be => votre section... De chez vous : VPN ULg INFO0201-1 X.Baumans 1 / 20

C est quoi "programmer"? Programme informatique Suite d instructions utilisées par l ordinateur pour effectuer un traitement donné. INFO0201-1 X.Baumans 2 / 20

C est quoi "programmer"? Programme informatique Suite d instructions utilisées par l ordinateur pour effectuer un traitement donné. La machine suit le schéma qu on lui donne. Elle exécute les étapes imposées, une par une, ni plus ni moins. INFO0201-1 X.Baumans 2 / 20

C est quoi "programmer"? Programme informatique Suite d instructions utilisées par l ordinateur pour effectuer un traitement donné. La machine suit le schéma qu on lui donne. Elle exécute les étapes imposées, une par une, ni plus ni moins. Exemple : Recette culinaire exécutée par un débutant... INFO0201-1 X.Baumans 2 / 20

C est quoi "programmer"? Programme informatique Suite d instructions utilisées par l ordinateur pour effectuer un traitement donné. La machine suit le schéma qu on lui donne. Elle exécute les étapes imposées, une par une, ni plus ni moins. Exemple : Recette culinaire exécutée par un débutant... L ordinateur n a pas d esprit d initiative : il fait exactement ce qu on lui dit et rien d autre! Néanmoins, point positif : il peut le faire un très grand nombre de fois sans sourciller, et ce très rapidement! (cf. fréquence du processeur) INFO0201-1 X.Baumans 2 / 20

C est quoi "programmer"? Programme informatique Suite d instructions utilisées par l ordinateur pour effectuer un traitement donné. La machine suit le schéma qu on lui donne. Elle exécute les étapes imposées, une par une, ni plus ni moins. Exemple : Recette culinaire exécutée par un débutant... L ordinateur n a pas d esprit d initiative : il fait exactement ce qu on lui dit et rien d autre! Néanmoins, point positif : il peut le faire un très grand nombre de fois sans sourciller, et ce très rapidement! (cf. fréquence du processeur)!!! Soyez rigoureux avec vos instructions!!! INFO0201-1 X.Baumans 2 / 20

Implication des TP info et pourquoi programmer? La programmation est importante en géographie (Géomatique, Météorologie, Climatologie) INFO0201-1 X.Baumans 3 / 20

Implication des TP info et pourquoi programmer? La programmation est importante en géographie (Géomatique, Météorologie, Climatologie) C++ nécessaire pour le cours d analyse numérique (Méthodes numériques de la physique, BAC 3 / Master 1) INFO0201-1 X.Baumans 3 / 20

Implication des TP info et pourquoi programmer? La programmation est importante en géographie (Géomatique, Météorologie, Climatologie) C++ nécessaire pour le cours d analyse numérique (Méthodes numériques de la physique, BAC 3 / Master 1) Partie pratique importante dans la cote finale du cours (70%) INFO0201-1 X.Baumans 3 / 20

Implication des TP info et pourquoi programmer? La programmation est importante en géographie (Géomatique, Météorologie, Climatologie) C++ nécessaire pour le cours d analyse numérique (Méthodes numériques de la physique, BAC 3 / Master 1) Partie pratique importante dans la cote finale du cours (70%) INFO0201-1 X.Baumans 3 / 20

Objectif des TPs du cours de programmation Acquérir les concepts de base de la programmation en informatique Apprendre la syntaxe d un langage de programmation (C/C++) Développer des notions de logique et d algorithmique En pratique : Notions progressives et cumulatives lors des TPs, accompagnées d exercices Très courtes interrogations toutes les deux séances sur la matière vue précédemment (1 point) 2 interrogations plus longues en milieu et en fin de quadrimestre (3 et 4 points) INFO0201-1 X.Baumans 4 / 20

Objectif des TPs du cours de programmation Total de 12 points attribués au long des interrogations, ramenés à 2 points de la cote finale de l examen : > 4 points 1 point sur 20 à l examen > 8 points 2 points sur 20 à l examen Pour réussir le cours (TPs = 70% de l examen) Faire de nombreux exercices Travailler régulièrement Étudier juste avant l examen ne fonctionnera pas INFO0201-1 X.Baumans 5 / 20

Comment programmer? Résoudre un problème 1 Analyser et décortiquer le problème INFO0201-1 X.Baumans 6 / 20

Comment programmer? Résoudre un problème 1 Analyser et décortiquer le problème 2 Penser son code (raisonnement logique et intuitif) INFO0201-1 X.Baumans 6 / 20

Comment programmer? Résoudre un problème 1 Analyser et décortiquer le problème 2 Penser son code (raisonnement logique et intuitif) 3 Implémenter (contrôler et commenter chaque étape) INFO0201-1 X.Baumans 6 / 20

Comment programmer? Résoudre un problème 1 Analyser et décortiquer le problème 2 Penser son code (raisonnement logique et intuitif) 3 Implémenter (contrôler et commenter chaque étape) 4 Compiler / Exécuter INFO0201-1 X.Baumans 6 / 20

Comment programmer? Résoudre un problème 1 Analyser et décortiquer le problème 2 Penser son code (raisonnement logique et intuitif) 3 Implémenter (contrôler et commenter chaque étape) 4 Compiler / Exécuter 5 Débugger si nécessaire (retour au point 2) INFO0201-1 X.Baumans 6 / 20

Langages de programmation Types de langage Langage structuré (C,Fortran,...) INFO0201-1 X.Baumans 7 / 20

Langages de programmation Types de langage Langage structuré (C,Fortran,...) Langage orienté objet (C++, C#, Objective-C, Java,...) INFO0201-1 X.Baumans 7 / 20

Langages de programmation Types de langage Langage structuré (C,Fortran,...) Langage orienté objet (C++, C#, Objective-C, Java,...) Programmation C++ pour ce cours C étendu (langage structuré) Notion de classe et objet INFO0201-1 X.Baumans 7 / 20

Construction d un programme Un ordinateur n est capable d exécuter qu un nombre limité d opérations différentes ce sont les instructions fondamentales du processeur les instructions plus complexes sont réalisées en les combinant 1 mov -0x18(%rax),%rax 2 mov 0x603170(%rax),%rbx 3 test %rbx,%rbx 4 je 401c63 <main+0x173> 5 mov $0x603080,%edi 6 mov $0xfffe7960,%ebx 7 callq 400d08 <_ZNSo3putEc@plt> 8 mov %rax,%rdi Ce code machine est très difficile à comprendre pour un humain On utilise un langage de programmation plus simple à comprendre et à utiliser INFO0201-1 X.Baumans 8 / 20

Langages de programmation : C/C++ Un langage de programmation est constitué d un ensemble de mots-clés qui correspondent à des instructions (if, else, while,...) INFO0201-1 X.Baumans 9 / 20

Langages de programmation : C/C++ Un langage de programmation est constitué d un ensemble de mots-clés qui correspondent à des instructions (if, else, while,...) de règles pour combiner les éléments du langage : la syntaxe INFO0201-1 X.Baumans 9 / 20

Langages de programmation : C/C++ Un langage de programmation est constitué d un ensemble de mots-clés qui correspondent à des instructions (if, else, while,...) de règles pour combiner les éléments du langage : la syntaxe d identifiants pour les variables, les fonctions, etc... INFO0201-1 X.Baumans 9 / 20

Langages de programmation : C/C++ Un langage de programmation est constitué d un ensemble de mots-clés qui correspondent à des instructions (if, else, while,...) de règles pour combiner les éléments du langage : la syntaxe d identifiants pour les variables, les fonctions, etc... Nous utiliserons le langage C/C++, qui possède une syntaxe et des mots-clés qui lui sont propres 1 double trunc_error = fabs(f/h - (fplus + fminus)/(2.*h)); 2 double roundoff_error = std::numeric_limits<double>::epsilon()*f/h; 3 u = trunc_error / roundoff_error; INFO0201-1 X.Baumans 9 / 20

Étapes fondamentales de la construction d un programme 2 étapes principales : 1 Écrire le code source du programme dans un fichier texte Un ou des fichier(s) texte qui contiennent le programme écrit dans un langage de programmation INFO0201-1 X.Baumans 10 / 20

Étapes fondamentales de la construction d un programme 2 étapes principales : 1 Écrire le code source du programme dans un fichier texte Un ou des fichier(s) texte qui contiennent le programme écrit dans un langage de programmation 2 Compiler le code source pour en faire un programme exécutable Le compilateur transforme les fichiers sources en un code exécutable par l ordinateur INFO0201-1 X.Baumans 10 / 20

Écrire le code source Code : :Blocks Code : :Blocks = Environnement de Développement Intégré Il regroupe : INFO0201-1 X.Baumans 11 / 20

Écrire le code source Code : :Blocks Code : :Blocks = Environnement de Développement Intégré Il regroupe : Un éditeur de texte : il facilite l écriture du code source (coloration syntaxique, numérotation des lignes, indentation automatique,...) INFO0201-1 X.Baumans 11 / 20

Écrire le code source Code : :Blocks Code : :Blocks = Environnement de Développement Intégré Il regroupe : Un éditeur de texte : il facilite l écriture du code source (coloration syntaxique, numérotation des lignes, indentation automatique,...) Une interface avec un compilateur : il permet de compiler directement les codes sources écrits dans l éditeur. Une fenêtre montre les éventuelles erreurs de compilation. On peut ensuite exécuter le programme. INFO0201-1 X.Baumans 11 / 20

Écrire le code source Code : :Blocks Code : :Blocks = Environnement de Développement Intégré Il regroupe : Un éditeur de texte : il facilite l écriture du code source (coloration syntaxique, numérotation des lignes, indentation automatique,...) Une interface avec un compilateur : il permet de compiler directement les codes sources écrits dans l éditeur. Une fenêtre montre les éventuelles erreurs de compilation. On peut ensuite exécuter le programme. INFO0201-1 X.Baumans 11 / 20

Créer un projet Code : :Blocks (1/4) Cliquer sur Create a new project INFO0201-1 X.Baumans 12 / 20

Créer un projet Code : :Blocks (2/4) Dans la catégorie Projects, choisir le type Console application, pour construire un projet permettant de réaliser des affichages et des saisies au clavier dans un terminal. INFO0201-1 X.Baumans 13 / 20

Créer un projet Code : :Blocks (3/4) Choisir un nom de projet pour le champ Project title et choisir le dossier dans lequel enregistrer le projet avec le champ Folder to create project in. Laisser les valeurs par défaut pour les deux autres champs. INFO0201-1 X.Baumans 14 / 20

Créer un projet Code : :Blocks (4/4) Ne rien modifier dans cette fenêtre et cliquer sur Finish INFO0201-1 X.Baumans 15 / 20

Premier programme : Hello World! Lors de la création d un nouveau projet, Code : :Blocks le complète automatiquement avec un petit programme : Hello World! Tous les programmeurs commencent leur apprentissage de la programmation en écrivant ce petit programme INFO0201-1 X.Baumans 16 / 20

Hello World! Le code source du programme Hello World en C/C++ est le suivant : 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 return 0; 9 } INFO0201-1 X.Baumans 17 / 20

Hello World! Le code source du programme Hello World en C/C++ est le suivant : 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 return 0; 9 } La partie instructions du programme INFO0201-1 X.Baumans 17 / 20

Hello World! Le code source du programme Hello World en C/C++ est le suivant : 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 return 0; 9 } Le programme démarre toujours en exécutant une fonction principale appelée main INFO0201-1 X.Baumans 17 / 20

Hello World! Le code source du programme Hello World en C/C++ est le suivant : 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 return 0; 9 } Les instructions de cette fonction sont contenues entre des accolades {...} INFO0201-1 X.Baumans 17 / 20

Hello World! Le code source du programme Hello World en C/C++ est le suivant : 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 return 0; 9 } L objet cout permet l affichage à l écran. INFO0201-1 X.Baumans 17 / 20

Hello World! Le code source du programme Hello World en C/C++ est le suivant : 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 return 0; 9 } L instruction return x ; est la dernière instruction de la fonction main. Elle indique quelle valeur la fonction va retourner (0). INFO0201-1 X.Baumans 17 / 20

Hello World! Le code source du programme Hello World en C/C++ est le suivant : 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 return 0; 9 } L instruction pre-processeur #include permet d inclure des librairies externes contenant des fonctionalités supplémentaires. Ici iostream permet de réaliser des entrées-sorties avec la console. INFO0201-1 X.Baumans 17 / 20

Hello World! Le code source du programme Hello World en C/C++ est le suivant : 1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 cout << "Hello world!" << endl; 8 return 0; 9 } using namespace permet de signaler au compilateur qu on utilisera un espace de nom appelé std pour accéder aux fonctions de iostream. Sans cela, on devrait écrire std : :cout. INFO0201-1 X.Baumans 17 / 20

Instructions en C/C++ Les instructions sont séparées par des points-virgules ; Les accolades {...} définissent des blocs d instructions Ex. les instructions de la fonction main() sont entourées par des accolades Le nombre d espaces entre les mots-clés, identifiants, etc... n a pas d importance 1 cout << "Hello world!"; 2 1 cout << "Hello world!"; 2 INFO0201-1 X.Baumans 18 / 20

Fonction main La fonction main() est la fonction principale du programme. 1 int main() 2 { 3 // instructions du programme 4 return 0; 5 } Elle doit toujours exister et elle est la première à être exécutée. Lorsqu elle se termine, elle donne comme résultat un nombre entier (int) qui permet de savoir si son exécution s est déroulée sans problème (valeur 0) ou si des erreurs se sont produites (valeur positive). INFO0201-1 X.Baumans 19 / 20

Affichage dans la console : cout (1/2) cout permet d afficher des informations sur l écran. Les informations à afficher sont juxtaposées l une derrière l autre et séparées par les caractères <<. 1 cout << "Du texte" << " qui s affiche" << endl; L identifiant endl, lorsqu il est passé à l objet cout, provoque un retour à la ligne. 1 cout << "La ligne 1" << " qui s affiche" << endl; 2 cout << "La ligne 2" << " s affiche aussi" << endl; Le caractère spécial \t permet d insérer une tabulation dans l affichage. 1 cout << "Texte 1\tTexte 2\tTexte 3" << endl; INFO0201-1 X.Baumans 20 / 20

Affichage dans la console : cout (2/2) On peut également afficher des nombres 1 cout << "Le nombre " << 361 << " s affiche" << endl; 2 cout << "Pi: " << 3.1415926535897932384626 << endl; L instruction cout.precision(x) permet de définir le nombre de chiffres significatifs à afficher 1 cout << "Le nombre " << 361 << " s affiche" << endl; 2 // affichage: Le nombre 361 s affiche 3 cout << "Pi: " << 3.1415926535897932384626 << endl; 4 // affichage: Pi: 3.14159 5 cout.precision(10); 6 cout << "Pi: " << 3.1415926535897932384626 << endl; 7 // affichage: Pi: 3.141592653 INFO0201-1 X.Baumans 21 / 20

Exercices Construire un projet Hello World!, le compiler et l exécuter ; Construire un programme affichant les premières décimales du nombre d or Φ = 1.618033988749894848204586..., avec successivement la précision par défaut de cout ; 15 chiffres significatifs ; 10 chiffres significatifs. Construire un programme affichant à l écran un dessin de votre choix à l aide de caractères tels que *, +, _, -, etc... ^ ^ (oo)\ ( )\ )\/\ ----w Supplément : Déclarer la variable entière a en utilisant l instruction "int a ;". Ensuite, à l aide de "cin» a ;", demander à l utilisateur de rentrer la précision (a) qu il désire pour le nombre d or et utiliser cette valeur pour l affichage de celui-ci. Note : cin a la même structure que cout sauf pour le sens des guillemets. Au lieu d afficher dans la console ce qui lui est renseigné, il permet à l utilisateur de rentrer une valeur au clavier dans la console... La valeur est alors assignée à une variable préalablement déclarée. INFO0201-1 X.Baumans 22 / 20