USTL - Licence ST-A 1ère année 2005-2006 Initiation à la programmation. CTD : Variables et types de données



Documents pareils
Corrigé des TD 1 à 5

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Cours Informatique Master STEP

STAGE IREM 0- Premiers pas en Python

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

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

Examen Médian - 1 heure 30

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Algorithmique et programmation : les bases (VBA) Corrigé

Présentation du langage et premières fonctions

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

as Architecture des Systèmes d Information

Licence Sciences et Technologies Examen janvier 2010

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Recherche dans un tableau

V- Manipulations de nombres en binaire

Algorithmes et programmation en Pascal. Cours

ALGORITHMIQUE ET PROGRAMMATION En C

Création d installateurs pour Windows avec InnoSetup

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

1. Structure d'un programme FORTRAN 95

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

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

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 Web. Madalina Croitoru IUT Montpellier

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

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

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

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO

Probabilités Loi binomiale Exercices corrigés

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

Programmer en JAVA. par Tama

Maple: premiers calculs et premières applications

Cours d algorithmique pour la classe de 2nde

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

Programmation Objet - Cours II

TP 1. Prise en main du langage Python

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

Algorithme. Table des matières

Enseignement secondaire technique

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Initiation à la Programmation en Logique avec SISCtus Prolog

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Exercices sur les interfaces

Introduction à MATLAB R

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

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

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

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

Java Licence Professionnelle CISII,

Rappels sur les suites - Algorithme

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Programmation linéaire

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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

Utilisation d objets : String et ArrayList

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

Rappels Entrées -Sorties

Algorithmique et Programmation, IMA

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

Logiciel de Base. I. Représentation des nombres

1 Recherche en table par balayage

Programmation système I Les entrées/sorties

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

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


Calcul Formel et Numérique, Partie I

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

Chapitre 10. Les interfaces Comparable et Comparator 1

Compilation (INF 564)

Exercices de dénombrement

Représentation des Nombres

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

Introduction au langage C


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

TP, première séquence d exercices.

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

TP3 : Manipulation et implantation de systèmes de fichiers 1

Solutions du chapitre 4

Programmation en Caml pour Débutants

Programme Compte bancaire (code)

Programmation avec des objets : Cours 7. Menu du jour

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Aide - mémoire gnuplot 4.0

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Notions fondamentales du langage C# Version 1.0

Feuille TD n 1 Exercices d algorithmique éléments de correction

OCL - Object Constraint Language

Organigramme / Algorigramme Dossier élève 1 SI

Calcul Formel et Numérique, Partie I

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

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Objets Combinatoires élementaires

Initiation à la programmation en Python

Transcription:

USTL - Licence ST-A 1ère année 2005-2006 Initiation à la programmation 1 Motivation 1.1 Un problème CTD : Variables et types de données État initial : Tas 1 un nombre quelconque de cartes, les autres tas vides. État final : peu importe But : afficher le nombre de cartes situées initialement sur le tas 1. 1.2 Algorithme Une solution du problème consiste à déplacer (une à une) toutes les cartes du tas 1 vers un autre tas (le tas 2 par exemple), et à compter chaque déplacement effectué. mise à zéro du compteur c tant que l e t a s 1 n e s t pas vide f a i r e d é p l a c e r l a c a r t e au sommet du t a s 1 v e r s l e t a s 2 a j o u t e r 1 au compteur fin tant que 2 Types de données En programmation, les données manipulées peuvent être de natures différentes : nombres entiers, nombres réels, chaînes de caractères, booléens,.... Ces différentes natures de données sont appelées types de données. Le langage Pascal dispose d un certain nombre de types prédéfinis. 2.1 Les booléens Le type BOOLEAN est le type des expressions booléennes permettant d écrire les conditions des instructions if et while. Les données de ce type ne peuvent prendre que deux valeurs. Nom : BOOLEAN Ensemble des valeurs : true, false Littéraux : true et false Opérateurs : and, or, not 2.2 Les nombres entiers Free Pascal permet de manipuler plusieurs types d entiers qui diffèrent entre eux par l intervalle représenté. Nous ne citerons que deux d entre eux : les types CARDINAL et INTEGER. Le type CARDINAL Nom : CARDINAL Ce type permet de manipuler des nombres entiers positifs ou nuls. Ensemble des valeurs : entiers n non signés sur 32 bits : 0 n 2 32 1 = 4294967295 Littéraux : les entiers dans leur forme écrite usuelle. Par exemple : 24. Opérateurs arithmétiques : +,,, div, mod Opérateurs de comparaison : =, <>, <, <=, >, >= Remarque : le type CARDINAL est limité, il y a un plus grand entier : 2 32 1 = 4294967295. Si on ajoute 1 à cet entier, le résultat n est pas 2 32 = 4294967296 mais 0. L arithmétique sur les entiers de type CARDINAL doit être comprise modulo 2 32. 1

Le type INTEGER Nom : INTEGER Ce type permet de manipuler des nombres entiers aussi bien positifs que négatifs. Ensemble des valeurs : entiers n signés sur 32 bits 1 : 2 31 = 2147483648 n 2 31 1 = 2147483647 Littéraux : les entiers dans leur forme écrite usuelle. Par exemple : 24. Opérateurs arithmétiques : +,,, div, mod Opérateurs de comparaison : =, <>, <, <=, >, >= 2.3 Types définis par l unité cartes L unité cartes définit deux types COULEURS et TASPOSSIBLE. Le type COULEURS Les données de ce type ne peuvent prendre que quatre valeurs notées : CARREAU, TREFLE, PIQUE et COEUR. Un appel à la fonction couleursommet donne une valeur de ce type. Le type TASPOSSIBLES Les données de ce type ne peuvent prendre que quatre valeurs : 1, 2, 3 et 4. Ce type représente les numéros des tas. Lorsqu on fait appel à la procédure DeplacerSommet, on lui passe deux données de ce type. 3 Variables 3.1 Notion de iable Les iables servent à nommer les objets. Elles sont caractérisées par leur nom ou identificateur et leur type. 3.2 Déclaration de iables La déclaration des iables utilisées par un programme, une procédure ou une fonction se fait à l aide du mot réservé <i d e n t i f i c a t e u r > : <type >; où < identificateur > est le nom de la iable, et <type> son type. Les déclarations de iables se font dans la partie déclaration des programmes 2. Exemple : compteur Voici la déclaration d une iable nommée compteur et de type CARDINAL : CARDINAL; 3.3 Affectation L affectation est une instruction qui permet d attribuer une valeur à une iable. La syntaxe de cette instruction est <id > := <expr> Le symbole := signifie que la valeur v de l expression <expr> est affectée à la iable désignée par l identificateur <id>. Après l exécution de cette instruction la iable <id> vaut v. 1 dans le mode ObjFPCou Delphi uniquement, sinon ces entiers sont codés sur 16 bits 2 et plus tard des procédures et fonctions 2

Exemples : 1. Pour mettre à zéro la iable compteur précédemment déclarée {compteur =??} compteur := 0 ; {compteur = 0} 2. ajouter 1 au compteur {compteur = n} compteur := compteur + 1 ; {compteur = n + 1} Remarques : 1. Attention à ne pas confondre le symbole := utilisé en Pascal pour l instruction d affectation, avec le symbole = opérateur de comparaison. 2. 4 Afficher des données En Pascal, lorsqu on veut afficher des données, on utilise l instruction write ou bien writeln. La différence entre ces deux instructions réside dans le passage à la ligne ou non après l affichage des données : writeln provoque un passage à la ligne, write n en provoque pas. On utilise l une ou l autre de ces deux instructions en mettant entre parenthèses les données à afficher séparées par des virgules. Exemples : 1. affichage du message nbre de cartes (notez les apostrophes autour du message) sans passage à la ligne write ( nbre de c a r t e s = ) ; 2. affichage de la valeur du compteur (notez l absence d apostrophes) avec passage à la ligne writeln ( compteur ) ; 3. bien entendu il est possible de mettre les deux instructions l une à la suite de l autre write ( nbre de c a r t e s = ) ; writeln ( compteur ) ; et on obtient alors l affichage (si le compteur vaut 10) : nbre de cartes =10 Notez l absence d apostrophes à l affichage, et l absence d espace entre = et 10. 4. On peut réunir les deux instructions de l exemple précédent en une seule writeln ( nbre de c a r t e s =, compteur ) ; Remarques : 1. Si on veut afficher une apostrophe, il faut la doubler : writeln ( L UE I n i t P r o g e s t passionnante! ) ; 2. On ne peut pas afficher tout type de données. C est le cas du type COULEURS. Par exemple, lors de la compilation du programme 3

program e s s a i ; uses c a r t e s ; x : COULEURS; x := PIQUE; writeln ( x ) ; end. on obtient le message d erreur essai.pas(7,12) Error: Can t read or write iables of this type qui signale l impossibilité d afficher la valeur de la iable x. 5 Le programme solution du problème introductif // auteur : EW // date : s e p t 05 // o b j e t : compter l e s c a r t e s du t a s 1 program compter ; uses c a r t e s ; compteur : CARDINAL; // I n i t i a l i s a t i o n des t a s InitTas ( 1, [T] ) ; // i n i t i a l i s a t i o n du compteur compteur := 0 ; { S o i t N l e nbre i n i t i a l de c a r t e s sur l e t a s 1 e t n 1 l e nombre a c t u e l de c a r t e s sur l e t a s 1 on a n 1 + compteur = N } // a c t i o n : v i d e r l e t a s 1 en comptant l e s c a r t e s while tasnonvide ( 1 ) do { n 1 + compteur = N } DeplacerSommet ( 1, 2 ) ; { n 1 + compteur = N 1} compteur := compteur + 1 ; { n 1 + compteur = N } end { w h i l e } ; { n 1 = 0, n 1 + compteur = N } {donc compteur = N } // a f f i c h a g e du nombre de c a r t e s writeln ( nbre de c a r t e s =, compteur ) ; end. 6 Exercices Exercice 1 : Échange de iables Donnez une séquence d instructions qui échange les valeurs de deux iables numériques. Exercice 2 : Afficher une table de vérité Réalisez un programme qui affiche la table de vérité de l opérateur and. 4

Exercice 3 : Limitation des entiers Q 1. Réalisez un programme qui affiche le carré du nombre entier 1234. Q 2. Modifiez votre programme afin qu il affiche le carré de 123456. Expliquez l affichage obtenu. Exercice 4 : Calcul de la valeur d une fonction polynomiale Soit f(x) = x 4 3x 3 2x 2 + x + 1. Réalisez un programme qui affiche la valeur de f(x) lorsque x = 13. Concevez votre programme pour qu il soit facile de le modifier pour le calcul de f(x) pour d autres valeurs de x. Exercice 5 : Avec les cartes Réalisez des programmes qui, à partir de la situation initiale Situation initiale : Tas 1 : [K+T+P+C] Tas 2 : Tas 3 : Tas 4 : 1. calcule le nombre de trèfles, 2. calcule le nombre de cartes de couleur noire, 3. répartit équitablement les cartes rouges sur les tas 3 et 4, et les cartes noires sur les tas 1 et 2. 5