Partie I : Initiation au langage C

Documents pareils
Chap III : Les tableaux

Algorithmique et Programmation, IMA

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Introduction au langage C

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

Rappels Entrées -Sorties

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

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

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)

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51


Les chaînes de caractères

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

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

Outils pour la pratique

Langages et Concepts de Programmation Introduction à la programmation en langage C

Cours d Algorithmique et de Langage C v 3.0

Programmation en langage C

Quelques éléments de compilation en C et makefiles

Représentation d un entier en base b

Langage Éric Guérin 5 octobre 2010

Java Licence Professionnelle CISII,

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

Le langage C. Séance n 4

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

Cours Langage C/C++ Programmation modulaire

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

SUPPORT DE COURS. Langage C

Les structures. Chapitre 3

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

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

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

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

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

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

Programmation système I Les entrées/sorties

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

Cours Informatique Master STEP

PROJET ALGORITHMIQUE ET PROGRAMMATION II

L informatique en BCPST

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

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

Chapitre 1 : La gestion dynamique de la mémoire

ALGORITHMIQUE ET PROGRAMMATION En C

TP 1. Prise en main du langage Python

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

OCL - Object Constraint Language

I00 Éléments d architecture

PRESENTATION DES RECOMMANDATIONS DE VANCOUVER

I. Introduction aux fonctions : les fonctions standards

Unix/Linux I. 1 ere année DUT. Université marne la vallée

COMPARAISONDESLANGAGESC, C++, JAVA ET

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

Programmation impérative

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

Cours 1 : Qu est-ce que la programmation?

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Cours d algorithmique pour la classe de 2nde

Le prototype de la fonction main()

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Les fichiers. Chapitre 4

TP1 : Initiation à Java et Eclipse

Programmation Classique en langage C

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

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

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

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Algorithme. Table des matières

Les structures de données. Rajae El Ouazzani

Conventions d écriture et outils de mise au point

Introduction à NetCDF

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

Notions fondamentales du langage C# Version 1.0

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Cours d Informatique

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

2 Comment fonctionne un ordinateur, dans les grandes lignes

Notions de Langage C

UML et les Bases de Données

IV- Comment fonctionne un ordinateur?

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

Utilisation d objets : String et ArrayList

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

Traduction des Langages : Le Compilateur Micro Java

Cours 1 : La compilation

Évaluation et implémentation des langages

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

Logiciel de Base. I. Représentation des nombres

Cours Informatique 1. Monsieur SADOUNI Salheddine

Travaux Dirigés n 1 : chaînes de caractères

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

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Estimation des charges. «Le travail se dilate jusqu à remplir le temps disponible»

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Salle de technologie

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

Programmer en JAVA. par Tama

Transcription:

HISTORIQUE Partie I : Initiation au langage C Le langage C a été mis au point au début des années 1970 et normalisé (ANSI) en 1988. Depuis cette date le langage C a conquis le monde des entreprises et des universités malgré ses quelques défauts (syntaxe parfois illisible, pas assez de contrôle sémantique ). C est un langage de haut niveau qui génère un code très rapide grâce à un compilateur très performant. C est un langage tolérant, permissif! PORTABILITE Un programme écrit en langage C peut être exécuté sur n importe quel système d exploitation sans aucune modification. C est pour cela qu on dit qu il est portable. APPRENTISSAGE Le langage C n est pas difficile à apprendre malgré son apparence car il dispose de peu d instructions et ses structures de données sont limitées. Comme ça a été dit le langage C n est pas difficile, il est différent! Une fois l apprentissage du langage C est achevé, cela nous facilite la familiarisation avec d autres langages tels que C++ et Java qui sont dérivés du C. QUELQUES CONCEPTS DE BASE Narration est un langage très simple qu on apprendra avant l algorithme, il nous permet de voir les différentes étapes pour solutionner un problème donné. Voir cours sur Narration. Algorithme est un outil nécessaire pour n importe quel programmeur (informaticien ou autre) pour avoir la suite logique des instructions pour solutionner un problème donné. Avant on utilisait des organigrammes. On peut dire qu un algorithme est le résultat de la décomposition d un problème complexe en opérations élémentaires qui seront exécutées en plusieurs étapes successives. C est le raffinement d un problème. Pour obtenir un programme il suffit de traduire l algorithme obtenu dans n importe quel langage de programmation. C est pour cela qu un algorithme doit être écrit indépendamment du langage de programmation.

TYPOLOGIE DES LANGAGES Langages machine utilisant que des 0 et des 1 (langage binaire). Il est compris directement par la machine d où son nom. Langages d assemblage utilisant des mnémoniques (un semblant de mot) donc il n est pas compris directement par la machine par conséquent il lui faut un traducteur (un outil logiciel) qu on appelle «Assembleur». Langages évolués ou de haut niveau, pour qu ils soient compris par la machine ils doivent passés par l étape de la compilation. C est pour cela qu on parle par exemple du compilateur C. COMPILATION Tout langage évolué possède un compilateur, celui-ci sert à traduire le «code source» d un programme écrit en un langage de haut niveau comme le C en «code objet» exécutable par un ordinateur. Avant la traduction le compilateur passe par l étape d analyse du programme source (Analyse syntaxique et analyse sémantique). PRE-PROCESSEUR Il est aussi appelé pré-compilateur c est un utilitaire qui traite le fichier source avant la compilation. Tous les langages évolués ne possèdent pas ce pré-compilateur, le langage C en possède un. ASSEMBLEUR Le code généré par la compilation est traité pour générer un fichier en format relogeable (0 & 1). Ce fichier généré n est pas encore exécutable, il reste encore l étape de l édition de lien surtout si votre programme est composé de plusieurs modules. EDITEUR DE LIEN L éditeur de lien prend le ou les fichier(s) en format relogeable et fait le lien entre eux pour créer un programme chargeable c est-à-dire exécutable.

DIFFERENTES ETAPES DE CONSTRUCTION D UN PROGRAMME On construit un programme en passant par plusieurs étapes. Etape 1 : On pose un problème donné dans une langue donnée (Français par exemple) Analyse (analyse préalable) Etape 2 : On écrit les différentes étapes de résolutions Formalisme Etape 3 : On écrit une narration, un organigramme ou bien un algorithme Traduction Etape 4 : On traduit notre algorithme en un langage de programmation (C par exemple) Une fois le programme est écrit en un langage évolué, on passe aux étapes suivantes : Etape 1 : compilation du programme source Etape 2 : exécution du programme compilé NB : D une manière générale, un programme (logiciel) est composé de plusieurs modules (sous programmes). Dans ce cas, il est nécessaire de lier ces différents fichiers entre eux après la compilation : c est l édition de lien. STRUCTURE D UN PROGRAMME C Tout comme la narration et l algorithme, le programme C a une structure (un squelette). Le langage C est un langage structuré et un programme C de base est constitué de : Partie entête (Directive) Programme principal (Fonction principale) Partie traitement (Corps du programme = déclarations + instructions)

EXEMPLE DE BILAN On essaie d écrire une narration puis un algorithme correspondant et sa traduction en langage C. Le problème est la somme de deux nombres entiers. Ecriture de la narration Narration somme Objet A, B, S 1- Lire A 2- Lire B 3- Calculer S = A+B 4- Ecrire S 5- Arrêter Ecriture de l algorithme correspondant Algorithme somme ; Déclaration A, B, S : entier ; Début Lire(a) ; Lire(b) ; S A+B ; Ecrire(S) ; Fin. Ecriture du programme en C #include <stdio.h> Main() { Int A, B, S ; Scanf( %i, &A); Scanf( %i, &B); S = A+B ; Printf( %i, S); } /* Partie entête*/ /*Programme principale*/ /*Déclaration*/ /*Lecture de A*/ /*Lecture de B*/ /*Calcul de S*/ /*Ecriture de S*/ Remarque : La parenthèse ouvrante { joue le rôle de Début et la fermante } celui de Fin.

Essayons de comprendre ce programme sans trop rentrer dans les détails. Ce programme principal main() utilise dans la partie traitement (corps du programme) deux différentes opérations scanf() et printf(), ce sont des opérations (fonctions) d entrée/sortie (input/output),il utilise aussi une déclaration int A,B,S ; et une affectation S = A+B ; Les deux dernières opérations (déclaration et affectation) sont reconnues par le compilateur par contre les opérations d input/output ne le sont pas, donc il faut les inclure à l aide de la directive #include qui précise au compilateur dans quel fichier se trouve la définition de ces fonctions. Que signifie stdio.h? std : Standard io : input/output.h : header (entête) Remarques L inclusion qui est une opération appartenant aux instructions du pré processeur se fait comme suit : #include <stdio.h> Que signifie %i et & dans les opérations d input/output scanf() et printf()? %i : veut dire que c est le format entier (i comme integer), %i est équivalent à %d %c : Pour les caractères (c comme character). %f : Pour les réels (f comme float). & : cet opérateur doit précéder toute variable de type scalaire (entier, réel, caractère ). Attention un mot écrit en minuscule est différent de celui qui est écrit en majuscule. Si vous écrivez main() et Main() ce n est pas la même chose. L écriture du programme C doit être en minuscule! Le langage C permet la déclaration des variables à n importe quel endroit dans le programme, il n a pas une zone précise appelée zone déclarative. Il est permissif. Par contre la déclaration des constantes est dans l entête (partie du pré compilateur), à l aide de #define. En C, toute déclaration et/ou toute instruction se termine par un pointvirgule ; sauf les instructions destinées au préprocesseur comme par exemple #include A chaque fois qu on utilise une fonction standard, on doit inclure son fichier entête!

BIBLIOGRAPHIE 1- Langage C : Cours et références Pierre NERZIC Mars 2003 2- Langage C : Support de cours Patrick CORDE Mars 2006 3- Programmation en langage C M.C. BELAID