0% ont trouvé ce document utile (0 vote)
488 vues36 pages

Chapitre 1 - Rappel Algorithmique

Le document présente un cours sur l'algorithmique et la programmation en langage C, comprenant des chapitres sur les bases de l'algorithmique, la syntaxe du langage, les types de données, les instructions d'affectation, les expressions et les structures de contrôle. Il aborde également les concepts de variables, d'instructions conditionnelles et de boucles, avec des exemples pratiques pour illustrer chaque notion. Ce cours est destiné aux étudiants en première année d'ingénierie à l'Université de Carthage pour l'année académique 2023-2024.

Transféré par

ahmed.benjehmi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
488 vues36 pages

Chapitre 1 - Rappel Algorithmique

Le document présente un cours sur l'algorithmique et la programmation en langage C, comprenant des chapitres sur les bases de l'algorithmique, la syntaxe du langage, les types de données, les instructions d'affectation, les expressions et les structures de contrôle. Il aborde également les concepts de variables, d'instructions conditionnelles et de boucles, avec des exemples pratiques pour illustrer chaque notion. Ce cours est destiné aux étudiants en première année d'ingénierie à l'Université de Carthage pour l'année académique 2023-2024.

Transféré par

ahmed.benjehmi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

République Tunisienne Université de Carthage

Ministère de l’Enseignement Supérieur et Ecole Nationale d’Ingénieurs de Bizerte


de la Recherche Scientifique

Algorithmique et Programmation

GI1, GM1 et GC1


(Semestre 1)

Safa Hachani & Islam ELLEUCH

[Link]@[Link] / elleuchislam@[Link]

2023-2024
Plan du
cours
Plan du cours

C1 Rappel algorithmique

C2 Syntaxe du langage C

C3 Les chaines de caractères

C4 Les fonctions - procédures

C5 Les tableaux en C

C6 Les enregistrements

C7 Les pointeurs

C8 Les listes doublement chaînées


3
CHAPITRE 1

Rappel Algorithmique
C’est quoi un algorithmique?

▪ Définition
Un algorithme est une suite finie d'opérations élémentaires, à appliquer dans un ordre
déterminé à un ensemble de données. Sa réalisation permet de résoudre un problème

▪ Caractéristiques

➢ Clarté : Pas d’ambiguîtés.

➢ Déterminisme : Avec un ensemble de données, il faut qu'il fournisse le même résultat

quelle que soit la machine.

➢ Fini : il doit se terminer quelle que soit la machine, le temps et la date d’exécution.

➢ Efficacité : l’algorithme doit effectuer le travail demandé avec le minimum de

ressources.

5
C’est quoi un algorithmique?

▪ Squelette d'un algorithme

➢ Exemple :
Algorithme nom_algorithme
Constantes Algorithme PremierAlgoT
… Variables
Types
… ch : chaine de caractère
Variable
Début

Début ch = "intéressant"
Instr 1
Ecrire ("Bonjour tout le monde, ce cours est ", ch)
Instr 2
… Fin
Fin

6
Notion de variable

Les instructions fondamentales

Les ordinateurs ne comprennent que quatre catégories d'instructions :

➢ l'affectation de variables ;

➢ la lecture/écriture ;

➢ les tests (les structures conditionnelles) ;

➢ les boucles (les structures itératives).

Important !!
Un algorithme informatique se ramène toujours à la combinaison de ces
quatre types d'instructions.

7
Notion de variable

▪ Définition
Une variable est une entité qui contient une information.

▪ Caractérisée par :

➢ un nom, on parle d'identifiant (unique)

➢ une valeur : information associée à une variable à un instant donné

➢ un type, qui caractérise l'ensemble des valeurs que peut prendre la variable

8
Déclaration d’une variable

▪ Le type d’une variable caractérise

➢ L'espace des valeurs que peut prendre une variable donnée

➢ L'ensemble des actions que l’on peut effectuer sur une variable

➢ Apparaît dans l’entête de l'algorithme avec la déclaration des variables

▪ Déclaration

Identifiant de la variable : son type

9
Types de données

TD simple ou élémentaire ou primitif :


- Entier, booléen, etc.
→Chaque variable de ce type peut prendre une seule valeur du domaine à la
fois
TD composé ou structuré :
- Tableau, enregistrement, etc.
→Permet le stockage sous un même nom de variable plusieurs valeurs de
même type (exemple: tableau d’entiers) ou non (exemple: type enregistrement)

TD simples TD composés

TD individuels TD collectifs = SD
Exemple: Enregistrements Exemple: liste, tableau, pile, file, arbres …

10
Types de données simple

Les types de variables les plus courants en algorithmique :


▪ Type numérique
➢ Entier
➢ Réel
▪ Type alphanumérique : Chaîne de caractère
➢ Chaîne
▪ Type booléen (ou logique) qui stocke les valeurs logiques VRAI et FAUX
▪ Booléen

▪ Exemple :
Var : PrixHT : réel ; NombreMois : entier ; Fournisseur : Chaine

11
L’instruction d'affectation

Qu'est ce qu'on peut faire avec une variable ?

Réponse
La seule chose qu’on peut faire avec une variable, c’est l'affecter,
c'est-à-dire lui attribuer une valeur

Convention
En pseudo-code, l'instruction d'affectation se note avec le signe <—

12
L’instruction d'affectation

Qu'est ce qu'on peut faire avec une variable ?

Réponse
On peut affecter à une variable le résultat d’une opération
en fonction d’autres variables

Exemple :
T  24.5
U  T+5.5
- La valeur de U est maintenant celle de T+ 5.5. U contient donc la valeur 30
- La valeur de T n’est pas modifiée. Elle vaut toujours 24.5

13
L’instruction d'affectation

Une instruction d'affectation doit respecter trois conditions:


1- à gauche de l’affectation, on doit trouver un nom de variable, et
uniquement cela. Dans le cas contraire, il s’agit certainement d’une
erreur!
2- à droite de l'affectation, on doit trouver une expression;
3- l’expression (située à droite de l’affectation) doit être du même type
que la variable (située à gauche de l’affectation).

A  Expression

Définition d’une expression


Une expression est un ensemble de valeurs, reliées par des opérateurs,
et équivalent à une seule valeur.

14
Expressions et opérateurs

▪ Un opérateur est un symbole d'opération qui permet d'agir sur des


variables pour obtenir un résultat
▪ Une opérande est une entité (variable, constante ou expression) utilisée
par un opérateur.
▪ Une expression
• est une combinaison d’opérateur(s) et d’opérande(s)
• est évaluée durant l'exécution de l'algorithme
• possède une valeur (son interprétation) et un type

Exemple : a+b
- a et b sont les opérandes
- + est l'opérateur
- a+b est appelée une expression

15
Expressions et opérateurs

- Un opérateur peut être Unaire ou Binaire:


• Unaire s’il n’admet qu’une seule opérande, par exemple l'opérateur
NON
• Binaire s’il admet deux opérandes, par exemple l’opérateur +
- Un opérateur est associé à un type de données et ne peut être utilisé
qu'avec des variables, des constantes ou des expressions de ce type.

Exemple:
l’opérateur + ne peut être utilisé qu'avec les types arithmétiques (naturel, entier
et réel) ou le type chaîne de caractères

16
Expressions et opérateurs

▪ Opérateurs Booléens: Non, Et, Ou, Ou Exclusif

C1 C2 C1 ET C2 C1 C2 C1 OU C2
VRAI VRAI VRAI VRAI VRAI VRAI
VRAI FAUX FAUX VRAI FAUX VRAI
FAUX VRAI FAUX FAUX VRAI VRAI
FAUX FAUX FAUX FAUX FAUX FAUX

C1 C2 C1 XOR C2 C1 NON C1
VRAI VRAI FAUX VRAI FAUX
VRAI FAUX VRAI FAUX VRAI
FAUX VRAI VRAI
FAUX FAUX FAUX

17
Expressions et opérateurs

▪ Opérateurs sur les numériques

➢ On retrouve tout naturellement : +, -, *, /, *

➢ Pour les entiers : div et mod, permettent respectivement de calculer

une division entière et le reste de cette division


➢ L'opérateur d’égalité permet de savoir si les deux opérandes sont
égales. Le résultat d'une expression contenant cet opérateur est un
booléen.
➢ On a aussi l'opérateur d’inégalité : <>
➢ Et pour les types possédant un ordre les opérateurs de comparaison
<, ≤, >, ≥

18
Expressions et opérateurs

▪ Opérateurs sur les numériques

➢ Pour les opérateurs arithmétique, l’ordre de priorité est le suivant (du

plusprioritaire au moins prioritaire) :

^ : (élévation à la puissance),

* , / : (multiplication, division)

% : (modulo)

+ , - : (addition, soustraction)

Exemple: 2 + 3 * 7 vaut 23

➢ En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer

les opérations à effectuer en priorité

Exemple: (2+3) * 7 vaut 35 19


Expressions et opérateurs

▪ Opérateurs alphanumérique

➢ & : la concaténation

Cet opérateur permet de concaténer deux chaînes de caractères

Exemple :
A  " Bonjour "
B  " tout le monde "
C  A & B, C vaut " Bonjour tout le monde "

20
Lecture et écriture

Instruction de lecture

