• Aucun résultat trouvé

PLAN DU COURS

N/A
N/A
Protected

Academic year: 2022

Partager "PLAN DU COURS"

Copied!
8
0
0
En savoir plus ( Page)

Texte intégral

(1)

PLAN DU COURS

Introduction au langage C

Notions de compilation

Variables, types, constantes,

• Tableaux, opérateurs

• Entrées sorties de base

Structures de contrôle

Algorithmes de recherche

Algorithmes de Tri –Insertion-Fusion

Les pointeurs

Procédures et fonctions

les types composés

Allocation dynamique

Listes Chaînées

85 MAP - UNS

ENTRÉE – SORTIE

FONCTION PRINTF

• Fonction de la bibliothèque stdio.h.

• Affichage d'un texte:

/* pas de retour à la ligne du curseur après l'affichage, */

printf("BONJOUR");

/* affichage du texte, puis retour à la ligne du curseur. */

printf("BONJOUR\n");

(2)

ENTRÉE SORTIE – SORTIE

FONCTION PRINTF

• Affichage multiple .

printf(« %format1 %format2 ....%formatn",var1,var2,varn);

• Exemple:

#include <stdio.h>

void main() {

char leC='A';

int leA= 10;

printf("leA = %d leC = %c \n",leA,leC);

}

87 MAP - UNS

ENTRÉE SORTIE – SORTIE

FONCTIONS PUTCHAR ET PUTS

• putchar : affichage d’un caractère :

char leCar;

putchar(leCar); équivalent à printf("%c\n", leCar);

• puts : affichage d’un texte

puts("bonjour"); est équivalent à printf("bonjour\n");

(3)

ENTRÉE SORTIE – ENTRÉE

FONCTION SCANF

• Scanf: bibliothèque stdio.h

• saisie clavier de n'importe quel type de variable.

• les variables à saisir sont formatées

• le nom de la variable est précédé du symbole &

• La saisie (avec echo) s'arrête avec "RETURN" (c'est à dire LF),

• Tous les éléments saisis après un espace (espace, tabulation) sont ignorés. (gets)

• Exemples

char leCar; int leEntier; float leReel;

scanf("%c",&leCar); /* saisie d'un caractère */

scanf("%d",&leEntier); /* saisie d'un nombre entier en décimal */

scanf("%f",&leReel); /* saisie d'un nombre réel */

89 MAP - UNS

ENTRÉE SORTIE – ENTRÉE

FONCTIONS GETCH, GETCHAR

• getch: bibliothèque conio.h

• Saisie d’un cractère au clavier (sans écho à l’écran)

• Exemple: char leAlpha;

printf("entrer un caractere (attention pas de return) ");

leAlpha = getch();

printf("\nVOICI CE CARACTERE: %c",leAlpha);

(4)

ENTRÉES SORTIES DE BASE

FLUX

• Notion de flux d’entrée

• Lorsque l'on saisit au clavier une suite de caractères terminés par "RETURN" ces caractères sont rangés dans un tampon (ou buffer) de type FIFO (First In/First Out), le dernier caractère rangé dans le tampon est LF (code ASCII 0x0A).

• Cette suite de caractères est appelée flux d'entrée.

• La taille du tampon dépend de la machine et du compilateur utilisés.

91 MAP - UNS

ENTRÉES SORTIES DE BASE

FLUX

• Comportement de la fonction scanf

• Si le tampon est vide, tout se passe comme précédemment décrit.

• si le tampon n'est pas vide :

• teste le premier élément, s’il y a correspondance au format attendu, le tampon perd cet élément et la variable en prend la valeur.

• Tout caractère ou nombre saisi au clavier et non pris en compte par la fonction scanf est rangé dans le tampon.

• Remarque : la fonction getchar () utilise le flux d’entrée exactement comme scanf

(5)

ENTRÉES SORTIES DE BASE FLUX

Exemple 1

#include <stdio.h>

void main() {

char leCar1,leCar2;

printf("entrer un caractere: ");

scanf("%c",&leCar1);

scanf("%c",&leCar2);

}

Execution du programme

93 MAP - UNS

ENTRÉES SORTIES DE BASE

LA FONCTION FFLUSH

• la fonction fflush(stdin)

permet de vider le tampon d'entrée. En l'invoquant après un appel à scanf, on se débarrasse des problèmes de flux d'entrée.

(6)

PLAN DU COURS

Introduction au langage C

Notions de compilation

Variables, types, constantes,

• Tableaux, opérateurs

Entrées sorties de base

• Structures de contrôle

Algorithmes de recherche

Algorithmes de Tri –Insertion-Fusion

Les pointeurs

Procédures et fonctions

les types composés

Allocation dynamique

Listes Chaînées

95 MAP - UNS

STRUCTURES DE CONTRÔLE

SCHÉMA ALTERNATIF

if(expression) { ...…..;

...;

...;

}

if(expression)

{ ...…; /* bloc 1 d'instructions */ } else

{ ...; /* bloc 2 d'instructions */ }

• Expressions composées : connecteurs logiques NON (!), ET(&&), OU(||) if ((expression1) && (expression2))

" si l'expression1 ET l'expression2 sont différentes de 0 (VRAI) "

if ((expression1) || (expression2))

" si l'expression1 OU l'expression2 est vraie"

if (!(expression1))

" si l'expression1 est fausse "

• Toutes les combinaisons sont possibles entre ces expressions.

(7)

STRUCTURES DE CONTRÔLE

SCHÉMA ALTERNATIF

• Autre structure alternative

switch(variable) /* de type char ou int */

{ case valeur1: ...;

...;

break;

case valeur2:...;

...;

break;

etc ...

default: ...;

aucune des valeurs précédentes

exécuter ce bloc d'instructions, pas de "break" ici.

le bloc "default" n'est pas obligatoire...;

}

97 MAP - UNS

STRUCTURES DE CONTRÔLE

SCHÉMA ALTERNATIF

Exemple : Cette instruction est commode pour fabriquer des "menus":

char leChoix;

printf("Liste par groupe taper 1\n");

printf("Liste alphabetique taper 2\n");

printf("Pour sortir taper S\n");

printf("\nVotre choix: ");

leChoix = getchar();

switch(leChoix) {

(8)

STRUCTURES DE CONTRÔLE

SCHÉMA RÉPÉTITIF

Exercice

• Ecrire un programme permettant de saisir un nombre entier positif en effectuant le contrôle sur la saisie.

int leNb;

………

printf( "Tapez un nombre positif" );

scanf(« %d », &leNb);

if(leNb <0)

{ printf("Saisie erronnée. Recommencez\n »);

scanf(« %d », &leNb);

}

………….

Correct à condition que

l’utilisateur ne se trompe qu’une seule fois……..

99 MAP - UNS

STRUCTURES DE CONTRÔLE

SCHÉMA RÉPÉTITIF

• Schéma répétitif do … while

• Schéma répétitif while { ….}

• Schéma for (--;--;--) {…..}

for(i = 0 ; i<10 ; i++) {

...;

...;

}

do {

/* bloc d'instructions */

...;

...;

} while(expression);

while (expression) {

/* bloc d'instructions

*/

...;

...;

}

for(initialisation; condition de continuité ; modification) {

../* bloc d'instructions */

...;

...;

Références

Documents relatifs

Ceci a permit de coder sur un octet les lettres accentuées (qui n’existent pas en anglais) et a donné naissance à l’encodage Latin-1 (ou ISO 8859-1 ou Europe Occidentale, 1986) qui

– considérée comme un tableau de caractères qui peut être manipulé d'une manière globale (sans le faire caractère par caractère)... Chaînes constantes

[r]

[r]

messages which were collected to produce this data. We have, however, ignored this effect since these measurement messages represent less than 0.3% of the total traffic.) The

To this end, the syntax of messages, up to and including the current specification [RFC5322], has required the use of the mailbox address form in the

Per this document, IANA has updated the registration policies for the &#34;OTN Signal Type&#34; subregistry to be &#34;Standards Action&#34; for Standards Track documents

o En noir, les nombres divisibles par 10 (montagne impossible à escalader) o En bleu foncé, les nombres divisibles par 9 (torrent impossible à franchir) o En orange, les

[r]

(Vous pourrez supposer, dans un premier temps, que la chaîne a été transformée en une chaîne constituée des majuscules non accentuées des caractères de la chaîne initiale et que

Ecrire la fonction [d]=Mot(n,c) retournant le n ième mot de la chaîne c, ou la chaîne vide si c contient moins de n mots4. On sait que le numéro INSEE d’identification

Certains caractères complexes sont à la fois héréditaires et environnementaux : la corpulence dépend de nos habitudes de vies mais aussi des prédispositions qui nous ont

chaine.count(texte) Renvoie le nombre de fois où texte est présent dans chaine chaine.replace(texte1,texte2) Remplace par texte2 chaque fois qu’il trouve texte1 dans chaine

برﺟﻣﻟا فورظو ا ﺔﻣوظﻧﻣﻟﺎﺑ ﺎﻣﻬﻘﻠﻌﺗو دﻘﻟ .ﺔﯾﻣﺗﺣﻟا لﺣﻣ لﺣﯾ لﺎﻣﺗﺣﻻا لﻌﺟﺗﻟ مﻛﻟا ﺔﯾرظﻧ ﻲﺗﺄﺗﺳ ﺎﻣﻛ ،ظﺣﻼﻣﻠﻟ ﺔﯾﻌﺟرﻣﻟ ﺔﺑرﺟﺗﻟا ﺎﻬﺑ مّظﻧٌﯾ نﺎﻛ ﻲﺗﻟا

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

On étudie les états d’une population de 10 millions d’habitants : quel nombre d’individus peut-on prévoir dans chaque état, après une longue période ?... Graphes

12- Utiliser l’Explorateur Windows pour créer un dossier dans « Mes Documents » et le nommer et créer dedans deux sous dossiers avec comme noms « Examens » et

Il apparait dans la notice &#34;autres composants&#34;, de quel type de composants s'agit-il?. À quoi

Avec le même prénom que précédemment, faire afficher une chaîne allant du deuxième caractère au cinquième caractère.. Les rang de découpage ont des valeurs par défaut : un

Cette fonction fournit une conversion d'un nombre écrit sous forme hexadécimale IEEE (chaîne de caractères) en un flottant double précision.. •

Certains langages de programmation définissent un type pour les représenter, comme par exemple le langage Java avec le type String , mais d’autres langages, comme le langage C,

[r]

Il est par contre possible de réaliser des conversions : on retiendra que la fonction str permet de convertir un objet en chaine de caractères et les fonctions float et int