منتدى همسات لمحبة
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي

منتدى همسات لمحبة

غير حياتك إلى الأفضل. ســاحــة الإنترنت.المحاسبة , إدارة المخزون , الموارد البشرية , تسويق , مهارات إدارة المشروع , قانون العمل,إدارة التغيير ,إدارة المبيعات
 
الرئيسيةالبوابةبحـثالتسجيلدخول
facebook
المتواجدون الآن ؟
ككل هناك 4 عُضو متصل حالياً :: 0 عضو مُسجل, 0 عُضو مُختفي و 4 زائر :: 1 روبوت الفهرسة في محركات البحث

لا أحد

أكبر عدد للأعضاء المتواجدين في هذا المنتدى في نفس الوقت كان 114 بتاريخ الجمعة يوليو 28, 2017 11:31 pm
أفضل 10 أعضاء في هذا المنتدى
vsmido
 
فهودي
 
hasna
 
hadi
 
قاهر الاكواد
 
vS.dOdi
 
قـلـوب حـائـرة
 
ziko
 
بحر الأنسانية
 
auxel
 
سحابة الكلمات الدلالية
entre العمليات organisation pour zone commerciale l’entreprise التصدير Pourquoi travail dans système double social entreprise fonction 3ème وضعيات approche morale الشراء العمومية الانتاجية المحاسبة production services

شاطر | 
 

 Concevoir, programmer et tester des algorithmes simples.

اذهب الى الأسفل 
كاتب الموضوعرسالة
hadi
عضو ذهبى
avatar

عدد المساهمات : 203
نقاط : 15176
السٌّمعَة : 0
تاريخ التسجيل : 26/09/2010
العمر : 38

مُساهمةموضوع: Concevoir, programmer et tester des algorithmes simples.   الأربعاء مارس 07, 2012 9:08 am

Concevoir, programmer et tester des algorithmes simples.


I- Notion d'algorithme
I-1-Généralité

Pour développer un programme, il est souhaitable de passé beaucoup de temps à réfléchie sur l'analyse de problème de la conception.

I-2- Définition
Un algorithme est un ensemble de règles précises bien structurées facilement transmissible à la
machine et qui définit un procédé à suivre pour abouti un résultat fixé au départ, un algorithme

aubier à trois règles généralement :

a. C'est un ensemble d'actions précises , claires, lisible et efficace compréhensible par tous le monde.

b. L'algorithme s'applique à des données variables.

c. L'algorithme donne au moins un résultat que l'on obtient juste lorsque les données sont bien choisissent.

Parmi les caractéristiques d'un algorithme :
• Décomposition du problème posé en sous problème facile et resoulable.
• L'ordre du succession des étapes.
• Les conditions déterminant l'exécution ou nom d'une étapes.
• Un début et une fin

II- Eléments de base
On distingue entre la lecture des données, l'écriture des résultats, l'affectation et des opérations arithmétiques et logiques utilisées dans le calcule.

Les trois grandes étapes sont :

- la réparation de traitement
- le traitement
- édition des résultats

II-1- la lecture
Cette primitive permet de donnée une valeur à un objet pré déclaré, on l'exprime par le verbe lire . Exemple : lire(N).

A la suite de cette instruction, la machine attente que le utilisateur lui fournisse une valeur afin de pouvoir poursuivre l'exécution de l'algorithme.

II-2- L'affectation
Elle consiste à affecter à une variable la valeur d'une expression de même type. Nous allons représenter une affectation par le symbole <=.
Exemple : a <= 2 signifie que a reçoit la valeur 2.


II-3- l'écriture
L'écriture permet à l'utilisateur de connaître la valeur d'un identificateur,elle s'exprime par le verbe écrire. Exemple écrire (''somme ='', S) signifie l'affichage de S.

II-4-Exemple
Algorithme calcule ;
var a : ENTIER ;
var b : ENTIER ;
début
lire (a) ; // lecture
b <= 2 * a ; // affectation
écrire (b) ; // écriture
fin

III- Types élémentaires de données
Lorsque l'ordinateur exécute une opération : Calculer le prix d'un produit, rechercher le nom d'un client, ou calculer la trajectoire d'un satellite, il manipule des données de natures très diverses : nombres entiers, nombres décimaux, du texte… C'est ce qu'on désigne par le mot type.

- Un type est constitué par un ensemble de valeurs et par des opérations définies sur cet ensemble.
- Une constante est une valeur particulière prise dans l'ensemble des valeurs du type.
- Une variable est un triplet (identificateur, type, valeur). L'identificateur, son nom, permet de la désigner dans le programme; le type est fixe; la valeur peut varier tout au long de l'exécution du programme. On remarque que seul ce troisième élément du triplet est effectivement variable.

III-1-Déclarations de variables
En général, les différentes variables utilisées dans un algorithme ont des types divers. Aussi devons nous préciser le type de chaque variable utilisée. Nous écrirons pour cela :

var NOM1, NOM2, ..., NOMK : TYPE
Où NOM1, ..., NOMK sont des identificateurs de variables et où TYPE est un identificateur de type préalablement défini (ou standard).

Exemples :
var I, J, K : ENTIER
var X, Y : REEL
var C : CHAR
var NOM, PRENOM : CHAINE

Remarque :
Il est utile de prendre l'habitude de déclarer systématiquement le type de chaque variable même si cela n'est pas obligatoire dans tous les langages. En effet, cela oblige à bien préciser la nature des objets que le programme manipule. De plus, lorsqu'on aura traduit l'algorithme en un programme dans un langage L, les déclarations permettront aux compilateurs de faire des contrôles et de signaler des erreurs comme une faute de frappe entraînant la présence d'une variable non déclarée et l'erreur sera signalée.

III-2-Types standard
a. Le type entier

Le type ENTIER désigne l'ensemble des nombres entiers, sans restriction à priori. Les opérateurs du type ENTIER sont les suivants :
+ (addition)
- (soustraction)
* (multiplication)
** (élévation à une puissance entière)
/ (division entière).
En fait, sur un ordinateur donné, l'ensemble des entiers représentables est un intervalle [min, max] .

b. Le type réel
Le type REEL désigne l'ensemble des nombres réels, sans restriction à priori. Les opérateurs du type REEL sont
+ (addition)
- (soustraction)
* (multiplication)
** (élévation à une puissance entière)
/ (division entière).
En fait, il faudra néanmoins garder à l'esprit que sur tout ordinateur manipulant des valeurs réelles, deux limitations sont toujours présentes :
- Comme pour les entiers, il n'est pas question de considérer des valeurs au-delà d'un certain intervalle [min, max] ;

- Tout intervalle sur l'axe des nombres réels, si petit soit-il, contient un nombre infini de valeurs. Il n'est donc pas question de représenter complètement un intervalle réel. Alors que pour un intervalle entier [M, N] tous les entiers à l'intérieur de cet intervalle sont représentés.

c. Le type caractère
Le type CHAR désigne un ensemble de caractères convenu. Dans presque tous les langages on trouve les 26 lettres de l'alphabet latin, les 10 chiffres décimaux et un certain nombre de caractères spéciaux, qui diffèrent légèrement d'un langage à l'autre. Pour nous, le type standard CHAR en représentera l'ensemble des caractères qu'il est possible d'entrer et de sortir. Cet ensemble contient bien sur A B C ... X Y Z 0 1 2 ... 9. Il contient aussi le caractère blanc, les caractères ? ' () , . ; . = :91 < > + * / et peut-être d'autres selon les besoins du problème considéré... Cette définition extensible nous laisse toute liberté pour manipuler tout caractère spécial ayant de l'intérêt pour un problème particulier.

Nous noterons entre apostrophes les constantes de type CHAR : 'A', 'B', etc.
Remarque : ' ' avec 1 blanc entre les deux apostrophes désigne le caractère blanc, qui est un caractère comme les autres. Il n'y a pas de caractère vide et '', sans blanc intercalé désigne la chaîne de caractères vide (voir le paragraphe suivant).

d. Le type chaîne de caractères
Le type CHAINE désigne l'ensemble des chaînes de caractères qu'il est possible de former à partir des caractères du type CHAR.
Ces chaînes sont de longueur quelconque. Elles peuvent contenir des chiffres, des lettres, des blancs, des caractères spéciaux. Nous noterons entre apostrophes les constantes de type CHAINE.
Remarque1 : On peut utiliser des guillemets pour une constante CHAINE d'un seul caractère. Ainsi, après avoir déclaré>
var C : CHAR
var S : CHAINE,

Il sera possible de donner à C la valeur 'A' et de donner à S la valeur "A".

Remarque2 : La chaîne vide est une valeur particulière du type CHAINE, que l'on peut noter avec deux apostrophes : "" (sans blanc entre les deux). A ne pas confondre avec ' ', 1 blanc intercalé qui désigne le caractère blanc.

