Algorithmique et programmation

Documents pareils
INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Introduction au langage C

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

Chapitre I Notions de base et outils de travail

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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


Cours d Informatique

COMPARAISONDESLANGAGESC, C++, JAVA ET

TP1 : Initiation à Java et Eclipse

Algorithme. Table des matières

Évaluation et implémentation des langages

ACTIVITÉ DE PROGRAMMATION

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

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

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

Corrigé des TD 1 à 5

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

Rappels sur les suites - Algorithme

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

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

TP1 : Initiation à Java et Eclipse

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

L informatique en BCPST

Algorithmique et Programmation, IMA

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

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

Examen Médian - 1 heure 30

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

Notions fondamentales du langage C# Version 1.0

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

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

Programmation système I Les entrées/sorties

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

Tp 1 correction. Structures de données (IF2)

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

Présentation du langage et premières fonctions

Cours d Algorithmique et de Langage C v 3.0

Cours Informatique Master STEP

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

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Programmation Orientée Objet

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

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

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Le langage C. Séance n 4

Mathématiques Première L, ES, S, Concours Post-Bac Equations et inéquations du second degré FORMAV

CORRECTION EXERCICES ALGORITHME 1

Objet du document. Version document : 1.00

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

IV- Comment fonctionne un ordinateur?

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

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

Conventions d écriture et outils de mise au point

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

= constante et cette constante est a.

Cours d algorithmique pour la classe de 2nde

Solutions du chapitre 4

Java au cœur de la base de données Oracle

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

as Architecture des Systèmes d Information

Architecture matérielle des systèmes informatiques

Présentation du module Base de données spatio-temporelles

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Cours 1: Java et les objets

CUEEP Département Mathématiques E 821 : Problèmes du premier degré 1/27

Systeme d'exploitation

M Études et développement informatique

Remote Method Invocation (RMI)

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

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

Les structures. Chapitre 3

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

Programmation impérative

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Formation : Langues : Types d Intervention et Secteurs d Activité :

Module.NET 3 Les Assemblys.NET

I00 Éléments d architecture

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

Flux de données Lecture/Ecriture Fichiers

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

Chap III : Les tableaux

Objets et Programmation. origine des langages orientés-objet

Cours 1 : La compilation

Les BRMS Business Rules Management System. Groupe GENITECH

Représentation d un entier en base b

Conservation des documents numériques

V- Manipulations de nombres en binaire

Chapitre 1 Qu est-ce qu une expression régulière?

Entraînement au concours ACM-ICPC

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

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

Qui ont toujours à mon côté pour me soutenir et me guider au long de ce projet.

1 Introduction au codage

Programmation par les Objets en Java

Transcription:

Université Mohammed Premier Ecole nationale des sciences appliquées d Al Hoceima (ENSAH) Algorithmique et programmation Préparé et présenté par M. Ouazzani Chahdi Année universitaire: 2013/2014 3/7/2014 1 Chapitre 1 Introduction générale 3/7/2014 2 1

Sommaire 1 Algorithmique Notion d algorithme. Définition d un algorithme. Règles d élaboration d un algo. Les éntrées/ sorties d un algo. Algorithme Informatique. 2 Programmation De l algorithmique à la programmation. Langage de programmation. Environnement de développement intégré. L édition et l exécution d un programme. Schéma récapitulatif. 3 Langage C Historique et caractéristiques. Edition d un programme en C. Notion de compilateur. Normalisation de C. 3/7/2014 3 Notion d algorithme Pour mieux comprendre la notion d algorithme, prenons le problème suivant : Résolution d une équation de type : ax 2 + bx + c = 0. Avant de commencer la résolution on doit tout d abord: Bien définir le problème. Définir et connaître les objets et les entités avec lesquels on va travailler. Définir en détail les étapes de la résolution à suivre. En analysant ce problème, on a abouti à la résolution suivante : 3/7/2014 4 2

Résolution dans R d une équation de second degré avec un seul inconnu : ax 2 + bx + c = 0 Les objets manipulés sont : a, b, c, x R. S l ensemble de solution dans R. Début de la résolution : On calcule = b 2 4ac Si < 0 alors pas de solution dans R. Si = 0 alors S = Si > 0 alors S = Fin de la résolution. b 2a. b 2a, b+ 2a. Algorithme C est un algorithme de résolution d une équation de type ax 2 + bx + c = 0 3/7/2014 5 Prenons maintenant un autre problème : préparation d une recette de Pâte à pizza. Avant de commencer la préparation on doit tout d abord : Bien définir la recette. Connaitre le nombre de personne et les ingrédients Définir les outils utilisés. Définir les étapes de la préparation. Après quelques expériences, on a abouti à la recette suivante : 3/7/2014 6 3

Recette de préparation d une Pâte à pizza Nombre de personne : 6 Ingrédients : 500 g de farine T55. 250 ml d'eau. 1 cuillerée à café de sel. 2 cuillerées à soupe d'huile d'olive 20 g de levure de boulanger Début de la préparation : Verser la farine dans un saladier. Dans un petit bol, faire fondre. Malaxer jusqu'à rendre la pâte. Etc. Fin de la préparation. Algorithme C est un algorithme de préparation d une Pâte à pizza 3/7/2014 7 Définition d un algorithme Un algorithme est une suite d actions ou d instructions qui doivent être exécutées dans un ordre déterminé pour résoudre un problème ou réaliser un travail. Le mot algorithme vient du nom du mathématicien arabe Al-Khawarizmi(780-850), dans son traité il décrivait des procédés de calcul à suivre étape par étape pour résoudre des problèmes ramenés à des équations. Les résultats obtenus ou traduits par Al-Khawarizmi étaient compréhensibles par tout autre mathématicien et applicables sans ambiguïté. 3/7/2014 8 4

Règles d élaboration d un algorithme Pour bien élaborer un algorithme pour un problème donné, on doit : Bien définir le problème. Définir les objets et les entités manipulés. Expliciter la résolution étape par étape. Ecrire l algorithme de tel sorte qu il soit compréhensible par tous les gens auxquels il est destiné, par exemple : pour un algorithme mathématique il faut utiliser un langage mathématique. Pour un algorithme informatique il faut utiliser un langage informatique. L exécution de l algorithme doit être sans ambiguïté. 3/7/2014 9 Les entrées/sorties d un algorithme En générale, un algorithme reçoit des données en entrée et fourni des résultats en sortie. Exemple : Algorithme de résolution d une équation de type ax 2 + bx + c = 0 Les données en entrée sont les valeurs de a, b et c. Le résultat en sortie est l ensemble de solution S. a = 3 b = -5 c = 8 Algorithme de résolution de l équation : 3x 2 5x + 8 = 0 S 3/7/2014 10 5

Algorithme informatique Prenons maintenant le problème informatique suivant : Dire à l ordinateur comment calculer la somme de deux nombres saisis au clavier. L algorithme correspondant a la particularité d être exécuter par l ordinateur. Alors l ordinateur doit : Demander à l utilisateur de saisir au clavier deux nombres en affichant un message(par exemple : Donnez deux nombres). Lire ces deux nombres à partir du clavier et les enregistrer. Calculer la somme. Afficher le résultat à l écran sous forme d un message (par exemple : Le résultat de la somme est : 17). Scénario d exécution 3/7/2014 11 Pour que l ordinateur soit capable de faire ça, l algorithme doit lui expliciter tous ces étapes. Pour cela, on a l algorithme informatique suivant : Algorithme : dire à l ordinateur comment calculer la somme de deux nombres. Objets manipulés : x, y et S variables de type réel. Début de l algorithme : Afficher le message : "Donnez deux nombres". Lire les valeurs saisies et les enregistrer dans x et y. Calculer la somme de x et y et l enregistrer dans S. Afficher le message : "La somme est : ", S Fin de l algorithme. 3/7/2014 12 6

Cet algorithme n est pas adapté par tous les informaticiens, parce qu il ne respecte pas les conventions d écriture d un algorithme informatique. C est pourquoi on utilise généralement une série de conventions appelée pseudo-code. Ce pseudo-code ressemble à un langage conventionnel compréhensible par tous les informaticiens et utilisé pour écrire toute sorte d algorithme informatique. En respectant les conventions de ce pseudo-code l algorithme précédent se réécrit comme ceci : 3/7/2014 13 Algorithme SommeDeuxNombres Variable x, y, S : Réel Début Ecrire("Donnez deux nombres :") Lire(x, y) S x + y Ecrire("La somme est : ", S) Fin Nom de l algorithme Objets manipulés par l algorithme Les étapes et les instructions de l algorithme Le résultat de l exécution par l ordinateur Donner deux nombres : 7 10 La somme est 17 3/7/2014 14 7

De l algorithmique à la programmation L algorithme SommeDeuxNombres est destiné à être exécuter par l ordinateur : Problème : l ordinateur ne comprend que le langage binaire, c est-à-dire des suites des 0 et des 1. Alors on doit traduire cet algorithme dans le langage binaire : Problème : plus l algorithme est long plus la traduction est ennuyeuse, et plus le nombre de corrections augmente. Solution : utiliser un langage facile à manipuler par l homme et qu il soit compréhensible par l ordinateur. Il s agit d un langage de programmation. 3/7/2014 15 Langage de programmation En informatique, un langage de programmation est une suite de mots clés et de notations conventionnelles permettant à un être humain de dialoguer avec une machine, généralement un ordinateur. Il existe plusieurs langages de programmation, on cite par exemple C, C++, Java, PHP, Pascal, etc. Le résultat de la traduction d un algorithme dans un langage de programmation est appelé programme. Et l activité de traduire un algorithme dans un langage de programmation(écrire un programme) est appelée programmation. 3/7/2014 16 8

Maintenant, on va traduire l algorithme SommeDeuxNombres en trois langages différents : Pascal, C et Java. Traduction en Pascal : Program SommeDeuxNombre; Var x, y, S : Real; Begin End. Writeln("Donnez deux nombres"); Redln(x, y); S := x + y; Writeln("La somme est :", S:8:2); Readln; Nom du programme Objets manipulés par le programme Les étapes et les instructions du programme 3/7/2014 17 Traduction en C : void main() { Nom du programme float x, y, S; Objets manipulés par le programme printf("donnez deux nombres : "); scanf("%f %f", &x, &y); S = x + y; printf("la somme est : %f", S); Les étapes et les instructions du programme } 3/7/2014 18 9

Traduction en Java : public class Main { public static void main(string[] args) { float a, b, s; Scanner sc = new Scanner(System.in); System.out.println("Donnez deux valeurs : "); a = sc.nextfloat(); b = sc.nextfloat(); s = a+b; System.out.println("La somme est :" + s); } } 3/7/2014 19 Environnement de développement intégré Pour écrire un programme en utilisant un langage de programmation, on utilise un logiciel appelé Environnement de développement intégré(ide). Ce logiciel nous permet d éditer les programmes, détecter les erreurs et faire la transformation en langage machine. Pour chaque langage on dispose d un ou plusieurs IDE, par exemples : Eclipse pour le langage Java Turbo Pascal pour le langage Pascal DevC++ et CodeBlocks pour les langage C et C++ Visual Studio pour le langage VB. 3/7/2014 20 10

Edition et exécution Programme Pascal sous Turbo Pascal Programme C sous DevC++ Programme Java sous Eclipse 3/7/2014 21 Schéma récapitulatif Pour résoudre un problème informatique, on peut suivre le schéma suivant : Comprendre le problème, savoir le résultats escompté, discuter les solutions possibles et proposer une solution optimale. Traduire l algorithme dans un langage de programmation choisi selon le besoin. Problème Analyse Algorithme Traduction Programme Partie Algorithmique Partie Programmation 3/7/2014 22 11

Le langage C Le langage C a été mis au point par l informaticiens Dennis Ritchie en 1972 dans le but de réaliser un système d exploitation UNIX. C est un langage possédant des fonctionnalités de bas niveau dans le sens où il permet l accès à des données et ressources que manipule l ordinateur(bits, octet, adresse, registres du microprocesseur, etc.). Il est suffisamment général pour permettre de développer des applications variées de type scientifique, jeux vidéo 2D ou 3D, application de bureau, etc. C est un langage très populaire, et utilisé par une grande communauté de programmeurs. 3/7/2014 23 Edition d un programme C (1/2) L édition d un programme consiste à créer, à partir d un clavier, tout ou partie du texte d un programme qu on nomme programme source. En général, ce programme source sera conservé dans un fichier que l on nommera fichier source. Un fichier source contenant un programme C est nommé sous la forme NomFichier.c Le fichier source d un programme C n est autre qu un fichier texte enregistré avec l extension.c. 3/7/2014 24 12

Edition d un programme C (2/2) Le programmeur édite le programme void main() { float x, y, S; printf("donner deux nombres : "); scanf("%f %f", &x, &y); S = x + y; printf("la somme est : %f", S); } Le programme source est enregistré sous format texte dont l extension est.c SommeDeuxNombres.c 3/7/2014 25 Notion de compilateur (1/2) Le fichier source d un programme C n est évidemment pas exécutable par l ordinateur. Pour qu il en soit ainsi, il doit être transformer en langage machine. Alors l opération qui consiste à transformer un programme source en langage machine est appelé Compilation. La compilation s effectue en faisant appel à un programme nommé Compilateur. Après avoir compiler un fichier source XXX.c on obtient un fichier prêt à être exécuter directement par l ordinateur(miroprocesseur). Ce fichier possède l extension.exe (XXX.exe). Remarque : Tous les IDE du langage C possèdent un compilateur. 3/7/2014 26 13

Notion de compilateur(2/2) Prétraitement SommeDeuxNombres.c (Voir plus loin) Compilateur Exécution par l ordinateur SommeDeuxNombres.exe 3/7/2014 27 Normalisation de C Dû à l'extraordinaire succès d UNIX, le langage C a connu un grand succès auprès des programmeurs, et de ce fait plusieurs compilateurs sont apparus. À la fin des années 80 il devient nécessaire de normaliser ce langage. Donc en 1989 l organisme ANSI(American National Standards Institute) propose la norme ANSI C pour ce langage. En 1990 l ISO(Organisation internationale de normalisation) adopta tel quel le standard ANSI en tant que standard ISO, d où la norme ISO C. Cette seconde version du langage devrait donc s appeler ISO C, mais la plupart persistent à l appeler ANSI C. 3/7/2014 28 14