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



Documents pareils
Algorithmique et Programmation, IMA

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Introduction au langage 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)

Rappels Entrées -Sorties

STAGE IREM 0- Premiers pas en Python


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

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

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

Le langage C. Séance n 4

SUPPORT DE COURS. Langage C

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

Cours d Algorithmique et de Langage C v 3.0

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

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

Informatique Générale

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

ALGORITHMIQUE ET PROGRAMMATION En C

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

Les structures. Chapitre 3

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

Cours 1 : La compilation

Programmation système I Les entrées/sorties

V- Manipulations de nombres en binaire

Programmation en langage C

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

Programmer en JAVA. par Tama

TP 1. Prise en main du langage Python

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

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

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

Conventions d écriture et outils de mise au point

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

Notions fondamentales du langage C# Version 1.0

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

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

Claude Delannoy. 3 e édition C++

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

Langage Éric Guérin 5 octobre 2010

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

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

Algorithmique et programmation : les bases (VBA) Corrigé

Le prototype de la fonction main()

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

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

Les chaînes de caractères

Les structures de données. Rajae El Ouazzani

Logiciel de Base. I. Représentation des nombres

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

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

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

Introduction à MATLAB R

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

INF 321 : mémento de la syntaxe de Java

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

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

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

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

Présentation du langage et premières fonctions

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

Solutions du chapitre 4

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

TP : Gestion d une image au format PGM

Initiation à l algorithmique

Chap III : Les tableaux

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

Cours Programmation Système

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Recherche dans un tableau

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

Introduction au Langage de Programmation C

Cours Informatique Master STEP

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Programmation en Java IUT GEII (MC-II1) 1

Cours Informatique 1. Monsieur SADOUNI Salheddine

BTS IRIS Cours et Travaux Pratiques. Programmation C. A. Lebret, TSIRIS, Lycée Diderot, 1995/06. en conformité avec le référentiel du BTS IRIS

Conversion d un entier. Méthode par soustraction

Programmation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval

Le langage C. Introduction, guide de reference

Programmation Classique en langage C

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

2 Comment fonctionne un ordinateur, dans les grandes lignes

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

2. Comprendre les définitions de classes

Cours de programmation avancée. Le langage C. Université du Luxembourg

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

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

Représentation d un entier en base b

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Architecture matérielle des systèmes informatiques

TP, première séquence d exercices.

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

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

as Architecture des Systèmes d Information

Chapitre 10 Arithmétique réelle

Transcription:

IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en tant que décideur, qu ingénieur, que chercheur... Cela pourra se manifester soit comme élément constitutif d un système que vous concevrez, étudierez, organiserez, soit pour des besoins (plus ou moins occasionnels) d automatisation de tâches. Ce document a pour principal but de récapituler par cours les notions essentielles que vous êtes attendus d avoir retenues. Aussi, volontairement ce document ne se substitue par aux deux autres polycopiés qui vont sont fournis et dont le but est d approfondir certaines notions vues en cours, voire d aborder des points passés sous silence et constituent des notions plus avancées pouvant intéresser les lecteurs curieux. 1 Informatique, calculateurs Un ordinateur, ou plus largement, un calculateur est une machine dont le but est de traiter de l information par le calcul. Ces machines opérant dans le monde numérique, l information traitée est représentée par des nombres et codée en binaire (deux symboles). Traiter de l information implique d expliquer à la machine comment/quoi faire. C est programmer en énonçant un algorithme. Une machine est en première approximation composée d un CPU ou microprocesseur (unité de traitement de l information) et de mémoire (unité de stockage de l information). Programmer décrire un calcul, plus ou moins donner des ordres au CPU pour qu il effectue ces calculs en utilisant la mémoire comme support. Un programme est en fait la matérialisation d un objet mathématique et est idéalement réalisé en 4 étapes : 1. Expression (±) formelle d un problème à résoudre. 2. Expression de ce que l on attend en sortie. 3. Établissement de ce que l on a à disposition en entrée. 4. Conception de l algorithme. On met en œuvre un algorithme en le décrivant dans un langage de programmation. Le langage utilisé pour ce cours sera C. Il permet de s abstraire de la complexité du CPU et de rendre les programmes plus portables. 2 Un premier programme en C aloha.c #include <s t d i o. h> / Pour acceder a p r i n t f. / p r i n t f ( Aloha c o u s i n s... \ n ) ; 1

Un programme en C a toujours 1 et 1 seule fonction principale : main. C est par ce point que commence l exécution d un programme. Cette fonction commence par l entête : int main (). Nous verrons plus tard qu il existe une petite variante. Son corps est constitué de tout ce qu il y a entre les. Elle doit toujours se terminer par le retour d une valeur entière : return (0). Par convention, pour le main, 0 signifie pas d erreur, 0 signifie erreur survenue. Chaque instruction ( ordre ) est terminé par un ; (sauf pour les blocs dont il est question plus loin, ou des formes avancées d utilisation des instructions). Un programme s écrit sous forme d un texte source. On utilise donc un éditeur de texte. Une fois écrit, il faut transformer ce texte en exécutable. On utilise un compilateur C. Dans un terminal : gcc aloha.c Le fichier exécutable créé par défaut se nomme a.out. Vous pouvez alors exécuter votre programme en tapant dans un terminal :./a.out 3 Constructions élémentaires de C 3.1 Types et variables Les informations que l on souhaite traiter peuvent être de natures variées : entiers naturels, rationnels, valeurs de vérité (vrai / faux), lettres, texte.... Les langages de programmation fournissent des types de données variés à cet effet. En C, 3 types scalaires de base : Les entiers (int). Les réels (float et double). Les caractères (char). On appelle booléen le type des valeurs de vérité ( vrai et faux ).C ne fournit pas de vrais booléens. En C, ce sont des entiers avec pour convention 0 faux et tout sauf 0 faux. L utilisation de #include <stdbool.h> permet de bénéficier de la pseudo-définition de booléens : Type bool (alias de int). Constante true (=1) et false (= 0). Un programme manipule des données stockées en mémoire. Il faut donc pouvoir manipuler des réceptacles d information : des variables. La première chose à faire pour pouvoir manipuler une variable est de la déclarer puis de l initialiser (i.e. lui donner une valeur). On déclare une variable en donnant son type suivi de son nom : int my var ; On initialise une variable directement au moment de sa déclaration en lui affectant une valeur par la construction = : 2

int my var = 42 ; 3.2 Expressions et instructions En simplifiant, on différencie 2 types de constructions de C : Les expressions, qui ont une valeur (elles valent ) et n ont pas d effet. Les instructions, qui ont un effet (elles font ) sans forcément valoir quelque chose. La différence réelle entre instruction et expression est plus complexe et plus floue en C. 3.2.1 Expressions Expressions de base : Variables : toute variable déclarée et de portée accessible. Entiers : 344578 5 ( Booléens : true false ) Caractères : U \n Flottants : 4.6 5e-12 Chaînes : plop \\tglop\\n On combine les expressions pour en exprimer de plus complexes à l aide d opérateurs : Arithmétiques entre entiers et/ou flottants : +,, /,, % (modulo) Relationnels ( tests ) entre expressions de même type : == (égalité),!= (inégalité), < (inférieur à), >, <= (inférieur ou égal à), >= Logiques entre booléens : && (et), (ou),! (négation) Binaire ( bit-à-bit ) entre entiers/caractères : (négation), ˆ (ou exclusif), & (et), (ou) Appels de fonctions : détaillé ultérieurement même si déjà superficiellement aperçu. Par exemple, le prédicat x ] 1; 2[ [10; 10 + 3[ = ((x > 1)&& (x < 2)) ((x >= 10)&& (x < (10 + 3))) 3.2.2 Instructions L instruction d affection permet de stocker une valeur dans une variable. Elle est notée par = (ne pas confondre avec == le test d égalité) et attend : À gauche : une variable (plus généralement, une case mémoire). À droite : une expression dont la valeur sera stockée. int my var = 42 ; my var = ( my var 90) / 100 ; Note : il existe des instructions d affectation-arithmétique abrégées qui mixent affectation et opérateurs. Note : Les instructions d affectation peuvent être utilisées dans certains contextes d expression. ATTENTION!!! On ne lit jamais la valeur contenue dans une variable si cette dernière n a pas été initialisée ou préalablement affectée. Dans le cas contraire, la valeur obtenue sera quelconque (donc vide de sens). 3

L instruction conditionnelle permet effectuer un traitement si une condition est vraie : if (expression) instruction(s) ;... ou (optionnellement) un autre traitement sinon : if (expression) instruction 1 (s) ; else instruction 2 (s) ; La construction... permet de grouper plusieurs instructions : c est un bloc. int my var = 5 ; i f ( my var < 0) p r i n t f ( N e g a t i f. \ n ) ; else p r i n t f ( P o s i t i f. \ n ) ; ATTENTION!!! Il n y a pas de ; après l accolade fermant un bloc. L instruction while permet effectuer une boucle tant qu une condition est vraie : while (expression) instruction(s) ; int my var = 5 ; while ( my var > 0) p r i n t f ( Pas n u l l e. \ n ) ; my var = my var 1 ; 4 Affichage à l écran La fonction printf permet d afficher une chaîne de caractères dans laquelle on peut insérer l affichage de valeurs. #include <s t d i o. h> p r i n t f ( Une c h aine... \ n ) ; p r i n t f ( Valeur de 3 + 5 = %d\n, 3 + 5) ; Première chaîne ( format ) toujours obligatoire et décrit la forme de l affichage. À chaque % doit correspondre un argument passé à printf. Nombreux % dont : %d pour afficher une valeur entière signée, %f pour une valeur flottante. Nécessite l utilisation de stdio.h : #include <stdio.h> p r i n t f ( I understand \n ) ; I understand p r i n t f ( I understand %s. \ n, very w e l l ) ; I understand very w e l l. p r i n t f ( Hi u s e r%d. Did you know that Pi i s %f?\n, 2 + 3, 4. 0 atan ( 1. 0 ) ) ; Hi u s e r 5. Did you know that Pi i s 3. 141593? 4

Rappel des formats : %d un int %ld un long int en décimal %u un unsigned int en décimal %x un int en hexadécimal %f un float %lf un double %e un double en notation scientifique %.7lf un double avec 7 chiffres après la virgule %07d un int en décimal sur 7 digits (padding frontal avec des 0) % 7d un int en décimal sur 7 digits (padding frontal avec des ) %c un char (comme caractère ASCII, pas comme entier) 5