Une instruction de lecture permet à l'utilisateur de rentrer des


valeurs au clavier pour qu’elles soient utilisées par le programme

Exemple :
pour que l'utilisateur entre une nouvelle valeur d’une variable A:
Lire (A)

Remarque
Dès que le programme rencontre une instruction Lire, l’exécution
s'interrompe et attend la frappe d'une valeur au clavier.

21
Lecture et écriture

Instruction d’écriture

Une instruction d’écriture permet au programme de communiquer


des valeurs à l’utilisateur en les affichant à l’écran.

Exemple :
pour que le programme affiche à l’utilisateur la valeur d’une variable B:
Ecrire (" La valeur de B est :" , B)

22
Exercices d’application

Exercice 1 :
Ecrire un algorithme qui permet de lire les valeurs de deux variables
entiers puis affiche leur somme et leur produit.

Algorithme somme produit


Variables
a, b: entier
Début
Ecrire ("donner un entier a:")
lire(a)
Ecrire ("donner un entier b:")
lire(b)
Ecrire ("la somme =",a+b, "et le produit =",a*b)
Fin

23
Tests: instructions conditionnelles

▪ Définition
La résolution de certains problèmes nécessite la mise en place d'un test
pour savoir si l’on doit effectuer une tâche.
Si la condition est remplie alors on effectue la tâche, sinon on
effectue(éventuellement) une autre tâche. Dans un algorithme, on code
la structure du « Si.. Alors.. Sinon »
Exemple :
Si (salaire ≤ 5000) alors
Si condition impot  0.01
Alors Tâche 1 Tâche 2 … Sinon
Sinon Tâche 1b1s Tâche 2bis … Si (salaire > 5000) ET (salaire ≤ 15000) alors
Finsi impot  0.03
Sinon
impot  0.05
FinSi
FinSi
Remarques
1. Il est important (pas obligatoire) de respecter les espaces laissés au début de
chaque ligne, car ils permettent une meilleure lisibilité de l'algorithme.
2. Le « Sinon » n'est pas obligatoire. S'il n'est pas présent, aucune tâche ne sera
effectué si la condition n'est pas remplie.

24
Application: instructions conditionnelles

Exercice 1 :

Ecrire un algorithme qui permet de résoudre dans R l’équation a X +b = 0,


tels que a et b deux réels saisis au clavier.

Solution:
/** En algorithmique*/
Algorithme Equation
Variables
a, b : réel
Début
Ecrire ("donner la valeur de a:")
Lire (a)
Ecrire ("donner la valeur de b:")
Lire (b)
Si (a ≠ 0) alors
Ecrire (" la solution est ", (-b/a))
FinSi
Fin

25
Test : Structure de choix

Cette forme est utilisée lorsque l’on a plusieurs conditions qui expriment une
égalité stricte (pas de notion d’intervalles). Dans ce cas, on a recours à une
structure qui traite les conditions une par une.

Syntaxe : Exemple :
Selon <sélecteur> faire Selon (mois) Faire
<vall>: liste 1 d'instructions 1 : Ecrire ("Janvier")
<val2>: liste 2 d'instructions 2 : Ecrire ("Février")
<val3>: liste 3 d'instructions ...
Sinon Autre liste d'instructions 12 : Ecrire("Décembre")
FinSelon Sinon
Ecrire ("numéro de mois erroné. ")
FinSelon

Remarques
On aurait pu faire cet exemple avec la forme imbriquée mais le code aurait été
plus long et surtout plus compliqué, on se serait perdu dans les imbrications.

26
Application : Structure de choix

Exercice :

Ecrire un algorithme permettant de saisir le numéro de mois et d’afficher le


nombre de jours correspondant.

Solution:
/** En algorithmique*/
Algorithme NombreJours
Variables
mois : entier
Début
Ecrire ("Entrer le numéro du mois : ")
Lire (mois)
Selon (mois) Faire
1, 3, 5, 7, 8, 10, 12 : Ecrire("31 jours")
2 : Ecrire (”28 ou 29 jours”)
4, 6, 9, 11 : Ecrire ("30 jours")
Sinon
Ecrire ("numéro de mois erroné")
FinSelon
Fin
27
Instructions itératives: les boucles Tant que

TantQue (condition)
instructions
FinTantque

Exemple :
somme  0
Tantque(somme<100) faire
Ecrire ("Entrer un entier positif")
Lire (n)
somme  somme + n
Fin Tantque

▪ La condition (dite condition de contrôle de la boucle) est évaluée avant chaque


itération

▪ si la condition est vraie, on exécute instructions (corps de la boucle), puis, on


retourne tester la condition. Si elle est encore vraie, on répète l’exécution, …

▪ si la condition est fausse, on sort de la boucle et on exécute l'instruction qui est


après FinTantQue
28
Instructions itératives: les boucles Tant que

Remarque :

▪ Le nombre d'itérations dans une boucle TantQue n'est pas connu au moment
d'entrée dans la boucle. Il dépend de l'évolution de la valeur de condition.

▪ Une des instructions du corps de la boucle doit absolument changer la valeur


de condition de vrai à faux (après un certain nombre d'itérations), sinon le
programme tourne indéfiniment.

→ Attention aux boucles infinies


Exemple de boucle infinie :
p 2
TantQue (i>0)
i  i+1 (attention aux erreurs de frappe : + au lieu de -)
FinTantQue

29
Instructions itératives: les boucles Pour

Pour compteur allant de initiale à finale par pas valeur du pas


instructions
FinPour

Exemple :
/*En algorithmique*/
Pour i de 1 à 5 faire
Ecrire (1*10)
FinPour

30
Instructions itératives: les boucles Pour

▪ Remarque : le nombre d'itérations dans une boucle Pour est connu avant le
début de la boucle.

▪ Compteur est une variable de type entier (ou caractère). Elle doit être
déclarée.

▪ Pas est un entier qui peut être positif ou négatif. Pas peut ne pas être
mentionné, car par défaut sa valeur est égal à 1. Dans ce cas, le nombre
d’itérations est Égal à finale - initiale+ 1

▪ Initiale et finale peuvent être des valeurs, des variables définies avant le début
de la boucle ou des expressions de même type que compteur.

31
Instructions itératives: les boucles Répéter… jusqu’à

Répéter
instructions
Jusqu’à condition

Exemple :
/*En algorithmique*/
Répéter
Ecrire ("Entrer un entier positif")
Lire (n)
Jusqu’à (n>0)

▪ Condition est évaluée après chaque itération


▪ Les instructions entre Répéter et jusqu'a sont exécutées au moins une fois et
leur exécution est répétée jusqu’à ce que condition soit vrai (tant qu'elle est
fausse, on répète).

32
Instructions itératives: les boucles Répéter… jusqu’à

▪ Cette structure peut être utilisée avec un compteur comme dans la boucle pour.
Dans ce cas, il faut faire attention au nombre d'itérations et faire les bons choix
concernant la valeur d’initialisation, la condition d'arrêt(choisir entre supérieur,
supérieur ou égale, ou égale) et la position de l'incrémentation du compteur.

Exemple : On reprend l’exemple précédent

/*En algorithmique*/
i  1
Répéter
Ecrire (1*10)
i  i+l
Jusqu'à (i >5)

Remarque :
▪ Si l’on met "Jusqu'à (i=5)", on aura 4 itérations car le cas où i =5 n'est pas
inclus, et l'affichage s’arrêtera à 40.

33
Application

Exercice :

Ecrire un programme qui lit un entier positif n puis calcule et affiche sa factorielle
en utilisant une boucle «Tant que.… faire», sachant que n!=1x2x3x4,...x(n-1) * n

Solution:
/*En algorithmique*/
Algorithme Factoriel1
Variables
n, f, i : Entier
Début
Répéter
Ecrire ("Entrer un entier positif : ")
Lire(n) Les boucles Tant que
Jusqu’à (n>=0)
f  1
i  2
TantQue (i <= n) Faire
f  f*1
i  i +1
FinTQ
Ecrire (n,"! = ", f)
Fin
34
Application : les boucles Pour

Exercice :

Ecrire un programme qui lit un entier n puis calcule et affiche sa factorielle


n!=1x2x3x4,...x(n-1) * n en utilisant une boucle Pour.

Solution:
/*En algorithmique*/
Algorithme Factoriel2
Variables
n, f, i : Entier
Début Les boucles Pour
Ecrire ("Entrer un entier positif : ")
Lire(n)
f  1
Pour i de 2 à n Faire
f  f * i
FinPour
Ecrire (n,"! = ", f)
Fin

35
Application : les boucles Répéter… jusqu’a…

Exercice :

Ecrire un algorithme (et le programme C) qui lit un entier n puis calcule et affiche
sa factorielle en utilisant la boucle répéter… jusqu’à sachant que
n!=1x2x3x4,.x(n-1) * n
Solution:
/*En algorithmique*/
Algorithme Factoriel3
Variables
n, f, i : Entier
Début
Répéter
Ecrire ("Entrer un entier positif : ")
Lire(n)
Jusqu’à (n>=0) Les boucles Répéter… jusqu’a…
f  1
i  1
Répéter
f  f * i
i  i + 1
Jusqu’à (i > n)
Ecrire (n,"! = ", f)
Fin
36

Vous aimerez peut-être aussi