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



Documents pareils
SAUVEGARDE COBIAN. LE B.A. BA De La sauvegarde Avec «CobianBackup» ou comment faire des sauvegardes automatiques

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

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

Rappels Entrées -Sorties

ALGORITHMIQUE ET PROGRAMMATION En C


Initiation à la programmation en Python

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

Le langage C. Séance n 4

Introduction au langage C

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

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

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

Algorithmique et Programmation, IMA

V- Manipulations de nombres en binaire

Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi?

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Programmation système I Les entrées/sorties

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

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

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

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

Tutorial Ophcrack. I) Ophcrack en API. (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista)

Les Imprimantes EOLE 2.3. Documentation sous licence Creative Commons by-nc-sa - EOLE (http ://eole.orion.education.fr) révisé : Janvier 2014

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

TD séance n 2c Mise à jour des Systèmes

TP 1 : 1 Calculs en binaire, octal et hexadécimal

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

Kaspersky Security Center Web-Console

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

I. Introduction aux fonctions : les fonctions standards

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

Une version javascript sera disponible directement dans le cours prochainement.

À propos de Kobo Desktop Télécharger et installer Kobo Desktop... 6

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

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

IV- Comment fonctionne un ordinateur?

Mettre Linux sur une clé USB bootable et virtualisable

User Manual Version 3.6 Manuel de l Utilisateur Version

l'ordinateur les bases

I00 Éléments d architecture

Cours Programmation Système

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

Outils pour la pratique

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

Logiciel de Base. I. Représentation des nombres

Les chaînes de caractères

Samsung Drive Manager FAQ

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

LA SAUVEGARDE DES DONNEES SUR LES ORDINATEURS PERSONNELS

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

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

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

Généralités sur les systèmes d Exploitation

Comment récupérer ses fichiers quand Windows ne démarre plus

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

Comptabilité - USR. Logiciel : Comptabilité USR - Version 2,16 Documentation réalisée par JJ Gorge Trésorier Tir à l'arc le 04/04/ / 15

Guide d'installation du connecteur Outlook 4

Introduction à l informatique en BCPST

GUIDE DE DÉMARRAGE RAPIDE

GUIDE DE L UTILISATEUR Recoveo Récupérateur de données

MÉMO NÂGA Le 14 Juin 2014

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Réseau électrique. Le transport de l énergie électrique depuis la centrale électrique jusqu à la maison de Monsieur Toulemonde

Interface PC Vivago Ultra. Pro. Guide d'utilisation

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

FAQ Trouvez des solutions aux problématiques techniques.

TP 1 : prise en main de Windows. TP 1 : prise en main de Windows

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

Les différents types de données et leurs opérations de base

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

Étape 3 : Afin d'approfondir vos connaissances sur le bit d'archivage, vous apprendrez l'effet d'une modification d'un fichier sur celui-ci.

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

Xubuntu Une alternative à Windows et à Ubuntu, (pour ceux qui ne veulent pas d'unity) : installer Xubuntu.

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

Séquence de découverte de SparkAngels Logiciel d entraide numérique

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

Edutab. gestion centralisée de tablettes Android

Cours d Informatique

Chap III : Les tableaux

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)

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

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

Les clients GNU/Linux

AUJOUR'HUI, NOUS ALLONS DÉCOUVRIR

Manuel d installation et d utilisation du logiciel GigaRunner

Le chiffre est le signe, le nombre est la valeur.

TP 1. Prise en main du langage Python

RoomMate Guide de l'utilisateur

COPIER, COUPER, COLLER, SELECTIONNER, ENREGISTRER.

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

L informatique en BCPST

Tune Sweeper Manuel de l'utilisateur

Transcription:

Licence Algorithmique & Langage C Paternité - Pas d'utilisation Commerciale Partage des Conditions Initiales à l'identique 2.0 France Vous êtes libres : * de reproduire, distribuer et communiquer cette création au public * de modifier cette création, selon les conditions suivantes : Paternité. Vous devez citer le nom de l'auteur original. Pas d'utilisation Commerciale. Vous n'avez pas le droit d'utiliser cette création à des fins commerciales. IUT GEII S1 Partage des Conditions Initiales à l'identique. Si vous modifiez, transformez ou adaptez cette création, vous n'avez le droit de distribuer la création qui en résulte que sous un contrat identiqueà celui-ci. * A chaque réutilisation ou distribution, vous devez faire apparaître clairement aux autres les conditions contractuelles de mise à disposition de cette création. * Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits. Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur (exceptions au droit d'auteur : copies réservées à l'usage privé du copiste, courtes citations, parodie...) voir le contrat complet sous : http://fr.creativecommons.org/contrats.htm 1 Notes de cours (première partie) cours_algo_lgc1.17.odp 1 2

Plan du cours Ressources Cours, exemples, exercices, sujets des tp, compilateur : Algorithmique / Langage de programmation http://arlotto.univ-tln.fr Premiers programmes Fichier source / Compilateur / Fichier exécutable (utilisez firefox plutôt que ie pour ce site) Les variables : nom, type, valeur, déclaration Sur le net : http://fr.openclassrooms.com/ http://c.developpez.com/cours/ Affichages : printf Saisies clavier : scanf Un ouvrage bien adapté pour débuter : Opérateurs arithmétiques: + - * / % "Le livre du C premier langage" Claude Delannoy Editions Eyrolles ISBN: 2212110529 L'affectation : = Expressions Expressions et affectations entre types différents 3 4

Algorithme Langage de programmation Définition : Ensemble de règles opératoires dont l'application permet de résoudre un problème en un nombre fini d'opérations. Algorithme : méthode, recette, procédure... Un algorithme peut être décrit en langage naturel mais pour pouvoir être exécuté par un ordinateur il faut le traduire dans un langage de programmation. Langage de programmation : Ensemble de symboles et de règles permettant de décrire un algorithme. Il existe de nombreux langages de programmation... Exemples d'algorithmes : recette de cuisine, règle de divisibilité par 3 résolution d'équations du second degré méthode de dépannage... Un algorithme est indépendant du langage dans lequel il est décrit. Nous commencerons par apprendre le langage C. C'est un langage généraliste de base que tous les informaticiens connaissent. C'est le langage le plus utilisé en électronique (micro,dsp,...) 5 6

Hello world! source > compilateur > exécutable #include <stdio.h> #include <stdlib.h> Fichier source #include <stdio.h> #include <stdlib.h> int main(void) { printf("hello World!\n") system("pause");; return 0 ; } int main(void) { printf("hello world!\n") ; system("pause"); return 0 ; } Fichier exécutable Hello.c Compilateur CompilateurC 00111101 00011100 11001011 01110000 00001111 11001010 11100001 00000100 Hello.exe 7 8

source > compilateur > exécutable Environnements utilisés en tp Fichier source : un algorithme écrit en langage de programmation (en C) c'est un fichier texte (lisible avec n'importe quel éditeur de texte (notepad). Il porte l'extension.c en langage C. Compilateur : logiciel qui "comprend" le fichier source pour en générer un fichier exécutable. Fichier exécutable : fichier qui contient les instructions exécutées par le processeur. (sous Windows un exécutable porte l'extension.exe, sous Linux le nom d'un exécutable peut être quelconque : des bits (x) définissent le droit d'exécution pour chaque utilisateur. (visibles par la commande : ls -l) ) 9 Pour les postes sous Linux, on peut utiliser directement gcc en ligne de commande et l'éditeur gedit (ou mousepad) : $gedit tp1.c & // tapez votre programme et sauvez-le $gcc -Wall -o tp1 tp1.c $./tp1 Ou bien l'environnement open source intégré très simple et très convivial : Geany. 10

Environnements utilisés en tp Faire du langage C chez soi On utilise aussi codeblocks qui fonctionne avec Windows et Linux. Voir : www.codeblocks.org Vous utilisez Windows : Vous avez Windows 8,7, 2000 ou XP : Installez Code ::Blocks et travaillez comme en tp. Téléchargez : http://www.codeblocks.org/downloads/26 Prendre la version avec mingw : codeblocks-13.12mingw-setup.exe (ou plus récente) Vous avez (encore?) Windows Vista : Installez Dev-Cpp en vous aidant du document : http://arlotto.univ-tln.fr/cours_de_c/compilateurs/ 98_2000_XP_vista/Installation_Dev-Cpp-1.0.pdf 11 Si vous avez besoin d'aide, notez bien les messages d'erreurs. 12

Faire du langage C chez soi Faire du langage C chez soi Vous pouvez utilisez linux par exemple avec Xubuntu 14.04 Dans ce cas Code::Blocks ou Geany sont disponibles. Tapez simplement :$ sudo apt get install codeblocks En plus de faire du C, vous voulez redécouvrir l'informatique => Optez pour Linux, ça n'a rien à voir... Par exemple avec Ubuntu : http://www.ubuntu-fr.org/ Pour utiliser gcc, voir aussi : http://arlotto.univ-tln.fr/cours_de_c/compilateurs/ linux/tpc_avec_linux.1.1.pdf Installez Code::Blocks : $sudo apt get install codeblocks Ou installez geany : $ sudo apt get install geany Ensuite dans "Construire->Définir les includes et les options" Vous pouvez démarrer Linux sur un pc équipé de Windows Sans rien changer à sa configuration en utilisant un LiveCD ou une clé USB. Recopier la ligne de commande de Construire vers Compiler : Voir : http://doc.ubuntu-fr.org/live_usb http://doc.ubuntu-fr.org/live_cd Vous avez un Mac??? => Linux s'installe aussi sur les MAC :-) Sinon gcc devrait fonctionner comme sur tous les unix-like. Ajouter également l'option -lm pour pouvoir utiliser la librairie mathématique Il y aussi xcode pour mac. 13 14

Surface d'un disque #include <stdio.h> #include <stdlib.h> Notion de bloc Bloc : portion de programme comprise entre { et } s=π r 2 int main(void) { float rayon, s ; printf("valeur du rayon (m) : ") ; scanf("%f",&rayon) ; s = 3.14159 * rayon * rayon ; printf("la surface vaut %f m2\n",s); system("pause"); return 0 ; } s r {... }...... { Les blocs rouge et vert sont disjoints... {... } Le bloc bleu est inclus dans le bloc vert. } Un bloc d'instruction se comporte comme une instruction unique 15 16

Les variables Les variables (nom) Les variables sont les éléments de bases que manipule le programme. Ce sont des cases mémoires de l'ordinateur. Une variable possède : Un nom : unique qui permet de la désigner dans le programme Un type : qui détermine ces propriétés : valeurs possibles, limites, règles de calculs,... caractères possibles : [a-z], [A-Z], [0-9] et le caractères souligné _ Ne doit pas commencer par un chiffre. Tous les compilateurs acceptent des noms d'au moins 32 caractères (souvent beaucoup plus) Par convention on n'utilise pas de nom entièrement en majuscules pour les variables. Une valeur : La valeur d'une variable se conserve (mémoire) jusqu'à ce qu'elle soit modifiée par une opération d'écriture (affectation) Le nom : unique dans le bloc 17 Choisir un nom évocateur de la fonction de la variable : NbVoituresRouges TempMaxi temp_maxi surface_m2 18

Les variables (type) Les variables (valeur) Le type : int : représente un partie des entiers relatifs. Valeur : c'est la valeur que contient la variable à un moment donnée du déroulement du programme. au minimum [-32768;+32767] (16 bits) souvent beaucoup plus [-231;+231-1] (32bits) attention : ensemble fini. plus grand + 1 = plus petit!! Pour une variable déclarée dans un bloc, la valeur est quelconque à l'initialisation (au début de l'exécution du bloc). float : représente un partie des nombres réels. Au minimum [-10+37;+10+37] Précision limitée à 6 chiffres : tous les nombres ne sont pas représentables => Erreur d'arrondis double : idem à float mais meilleure précision (10 chiffres) 19 La valeur se conserve jusqu'à ce que survienne une écriture. {... int var ; // var est quelconque var = 5; // var vaut 5...... // var vaut toujours 5 var = 8 ; // var vaut 8... 20

Déclarations de variables Déclarations de variables Pour être connue du compilateur, une variable doit avoir préalablement été déclarée. Instruction de déclaration : <type> <nom>[=<valeur>] ; Norme Ansi C89 : les instructions de déclarations doivent toutes être regroupées en début de bloc. (tout de suite après un crochet ouvrant { ) Norme Ansi C99 : les instructions de déclarations peuvent être placées n'importe où dans le bloc. La seule contrainte est que la déclaration doit se trouver avant l'utilisation. (cas également du c++) Exemples : int var ; int var2 = 9 ; float x ; double pression, temperature ; int nombre, i=-78, j ; float z = 42.56, h = -1.23E-6 ; Les compilateurs gcc et mingw répondent à la norme C99. La plupart des compilateurs C pour microcontrôleurs est à la norme C89 (utilisés en S2,S3,S4). Le compilateur Arduino est du c++. 21 22

Affichage sur l'écran Affichage sur l'écran La fonction printf permet d'afficher : La fonction printf permet d'afficher : un texte fixe (placé entre " et ") : la valeur d'une variable en utilisant les formateurs %... printf("bonjour monsieur"); affiche bonjour monsieur cas particuliers : \n va à la ligne \" affiche " printf("\"bonjour\"\n\n\"monsieur"); affiche int i=7; printf("%d",i); affiche 7 %d pour afficher un entier en décimal %x pour afficher un entier en hexadécimal "bonjour" "monsieur %f pour afficher un float ou un double %% pour afficher % il existe de nombreux autres formateurs... 23 24

Affichage sur l'écran Saisie d'une valeur à partir du clavier On peut mêler du texte et des formateurs. Lorsqu'il y a plusieurs formateurs, le premier se rapporte à la première variable, le deuxième à la deuxième variable,... 1/ stoppe l'exécution du programme en attente de l'appui sur la touche Entrée printf("i=%d, temp=%f j=%d \net z vaut %f\n", i, temp, i, z ) ; i=4, temp= -1.430000 j=4 et z vaut 12.320000 int i ; scanf("%d",&i); int i = 4, j = 5 ; float temp = -1.43 ; double z = 12.32 ; affiche On utilise la fonction scanf : 2/ tente* de convertir les caractères tapés avant Entrée selon le format spécifié et place le résultat dans la variable spécifiée. * si la conversion échoue la variable n'est pas modifiée 25 26

Saisie d'une valeur à partir du clavier Les opérateurs arithmétiques Saisie d'une valeur décimale dans un int : %d int i ;... scanf("%d",&i); Addition : + Soustraction : Multiplication : * Division : / lorsque un des opérandes est réel / représente la division réelle lorsque les deux opérandes sont entiers / représente la division euclidienne (quotient) Saisie d'une valeur réelle dans un float : %f float x ;... scanf("%f",&x); Reste dans la division euclidienne : % (entre opérandes entiers uniquement) Saisie d'une valeur réelle dans un double : %lf double z ;... scanf("%lf",&z); dividende diviseur reste 27 quotient 28

Expression L'affectation Une expression est une construction formée à partir d'opérateurs et de variables, constantes ou d'autres expressions. Exemples d'expressions : x+2 2*x+y*z 3*(x+2)/4 5*x 4+7 C'est l'opération qui permet de stocker une valeur dans une variable. Elle est représentée par le caractère =. Forme générale : <variable> = <expression> ; Cette opération se déroule en deux temps : 1 1/ l'expression est évaluée Une expression possède un type et une valeur. puis Lorsque les opérandes ont tous le même type, Le type de l'expression est celui des opérandes. (Lorsque les types diffèrent des règles de conversions s'appliquent) 2/ la valeur de l'expression est écrite dans la variable Déterminer la valeur d'une expression : évaluer l'expression 29 30

L'affectation Affectation entre types différents int i, j ; i=3; L'expression est évaluée, on trouve 3, donc i vaut 3 j= i + 4 ; L'expression est évaluée, on trouve 7, donc j vaut 7 i=i+1; L'expression est évaluée, on trouve 4 (3+1), donc i vaut 4 j = i + 2*j ; L'expression est évaluée, on trouve 18, donc j vaut 18 31 Règle : l'affectation force une conversion dans le type d'arrivé (de gauche). Attention : La conversion n'est pas toujours possible. Quand elle est possible, elle n'a pas toujours le sens mathématique que l'on pourrait souhaiter. 32

Quelques conversions Expressions entre types différents Règle : on applique des conversions non dégradantes tant que c'est possible. De int vers float (ou double) De float vers double : Pas de problème. Pas de perte d'information. Ce sont des conversions non dégradantes. Exemple : int i = 3, j =1, k, m, n, p ; float x = 1, y=1.6, z, t, u, v, w ; De float (ou double) vers int : Il y a suppression de la partie décimale. (et pas "le plus proche") C'est une conversion dégradante. De double vers float : conversion vers la valeur représentable la plus proche. Perte de précision. C'est une conversion dégradante 33 k=j/ i ; z=j/ i ; t=x/i ; m=y; n=y*i; u = (y * 10) / i ; v = y * (10 / i ) ; w = y * (10.0 / i ) ; p = (y * 10) / i ; Trouvez les valeurs de k,m,n,p et z,t,u,v,w. Vérifiez vos résultats avec un programme. 34

Travail à effectuer avant le TD - Installez CodeBlocks en vous aidant du document : - Compilez un premier programme (par exemple celui de la page7), exécutez-le puis essayez de le modifier. (Notez bien les messages d'erreurs en cas de problème) - Essayez de faire les premiers programmes du TP1 : http://arlotto.univ-tln.fr/cours_de_c/tp/ Il est impératif de commencer très rapidement. Si vous ne possédez pas d'ordinateur (ou si vous n'avez pas accès à un ordinateur rapidement) venez me voir, on pourra vous ouvrir une salle. 35