Cours informatique concepts algorithmes et variables fondame

Cours informatique concepts algorithmes et variables fondame

Télécharger PDF

Plan du cours

Concepts de base des algorithmes

  1. Les structures conditionnelles
  2. Les structures itératives
  3. Les procédures et les fonctions
  4. Les tableaux
  5. Les chaînes de caractères
  6. Les enregistrements
  7. Les fichiers

Chapitre 1 : Introduction aux Algorithmes et aux Bases de la Programmation

Qu'est-ce que l'Informatique ?

L'informatique (fusion des termes "Information" et "Automatique") est la science du traitement automatique de l'information par une machine. Elle permet de manipuler les informations ou les données sous forme binaire.

Un ordinateur est une machine qui saisit (via des périphériques d'entrée), traite (via des programmes) et restitue (via des périphériques de sortie) les informations.

Définition d'un algorithme

Un algorithme est une procédure de calcul bien définie qui prend en entrée une valeur (ou un ensemble de valeurs) et produit en sortie une valeur (ou un ensemble de valeurs). C'est une séquence d'étapes de calcul qui transforme l'entrée.

Plus simplement, un algorithme est une suite d'instructions ordonnées qui, exécutées correctement, conduit à un résultat donné.

Caractéristiques d'un algorithme

  • Clair : Il ne doit y avoir aucune ambiguïté ; il doit être compréhensible par tout exécutant.
  • Déterministe : Avec un même ensemble de données en entrée, l'algorithme doit toujours fournir le même résultat, quelle que soit la date ou l'heure d'exécution.
  • Fini : L'algorithme doit se terminer après un nombre fini d'étapes, quel que soit le jeu de données d'entrée valide.
  • Efficace : L'algorithme doit effectuer le travail demandé avec un minimum de ressources (temps, mémoire).

Structure d'un algorithme

Un algorithme est généralement structuré en plusieurs parties :

  • Titre de l'algorithme
  • Déclarations (variables, constantes, etc.)
  • Début (bloc d'instructions)
  • Fin (terminaison du bloc d'instructions)

Exemple : Algorithme de la somme de deux entiers

Algorithme SommeDeuxNombres
Var
    a, b, c : Entier
Début
    // Lire les valeurs de a et b
    c ← a + b
    // Afficher la valeur de c
Fin

La notion de variable

Dans un programme informatique, il est nécessaire de stocker provisoirement des valeurs : les données à traiter et les résultats intermédiaires ou finaux obtenus par le programme.

Pour stocker une valeur au cours d'un programme, on utilise une variable. Dans la mémoire de l'ordinateur, une variable correspond physiquement à un emplacement de mémoire, repéré par une adresse binaire.

Analogie du verre :

  • Un verre est un objet contenant un liquide.
  • Une variable est une zone mémoire contenant une valeur.
Contenant Contenu
Variable Valeur
Verre Eau

Déclaration d'une variable

Une variable est une entité qui contient une information et qui est caractérisée par :

  • Un nom (ou identifiant) : il est unique et permet de désigner la variable.
  • Une valeur : l'information associée à la variable à un instant donné. Cette valeur peut changer au cours de l'exécution du programme.
  • Un type : il caractérise l'ensemble des valeurs que la variable peut prendre.

Exemples de déclarations (pseudo-code) :

Nom : Chaîne de caractères
Age : Entier
Distance : Réel
EstActif : Booléen

Le type d'une variable

Le type d'une variable est une caractéristique fondamentale qui est fixée une seule fois lors de sa déclaration et reste la même tout au long de l'exécution de l'algorithme. Le contenu de la variable doit impérativement être du même type que la variable elle-même (on ne peut pas, par exemple, affecter un nombre réel à une variable de type entier).

Le type d'une variable caractérise :

  • L'espace des valeurs que peut prendre la donnée.
  • L'ensemble des actions (opérations) que l'on peut effectuer sur cette variable.

Les types apparaissent généralement dans l'entête de l'algorithme, dans une section dédiée aux déclarations de variables.

Les types de données simples

Les types de variables les plus courants en algorithmique sont :

  • Type numérique :
    • Entier (Entier) : Ensemble des entiers relatifs (Z). Ex: -5, 0, 100.
    • Réel (Réel) : Ensemble des nombres réels (R). Ex: -3.14, 0.0, 2.718.
  • Type alphanumérique :
    • Caractère (Caractère) : Représente un seul caractère, toujours noté entre apostrophes. Ex: 'A', 'z', '7'.
    • Chaîne de caractères (Chaîne) : Représente une séquence de caractères, toujours notée entre guillemets. Ex: "Bonjour", "Algorithme 1".
  • Type booléen (Booléen) : Stocke uniquement les valeurs logiques VRAI ou FAUX.

Expressions et Opérateurs

Une expression est une combinaison d'opérateur(s) et d'opérande(s) qui :

  • Est évaluée durant l'exécution de l'algorithme.
  • Possède une valeur (son interprétation) et un type (le type du résultat).

Un opérateur est un symbole d'opération qui agit sur une ou plusieurs opérandes pour produire un résultat.

Une opérande est une entité (variable, constante, ou même une autre expression) utilisée par un opérateur.

Exemple : Dans l'expression a + b

  • a et b sont les opérandes.
  • + est l'opérateur.

Un opérateur est associé à un type de donnée et ne peut être utilisé qu'avec des variables, des constantes ou des expressions de types compatibles. Par exemple, l'opérateur + est généralement utilisé avec des types arithmétiques (entier, réel) ou, dans certains langages, avec des chaînes de caractères (pour la concaténation).

Un opérateur peut être :

  • Unaire : s'il n'admet qu'une seule opérande (ex: l'opérateur de négation -x ou l'opérateur booléen NON).
  • Binaire : s'il admet deux opérandes (ex: a + b, x ET y).

Opérateurs Booléens

Ces opérateurs sont utilisés avec des opérandes de type booléen et retournent une valeur booléenne (VRAI ou FAUX).

  • NON (Négation logique)
  • ET (Conjonction logique)
  • OU (Disjonction logique)
  • OU EXCLUSIF (Disjonction exclusive logique)

Opérateurs Numériques

Ces opérateurs sont utilisés avec des opérandes numériques (entiers ou réels).

Opérateurs arithmétiques :

  • + : Addition
  • - : Soustraction
  • * : Multiplication
  • / : Division (peut donner un réel)
  • Pour les entiers :
    • DIV : Division entière (retourne la partie entière du quotient)
    • MOD : Modulo (retourne le reste de la division entière)

Opérateurs de comparaison :

Ces opérateurs comparent deux opérandes et le résultat est toujours un booléen (VRAI ou FAUX).

  • = : Égalité (vérifie si les opérandes sont égales)
  • ou <> : Inégalité (vérifie si les opérandes sont différentes)
  • < : Inférieur à
  • ou <= : Inférieur ou égal à
  • > : Supérieur à
  • ou >= : Supérieur ou égal à

Ordre de priorité des opérateurs numériques

Pour les opérateurs arithmétiques, l'ordre de priorité (du plus prioritaire au moins prioritaire) est le suivant :

  1. () : Parenthèses (elles forcent l'ordre d'évaluation)
  2. ^ : Élévation à la puissance (non standardisé en pseudo-code mais commun dans certains langages)
  3. *, /, DIV, MOD : Multiplication, Division, Division entière, Modulo
  4. +, - : Addition, Soustraction

Exemples :

  • 2 + 3 * 7 vaut 23 (car 3 * 7 est calculé en premier).
  • (2 + 3) * 7 vaut 35 (les parenthèses forcent l'addition en premier).

Opérateur Alphanumérique (Concaténation)

L'opérateur de concaténation permet de joindre deux ou plusieurs chaînes de caractères pour en former une seule.

  • & : Concaténation (ou parfois + dans certains langages, attention à l'ambiguïté avec l'addition numérique).

L'Instruction d'Affectation

Affecter une variable, c'est lui attribuer une valeur. Cette valeur peut être une constante, le contenu d'une autre variable ou le résultat d'une expression.

L'instruction d'affectation se note généralement avec le signe (flèche gauche) ou := en pseudo-code.

Important : L'expression située à droite de l'affectation doit être du même type que la variable située à gauche de l'affectation pour éviter les erreurs de type (sauf si des conversions implicites ou explicites sont possibles).

Règles pour une instruction d'affectation valide :

  • À gauche de l'affectation, on doit trouver uniquement un nom de variable.
  • À droite de l'affectation, on doit trouver une expression (constante, variable, ou un calcul).

Exemples :

a ← 24.5
b ← b + 5.5 // La valeur actuelle de b est augmentée de 5.5, puis le résultat est affecté à b.
nom ← "Alice"

La Lecture et l'Écriture (Entrées/Sorties)

Ces instructions permettent à un algorithme d'interagir avec l'utilisateur ou des sources externes.

L'instruction de lecture

Une instruction de lecture (ou d'entrée) permet à l'utilisateur de saisir des valeurs au clavier (ou depuis un fichier) pour qu'elles soient utilisées par le programme. Dès que le programme rencontre une instruction de lecture, il s'interrompt et attend la frappe d'une valeur par l'utilisateur.

Syntaxe générale : Lire (Variable)

Exemple : Lire (ageUtilisateur)

L'instruction d'écriture

Une instruction d'écriture (ou de sortie) permet de communiquer des valeurs (textes, résultats de calculs, contenu de variables) à l'utilisateur, généralement en les affichant à l'écran (ou en les écrivant dans un fichier).

Syntaxe générale : Ecrire ("Message", Variable, Expression)

Exemple : Ecrire ("La valeur de B est : ", B)

Exemple : Calcul de la surface d'un rectangle (avec constantes)

Algorithme CalculSurface1
Const
    Longueur = 4.32
    Largeur = 3.77
Var
    Surface : Réel
Début
    Surface ← Longueur * Largeur
    Ecrire ("La surface du rectangle est : ", Surface, " m²")
Fin

Exemple : Calcul de la surface d'un rectangle (avec lecture utilisateur)

Algorithme CalculSurface2
Var
    Longueur, Largeur, Surface : Réel
Début
    Ecrire ("Donnez la longueur en m : ")
    Lire (Longueur)
    Ecrire ("Donnez la largeur en m : ")
    Lire (Largeur)
    Surface ← Longueur * Largeur
    Ecrire ("La surface du rectangle est : ", Surface, " m²")
Fin

De l'Algorithmique au Langage C

L'algorithmique fournit les bases logiques de la résolution de problèmes. Le langage C est un langage de programmation qui permet de traduire ces algorithmes en instructions compréhensibles par un ordinateur.

Éléments de base du Langage C

Le langage C permet de découper un programme en modules (fonctions). La fonction principale de tout programme C est la fonction main(), qui est la première à être exécutée.

#include <stdio.h> // Inclusion de la bibliothèque standard d'entrée/sortie

int main() {
    /* partie déclarative (déclaration des variables) */
    /* partie instructions (actions du programme) */
    return 0; // Indique que le programme s'est terminé sans erreur
}

Remarque : Chaque instruction en C doit se terminer par un point-virgule (;).

Déclaration de variables en C

En C, une variable doit être déclarée avant d'être utilisée. La syntaxe générale est :

<type_de_donnée> <nom_de_variable>;

Ou pour plusieurs variables du même type :

<type_de_donnée> <variable1>, <variable2>, ...;

Exemples :

int age;              // Déclare une variable entière nommée "age"
float distance;       // Déclare une variable réelle (à virgule flottante) nommée "distance"
char premiereLettre;  // Déclare une variable de type caractère
double salaire, impots; // Déclare deux variables réelles (double précision)

Traduire les opérateurs de l'algorithmique en C

Les opérateurs en C sont très similaires à ceux de l'algorithmique, avec quelques spécificités.

Opérateurs Arithmétiques :

  • + : Addition
  • - : Soustraction
  • * : Multiplication
  • / : Division (division entière si les opérandes sont des entiers, flottante sinon)
  • % : Modulo (reste de la division entière, uniquement pour les entiers)

Opérateurs de Comparaison :

  • == : Égalité
  • != : Inégalité
  • < : Inférieur à
  • <= : Inférieur ou égal à
  • > : Supérieur à
  • >= : Supérieur ou égal à

Opérateurs Logiques :

  • ! : NON (négation)
  • && : ET (conjonction)
  • || : OU (disjonction)

Traduire l'instruction de lecture (Lire) en C

En langage C, la fonction la plus courante pour lire des données depuis le clavier est scanf() (faisant partie de la bibliothèque stdio.h).

// Exemple pour lire un entier
int nombre;
printf("Entrez un nombre entier : ");
scanf("%d", &nombre); // %d pour un entier, & pour l'adresse de la variable

// Exemple pour lire un réel
float prix;
printf("Entrez un prix : ");
scanf("%f", &prix); // %f pour un float

Traduire l'instruction d'écriture (Ecrire) en C

En langage C, la fonction la plus courante pour afficher des données à l'écran est printf() (faisant partie de la bibliothèque stdio.h).

// Exemple pour écrire un message et la valeur d'une variable
int resultat = 42;
printf("Le résultat est : %d\n", resultat); // %d pour un entier, \n pour un retour à la ligne

// Exemple pour écrire un texte avec un réel
float moyenne = 15.75;
printf("La moyenne est de %.2f\n", moyenne); // %.2f pour un float avec 2 décimales
printf("Bonjour le monde !\n");

Foire Aux Questions (FAQ)

Qu'est-ce qu'un algorithme et à quoi sert-il ?

Un algorithme est une séquence finie et non ambiguë d'instructions permettant de résoudre un problème ou d'accomplir une tâche spécifique. Il sert de plan détaillé pour la création de programmes informatiques, en décrivant logiquement les étapes à suivre pour transformer des données d'entrée en données de sortie.

Quelle est la différence entre une variable et une constante ?

Une variable est une entité nommée en mémoire qui peut stocker une valeur qui peut changer au cours de l'exécution d'un programme. Une constante est également une entité nommée qui stocke une valeur, mais cette valeur ne peut pas être modifiée après sa déclaration initiale. Les constantes sont utilisées pour des valeurs fixes (comme PI ou des taux).

Pourquoi est-il important de définir le type d'une variable ?

Définir le type d'une variable est crucial car cela indique à l'ordinateur la nature des données qu'elle contiendra (nombre entier, réel, caractère, texte, booléen, etc.). Cela permet à l'ordinateur de réserver la bonne quantité de mémoire, d'appliquer les opérations appropriées et d'éviter les erreurs en garantissant la cohérence des données manipulées.

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne