Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/



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

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


Cours 1 : Qu est-ce que la programmation?

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 d Informatique

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

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

Algorithmique et Programmation, IMA

Programmes des classes préparatoires aux Grandes Ecoles

2 Comment fonctionne un ordinateur, dans les grandes lignes

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

Cours 1 : La compilation

Algorithme. Table des matières

Machines virtuelles Cours 1 : Introduction

Correction TD algorithmique

Compilation (INF 564)

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

Rappels d architecture

L informatique en BCPST

GPA770 Microélectronique appliquée Exercices série A

Microprocesseur + Logiciel

IV- Comment fonctionne un ordinateur?

TP 1. Prise en main du langage Python

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

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Cours Informatique 1. Monsieur SADOUNI Salheddine

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

Évaluation et implémentation des langages

Introduction à l informatique en BCPST

Rappels sur les suites - Algorithme

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

Algorithmique et structures de données I

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

Logiciel de Base. I. Représentation des nombres

Informatique Générale

Conception de circuits numériques et architecture des ordinateurs

Chapitre 10 Arithmétique réelle

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

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

Logiciel Libre Cours 3 Fondements: Génie Logiciel

ANALYSTE PROGRAMMEUR DIPLÔME D ÉTABLISSEMENT

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

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

Architecture matérielle des systèmes informatiques

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

ASR1 TD7 : Un microprocesseur RISC 16 bits

ATELIERS DE FORMATION TECHNICIEN DE MAINTENANCE INFORMATIQUE

Éléments d'architecture des ordinateurs

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Algorithmique et programmation : les bases (VBA) Corrigé

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

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

Introduction à MATLAB R

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Model checking temporisé

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Architecture des ordinateurs Introduction à l informatique

Introduction au langage C

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

ALGORITHMIQUE ET PROGRAMMATION En C

Conservation des documents numériques

Structure d un programme

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Représentation des Nombres

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

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Masses de données. 1. Introduction 2. Problématiques 3. Socle de formation (non présenté) 4. Liens avec Formation INSA

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

Licence Sciences et Technologies Examen janvier 2010

ACTIVITÉ DE PROGRAMMATION

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

Notions fondamentales du langage C# Version 1.0

Cours d Algorithmique et de Langage C v 3.0

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

TP, première séquence d exercices.

Plateforme de capture et d analyse de sites Web AspirWeb

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

I00 Éléments d architecture

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

Représentation d un entier en base b

STAGE IREM 0- Premiers pas en Python

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

Algorithmique et Programmation Fonctionnelle

PROGRAMMES D INFORMATIQUE

Leçon 1 : Les principaux composants d un ordinateur

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

CESI Bases de données

Adama MBODJI MBODJ.SYSTEM

Un ordinateur, c est quoi?

MIS 102 Initiation à l Informatique

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

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

Principes des langages de programmation INF 321. Eric Goubault

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

Transcription:

données pr ogramme 11111101 11001101 01000101 b us disque ma gnétique processeur écran Structures de données et algorithmes Ordinateurs Gilles Falquet, printemps-été 2002 Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/ Cours: traitements sur les données stockées dans la mémoire. Architecture des ordinateurs Types élémentaires Types collections Arbres et graphes Algorithmes Itération Analyse numérique Récursion Complexité Conception des algorithmes Programmation dynamique composée de cellules > composée de bits = unité binaire de mémoire stocker le programme à exécuter Séminaire + travaux pratiques: stocker les données à traiter Exercices théoriques Systèmes de communication (entrées/sorties): Programmation Java: apprentissage de Java, utilisation des types de données. transmission d informations entre l ordinateur et son environnement Evaluation : 2/3 Examen écrit (3h) basé sur cours, séminaire, TPs écrans, claviers, souris, réseau de télécommunication, appareils (moteurs, capteurs, etc.). 1/3 Travaux pratiques 1 de 27 2 de 27 Architecture des ordinateurs données 11111101 11001101 disque magnétique reg R1 0 bus processeur 01000101 programme écran PC 301 3 de 27 4 de 27

R1 0 4 adr. 301 charger R1 1001 R1 4 PC 301 PC 302 5 de 27 6 de 27 + R1 4 2 PC 302 PC 303 7 de 27 8 de 27

> 0? reg reg 2 PC 303 PC 304 9 de 27 10 de 27 Information et données PC 302 Traitement de l information par une machine => stockage en mémoire => codage Information codée = données. Schéma de codage : structure de données complet: représenter en mémoire toutes les informations à traiter; efficace en espace : faible occupation de la mémoire; efficace en temps : peu d instructions pour traiter les données. Etude des structures de données indissociable de Etude des algorithmes qui traitent ces données. "Structures de données + Algorithmes = Programmes" [Wirth] 11 de 27 12 de 27

Algoorithme Méthode pour résoudre un problème en un nombre fini d étapes de manière correcte On cherche des algorithmes généraux algo pour calculer 45 + 12 ==> pas intéressant algo pour additionner deux nombres entiers quelconques ==> intéressant Thèse de Church Tout algorithme peut être exécuté par un programme sur un ordinateur == il n y a pas de méthode raisonnable qu on ne puisse programmer Remarque Il y a des problèmes indécidables == pour lesquels il n existe pas d algorithme Langage algorithmique de haut niveau Pour éviter d écrire des programmes au niveau "machine" On se donne un langage algorithmique plus abstrait. Modèle de mémoire = ensemble d objets objet = ensemble de cellules contient une d un certain type (entier, réel, chaînes de caractères, booléen, etc.) Variables Nomment un objet de la mémoire. (remplacent l adresse numérique) Possèdent un type Etat de la mémoire : ensemble de paires (variable = ) { X = "Hello", Y = 95 } X: "Hello" Y: 95 13 de 27 14 de 27 Vrai langage et pseudo langage Instructions: affectation Les langages "professionnels" sont complexes Stocke une, résultat d un calcul, dans une variable. syntaxe restrictive pour éviter les erreurs de programmation doivent être modulaires, structurés, etc. (génie logiciel) adaptés à un environnement (périphériques, réseau, etc.) /!\ Le contenu précédent est perdu. variable constante contraintes d efficacité X 34 variable variable Pseudo langage Y X syntaxe plus informelle, pas de définition stricte centré sur l algorithme, pas sur les aspects génie logiciel variable expression opérateur expression Z 3 * X critère : facile à traduire dans un vrai langage 15 de 27 16 de 27

Exemples mémoire avant instruction mémoire après X = 897 X 2 X = 2 X = 2, Y = 3333 Y X + 8 X = 2, Y = 10 X = 3, Y = 11 X X * Y X = 33, Y = 11 Z = "xsjsjdsw" Z "allo" Z = "allo" Z = "allo", Y = 11 X Z + Y indéfini : chaîne de caractères + entier Evaluation d expression Expressions composées de constantes, variables, opérateurs, fonctions Evaluation dans l ordre habituel: ( ), fonctions, ^, *, /, mod, +,,,, <, >, =,,, Les variables sont remplacées par leur. Signification des opérations dépend du type d arguments 2.3 + 5.66 addition des réels 6 + 2 addition des entiers 6 / 4 = 1 ou 1.5? "bon"+"jour" concaténation des chaînes L un des objets de ce cours : définir et étudier la signification des opérations sur différents type de données (entiers, réels, listes, ensembles, séquences, arbres, graphes, etc.) 17 de 27 18 de 27 Séquences d instructions Ordre d exécution { instruction1; instruction2; } Attention: Sémantique: L ordre des instructions dans une séquence est important! Exécuter instruction1, puis instruction2, et ainsi de suite. Exemple: { X 2; Z X + 1; U X Z; } { X 2; Z 2*X ; X X+1 } [[ X = 3, Z = 4 ]] mémoire avant instruction mémoire après X = 0, Y = 1, Z = 111 X 2; Z X + 1; U X Z X = 2, Z = 3, U = 1 { X 2; X X+1; Z 2*X } [[ X = 3, Z = 6 ]] 19 de 27 20 de 27

ou bien Exécution conditionnelle: si (expression) instruction1 sinon instruction2 A 2; B 1; si (A > B) W A B sinon W 0 [[ A = 2, B = 1, W = 1 ]] si (expression) instruction1 Calcul de Z = MAX(X, Y) si (X > Y) Z X sinon Z Y Algorithme MAX Vérifier : l algorithme fonctionne pour X = Y si (X > 0) Y X sinon Y X [[ Y = absolue de X ]] 21 de 27 22 de 27 Calcul de Z = signe de X si (X > 0) Z 1 sinon si (X = 0) Z 0 sinon Z 1 Conditions imbriquées. Algorithme SIGNE Trouver une forme équivalente non imbriquée. Syntaxe: Sémantique: Itération tant que (expression) instruction Exécuter instruction tant que l évaluation de expression donne vrai. Exemple R 10; S 0; tant que (R > 0) { S S + R; R R 1 } [[ S = 10+9+8+ +2+1 = 55 ]] 23 de 27 24 de 27

Itération - sur un ensemble de s Exemple. Calcul de r = p q Lorsque on veut effectuer un nombre déterminé à l avance d itérations on pourra utiliser la syntaxe abrégée r 1; pour (variable de expression1 à expression2 ) instruction n 0; qui correspond à : variable expression1 tant que (variable expression2) { instruction; variable variable + 1 } tant que (n q) { r r * p; n n + 1; } [[ r = p q ]] Toutes ces instructions peuvent être combinées entre elles pour former des instructions plus complexes.. 25 de 27 26 de 27 L algorithme est correct r 1; n 0; [[ r = p n ]] tant que (n q) { [[ r = p n ]] r r * p; [[ r = p n+1 ]] n n + 1; [[ r = p n ]] } [[ r = p n et n = q ]] => [[ r = p q ]] 27 de 27