e. Le type booléen
Le type BOOLEEN désigne l'ensemble des valeurs logiques, c'est-à-dire les deux constantes FAUX et VRAI. Les opérateurs du type BOOLEEN sont les suivants :
OU (OU logique inclusif)
ET (ET logique)
NON (Négation logique).

IV- L'algorithmique structuré

Un algorithme est dit structurer s'il obéît à la règle suivante :
Il est construit à partir de trois structures fondamentales suivantes : La séquence, la sélection et la répétition.

IV-1-La séquence
Dans un algorithme les instructions sont placées les uns à la suite des autres.

Exemple :
début
var a : ENTIER ;
lire (a) ;
a <= 2 * a ;
écrire (a) ;
fin

IV-2- la sélection
Dans un programme on a souvent besoin de choisir entre plusieurs possibilités selon la valeur d'une expression logique.
Cette situation est très courante et en exprime par : si … alors … sinon
Cette expression conditionnelle est utilisée de la manière suivante :
si " Expression booléenne " alors " action1 " sinon " action2 "

Exemple :
var Moyenne : REEL
var Réussir : BOOLEEN
si (Moyenne >= 10) alors Réussir <= VRAI sinon Réussir <= FAUX

IV-3- Primitive d'itérations
La notion d'itération est une notion fondamentale de l'algorithme, on utilise souvent quand on doit exercer plusieurs fois le même traitement sur un même objet ou sur plusieurs objets de même nature. Mais son réel intérêt réside dans le faite que l'on peut modifier à chaque répétition ,les objets sur lesquels s'exerce l'action répéter.

Boucle pour
Cette boucle utilise un compteur pour spécifier le nombre de fois que les instructions seront répétées
var I,M,N : ENTIER
pour I de M à N répéter
instructions
Exemple : Dans cet exemple on calcule la somme des nombres entiers plus petits que M.
var I,M,Total : ENTIER
lire (M)
Total <= 0
pour I de 0 à M répéter
Total <= Total + I

Boucle jusqu'à
Toutes les instructions écrites entre répéter et jusqu'à sont exécuté au moins une fois, et leurs exécution et répéter jusqu'à ce que la condition placer derrière jusqu'à soit satisfaite
Syntaxe :
Répéter
instructions
Jusqu'à condition
Exemple : Dans cet exemple, on calcule la moyenne des notes des étudiants d'une classe. La boucle se répète jusqu'à ce que vous entrez le nombre 0.
Répéter
lire (numEtudiant)
lire (noteMaths, notePhysique, noteLangue)
moyenne <= (noteMaths, notePhysique, noteLangue)/3
si (moyenne>10) alors Réussir <= VRAI sinon Réussir <= FAUX
écrire (numEtudiant);
Jusqu'à (numEtudiant = 0)

Boucle tant que
Dans ce cas le programme commence par évaluer une expression booléenne ensuite, selon la valeur de cette expression, exécute ou sort de la boucle.
Syntaxe :
tant que condition
Répéter
instructions
Exemple : division de l'entier a positif ou nul par l'entier b en utilisant des soustractions successives .
Tant que r>=b faire
r<=r-b ;
q<=q+1 ;
fin tant que
écrire(q,r) ;

V- Langages de programmation
Un programme permet d'utiliser la puissance d'un ordinateur pour réaliser différentes tâches.

V-1-Différents niveaux de langage
1. Langages machines
Les premiers programmes étaient écrits en langage machine, on parlait alors de codage. Cette façon de procéder présentait au moins trois défaut :

1- Difficulté d'écrire en langage machine
2- Limite des instructions et donc incapacité à résoudre des problèmes compliqués
3- Dépendance de la machine : à chaque modèle d'ordinateur correspond un langage machine
La fin des années 50 a vu la naissance de la programmation proprement dite. Ce terme comprend non seulement l'écriture des programmes, mais aussi, et surtout, la conception des algorithmes.

2. Langages de programmation
Les langages de programmation sont des intermédiaires entre les langages naturels et les langages machines : d'une part, ils sont suffisamment proches des langages naturels pour que les programmes puissent être facilement écrits, compris et modifiés; d'autre part, ils sont définis avec rigueur, afin que les programmes puissent être traduits dans le langage machine de tel ou tel ordinateur.
Il existe plusieurs centaines de langages de programmation et chacun de ces langages est orienté vers des familles de problèmes. On dit parfois en ce sens que les langages de programmation sont orientés problèmes.

Chaque langage possède ses propres avantages et inconvénients et est plus ou moins adapté à chaque type d'application : il n'existe pas un langage meilleur que les autres dans l'absolu, il en existe de meilleurs pour un type d'application, un type d'ordinateur et un type de méthode de programmation donné.

* Pédagogiques : Pascal, Ada
* Scientifique : Fortran, Basic, Pascal, Ada, Apl
* Prototypes : Apl, SmallTalk, Eiffel
* Gestion : Cobol, SQL pour Windows
* Intelligence Artificielle : Prolog, Lisp
* Base de données : SQL, DBASE
* Développement Systèmes et Réseaux : Assembleur, C, C++, Java
* Interfaces utilisateurs : Delphi, Visuel Basic, Java
Les principales étapes de la construction d'un programme sont :
Question ==> Enoncé ==> Résolution (algorithme) ==> Mise en oeuvre (programme(s))

VI-Traduction d'un algorithme simple en pascal
VI-1- Structure d'un programme
.
Nous décrivons ici la structure générale d'un programme en Pascal. La signification et l'utilisation de chaque élément seront détaillés dans les chapitres suivants.

Program NOM_DU_PROGRAMME ;
Uses { Déclaration des bibliothèques utilisées }
{ Déclarations, chacune des sections suivantes peut apparaître}
{ plusieurs fois et dans un ordre différent }
Const { Déclarations des objets constants}
Type { Déclarations de nouveaux types}
Var { Déclarations des objets variables}
Procedure {Déclaration d'une procedure}
Function {Déclaration d'une fonction}
{ Corps du programme Principal }
Begin
instruction1 ;
instruction2 ;
...;
End
VI-2-Les types de variables.
• Shortint : entier compris entre -127 et 128
• Byte : entier compris entre 0 et 255
• Integer : entier compris entre -32 768 et 32 767
• Word : entier compris entre 0 et 65535
• Longint : entier long compris entre 147 483 648 et 2 147 483 647
• Real : réel compris entre 2,9 e 10-39 et 1,7 e 1038 avec 11 décimales
• Double : réel double précision compris entre 5,0e10-324 et 1,7e10308 avec 15 décimales.
• Extended : réel compris entre 1,9e 10--4951 et 1,1e 10-4932
• Char : caractère alphanumérique
• String : chaîne de caractères.
• Boolean : valeurs logiques égales à TRUE ou FALSE
VI-3- Quelques Exemples de programmes en Pascal
1. Les entrées sorties conversationnelles.
• write et writeln.

Exemple 1 :
Program tartenpion;
begin
write('je ','ne ');
write('vais pas à la ligne');
writeln;
writeln('je ','vais ');
write('à la ligne');
end.

Dans cet exemple la fonction write permet l'affichage des résultats en restant dans la même ligne.
La fonction Writeln retourne à la ligne et affichée les résultats.
• Read et readln :

Cette fonction permet de donnée une valeur à un objet pré déclaré.
• Les tests

Syntaxe générale de l'instruction if :

Elle peut prendre une de ces deux formes :
If expression_booléenne then instruction
If expression_booléenne then instruction_1
else instruction_2

Un else se rapporte toujours au dernier then rencontré auquel un else n'a pas encor été attribué.

Exemple:
program Exemple_d_instruction_if_2 ;
var n, p, max : integer ;
begin
writeln ('donnez 2 nombres entiers') ;
readln (n, p) ;
if n < p then
begin
max := p ;
writeln ('croissant')
end;
else
begin
max := n ;
writeln ('décroissant')
end;
writeln ('le maximum est ', max)
end.
•Répétition
Syntaxe de l'instruction for :

for compteur:= début to fin do instruction
for compteur:= fin downto début do instruction


Exemple :

program utilisation_du_compteur1;
var n : integer;
begin
for n:=1 to 8 do
writeln(n,' a pour triple ',3*n)
end.
Syntaxe de l'instruction repeat ... until :


repeat
instruction_1;
instruction_2;
...
instruction_n;
until expression_booléenne


Exemple :
Program exemple_boucle_jusqu_a;
var n : integer;
begin
repeat
write('Donner un entier positif : ');
readln(n);
until n<0;
writeln('vous venez de taper un nombre négatif')
end.
Syntaxe de l'instruction while ... do :

while expression_booléenne do instruction

Exemple :
program Exemple_boucle tant_que ;
var somme : integer ;
nombre : integer
begin
somme := O ;
while somme < 100 do
begin
write ('donnez un nombre ') ;
readln (nombre) ;
somme := somme + nombre
end ;
writeln ('somme obtenue : ', somme)
end.



الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://www.directindustry.fr/
 
Concevoir, programmer et tester des algorithmes simples.
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى همسات لمحبة :: ictap :: programmation-
انتقل الى: