C programming lecture slides, Slides of C programming

contains all year knowledge of c programming basics.

Typology: Slides

2022/2023

Uploaded on 11/30/2022

roumaissae-zarhoune
roumaissae-zarhoune 🇲🇦

1 document

1 / 110

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
1
Université Ibn Zohr - Faculté des Sciences
SMI3
Programmation I.
Language C, concepts de base
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Partial preview of the text

Download C programming lecture slides and more Slides C programming in PDF only on Docsity!

Université Ibn Zohr - Faculté des Sciences

SMI

Programmation I.

Language C, concepts de base

Commencer par l’exemple!

Cet exemple affiche à son exécution le message Hello Word

/* le classique programme « Hello World » */

#include <stdio.h>

main() { printf ("Hello World \n" ) ;

}

Une variable possède:

  • Un nom ;
  • Un type ;
  • Une valeur.

Le nom d’une variable est fixe ; c’est ce qui caractérise la variable. De même, le type d’une variable est fixe. Mais sa valeur peut être modifiée.

Dans le nom des variables, on distingue majuscules et minuscules ; donc toto et Toto sont deux variables différentes. Un nom de variable commence toujours par une lettre. Les autres caractères peuvent être des lettres, des chiffres ou le tiret de soulignement : _. Des noms de variables trop courts manquent souvent de sens, et rendre le programme peu compréhensible. Des noms de variables trop longs rendent le programme illisible.

Pour être utilisée, une variable doit être déclarée. Pour déclarer une variable, il faut donner son type, son nom, puis, éventuellement une valeur initiale. On appelle type de base les types déjà définis dans le langage (on verra par la suite que l’on peut aussi définir ses propres types). Les types de bases sont :

char : les caractères (un seul symbole) ; int : les entiers ; short : encore des entiers ; long : toujours des entiers ; float : les décimaux; double : encore des décimaux ; long double : et toujours des décimaux.

Les variables peuvent être déclarées de deux façons: de manière globale ou locale. Dans le premier cas elles seront déclarées au début du fichier, dans le deuxième cas, juste après l'accolade ouvrante suivant un en-tête de fonction.

Pour modifier la valeur d'une variable v , il faut utiliser une instruction d’affectation. Ainsi, pour donner à la variable v la valeur 1, il faut taper v = 1;. Pour utiliser la valeur d'une variable, il suffit d'utiliser le nom de la variable. Ainsi, la séquence d’instruction suivante affecte la valeur 1 à v 1 et à v 2 : v 1 = 1; v 1 = v 2 ;

Note : Une affectation multiple est possible, l'instruction a = b= c = d recopie dans a, b et c la valeur de d.

L'affichage de la valeur d’une variable se fait grâce à la fonction printf. Exemple :

#include<stdio.h> main( ) { float approx_pi = 22./7. ; printf("le nombre %f est une valeur approchée de π \n", approx_pi) ; }

Le caractère % signifie que la valeur d’une variable, parmi celles qui suivent (à l'intérieur des parenthèses, séparées par des virgules) doit être affichée à cet endroit. La lettre ‘d’ qui suit le symbole % indique que c'est une variable de type entier. On peut, dans une même instruction printf afficher la valeur de plusieurs variables. Auquel cas les variables sont affichées dans l’ordre dans lequel elles sont citées.

Exemple: #include<stdio.h> main( ) { int a, b, r; b = 22 ; a = 7 ; r = b/a ; printf("la division euclidienne %d / %d a pour résultat %d. \n" ,a, b, r); } Donne le résultat : la division euclidienne 22 / 7 a pour résultat 3.

Note : En fait, printf n'affiche pas des variables, mais des expressions, dont les variables ne sont qu'une forme particulière.

En Algorithmique En C

Algorithme Affectation

Var

A, B : Entiers ;

C : Réel ;

Début

Ecrire(" Entrer un entier") ;

Lire(A) ;

B 2*A ;

Ecrire(" La valeur de A est :", A , " et la

valeur de B est :", B) ;

C (A+B)/2 ;

Ecrire(" La valeur de C est :", C) ;

Fin

#include<stdio.h> main() { int A, B ; float C ;

printf(" Entrer un entier \n") ; scanf(" %d ", & A) ; B = 2*A ; printf(‘" La valeur de A est : %d et la valeur de B est : %d \n", A, B) ;

C=(A+B)/2 ;

printf(" La valeur de C est : %f ", C) ; }

Exemple:

#include<stdio.h> main( ) { int i; printf("entrez un entier sous forme hexadécimale i = " ); scanf("%x",&i); printf("i = %d \n",i); }

Si on entre au clavier la valeur 1a, le programme affiche i = 26.

Note : Il existe des formes abrégées des affectations utilisant certains de ces symboles. Ainsi, l’affectation:

x = x - 4; Peut s’écrire plus simplement: x- = 4;

Une forme encore plus simple existe lorsqu’une variable est incrémentée ou décrémentée: plutôt que d’écrire

x+ = 1; /* raccourci de x=x+1*/

On peut écrire, au choix, x++ ou ++x

Note :

une affectation est aussi une expression, qui a pour valeur le résultat de l’affectation. C’est là que se situe la différence entre x++ et ++x. Dans le premier cas, l’incrémentation est faite après l’évaluation de x , alors qu’elle est faite avant dans le deuxième cas. Ainsi, si x vaut 2 , l’instruction a = 4+ x++ donne à a la valeur 6 , et à x la valeur 3 , tandis que l’instruction a = 4+ ++x , si elle donne toujours à x la valeur 3 , donne par contre à a la valeur 7.

La structure alternative en langage algorithmique

si () alors <bloc d'instructions 1> sinon <bloc d'instructions 2> fsi

  • Si l' a la valeur logique vrai, alors le <bloc d'instructions 1> est exécuté
  • Si l' a la valeur logique faux, alors le <bloc d'instructions 2> est exécuté

La structure alternative en C

if ( ) <bloc d'instructions 1> else <bloc d'instructions 2>

  • Si l' fournit une valeur différente de zéro, alors le <bloc d'instructions 1> est exécuté
  • Si l' fournit la valeur zéro, alors le <bloc d'instructions 2> est exécuté

La partie peut désigner :

  • une variable d'un type numérique,
  • une expression fournissant un résultat numérique.

La partie <bloc d'instructions> peut désigner :

  • un (vrai) bloc d'instructions compris entre accolades ,
  • une seule instruction terminée par un point-virgule.

En combinant plusieurs structures if - else en une expression nous obtenons une structure qui est très courante pour prendre des décisions entre plusieurs alternatives:

if ( ) else if () else if () … else if () else <blocN+1>

Les expressions ... sont évaluées du haut vers le bas jusqu'à ce que l'une d'elles soit différente de zéro. Le bloc d'instructions y lié est alors exécuté et le traitement de la commande est terminé.

#include <stdio.h> main() { int A,B; printf("Entrez deux nombres entiers :"); scanf("%i %i", &A, &B);

if (A > B) printf("%i est plus grand que %i \n", A, B);

else if (A < B) printf("%i est plus petit que %i \n", A, B);

else printf("%i est égal à %i \n", A, B);

return 0; }

Exemple :