Information & gestion - 1ère STG 1 / 4 La logique algorithmique
La logique algorithmique
1. La notion d'algorithme
L'outil informatique réalise les traitements automatisés nécessaires à la gestion d'une organisation
grâce à des logiciels. On parle aussi de programmes ou d'applications informatiques.
Un logiciel complet (pour la comptabilité, la facturation, ...) est une somme considérable
d'instructions, destinées à être interprétées et exécutées par tout ordinateur, dès lors qu'il fonctionne dans
un environnement compatible avec le logiciel (capacités de traitement et de mémoire suffisantes, système
d'exploitation conforme aux exigences, etc...).
L'algorithme est la description détaillée de la logique des divers traitements qui constitueront le
logiciel. La mise au point de l'algorithme est l'étape, indispensable, préalable à la rédaction du logiciel à
l'aide d'un langage de programmation (##########). Toutefois, l'algorithme est et doit rester
indépendant de tout langage de programmation pouvant être ultérieurement choisi pour écrire le
programme.
Il existe deux manières principales de représenter un algorithme : l'organigramme normalisé, qui est
une représentation graphique utilisant des symboles, et l'écriture en ligne, qui ressemble beaucoup, du
point de vue de la structure de présentation, à ce que sera le futur "code" du programme. Nous adopterons
cette dernière méthode, plus simple.
2. Les composants d'un algorithme
Tout algorithme incorpore des instructions, ayant les effets désirés par la logique du traitement à
effectuer, dans des structures logiques de base, combinées de manière à respecter la logique du traitement.
1°) Les catégories fonctionnelles d'instructions
Tout algorithme comprend obligatoirement quatre grandes catégories d'instructions, correspondant à
quatre fonctions exigées pour le traitement de l'information :
a) Les instructions d'identification (ou déclaration) des informations (ou données)
Cette phase consiste à déclarer les variables correspondant aux données requises par le traitement
ou qui seront produites par le traitement. À chaque donnée correspondra une variable, dotée d'un nom et
relevant d'un certain domaine de valeurs (type de données).
L'ordinateur allouera de l'espace mémoire à chaque variable. Les domaines de valeurs (ou (types de
données) courants sont :
- chaîne de caractères (pour les noms, les messages, ...) ;
- nombre (avec des variantes selon qu'on prévoit un nombre entier, décimal, en simple ou double ou
quadruple précision ...) ;
- booléen (pour les valeurs logiques binaires : vrai/Faux ; Oui/Non ; …) ;
- Date.
Cette distinction entre domaines de valeurs répond à une nécessité technique d'optimiser l'utilisation
de la mémoire du système et les traitements.
L'appellation variable suggère qu'il reste toujours possible, en cours de traitement, de modifier la
valeur stockée dans la variable (exemple-type : une variable utilisée comme compteur d'itérations1)
On peut aussi déclarer certaines données sous forme de constantes ; la modification de la valeur
stockée n'est plus possible (exemples-types : le nombre
π
; des données strictement permanentes comme
le nom ou l'adresse de l'entreprise)
Syntaxe2 :
<Nom de la variable> : <type de données>
1 Itération : répétition
2 Syntaxe : ensemble des règles d'utilisation d'un langage ; ici : ensemble des règles de formulation et d'ordonnancement des instructions
Exemple-type :
Variables
Nom : Chaîne
Prénom : Chaîne
DateNaiss : Date
Soit, dans notre exemple :
Si Statut = "Cadre" Alors
Cotisation_7 = Salbrut * Taux_7
Sinon
Cotisation_7 = 0
FinSi
Information & gestion - 1ère STG 2 / 4 La logique algorithmique
b) Les instructions de saisie (ou entrée) des informations.
Tout traitement requiert l'entrée, dans le système, au moyen du clavier ou d'un autre organe
périphérique, de données que l'ordinateur ne peut déterminer lui-même.
Par convention, l'algorithme peut représenter l'instruction d'entrée de données par l'un des termes
"Saisir", "Entrer" ou "Lire", suivi du nom de la variable où sera stockée la valeur saisie.
Exemple : Saisir TmpTrv peut signifier, dans le cadre d'un traitement de la paie, d'inviter à
l'utilisateur du programme à entrer au clavier le temps de travail effectué par le salarié (immédiatement
stocké dans la variable TmpTrv)
c) Les instructions de traitement des informations.
Le cœur de tout traitement consiste en une collections d'opérations visant à transformer, au besoin
en plusieurs étapes, les informations entrées en informations élaborées, en utilisant des opérateurs
arithmétiques (+, -, /, *), des opérateurs de chaînes (&, par exemple), des fonctions mathématiques (racine
carrée, partie entière, ...) des opérateurs logiques ou de comparaison (< , > , <> , = , <= , >= , OU , NON ,
ET, ...) ou d'autres fonctions et en respectant certaines procédures logiques (successions ordonnées,
répétitions, comparaisons )
Le résultat d'un traitement aboutit à stocker des données dans des variables ou à modifier le contenu
des certaines variables.
Une instruction fondamentale est alors l'instruction d'affectation symbolisée par le signe égal (=)
Exemple : Salbrut = (Salbase + HeurSupp + Primes) a pour effet de stocker, dans la variable
Salbrut, le résultat d'une somme de valeurs contenues dans trois variables, pour le calcul du salaire brut
d'un salarié.
d) Les instructions de sortie (ou d'édition ou d'affichage) des informations.
Le but de tout traitement est de restituer à l'utilisateur du système informatique les données
élaborées ; grâce à l'écran, une imprimante ou un autre organe périphérique. Aussi, les termes "Sortir",
"Afficher", "Ecrire", "Imprimer" peuvent être employés pour désigner les instructions de sortie des
informations.
Exemple : Imprimer Salnet peut signifier imprimer le montant du salaire net (valeur stockée dans
la variable Salnet)
2°) Les structures logiques de base d'un traitement
La partie traitement d'un algorithme combine toujours trois structures logiques de base :
a) la structure séquentielle
C'est une succession d'opérations de traitement, dictée par la logique.
Par exemple, il faut d'abord calculer le salaire brut puis les cotisations sociales puis le salaire net,
avant d'imprimer les informations.
b) la structure alternative
C'est l'expression d'un choix existant entre deux (ou plusieurs) traitements possibles (plusieurs
alternatives), selon qu'une condition logique est vérifiée ou non.
Exemple : dans un traitement de la paie, on appliquera un certain taux de cotisation sociale au
salaire brut seulement si le salarié est un cadre.
Syntaxe : la structure alternative comporte, de fait, deux volets :
Si <condition> Alors
<séquence de traitement 1 (condition respectée)>
Sinon
<séquence de traitement 2 (condition non respectée)>
FinSi
Information & gestion - 1ère STG 3 / 4 La logique algorithmique
Remarques :
- Cotisation_7 et Taux_7 sont les variables destinées à contenir respectivement le montant et le taux
de la cotisation sociale concernée.
- logique de l'exécution du code par l'ordinateur : "si la condition 'Statut = "Cadre"' est respectée, on
passe à la ligne suivant Alors pour exécuter le 1er traitement possible, sinon on passe à la ligne suivant
Sinon pour exécuter le second traitement possible"
- le décalage vers la droite (ou indentation) du début de chaque ligne décrivant un traitement
alternatif facilite la lecture et la compréhension du code de programmation, en mettant en évidence la
structure logique du traitement.
c) la structure répétitive (ou itérative)
C'est la répétition (ou itération) d'une même opération ou séquence d'opérations autant de fois que
l'exige la logique du traitement.
Exemple : il faut exécuter le calcul d'une cotisation sociale (base * taux) autant de fois qu'il y a de
cotisations.
Syntaxe :
Pour <compteur> variant de <début> à <fin> Faire
<séquence de traitement >
FinPour
Soit, dans notre exemple, si l'on connaît dès le départ le nombre de cotisations à calculer ( 12 ) :
Pour NbCot variant de 1 à 12 Faire
Cotisation(NbCot) = Salbrut * Taux(NbCot)
FinPour
Remarque : on aura préalablement déclaré Cotisation() et Taux() comme des variables-listes ou
variables indexées, c'est-à-dire des variables-collections, rassemblant, en fait, sous un même nom-racine,
une série de plusieurs variables de même nature, auxquelles on accède en précisant un n° d'index entre les
parenthèses (Cotisation(1), Cotisation(2), ... , Cotisation(12))
À chaque tour, on traite une cotisation et les variables de même indice (variable-compteur NbCot)
sont modifiées ou utilisées. NbCot est une variable servant de compteur de tours et d'indice pour les
variables-listes.
Si l'on ne sait pas toujours dès le départ combien de fois le traitement devra être répété, on peut
préférer la variante suivante :
Syntaxe :
<Initialisation d'une variable testée dans la condition>
TantQue <condition> Faire
<séquence de traitement >
FinTantQue
Exemple :
Rep = OUI
TantQue Rep = OUI Faire
<calcul du bulletin de paye>
Afficher "Y a-t-il un autre salarié à traiter ?"
Saisir Rep
FinTantQue
Remarque : Rep est une variable de type booléen qui contient la réponse à la question affichée en
fin de traitement.
Tant que la réponse est OUI, on refait le traitement résumé par l'expression <calcul du bulletin de
paye>, relative au calcul des montants du bulletin de paye d'un salarié. Rep est initialisée à la valeur OUI
afin de permettre le premier tour de boucle.
Information & gestion - 1ère STG 4 / 4 La logique algorithmique
3°) L'organisation en modules (fonctions)
Il peut arriver que certaines parties d'un algorithme soient très similaires. Il devient alors judicieux
de le simplifier en remplaçant ces parties par de simples appels à un même module avec transmission
éventuelle de paramètres (ou arguments).
Ce module est donc une séquence de traitement pouvant être appelée de divers endroits de
l'algorithme. On parle aussi de fonction ou encore de procédure. L'appel consiste alors à invoquer le nom
de cette fonction, accompagné d'une ou plusieurs valeurs renseignant les arguments de la fonction.
Exemple-type :
Début algorithme
...
Saisir Nom
Saisir Prénom
Saisir DateNaiss
Ncode = BatiCode(Nom, Prénom, DateNaiss)
...
Fin algorithme
Fonction BatiCode(Nom : Chaîne, Prénom : Chaîne, DateNaiss : Date) : Chaîne
BatiCode = Gauche(Nom, 2) & Gauche(Prénom, 2) & Année(DateNaiss)
Fin Fonction
Remarques :
- la fonction BatiCode contient le sous-algorithme permettant de construire un code de salarié à
partir de ses nom, prénom et date de naissance. Elle est appelée, depuis l'algorithme principal, chaque fois
que c'est nécessaire, par l'instruction Baticode avec transmission des arguments nécessaires.
- On suppose que Gauche et Année sont aussi des fonctions, qui permettent d'extraire une partie
d'une chaîne ou d'une date ; mais ce sont des fonctions que l'on suppose intégrées au langage utilisé ; donc
nul besoin d'en définir le code.
Conclusion
- Tout programme informatique est donc un assemblage de module de procédures ou de fonctions,
dont le code combine les trois structures de base de tout traitement et est constitué d'instructions, dont la
formulation obéit à une syntaxe précise et qui ont pour effet :
- d'utiliser ou de modifier le contenu de variables, initialement déclarées.
- de commander la mise en œuvre d'organes périphériques du système informatique (pour
l'affichage, l'impression, la sauvegarde ou la lecture de données)
- En pratique, l'algorithme devra être exprimé dans l'un des langages informatiques existants, en
utilisant des dénominations d’instructions et une syntaxe propres au langage utilisé. Par exemple, dans un
certain langage, l'instruction signifiant "Saisir au clavier" sera dénommée "Input"
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !