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



Documents pareils
L informatique en BCPST

Licence Sciences et Technologies Examen janvier 2010

La mémoire. Un ordinateur. L'octet. Le bit

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

Représentation d un entier en base b

Algorithme. Table des matières

Cours Informatique 1. Monsieur SADOUNI Salheddine

Présentation du langage et premières fonctions

Introduction à l informatique en BCPST

IV- Comment fonctionne un ordinateur?

Représentation des Nombres

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

STAGE IREM 0- Premiers pas en Python

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

Architecture matérielle des systèmes informatiques

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

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

I00 Éléments d architecture

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

Informatique Générale

ACTIVITÉ DE PROGRAMMATION

V- Manipulations de nombres en binaire

Évaluation et implémentation des langages

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

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

Conventions d écriture et outils de mise au point

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Chapitre I Notions de base et outils de travail

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Architecture de l ordinateur

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Rappels sur les suites - Algorithme

Chapitre 2 Devine mon nombre!

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)

Initiation à la programmation en Python

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

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que


Python - introduction à la programmation et calcul scientifique

Cours 1 : Qu est-ce que la programmation?

Rappels d architecture

Entraînement au concours ACM-ICPC

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

Créer le schéma relationnel d une base de données ACCESS

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

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

Cours d Algorithmique et de Langage C v 3.0

Architecture des ordinateurs Introduction à l informatique

Structure de base d un ordinateur

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

Algorithmique et Programmation, IMA

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

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

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

III- Raisonnement par récurrence

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

LES TYPES DE DONNÉES DU LANGAGE PASCAL

2 Comment fonctionne un ordinateur, dans les grandes lignes

La Clé informatique. Formation Excel XP Aide-mémoire

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

Initiation à l algorithmique

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

Chapitre 10 Arithmétique réelle

Cours d Informatique

Championnat de France de Grilles Logiques Finale 7 juin Livret d'instructions

Systèmes d exploitation

Le langage C. Séance n 4

Cours d algorithmique pour la classe de 2nde

1 Lecture de fichiers

= constante et cette constante est a.

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

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Enseignement secondaire technique

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Algorithmique et programmation : les bases (VBA) Corrigé

avec des nombres entiers

TP 1. Prise en main du langage Python

Logiciel de Base. I. Représentation des nombres

Structure d un programme

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

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

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

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Les opérations binaires

Tutorial Terminal Server sous

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Cours 1 : La compilation

Notions fondamentales du langage C# Version 1.0

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

Éléments d'architecture des ordinateurs

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

Module : Informatique Générale 1. Les commandes MS-DOS

IFT2880 Organisation des ordinateurs et systèmes

Programmation linéaire

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

NOM : Prénom : Date de naissance : Ecole : CM2 Palier 2

Transcription:

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 ordinateur a des composants principaux suivants : Mémoire centrale pour mémoriser les programmes et les données. Unité de calculs arithmétiques et logiques (Processeur). Unité de gestion des périphériques : Pour communiquer avec l extérieur (utilisateurs, d autres ordinateurs, senseurs, etc), l ordinteur doit gérer les périphériques comme le clavier, l écran, le souris, les disques (mémoires secodaires), les cartes réseaux, etc. La mémoire centrale est organisée en mots (octets, bytes). Un octet est l unité de base de pour les mémoires des ordinateurs. Un octet est composé de huit bits. Un bit est un circuit électronique pour représenter une valeur binaire : 0 ou 1. Le Processeur peut exécuter directement les opérations arithmétiques et logiques sur les nombres binaires (codés sur 0/1) : les opérations ainsi que leurs opérands sont codés en nombre binaire. Ces opérations constituent ce que l on appelle le langage machine. Ainsi, un programme exécutable directement par ordinateurs est une suite de 0 et 1. Un tel programme est difficile à écrire et à comprendre. 2 Langages de programmation Pour rendre ordinateur facilement accessible et compréhensible plusieurs langages de programmation sont progressivement inventés : de plus simple à plus sophistiqués. Le principe est le suivant : Chaque langage est inventé avec son compilateur (ou son interpréteur). Le langage et son compilateur font l interfaçage entre ordinateurs et humains : humains s expriment ce qu ils veulent faire dans un langage de programmation 1

