Académique Documents
Professionnel Documents
Culture Documents
Introduction:
ALGORITHME n. m. XIIIe siècle, augorisme. Altération, sous l’influence du grec
arithmos, « nombre », d’algorisme, qui, par l’espagnol, remonte à l’arabe Al-
Khuwarizmi, surnom d’un mathématicien. Méthode de calcul qui indique la démarche
à suivre pour résoudre une série de problèmes équivalents en appliquant dans un
ordre précis une suite finie de règles.
Définition 1 :
Un algorithme est une suite ordonnée d’instructions qui indique la démarche à
suivre pour résoudre une série de problèmes équivalents.
validité d’un algorithme : La validité d’un algorithme est son aptitude à réaliser exactement la
tâche pour laquelle il a été conçu.
robustesse d’un algorithme: La robustesse d’un algorithme est son aptitude à se protéger de
conditions anormales d’utilisation.
réutilisabilité d’un algorithme : La réutilisabilité d’un algorithme est son aptitude à être
réutilisé pour résoudre des tâches équivalentes à celle pour laquelle il a été conçu.
efficacité d’un algorithme: L’efficacité d’un algorithme est son aptitude à utiliser de
manière optimale les ressources du matériel qui l’exécute.
Langage de description d‘un algorithmes:
Algorithme titre
% commentaire
Lexique : variables // entrée
: variables // sortie
: variables // auxiliaire
Algorithme :
Algorithme Calcul-Carré-par-Add
%Calcul du carré d'un entier
Lexique :
N entier // Entrée
Carré entier // Sortie
Action : +
Début
Initialiser Carré à 0
Faire N fois :
Carré Carré + N
Fin
Les actions de base
1. Affectation
Affectation par une valeur:
L'affectation variable valeur est une instruction qui permet de changer la valeur
d'une variable.
Avertissement
L'ancienne valeur de la variable est détruite, écrasée, effacée par la nouvelle valeur !.
Affectation par une expression:
Attention
Cette fonction permet de lire une valeur à partir d’un périphérique d’entrée
(généralement le clavier) , et stocker cette valeur dans une variable.
Syntaxe : lire(variable)
Nb: Chaque variable manipulée dans le corps de l’algorithme doit être déclarée
La trace d’exécution:
La trace d’exécution est l’état des variables après exécution de chaque instruction.
Problème
Algorithmique
Algorithme
programmation
Code source
Programmation:
Introduction:
Un programme est une suite d’instructions, encodées en respectant de manière très stricte
un ensemble de conventions fixées à l’avance par un langage informatique.
Le programme que nous écrivons dans le langage informatique à l’aide d’un éditeur est
appelé programme source (ou code source).
bit : Un bit est un chiffre binaire (0 ou 1). C’est l’unité élémentaire d’information.
Octet: Un octet est une unit´e d’information composée de 8 bits.
Langage de programmation :
Un langage de programmation est un langage informatique, permettant à un humain
d’écrire un code source qui sera analysé par un ordinateur.
Logiciels:
un logiciel est un ensemble de séquences d’instruction (programmes) interprétables par
une machine
Compilation
code source
Compilateur:
Un compilateur est un programme
informatique qui traduit un langage, le compilateur
langage source, en un autre, appelé le
langage cible.
Code objet
Exécuteur
Résultat
Les Bases de langage pascal
Introduction:
Le PASCAL, créé par WIRTH au début des années 70, possède des instructions assez
claires (si vous comprenez l'anglais), et favorise une approche Méthodique et
disciplinée (on dit "structurée").
Le traduire en langage machine (c'est à dire en codes binaires compréhensibles par
l'ordinateur) : c'est la compilation et éventuellement l'édition de liens (LINK),
l'exécuter.
LA SYNTAXE DU LANGAGE PASCAL:
syntaxe d’un langage l’ensemble des règles qui régissent la composition des phrases de ce
langage
BEGIN
Corps du programme
END.
EDITEUR
Exécution
L’alphabet
L’alphabet du langage PASCAL comprend les éléments suivants :
les vingt-six lettres majuscules (A à Z);
les vingt-six lettres minuscules (a à z);
les dix chiffres décimaux allant de 0 à 9;
Write :
La procédure Write permet d'afficher du texte et de laisser le curseur à la fin du texte
affiché. Le texte doit être entre apostrophes. Si le texte à afficher contient une
apostrophe, il faut alors la doubler.
Les différents noms de variables doivent êtres séparés par des virgules.
Syntaxe :
Write ('Texte à afficher', variable1, variable2, 'texte2');
Write ('L''apostrophe se double.');
Writeln:
La procédure WriteLn est semblable à la précédente à la différence près que le
curseur est maintenant renvoyé au début de la ligne suivante.
Syntaxe :
WriteLn ('Texte avec renvoi à la ligne');
Toute instruction doit être suivie d'un point virgule, à l'exception de la dernière
instruction avant la fermeture d'un bloc d'instructions par end.
LECTURE :
Read :
La procédure Read permet à l'utilisateur de rentrer une valeur qui sera utilisée par
le programme. Cette instruction ne provoque pas de retour chariot, c'est-à-dire que
le curseur ne passe pas à la ligne.
Syntaxe :
Read (variable);
Readln:
La procédure ReadLn permet à l'utilisateur d'entrer une valeur qui sera utilisée par le
programme. Cette instruction provoque le retour chariot, c'est-à-dire que le curseur
passe au début de la ligne suivante.
Syntaxe :
ReadLn (variable1, variable2, ..., variableN);
ReadLn;
Ecran :
Exemple :
Program Exemple1; Entrez votre nom : Batat
Var nom : String; Votre nom est : Batat
BEGIN
Write('Entrez votre nom : ');
ReadLn(nom);
WriteLn('Votre nom est :', nom);
ReadLn;
END.
ReadKey :
Pour les entrées au clavier, il existe également la fonction ReadKey, qui donne
une valeur à une variable de type Char (caractère ASCII).
Syntaxe :
x := ReadKey;
Les opérateurs:
On distingue trois types d’opérateurs : les opérateurs arithmétiques, les opérateurs
relationnels et les opérateurs logiques.
Exemple
5 DIV 2 = 2
5.0 / 2.0 = 2.5
5 MOD 2 = 1
Les Opérateurs relationnels ou de comparaison sont au nombre de sept et correspondent
aux symboles suivants :
– inférieur (<),
– inférieur ou égal (<=),
– supérieur (>),
– supérieur ou égal (>=),
– égal (=),
– différent (<>),
– membre de (IN). ( intervalle )
Exemple :
Considérons quatre nombres entiers A, B, C et D ayant pour valeur :
A := 40 B := 50 C := 50 D := 10
Les expressions suivantes sont toutes vraies : Les expressions suivantes sont toutes fausses :
A<B A>B
A>D A=C
B <= C B <= D
(A + D) = B (A + D) < B
opérateurs logiques, ils sont définis dans le calcul propositionnel et sont au nombre de trois.
Ce sont :
•la négation (NOT), (non)
•la conjonction (AND), (et)
•la disjonction (OR). (ou)
•XOR (ou exclusif).
A B A or B
A not A 0 0 0
0 1 0 1 1
1 0 1 0 1
1 1 1
A B A and B A B A xor B
0 0 0 0 0 0
0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 0
Priorité des opérateurs
• Niveau 1 : NOT.
• Niveau 2 : *, /, mod, div, AND.
• Niveau 3 : +, -, OR, XOR.
• Niveau 4 : =, <, >, <=, >=, <>.
Commentaires
Les commentaires sont des éléments du texte d’un programme qui sont ignorés par le
compilateur. Ils servent à apporter des renseignements sur le programme.
Seules les lettres ordinaires sont autorisées. Les lettres accentuées, les cédilles, les
espaces, les caractères spéciaux tels que $, #, @, etc. sont interdits, à l’exception du
caractère (sauf _ exemple: g_1).
La « casse » est significative : les caractères majuscules et minuscules ne sont pas
distingués en pascal.
Ces mots réservés ne peuvent donc pas être utilisés comme noms de variable.
Une variable dont la valeur associée ne varie pas au cours du programme (on parle alors
de constante) pourra être écrite entièrement en majuscule, par exemple (PI = 3.14).
LES TYPES DE VARIABLES:
ENTIERS: déclaration : VAR variable1,variable2,...,variableN : INTEGER;
Opérations sur entiers : + − * div (division) mod (reste de la division). Elles sont toutes à
résultat entier, et nécessitent deux arguments entiers.
REELS:
déclaration : VAR liste de variables : REAL;
var v1,v2,v3: Real;
opérations : + − * /
Quand une opération comprend un argument réel et un entier, le résultat est réel. /
donne toujours un résultat réel, même si les deux arguments sont entiers.
Ces variables peuvent prendre soit la valeur TRUE (vrai), soit la valeur FALSE (faux).
opérations booléennes : AND, OR, NOT, et (non standard) XOR (ou exclusif). Ces
opérations nécessitent des arguments booléens.
opérations à valeur booléenne : > (supérieur), < (inf), >= (sup ou égal), <=, = (égal), <>
(différent). Ces opérations comparent tous éléments de type simple (les 2 arguments
doivent être de même type, sauf entiers et réels qui peuvent être comparés entre eux),
et renvoient un booléen. Les caractères sont comparés suivant l'ordre du code ASCII
AND (et), OR (ou), NOT (non), sont de priorité supérieure aux précédents et ne peuvent
opérer que sur des booléens : A>B et C doit être écrit : (A>B) and (A>C). Les parenthèses sont
obligatoires pour ne pas faire en premier B and A.
CARACTERES:
déclaration :
déclaration :
VAR liste de variables : STRING;
Chaînes de caractères
Le type String définit des variables "chaînes de caractères". On peut cependant définir
des chaînes dont la longueur maximale sera moindre (de 1 à 255).
Syntaxe :
Var
Chaine : String;
Telephone : String[10]; { Chaîne d'une longueur maximale de 10 caractères }
Note :
Le type String est en fait un tableau de caractères à une dimension dont l'élément
d'indice zéro contient une variable de type Char dont la valeur numérique correspond à
la longueur de la chaîne.
instruction:
Une instruction simple peut être
– une affectation,
– un appel de procédure, (une procédure est un ensemble d'instructions regroupées sous un
nom, par exemple READLN)
– une structure de contrôle : conditionnelle ou itérative.
Une séquence d’instructions est une suite finie d’instructions s éparées par des points-virgule (;)
Un bloc d’instructions est une séquence d’instructions encadrées par les deux mots réservés
Begin et end.
Affectation
L’ affectation est une instruction qui permet de modifier la valeur d’une variable. En
Pascal , c’est le symbole := qui est utilisé pour écrire une affectation. A gauche de ce
symbole figure l’identificateur d’une variable, et à droite une expression.
Exemple:
Y := 2015;
Lettre := 'a';
Continuer := true;
Nombre := Y + 103;
a:=6; b:=6;c:=6;
Delta := Sqr(b) - 4 * (a * c);
Nom:=‘etudiant’;
Animal := 'l''abeille';
Phrase := 'Bonjour‘ + Nom;
Nom[3]:=‘Z’;
Nom[4]:=‘ ’;
Note :
Lorsqu'une valeur est affectée à une variable chaîne de caractères, on procède
comme pour un nombre mais cette valeur doit être entre apostrophes. Si cette valeur
contient une apostrophe, celle-ci doit être doublée dans votre code.
Exemple :
Animal := 'l''abeille';
Chaine[Index] := Lettre;
Exemple :
Program Exemple14;
Var
Nom : String;
BEGIN
Nom := 'Etiévant';
Nom[2] := 'Z';
Nom[0] := Chr(4);
WriteLn(Nom);
Nom[0] := Chr(28);
Write(Nom,'-tagada');
END.
Fonctions mathématiques Pascal de base
Syntaxe Fonction
Sin(a) sinus
Cos(a) cosinus
ArcTan(a) arctangente
Abs(a) valeur absolue
Sqr(a) carré
Sqrt(a) racine carrée
Exp(a) exponentielle
Ln(a) logarithme népérien