Introduction à l informatique Travaux pratiques: séance 1 INFO X. Baumans

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


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

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

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

Introduction au langage C

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

Cours d Algorithmique et de Langage C v 3.0

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

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

UE C avancé cours 1: introduction et révisions

Claude Delannoy. 3 e édition C++

Le langage C. Séance n 4

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

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

Notions fondamentales du langage C# Version 1.0

Algorithmique et Programmation, IMA

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Les structures. Chapitre 3

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

as Architecture des Systèmes d Information

Introduction à l héritage en C++

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

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

Programmation en langage C

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

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

Rappels Entrées -Sorties

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

TP : Gestion d une image au format PGM

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)

Programmation impérative

Langage Java. Classe de première SI

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

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

Programmation système I Les entrées/sorties

Rappels d architecture

ALGORITHMIQUE ET PROGRAMMATION En C

STAGE IREM 0- Premiers pas en Python

Représentation d un entier en base b

Programmer en JAVA. par Tama

INF 321 : mémento de la syntaxe de Java

Chap III : Les tableaux

Présentation du langage et premières fonctions

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

Rapports d activités et financiers par Internet. Manuel Utilisateur

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

Programmation stochastique

SUPPORT DE COURS. Langage C

Langage Éric Guérin 5 octobre 2010

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

Programme Compte bancaire (code)

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

I. Introduction aux fonctions : les fonctions standards

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

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

Algorithmique et programmation : les bases (VBA) Corrigé

Le langage C. Introduction, guide de reference

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

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

L informatique en BCPST

Introduction à la Programmation Parallèle: MPI

Introduction au pricing d option en finance

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

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

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

Cours Informatique Master STEP

Chapitre 10 Arithmétique réelle

Recherche dans un tableau

Département Automatisation et Informatisation Année Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers

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

Programmation en C/C++

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

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

Programmation Classique en langage C

Cours de C/C++ par la pratique. Hugues Talbot

I00 Éléments d architecture

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

V- Manipulations de nombres en binaire

Analyse de sécurité de logiciels système par typage statique

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Structurer ses données : les tableaux. Introduction à la programmation

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

IRL : Simulation distribuée pour les systèmes embarqués

Les chaînes de caractères

Premiers Pas en Programmation Objet : les Classes et les Objets

Cours 1: Java et les objets

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Utilisation d objets : String et ArrayList

Quelques éléments de compilation en C et makefiles

Programmation C. J.-F. Lalande. 15 novembre 2012

TP1 : Initiation à Java et Eclipse

TP 1. Prise en main du langage Python

Informatique Générale

Transcription:

Introduction à l informatique Travaux pratiques: séance 1 INFO0205-1 X. Baumans (xavier.baumans@ulg.ac.be)

Programme de la séance Déclarations de variables INFO0205-1 X.Baumans 1 / 21

Programme de la séance Déclarations de variables Opérateurs de base (arithmétique, logique, comparaison) INFO0205-1 X.Baumans 1 / 21

Programme de la séance Déclarations de variables Opérateurs de base (arithmétique, logique, comparaison) Entrée/sortie => "cout"/"cin" INFO0205-1 X.Baumans 1 / 21

Remarque préliminaire : commenter le code! Remarque préliminaire : veiller à toujours commenter le code!!! De nombreuses lignes de code à la suite les unes des autres deviennent très rapidement illisibles. Ajouter du texte pour expliciter les lignes de code. 1 #include <iostream> // inclure la librairie pour cout 2 3 using namespace std;// utiliser l espace de nom std 4 5 int main() 6 { 7 /* La fonction main est la fonction 8 principale du programme */ 9 cout << "Hello world!" << endl; 10 return 0; // Tout s est bien déroulé 11 } INFO0205-1 X.Baumans 2 / 21

Langage de programmation : C++ Variables (int, float, double,...) stockage de données INFO0205-1 X.Baumans 3 / 21

Langage de programmation : C++ Variables (int, float, double,...) stockage de données Opérateurs arithmétiques (+, -, *, /,...) calculs arithmétiques INFO0205-1 X.Baumans 3 / 21

Langage de programmation : C++ Variables (int, float, double,...) stockage de données Opérateurs arithmétiques (+, -, *, /,...) calculs arithmétiques Entrées / Sorties (cin, cout) saisie de données au clavier / affichage dans la console INFO0205-1 X.Baumans 3 / 21

Langage de programmation : C++ Variables (int, float, double,...) stockage de données Opérateurs arithmétiques (+, -, *, /,...) calculs arithmétiques Entrées / Sorties (cin, cout) saisie de données au clavier / affichage dans la console Opérateurs de comparaison (<, >, ==,!=,...) comparaison de valeurs numériques et d expressions booléennes INFO0205-1 X.Baumans 3 / 21

Langage de programmation : C++ Variables (int, float, double,...) stockage de données Opérateurs arithmétiques (+, -, *, /,...) calculs arithmétiques Entrées / Sorties (cin, cout) saisie de données au clavier / affichage dans la console Opérateurs de comparaison (<, >, ==,!=,...) comparaison de valeurs numériques et d expressions booléennes Structures de contrôle (if/else, for, do, while,...) exécution d instructions conditionnelles ou répétitives INFO0205-1 X.Baumans 3 / 21

Variables en C/C++ Il existe plusieurs types de variables : int (entier) INFO0205-1 X.Baumans 4 / 21

Variables en C/C++ Il existe plusieurs types de variables : int (entier) float, double (réel - avec des précisions différentes) INFO0205-1 X.Baumans 4 / 21

Variables en C/C++ Il existe plusieurs types de variables : int (entier) float, double (réel - avec des précisions différentes) boolean (booléen, 2 valeurs : True/False) INFO0205-1 X.Baumans 4 / 21

Variables en C/C++ Il existe plusieurs types de variables : int (entier) float, double (réel - avec des précisions différentes) boolean (booléen, 2 valeurs : True/False) char (caractère) INFO0205-1 X.Baumans 4 / 21

Variables en C/C++ Il existe plusieurs types de variables : int (entier) float, double (réel - avec des précisions différentes) boolean (booléen, 2 valeurs : True/False) char (caractère) On a de plus, un mot-clé permettant de signaler si le nombre doit être considéré avec un signe (négatif/positif) ou pas : signed : valeur considérée avec son signe unsigned : valeur toujours positive INFO0205-1 X.Baumans 4 / 21

Déclaration et initialisation de variables Déclarer une variable réserver la mémoire pour sauvegarder une valeur qui correspond au type de variable. Il faut toujours déclarer une variable avant de l utiliser! On donne un nom (identifiant) à la variable pour pouvoir y faire référence plus tard. INFO0205-1 X.Baumans 5 / 21

Déclaration et initialisation de variables Déclarer une variable réserver la mémoire pour sauvegarder une valeur qui correspond au type de variable. Il faut toujours déclarer une variable avant de l utiliser! On donne un nom (identifiant) à la variable pour pouvoir y faire référence plus tard. int a ; INFO0205-1 X.Baumans 5 / 21

Déclaration et initialisation de variables Déclarer une variable réserver la mémoire pour sauvegarder une valeur qui correspond au type de variable. Il faut toujours déclarer une variable avant de l utiliser! On donne un nom (identifiant) à la variable pour pouvoir y faire référence plus tard. int a ; float a ; double b ; INFO0205-1 X.Baumans 5 / 21

Déclaration et initialisation de variables Déclarer une variable réserver la mémoire pour sauvegarder une valeur qui correspond au type de variable. Il faut toujours déclarer une variable avant de l utiliser! On donne un nom (identifiant) à la variable pour pouvoir y faire référence plus tard. int a ; float a ; double b ; int a,b ; INFO0205-1 X.Baumans 5 / 21

Déclaration et initialisation de variables Déclarer une variable réserver la mémoire pour sauvegarder une valeur qui correspond au type de variable. Il faut toujours déclarer une variable avant de l utiliser! On donne un nom (identifiant) à la variable pour pouvoir y faire référence plus tard. int a ; float a ; double b ; int a,b ; unsigned int a ; INFO0205-1 X.Baumans 5 / 21

Déclaration et initialisation de variables Déclarer une variable réserver la mémoire pour sauvegarder une valeur qui correspond au type de variable. Il faut toujours déclarer une variable avant de l utiliser! On donne un nom (identifiant) à la variable pour pouvoir y faire référence plus tard. int a ; float a ; double b ; int a,b ; unsigned int a ; Par défaut, les variables sont signées (le mot-clé signed est inutile) INFO0205-1 X.Baumans 5 / 21

Déclaration et initialisation de variables Déclarer une variable réserver la mémoire pour sauvegarder une valeur qui correspond au type de variable. Il faut toujours déclarer une variable avant de l utiliser! On donne un nom (identifiant) à la variable pour pouvoir y faire référence plus tard. int a ; float a ; double b ; int a,b ; unsigned int a ; Par défaut, les variables sont signées (le mot-clé signed est inutile) ATTENTION : initialiser les variables! En l absence d initialisation, la variable prend une valeur indéterminée (pas nécessairement nulle). INFO0205-1 X.Baumans 5 / 21

Déclaration et initialisation de variables Déclarer une variable réserver la mémoire pour sauvegarder une valeur qui correspond au type de variable. Il faut toujours déclarer une variable avant de l utiliser! On donne un nom (identifiant) à la variable pour pouvoir y faire référence plus tard. int a ; float a ; double b ; int a,b ; unsigned int a ; Par défaut, les variables sont signées (le mot-clé signed est inutile) ATTENTION : initialiser les variables! En l absence d initialisation, la variable prend une valeur indéterminée (pas nécessairement nulle). int a ; a = 0 ; INFO0205-1 X.Baumans 5 / 21

Déclaration et initialisation de variables Déclarer une variable réserver la mémoire pour sauvegarder une valeur qui correspond au type de variable. Il faut toujours déclarer une variable avant de l utiliser! On donne un nom (identifiant) à la variable pour pouvoir y faire référence plus tard. int a ; float a ; double b ; int a,b ; unsigned int a ; Par défaut, les variables sont signées (le mot-clé signed est inutile) ATTENTION : initialiser les variables! En l absence d initialisation, la variable prend une valeur indéterminée (pas nécessairement nulle). int a ; a = 0 ; int a = 42 ; INFO0205-1 X.Baumans 5 / 21

Affectation de variables Assigner une valeur fixée a = 7 ; Assigner la valeur d une autre variable a = b ; l ancienne valeur de a est perdue INFO0205-1 X.Baumans 6 / 21

Variables : int (integer) Dans une implémentation typique (32bits), on trouve des types entiers dont les caractéristiques sont : int 4 octets (taille du stockage dans l ordinateur) valeurs allant de -2 147 483 648 à 2 147 483 647 unsigned int 4 octets (taille du stockage dans l ordinateur) valeurs allant de 0 à 4 294 967 295 INFO0205-1 X.Baumans 7 / 21

Variables : float/double (virgule flottante) float 4 octets (taille du stockage dans l ordinateur) valeurs de 3.4 10 38 à 3.4 10 38 6 chiffres significatifs double 8 octets (taille du stockage dans l ordinateur) valeurs de 1.7 10 308 à 1.7 10 308 14 chiffres significatifs INFO0205-1 X.Baumans 8 / 21

Opérateurs arithmétiques et de comparaison Opérateurs arithmétiques Addition + Soustraction Multiplication Division \ Modulo % Opérateurs logiques NOT! AND && OR Opérateurs de comparaison Egalité == Différent de! = Strictement inférieur à < Inférieur à <= Strictement supérieur à > Supérieur à >= INFO0205-1 X.Baumans 9 / 21

Instructions et expressions Expressions Une expression est une combinaison de valeurs, variables, opérateurs et fonctions. L expression est évaluée lorsqu elle apparait dans le programme et se réduit à une valeur. Par exemple, 5 + 4 et (x + 1) < 3 4 sont des expressions. Lorsqu elles sont évaluées, elles prennent respectivement pour valeurs : 5 + 4 9 (x + 1) < 3 4 true si x < 11 ou false si x >= 11 INFO0205-1 X.Baumans 10 / 21

Instructions et expressions Un programme est composé d une suite d instructions. Instructions L instruction est le plus petit élément indépendant d un langage de programmation. Une instruction contient généralement des expressions, qui sont évaluées pour pouvoir exécuter l instruction. L instruction peut elle-même être une expression. Une instruction est toujours clôturée par un point virgule ;!!! Exemples : 1 9*3; est une instruction composée d une seule expression. L évaluation de cette expression donne 27, mais le résultat de cette instruction n a aucune utilité puisque le résultat n est pas utilisé (pour une affectation dans une variable par exemple). INFO0205-1 X.Baumans 11 / 21

Instructions et expressions 1 a = 5 + 2; est une instruction composée d une expression ( 5 + 2 ) et d un opérateur d affectation ( = ) qui affecte la valeur de l expression (ici 7 ) dans la variable nommée a. Le tout ( a = 5 + 2 ) est également une expression qui vaut 7. Cela permet de réaliser des opérations d affectation en chaîne : 1 a = b = 24/3; // --> a = 8, b = 8 L expression 24/3 est évaluée et vaut 8. L expression b = 24/3 est ainsi réduite à b = 8 qui affecte la valeur 8 à la variable b. Cette expression vaut elle-même 8, ce qui implique que l expression a = b = 24/3 se réduit à a = 8 et affecte la valeur 8 à la variable a. INFO0205-1 X.Baumans 12 / 21

Instructions et expressions 1 a = 2; // la valeur 2 est affectée à la variable a 2 b = (a = 3) + 2; // --> a = 3 et b = 5 Le résultat de cette instruction est multiple. L expression entre parenthèses est d abord évaluée : elle vaut 3 et a pour effet de modifier la valeur de a à cette même valeur puisque l opérateur d affectation a été utilisé. L expression résultante 3 + 2 est ensuite évaluée, et le résultat ( 5 ) est placé dans la variable b. 1 a = 2; b = 3; 2 c = (a == b); // --> c = false Les deux premières instructions affectent respectivement les valeurs 2 et 3 aux variables a et b. L instruction suivante nécessite d évaluer l expression a == b qui est une opération de comparaison. a et b ont des valeurs différentes, l évaluation de l expression donne donc un résultat false, qui est affecté à la variable c. INFO0205-1 X.Baumans 13 / 21

Retour au type des variables On ne peut affecter aux variables que des valeurs du même type. Exemple : un entier dans un int. 1 int a = 2; Si on essaye d affecter une valeur d un type différent du type de la variable, le langage C++ tente de convertir le type de valeur. Exemple : un double dans un int. 1 double a = 5.2; 2 int b = a; --> b = 5; On peut également forcer la conversion d un type vers un autre. Par exemple pour mettre un entier dans une variable de type double. 1 double a = 5.2; 2 double b = a; // --> 5.2 3 double b = (int)a; // --> 5 car a a d abord été converti en entier INFO0205-1 X.Baumans 14 / 21

Type de variable et expressions Lors de l évaluation d une expression, le compilateur doit déterminer le type de l expression résultante. Il faut pour cela considérer le type des variables qui interviennent dans l expression. Cas de variables de même type (int) + (int) = (int) (float) + (float) = (float) (double) + (double) = (double) Cas de variables de type différent (int) + (float) = (float) (int) + (double) = (double) (float) + (double) = (double) Il en va de même pour les autres opérateurs. INFO0205-1 X.Baumans 15 / 21

Entrée / Sortie Les objets cin et cout permettent respectivement de réaliser des opérations d entrée-sortie. Pour pouvoir les utiliser, il faut inclure la bibliothèque iostream au moyen de l instruction pré-processeur 1 #include <iostream> cout : affichage dans la console à l écran (d où le c de cout) cin : lecture de données du clavier Il est également possible de rediriger ces objets vers des fichiers pour écrire ou lire dans ceux-ci. INFO0205-1 X.Baumans 16 / 21

Entrée / Sortie : cout Fonctionnement de cout : 1 cout << "Hello World!" << endl; Si x est une variable, on peut également l afficher : 1 cout << "x =" << x << endl; Le retour à la ligne est provoqué par endl ; Une tabulation est insérée par le caractère spécial "\t" où \ est un caractère d échappement permettant de donner une signification différente au caractère qui le suit (ici t ) ; Le retour à la ligne peut également être provoqué par le caractère spécial "\n". On modifie la précision de l affichage avec 1 cout.precision(x); INFO0205-1 X.Baumans 17 / 21

Entrée / Sortie : cin Fonctionnement de cin : Si x est une variable d un certain type, on peut lui affecter une valeur à partir du clavier : 1 int x; 2 cin >> x; Le programme est alors bloqué et attend qu une valeur soit saisie au clavier et que l utilisateur presse la touche Enter. Attention à la direction des signes» et «! 1 cin >> x; 2 cout << x; INFO0205-1 X.Baumans 18 / 21

Exercices (1/3) Pour chaque exercice, tester le programme et les effets d une erreur de l utilisateur ou de valeurs extrêmes. 1 Déclaration et affichage de variables : Déclarer 3 variables de type int, float et double ; Affecter aux variables des valeurs saisies au clavier ; Afficher les valeurs des 3 variables avec la précision nécessaire. 2 Calculs arithmétiques sur 2 variables : Déclarer 2 variables de chacun des types int, float et double ; Saisir leurs valeurs au clavier ; Effectuer les opérations +, -, * et / sur chacun des couples de nombre ; Afficher les résultats de toutes les opérations. Remarque : pour la division des nombres entiers, on voudrait afficher d abord le résultat de la division euclidienne puis celui de la division exacte 3 Echanger deux variables : Déclarer 2 variables et saisir leurs valeurs au clavier ; Echanger les valeurs des 2 variables et les afficher. INFO0205-1 X.Baumans 19 / 21

Exercices (2/3) 4 Séparation de la partie entière et non entière d un réel : Saisir au clavier un nombre réel ; Afficher successivement la partie entière et la partie non entière de ce nombre. 5 Calcul d un numéro de compte en banque : Soit le numéro de compte en banque 210546876857. Les deux derniers chiffres servent à vérifier l absence de faute frappe et sont égaux au reste de la division entière des 10 premiers chiffres du numéro de compte par 97. A partir du numéro de compte ci-dessus, calculer quels devraient être les 2 derniers chiffres du numéro de compte ; Calculer les 2 derniers chiffres d un autre numéro de compte (le vôtre, le numéro de compte pour payer votre minerval à l ULg,...) INFO0205-1 X.Baumans 20 / 21

Exercices (3/3) 6 Aire d un carré et d un disque : Saisir au clavier une valeur x1 ; Calculer l aire d un carré dont les côtés mesurent x1 ; Calculer l aire d un disque dont le diamètre est x1 ; Saisir une autre valeur x2 ; Calculer les aires des carrés et disques correspondant ; Vérifier si le rapport des aires pour la première valeur x1 est le même qu avec la valeur x2 et l afficher à l écran. 7 Table de vérité de la fonction XOR : L opérateur XOR n est pas défini en C++. Cependant il est équivalent à l expression A XOR B = (A B) && (!A!B) Afficher dans la console la table de vérité de l opérateur XOR. INFO0205-1 X.Baumans 21 / 21