et le compilateur du langage traduit ce qu ils s expriment en programme exécutable directement sur l ordinateur. Le compilateur est bien sûr un programme en langage machine de l ordinateur. Un langage de haut niveau permet généralement une abstraction de l organisation physique de l ordinateur : les espaces de mémoire peuvent être structurées et référées par noms, les opérations arithmétiques peuvent être exprimées de manière plus proche aux expressions usuelles, ainsi que les contrôles logiques de données. C est-à-dire, en écrivant un programme dans un langage de haut niveau, le programmeur peut oublier la machine physique et à cette place il condidère une machine virtuelle dont l organisation générale est : La mémoire centrale peut être organisée en données structurées (caractères, chaines de caractères, nombres entiers, réels, tableaux, enregistrements de différents champs, etc). A la place du processeur et ses opérations de base codées en binaire, il peut ne penser qu avec les opérateurs usuels comme addition, soustraction, multiplication, racine carré, logarithme etc, et les contrôles de calculs comme si une condition est satisfaite alors faire une suite d opérations, sinon faire autres choses ou tant qu une condition est satisfaite répéter une suite d opérations. A la place des unités de gestion de périphériques, il peut ne penser qu avec les opérations offertes par le langage, comme la connexion, l ecriture et lecture sur les périphériques. Ainsi, pour programmer une application dans un langage informatique de haut niveau, on doit connaître : 1. Les structures de données (types de données) que le langage permet d utiliser et de définir. 2. Les opérations connues dans le langage ainsi que les moyens qui permettent de définir de nouvelles opérations. 3. Les structures de contrôles permise dans le langage pour contrôler les calculs. 4. Les moyens pour communiquer avec l ordinateur : les fonctions pour entrer les données, appercevoir les résultats des calculs (clavier, souris, console de jeux, écran, 2

imprimante). De manière intuitive, pour résoudre un problème en utilisant un langage informatique (une machine virtuelle) on peut imaginer que La mémoire centrale est comme une feuille de papier dans laquelle on se limite à dessiner les cadres pour les données dans les types prévus ou permis dans le langages. On peut dessiner autant de cadres que l on veut (en regardant à l espace de mémoire physique de l ordinateur). Chaque cadre dessiné correspond à ce qu on appelle une variable. La notion de variable dans ce context correspond à une zone de mémoire dans laquelle on peut mettre une valeur, puis lire la valeur mise dedans. Toute variable est nommée. L affectation une valeur à une variable correspond au fait de mettre la valeur dans l espace de mémoire référencée par la variable. Soient X1, X2,..., Xk les noms de k variables, alors X1, X2,..., Xk référencent respectivement k espaces de mémoire. L affectation d une valeur Vi à Xi (notée Xi = Vi ou Xi := Vi ou Xi <- Vi, dépendant de langages) correspond au fait de mettre la valeur Vi dans l espace de mémoire référencée par Xi. Dans les notations Xi = Vi (ou Xi := Vi ou Xi <- Vi), l expression à gauche du symbole = (ou := ou <-) appelée G-valeur (L-value), représente une espace de mémoire où l on peut mettre à tout moment une nouvelle valeur en écrasant sa valeur courante. L expression à droite, appelée D-valeur (R-value) représente une valeur qui doit être mis dans l espace de mémoire représentée par la G-valeur. Considérer un exemple : X1 = X1 + X2 + 5 On lit l expression comme suit : X1 reçoit la somme de sa valeur courante et la valeur courante de X2, plus 5. Cette l affectation nécessite la lecture des valeurs courantes de X1 et X2, l addition de ces valeurs avec 5, et la remise du résultat dans l espace de référencée par X1 ; la valeur courante de X1 est ecrasée. Un nom ne peut être à gauche d une affectation seulement si ce nom définit une espace de mémoire et que le contenu de cette espace peut être modifié. La communication entre humain et ordinateur peut se fait via le clavier (entrée standard) et l écran (sortie standard) de l ordinateur. D autres entrées sorties sont les fichiers ou les ports de communication de l ordinateur (com1, com2, lpt, etc). Un lan- 3

gage de programmation fournit les fonctions pour saisir les données via le clavier et afficher les données sur l écran. Il fournit aussi les fonctions pour écrire ou lire les données dans les fichiers. 3 Une petite illustration Problème : Etant données les valeurs des paramètres a et b, chercher la valeur de x qui satisfait l équation a*x + b = 0. 3.1 Problème mathématique Un élève de la classe 5ième sait comment résoudre cette équation. il sait qu il faut procéder les étapes suivantes. a*x = -b si a est différente de 0 alors x = -b / a sinon, si b = 0 alors l équation a l infini de solutions, sinon, pas de solution. 3.2 Problème de programmation Ecrire un programme dans un langage de programmation (une machine virtuelle) pour résoudre l équation. Ce que la machine virtuelle (python) sait faire : l affectation, les opérations arithmétiques et logiques, les contrôles d exécution, la saisie de données des périphériques (clavier, disques,...), écrire les donnéés sur l écran, les disques (communication entre la mémoire centrale et les périphériques). Bien qu elle sache faire chaque opération des étapes écrites précédemment, la machine virtuelle ne sait pas l invention du procédé ci-dessus, c est-à-dire, comment inventer le déroulement des opérations sous les contrôles de données : Ce qu il ne sait pas est l algorithme pour résoudre le problème. 4

Pour écrire le programme il faut d abord savoir comment résoudre le problème (algorithme). Ensuite, en utilisant un langage de programmation (une machine virtuelle), on dite à la machine ce qu elle doit faire pour nous rendre la solution. Pour programmer on peut se poser les questions suivantes. Comment saisir la valeur de a et de b et les garder en mémoire. Question de l espace de mémoire et de types de données (entiers, réelles?), Problème de calculs : Quelles sont les opérations connues (division entière, division réelle) dans le langage et les contrôles que le langage sait faire (quand est ce qu on peut appliqiuer la division?). Problème de communication homme/machine : problème de présentation afin qu un utilisateur peut utiliser facilement ce programme. Une solution : 1) Fixer le type de données de a et b, et réserver les zones de mémoires correspondant. 2) Saisir les valeurs de a et de b via le clavier et les mettre dans la zone de mémoire réservées. Afficher un message pour inciter la saisie la valeur de a. Appeller une fonction pour accepter la donnée saisie et la mettre dans la zone réservée à a ; Les mêmes actions pour b. 3) Contrôler les calculs : Si a est différente de 0 alors calculer la division -b / a et affecter le résultat dans la zone réservée à x ; présenter (afficher) la valeur de x comme solution unique de l équation. Sinon (a = 0), Contrôler la valeur de b : Si b = 0, afficher un message indiquant qu il y a un nombre infini de solutions. Sinon, afficher un message indiquant qu il n y a pas de solution. 3.3 Particularités de Python En Python, la déclaration d une variable se fait par la première affection de valeur. Le type de données de la variable est déduite à partir de la valeur affectée. On ne doit pas explicitement déclarer de variables. Les affectations suivantes à la même variable 5

mettent à jour la valeur et le type de la variable. Donc, faire attention à la cohérence de type de données pendant l utilisation d une variable. Attentions : D autres langages de programmation peuvent exiger la déclaration explicite de type de variables avant de les utiliser. En Python, l indentation du text d un programme est très importante. Les instructions qui sont décalées avec le même nombre de colonnes (compter à partir de la marge gauche de la page d édition) se constituent un bloc. Ainsi, les instructions à être exécutées ensemble (en bloc) sous une condition de contrôle doivent être indentées de même niveau (décaler avec le même nombre de colonnes). Les premiers éléments de Python Entrée/Sortie : Pour saisir au clavier une valeur sans aucun message incitation : x = input() # déconseillé (le symbole # débute un commentaire dans un programme Python) Pour saisir au clavier une valeur avec un message incitation : x = input( Entrer un entier : ) # conseillé type(x) # afficher le type de la valeur courante de la variable x. Pour afficher un message : print message à afficher sur l écran print Valeur de x est, x, et valeur de y est, y, Le Programme Python de la résolution de l équation a * x + b = 0 a = input( Entrer une valeur pour a : ) b = input( Entrer une valeur pour b : ) if a!= 0 : x = -b / a print L equation a l unique solution x =, x elif b!= 0 : print L equation n a pas de solution. else: print L équation a un nombre infini de solutions 6