Vous êtes sur la page 1sur 43
Pour distingue it a Our distinguer un cable droit ¢ un cdble croisé on peut se Servir de la disposition de la figure Suivante. En effet, la téte de droite est obtenue en is 2 et 6 dans la t&te gauche, Permutant les broches 1 et 3 puis 2 et Les cables Voici la liste des différents cables que |’ ‘on peut rencontrer : ~ FIP Foiled Twisted Pairs): paires torsadées entourées dans leur ensemble dune feuille d'aluminium (éeran). Standard européen SFTP (Shielded Foiled Twisted Pairs) et SSTP (Shielded Twisted Pairs) : Cables blindés, dans leur ensemble ou pire par Paire. A utiliser dans les locaux avec fortes Perturbations électromagnétiques (C EM). Application Ilest donc possible de réaliser un réseau de Stations interconnectées entres-elles via un Hub ou un Switch en utilisant des cbles croisés comme I'i illustre la figure suivante, — oe ee J 3 ge) } seceprin ee ai Emission (1%) Connecteur RAS En utilisation en 10 Mbps et 100 Mops, seules 2 paires sont utilisées (en full duplex) Coté poste de travail, en fonctionnement normal : 1-2 en émission et 3-6 en réception. Plan de cablage d’un campus Les besoins en communication d’aujourd’hui induisent la nécessite d’un pré-cablage VDI Voi: és DP inpdel " a , a . (Voix Données Images) a l'intérieur ou entre les différents batiments d’ une méme enceinte. ss realisations sont guidées par des normes (ISO/IEC 11801-NF EN 50173- ANSI EIA/TIA Cablage structuré TO : télécommunication outlet (prise de | télécommunication) CD : Campus Distributer (répartiteur de campus) BD : Building Distributer (répartiteur de batiment) FD : Floor Distributer (répartiteur d’étage) CP : consolidation Point (point de consolidation) Définition des liaisons ent teenie {Seas eysine de cébioge vertical dec Cables horizontale : cable reliant le répartiteur d°étage a la prise de télécommunication par Vintermédiaire éventuel d’un point de consolidation 32 Cablage vertical ou backbone : 7 Cables reliant les différents batiments dun ampus au répartiteur principal (CD) Cables reliant les répartiteurs détages ( FD) au Tépartiteur de batiments (BD) La norme spécifi ie que le cable ve campus et le rép cal ne doit pas dépasser 2000 m entre le répartiteur de artiteur d Stage (étendy a 3.000 m en utilisant une fibre monomode). Partie 2 Initiation ala programmation et au langage Pascal Chapitre 5 Initiation a la programmation 1. Notions d’algorithmes fon considérée comme ion ici se fait par un des données que des actions & n langage Linformatique a pour objet le traitement automatique de I'informatic support des connaissances du monde réel. Le traitement dont ilest questi ordinateur’ ou calculateur. Ce dernier ne peut effectuer des traitements sur parce qu'il regoit de la part du. (des) programmeur (s) des instructions (liste exécuter) lui indiquant comment effectuer ces traitements. Ces instructions écrient et ° machine (Pascal, langage C, etc.) sont d’abord décrites de fagon claire (sans ambiguités) & Vraide @algorithmes, L’algorithme sert done au (x) programmeur (8) & décomposer 0? probléme en sous-problémes (problémes plus simples) afin d’en faciliter Ja résolution. a pourrait le définir comme I’énoncé d’une suite d’ opérations permettant de donner Ja réponse & . ; de un probléme. Voici une autre définition es fa suivante : «un algorthme est une procedure oe . uit calcul bien définie, qui prend en entrée une valeur, ou un ensemble de valeurs, et qu! prod en sortie, une valeur ou un ensemble de valeurs ». Un algorithme’ est donc une séquence d’étapes de calcul permettant de passer de la valeur d’entrée a la valeur de sortie. tus formellement, un algorithme A est une multi-application de l'ensemble des données en entrées vers l'ensemble des données résultats tel que pour tout E données dentrée et R résultat d’un probléme, A(E) = R La programmation consiste 4 se donner un E et un R et a fournir A (éventuellement exploitable sur une machine donnée). Lvalgorithme A est spécifié sur la base d’une décomposition en un nombre fini d’opérations Opp k = 1, ue mavec A= On? Onan? =? O E,=E Oja-1(Enoa) = Ey k = 2,..0-1 On (En) = R- tat de sortie (ou prédicat de sortie) dune opération est I’état d’entrée (prédicat d’entrée) de Yopération suivante. Une fois un algorithme d’un probléme trouvé, il faut le transcrire dans un langage de programmation (plus simple que le frangais dans sa syntaxe). L’algorithme transcrit en langage de programmation est appelé code. Celui-ci est compiler (pour le rendre > Machine automatique qui permet d’effectuer dans le cadre de la programmation des ensembles d’opérations arithmétiques et logiques a des fins scientifiques, administratives ou comptable 5s elui du langage : compilateur compréhensible par la machine) et exécuté par un compilareur (celui du Tangs é bléme. Pascal, compilateur C, ete.) pour donner la réponse au prot que des programmes. Apprendre Palgorithmique, c’est apprendre & manier la structure logique des P prendre Palgori . "1 ‘ithme Il. Résolution de probléme et structure d’un algori a partir d’un probléme a. Différentes étapes de déduction d’un programme ap ame calculatoire bien . jon d'un probleme calulatoire bien i mn outil de résolution oN désirée entre Ventrée el Un algorithme peut ére vu p specif en termes généraux la relation c Seer la sortie. L’algorit ; wes oa relation, . e par trois des étapes décrites pal La résolution automatique d'un probleme pass Porganigramme suivant, Enoneé du probleme Niveau de homme Algorithme Langage assembleur Langage évolué Niveau de Assembleur Compilateur ou interpréteur | machine I ¥ Programme en langage binaire (langage machine) Dans ce chapitre nous avons fait le tour de toutes les étapes importante a la résolution d'un probléme avec un ordinateur. La figure suivante résume ces différentes étapes. gecesi awe a Cpr 8 genase Cone Te toting Sit, Ractstaomees em rai _— Samar Languge de hatnaay Pete re ecemele Cy pone en = o$ fm eS Oke — Ext sequence Seen Figure ... Principales étapes de la résolution d'un probleme avec l'ordinateur L’Enoncé du probléme ou cahier des charges doit préciser les données en entrées au probleme, les besoins en traitement et les résultats souhaités. Ainsi, l’étape Enoncé- programme va se décomposer en deux : © Enoneé- algorithme : a ce niveau la question de I’analyse et de la conception d’une solution informatique du probléme spécifié par son énoneé est posée. Ce travail devra aboutir & une description algorithmique de ce traitement que l'on appelle algorithme. * Algorithme-programme : la question de l’obtention d'un programme (avec toutes les préoccupations techniques qui sont légitimes) est ramenée a une phase de production par traduction en un langage cible choisi 7 b. Moyen & mettre en euvre Pour passer d'une étape a l'autre Passage de | Algorithme au programme : C°est la transition qui doit étre la plus facile dans la mesure of Palgorithme est un automate décrivant rigoureusement la suite finie des opérations Petmettant de faire passer les données d'un état d’entré a un tat de Tésultat : solution du Probléme demandé. II s’agira essentiellement d'une réécriture de Palgorithme dans un langage cible de programmation sur une machine cible. C’est une Phase qui doit étre indépendante de toute I’: activité d’analyse et de conception, Passage de ré noncé a |’ énoncé explicite : I’énoncé fournit une propriété générale du *ésultat et ne permet pas toujours d’obtenir la solution algorithmique. Par contre ""énoncé explicite doit spsifer le procédée de caleul permettant d’obtenir Palgorithme. Il s'agit essentiellement d’ ‘une analyse de I’énoneé de maniére a : ° Identifier les informations fondamentales manipulées (reconnaissance) Classer ces informations en entrée (hypothése du probléme), sortir (résultat ou Conclusion du Probléme) et de définir leur organisation (comprehension) ° Proposer une solution expicte des procédé de calcul et de mise en ceuvre qui Permettent d’obtenir ces résultats (modélisation) Les outils utilises dans cette description dépendent évidemment de la nature du Probléme. Ils peuvent étre graphique, de type texte, algébrique, etc. Passage de I’é noneé explicite & 'algorithme : lalgorithme sera obtenu par réécriture de l’énoncé explicte en incluant un ordre dans le procédé de traitement, Cela nécessite tn langage adapté& la reformulation que l'on appelle Langage de Description (ou notation) Algorithmique ou LDA. Comme tout langage, ce langage se définit au mois Par deux ensembles : Un ensemble forme du vocabulaire général du lange et un autre décrivant sa grammaire, Nousallons développer ce demier point, ©. Le LDA (langage de description algorithmique) Définition Un texte du LDA est la concaténation de mots de V, séparé par un ou plusieurs espaces t respectant rigoureusement les regles grammaticales correspondantes et édictées dans G. Pour des raisons de lisibilité et de clarté de I’écriture les verbes du langage seront soulignés pour les mettre en évidence par Tapport aux objets du programmeur. Un texte du LDA représente un algorithme et a impérativement la structure générale suivante : ALGORITHME identificateur | Deseription des Ressources de Palgorithme ~ -— yo Syntaxe Ce texte algorithmique commence nécessairement par le mot clef ALGORITHME et Se termine par un point (fin de lalgorithme). a Le corps du texte est formé de deux parties : une premiére qui ser C ‘eerie ae les Fessources (données ou actions) utilisées dans le procédé opératoire de I’algorithme qui sera décrit dans la deuxiéme partie. D’oti découle la conséquence aad Suivante : il ne peut ¥ avoir de ressources utilisées dans le traitement qui n’aient été décrites Reézgle syntaxique de construction d'un identificateur : un identificateur est le nom donné par le programmeur a tout objet manipulé dans l’algorithme. La régle de construction est : un identificateur est une suite de caractére commengant par un Saractére alphabétique. Exemple : Somme, impét, salaire_de_base. Tous les caractéres ont le méme niveau d’écriture : pas d’indice ni exposant. Il n’y’a pas de limitation cependant le bon sens nous amene a profiter de Sette souplesse de maniére a créer les identificateurs s‘approchant le plus possible de 'a signification de Pobjet qu’ils désignent sans peut construire des identificateurs Pertinents, du nombre de Caractéres a utiliser, » On pourra se référer aux indications suivantes : Choisir des identificateurs facilement Pronongables, Eviter les abréviations non courantes sens véhiculés par I’ ‘identificateur, Exemp| © Identifi le : bourse_etudiant_inphb cr distinetement les informations, chaque fois ue cela est possible, 8 De “scription des Ressources Données Description des Ressources Données Toute données, quelle sot d’entrée ou de sortie ow intermédaire de caleul, manipulée dans la Partie description des ressources d'un algorithme est caractérisée par la double indication de contenu contenant Son contenant, représenté par le nom de la donnée ou identificateur et sont contenu, valeur de 'a constante prise par la donnée, Remarque Le contenu d'une donnée peut varier d’un instant & l'autre mais seul le dernier est évidemment conservé et le contenant lui a priori ne change jamais. dessus (seules les contenus peuvent varier ...) uelques types Concernant les types, certains sont bien stir prédéfinis, ce sont ceux qui seront considérés comme de base et permettront par construction d’obtenir des types plus sophistiqués. Dans la classification simplifiée des types on distingue les fypes simples dont les constantes atomiques (constituées d’un seul tenant ou indécomposable) et les types organisés dont les constantes sont composées d’autres constantes. Quelques types simples : les entiers relatifs, les nombres réels, les constantes logiques Une donnée est souvent appelées variable, ce qu'il faut accepter avec la description ci- et l'ensemble de tous les caractéres du LDA sont désignés respectivement par les mots clés ENTIER, REEL, LOGIQUE et CARACTERE. - Le type organisé : On dit qu'une information est organisée ou structurée si elle est une collection finie et dénombrable d’autres informations. Elle est alors dite composite et type description exemple ] ENTIER | est décrit en décimal signée, le signe | Ona les exemples suivants. 1969, + pouvant étre omis s°il est posi 56. REEL | est aussi écrit en décimale signée | 651.48, -5,07. | avec le point (ou la virgule) pour | séparer la partie entiére de la partie réelle | LOGIQUE est formé des deux constanies VRAT —| _ et FAUX. _| CARACTERES | représente l'ensemble de tous les | Ona les exemples suivants, a", | caractéres (en d’autre terme son A | alphabet). Les constantes caractéres | sont mises entre quote. chacune des informations qui la composent (ou composantes) peut étre aussi structurée de la méme maniére. II apparait une “’récursivité”” au niveau de la définition de objet structuré du fait qu’il se définit par lui-méme, la condition d'arrét de reproduction de la définition est qu’au demier niveau les objets soient de types simples : entier, réel, logique, ete.) Le type TABLEAU est un cas particulier ou l’objet est une collection objets de méme type et en nombre fixe. Chaque élément du tableau est appelé composante etle domaine de valeurs est le produit cartésien des domaines de valeurs de chaque ‘composante. La syntaxe de désignation du type est : TABLEAU[indice de début .. indice de fin] DE type d’une composante. Indice de début et indice de fin sont des constantes d’un type simple quelconque mais ordonné totalement. Ils permettront de fixer le nombre de ‘composantes et de pouvoir identifier chaque composante par un indice dont le contenu est compris dans l’intervalle [indice de début ; indice de fin]. La syntaxe d’une description de ressources données est la suivantes : Cc Liste @'identificateurs : type Liste d’identificateurs est soit un identificateur soient plusieurs identificateurs (ayant le méme type) séparés par une virgule. Par exemple, on a : { sall, sal2 REEL ; Etat : LOGIQUE ; ij : ENTIER ; | categorie "ARACTERE ; Dans le cadre de notre LDA, nous avons la possibilité d’identifier des types. Un intérét possible est le cas oii une description de types est utilisée a plusieurs endroits de l’algorithme (nous y reviendrons) mais aussi pour apporter de la clarté dans les descriptions de type organisés : I - Identificateur de type est le nom donné au type et type est la description du type. Comme Identificateur d'un type=type exemple, on a: 6 | occupe=LOGIQUE : Siege=oceupe ; Compartiment=TABLEAU[..6] DE siége ; wagon=TABLEAU[| .. 12] DE compartiment ; train=TABLEAUI ... 10] DE wagon ; untrain : train Occupe, siége, compartiment, wagon et train sont des noms de type. Ils doivent servir de descripteurs de données. Dans notre cas seul la donnée untrain est eréée (instanciation) et décrite comme de type train. L’accés & une composante se fait par l’intermédiaire d’une Variable de type simple correspondant au type de I’intervalle. Ainsi sii, j,k : ENTIER ; est une déclaration alors untrain[i,j,k] est un logique indiquant l'état occupation du siége k du compartiment J du wagon i du train. uelques es Ce sont des facilités d’écriture qui permettent une action spécifique comme l’affectation, les expressions arithmétiques et logiques et les entrées-sortie. - L’affectation : le symbole utilisé est la fléche renversée —. On a donc la syntaxe suivante : { identificateur— expression du méme type. La constante provenant de I’évaluation de ’expression est transférée comme contenu de I’identificateur, ce qui impose qu’elle soit du méme type que celui de Videntificateur. Une expression garde le sens habituel d’une formule comportant des opérateurs et des opérandes. Elle est évaluée de la gauche vers la droite en respectant les ordres de priorité prédéfinis. - Les expressions arithmétiques : les opérandes sont des données de type ENTIER ou REEL, et les opérateurs concernés sont : opérateurs | noms + Addition 5 Soustraction Multiplication Division réelle g le Division entiére [=| IS IS Reste de la division entiére L’ordre de priorité est le méme qu’habituellement, c'est-a ire dans décroissant : 62 Régle de priorité 0 Le parenthésage pour foreer la priorité + / mod div | Méme priorité ae Méme priori = Les expressions logiques : celles prédéfinies sont : la négation (NON) la conjonction ET et la disjonction OU. Les opérateurs relationnels sont applicables aux données de type: Ce sont : .s simples ordonnées. Opérateurs relationnel noms Strictement inférieur = Tnférieur ow €gal > Sirictement supérieur ‘Supérieur ou égal = Egalté = different Comme exemple ona : x1,x2: ENTIER I : LOGIQUE L’action suivante est correcte L— x1=x2 En entrée le verbe util LIRE(iste d’expression de type simple) Les structures de contréles fondamentales Les ENTREE/SORTIE : les primitives d’entrée/sortie vont permettre d’assurer le transfert de constantes entre l’algorithme et une unité périphérique quelconque. Pour instant nous nous limiterons au cas out l’unité périphérique est 1’écran-clavier. é est LIRE. Sa syntaxe est On distingue trois structures de contréle fondamentale : la séquence, lalternative et rative. = La séquence : elle a pour effet de séquencer dans le temps deux actions. Syntaxiquement on utilise le point virgule (;) comme séparateur d’actions (action! ; considérons I’algorithme suivant. action2, exprime que action 1 s'exécute avant action 2). En guise d’illustration jcateur ; [ ALGORITHME iden a oe “athe ltrs A.B,C,D {AT1;Be3; COASB;DOAB; AM—C#2B ; BOCHB; COA*B ; De B+D; AK D*C Dans I'algorithme précédent la demniére action n’est pas suivie de point virgule Puisqu’aucune action ne vient en séquence. Par ailleurs on a pris la précaution de utiliser aucune donnée dans une expression qui n’ait un contenu au préalable (soit Par initialisation soit par calcul). Pour voir la séquence des opérations on construit le tableau de simulation qui permet de suivre le déroulement successif des états des données de Palgorithme (le dernier état sera état des résultats). A B\C |D 1 3 4 2 DOe 70. 5 350 On voit bien que l’algorithme calcule effectivement les contenus de A, B,C, Da Partir de A et B, mais ne donne aucun moyen de s’en apercevoir. Il est judicieux, de terminer le traitement par une instruction ECRIRE, De méme les calculs étant toujours réalisés pour les mémes contenus, il peut étre intéressant de rendre algorithme plus général en remplagant les instructions d’initialisations par une instruction LIRE, Soit : ALGORITHME identificateur ; A,B,C,D. : ENTIER; { LIRE(A,B) ; C—ASB ; De—A-B ; A—C+2*B ; B—C+B; C—A*B ; D— B+D; Ae DC ECRIRE(A,B,C,D) * Cette organisation des traitements est une bonne structure de calcul : en effet chaque fois qu’il est possible de rassembler toutes les initialisations au début, de terminer par toutes les opérations d’affichage et entre les deux la partie calcul vous créez une disposition qui peut apporter de la clarté et de la lisibilité 4 votre algorithme. alternative : Supposons qu’on ait deux actions : action| et action2. On voudrait a partir de I’évaluation d’une expression logique condition exécuter exclusivement Pune ou l'autre. La syntaxe est : ~] Sl (condition) ALORS action! SINON action2 —I Une illustration est donnée par l’exemple qui suit. ‘SI (x <= y) ALORS xeoxty SINON xex-y Une variante alternative au cas oi action2 est vide, en d’autre terme, on voudrait juste exécuter une action si une condition était réalisée. La syntaxe suivante est admise et s’appelle la conditionnelle : SI (condition) ALORS action1 Remarquons que, dans le cas oi action! ou action 2 est composé de plusieurs actions, un probléme de syntaxe peut se poser. Cependant, si nous avons besoin de faire considérer syntaxiquement un groupe d’action comme une seule, ¢ cela peut étre réalisée par la primitive dite de blocage d’actions (on met toutes les actions concernées entre accolade) : ‘SI (condition) ALORS { action!1 ; action 12 ; action13 } ‘SINON {action21 ; action22 } Litérative : comme son nom l’indique, on dispose d’une action (élémentaire ou bloquée) : action et d’une expression logique : condition. La phrase suivante : TANT QUE (condition) FAIRE action 66 A pour effet d’exéeuter action autant de fois que nécessaire et dene s'arréter duc st condition bascule a FAUX. Action peut n’étre exéeuté aucune fois (si dés le d€part condition est FAUX) ou plusieurs fois, ce qui implique que dans action des opérations sont prévues pour faire basculer & un moment donné condition & FAUX sinon on aurait un traitement infini ce qui n’est pas algorithmique. Une variante de ert : LA REPETITIVE : supposons qu'on veuille que action soit faite au moins une fois ftuation qui rire : avant de rentrer dans une itérative, situation qui est courante. On peut éc - / Action ; \ TANTQUE (condition) FAIRE action | Une syntaxe est prévue pour ce cas REPETER action JUSQUA (condition) Action est exécutée au moins une fois ensuite condition est évaluée. Si condition est VRAI le processus est arrété sinon Mitération est reprise. On remarquera que le sens du test d’arrét est contraire a celui de l’itérative et par construction action est faite au moins une fois. Si action est composée de plusieurs il n’est pas utile de le bloquer Puisque REPETER JUSQUA joue deja ce réle : formellement il n’y’a pas dambiguité. Une caractéristique de ces deux ordres d’itération est qu’on ne connait pas a priori le nombre de fois qu’i faut exécuter action. Lorsque ce nombre est connu, on utilise la variante : BOUCLE : | POUR identificateurcexpression initiale JUSQUA expression finale FAIRE action dentificateur va jouer le rdle de compteur, il doit done étre dun type simple énumérable et ordonné, d’oti pour le moment ENTIER, CARACTERES, et LOGIQUE ; traduisons cette variante en utilisant TANT QUE avec la convention suivante succ(identificateur) dépend du type de identificateur est la constante successeur dans |’ ordre correspondant au type de l’identificateur. identificateur-expression initiale ; TANTOUE (identificateurrexpression finale) FAIRE. { action ; | identificateur-suce(identificateur) | Exemple d’écriture d’algorithme sous forme dorganigramme Organigramme NON, NON, affiché pas solution affiché x et %2 Application ; Eerie l'algorithme (en utilisant un organigramme) de la résolution d’un systéme linéaire de deux équations & deux inconnues par la méthode de Cramer (ou des déterminant) Pseudo-code Notre pseudo-code pour la résolution de I’équation du second degré se présente sous la forme une procédure appelé POLY2-SOLVE. Elle prend comme paramétre un tableau ....qui contient les coefficients dune équation du second degré & résoudre = Analyse des données en entrées et sortie, méthode de résolution, écriture de Palgorithme ‘Traduction dans pseudo-code ou langage de description des algorithmique (LDA) III. Les langages de programmation 1, Le langage machine 0 ‘Un ordinateur ne “’comprend’? qu’ 1 dit | e machine (de premiére iprend’” qu’un seul langage dit langag Qf Bénération) que son unité de controle est capable d’analyser et d’exéeuter: C'est Te langage ui se situe au niveau le plus bas et ses caractéristiques sont celles vue préeédemment, 2. Le langage d’assemblage ‘Vue la complexité des langages machines, les constructeurs ont développé un autre type de langage dit langage d’assemblage (deuxiéme génération) moins ésotérique et plus facile & Utiliser. 11 est constitué de la maniére suivante + © Toute instruction machine est représentée par une et une seule instruction en langage assemblage. : © Les codes opérations qui étaient binaires dans le langage machine deviennent mnémonique, exemple : ADD au lieu du code binaire de I’ addition | A © Les adresse des opérandes ne sont plus gérer par leur valeur numérique mais par des symboles qui les représentent qu’on appelle identificateurs. Par exemple pour réaliser Vinstruction X = A+ B on pourrait avoir : ADD A,B,X ce qui est plus parlant. Ce programme ne sera pas directement exécutable car il nécessite une phase de traduction en langage machine. L’utilitaire chargé de cette traduction est appelé assembleur. Programme Programme en ASSEMBLEUR en pangagsl a, Se a | eae assemblage d'assemblage 3. Les langages évolués © Les langages de troisiéme génération: ces langages se rapprochent des langages naturels mais sont définis par des régles de grammaires précises. Elles ont facilité la conception et la programmation et ont permis un développement fulgurant de la science informatique (en se détachant de la machine par leur universalité) et de la faciliter d’utilisation des ordinateurs. L’informatique devient d’un accés beaucoup plus aisé et tous les domaines des sciences humaines sont touchés. Les langages de quatriéme génération : environnement logiciel offrant des outils prét 4 Pemploi que I’on peut aisément utiliser pour concevoir une application, un projet, etc. La programmation reste bien sir algotithmique mais elle s’éléve & des niveaux abstraction plus proches des méthodes naturelles de- résolution qu’un utilisateur adopte face 4 un probléme. Un programme n’est plus uniquement un processus (composition d’instruction) permettant de faire passer les données (manipulées par ces instructions) d’un état d’hypothése (entrée) a un état de conclusion (résultat) mais plutét abstrait a étre une collection d’objets (entité représentant une catégorie quelconque d’informations caractérisé par son état (ses données) et sont comportement (les traitements spécifiques qu’elle peut réaliser) s’envoyant des messages (demande d’informations) en vue d’amener le systéme a un état désiré. Chapitre Girrocéaure et Fonction je, il faut éviter la rech Jnoses a la fois et 4 ren! irecte Jution ce qui - erche directe de la soluio? fons. Si un probléme apparait difficil rer trop vite dans le détail des actio aménerait a penser A plusieurs ¢! . Bien au conta ila 1g oaité ensuite de Te moreter G le go, 1, Diapprécie le probleme lémes maitrisables (représen! iser ou de leraffiner) en des Sous Pre vt représenter une difficulté dele fatrsr ou dealin) oy doit represent ; fonction du probléme analysé) pe dans Wordre de leur duns fe résolution du probleme de départ) dans leur fonction li exécution. 2. De spécifier les sous probléme probléme et de procéder & une val 3. Reprendre chacun de ces sous problém méme principe. identifiés, de décrire leur utilisation dans la solution du lidation & cette étape. es spécifiés par un énoncé en leur appliquant le , ‘a " . r soe ta ‘ . tre liés par un enchainement Quoique les sous problémes soient indépendants ils doivent ane fe a x va résolution d'un iculier : i Jéme. Par exemple, si le problé F Pe sal var ole Ae Gauss, on peut le factoriser en les sous-problémes suivants : = Lecture de la matrice - Lecture du second membre = Triangularisation de la matrice ~ _ Résolution dun systéme linéaire - _ Affichage des solutions Au concept de sous programme point de départ d’une étape de factorisation nous allons faire correspondre celui de ressources actions. Syntaxiquement une ressource action va avoir la méme structure qu’un algorithme. Elle contient ses propres ressources (données et actions) et son traitement mais sera activé dans la partie action de la ressource pére. Comme toute ressource, les ressources actions sont décrites formellement dans la partie description des ressources et sont utilisées dans la partie description des actions. Elles ont plusieurs formes : ~ Procédure sans paramétre : la syntaxe d’une procédure (ressource action) est la suivante. PROCEDURE identificateur de la ressource 5 corps d’un algorithme Ainsi, une ressource action est nommée par un identificateur et la structure d’un. algorithme devient : ‘ALGORITHME identificateur 5 Liste des identificateurs : type PROCEDURE identificateur ; Description des ressources propres (données et actions) { description du processus opératoire de la ressource action us { description du processus opératoire de l’algorithme }. : : ithme principal, \a partie Lalgorithme utilisant les procédures est appelé algorithm Pa iss woue description des actions est appelée partie principale. De 1a mé 1 procédure pouvant contenir des procédures comme ressources propres 5 Eee partie principale. Une partie principale comprend un ou plusieurs appels de proc - qui se font en nommant la procédure concernée, Tout se passe comme si la Pe ie principale de la procédure nommée s’insére 4 l’endroit de Pappel : on dit qu’elle est activée. h Pour faciliter la lecture d'un algorithme, le LDA nous permet de décrire une procédure 4 I'extérieur de l’algorithme principal mais en indiquant dans les parties description des ressources correspondantes les entétes de leur description suivi du bloc de description des actions vide: ce que I’on appelle prototype. Par exemple on peut avoir : ALGORITHME pp PROCEDURE pl ; } PROCEDURE p2 5 {) { partie principale de l’algorithme 1. Procédure avec parambtres: dans la partie description des ressources on utilise la syntaxe PROCEDURE (description des ressources paramétres formels) ; corps dun algorithme ; Od paramétres formels désigne les données identifiges dans la description des paramétres lors de la description de la procédure. Une description de paramétres formels est une séquence de description d’une liste de parametres formels d’un méme type. Les paramétres réels (ou effectifs) sont les données passées lors de I’activation de la procédure, ils peuvent varier d’un appel a l'autre. Les paramétres réels se substituent aux parametres formels en respectant "ordre par lequel ils ont été décrits. Les fonctions : la fonction est une procédure particuliére pour laquelle on privilégie un résultat spécifique condition quril soit unique et de type simple. Ce résultat unique sera constitué par le nom de la fonction au lieu de figurer dans la liste des paramétres formels. La syntaxe d’une fonction est la suivante FONCTION identificateur : type simple ; Corps d’un algorithme FONCTION identificateur (déclaration des paramétres formels) : type simple ; Comps dun algorithme Ainsi, on assimile le résultat de la fonction 4 son nom. Par conséquent dans la description formelle de la fonction il doit y avoir au moins une action lui donnant le contenu résultat du traitement. L’appel d’une fonction se fait en invoquant directement son nom dans une expression utilisant le résultat de maniére correcte et en passant éventuellement tous les paramétres réels. En d’autres termes la fonction rendra une valeur qui peut étre utilisée pour initialiser une autre variable ou dans une expression de méme type. EXERCICES 1. Ecrire une fonction qui donne le maximum de trois nombres réels 2. Ecrire une fonction qui calcule le nombre de combinaison Chapitre 1, Types complémentaires . a a. Le type simple construit par énumératior avons la possiilité de construire des tyPes nous t ‘es dites constantes scalaires par la es simples déja vu, s tes constantes créé En plus des quatre ty — différent simples propres en énumérant les syntaxe suivante Constante sce 7 c Exemple LUNDI, MARDI, MERCREDI, JEUDI, VENDREDI, SAMEDI, DIMANCHE} ‘SEXE=(FEMININ, MASCULIN) Si JI et 12 sont de type JOUR, on peut utiliser simples, toutes les opérations habituelles sur les types =I If (J1 Exemple S$: SET OF JOUR Les opérations suivantes sont possibles : opération L’affectation | = | S :=[lundi, mercredi, jeudi] ; s:=(](..) Liintersection | * | [1..56}*[34..76] vaut | 134.56] Lunion + | (11.34}4{1..34] vaut [1 .. 34) Ladifférence | - Légalité = _|Sl=s2 L’inclusion < | Si100 then else z =0; 85 Simulation ou exécution pas Pas Mi. Dans instruction while .do, expression est un préicat (expression contenant des variables, Prenant la valeur vrai ou faux), le blocs représente soit une instruction simple, Begin [x10 [xvaut 10 I y vaut 40 if > 100 then zy | y>100 est false ebez done 2-0 "| 220 est true done’ y vaut 0 x vautO [Ala fin: x= en See eta Instruction d’itération while ... do soit une instruction composée (begin ... end). Exemple —(wtte |-[eaprveston |-{ao)- instruction |—- Cest une instruction de bouele. Tant que expression reste vraie, le bloc Téexécuté. Dés qu’elle est fausse while ... do s'aréte. Program TantQueFaire Var xy: integer begi xl y:-0; while x<4 do | begin x=xtl] ysytx end; writeln(‘x=",x,'y= Le programme affiche x=4 y=9 6 Simulation ou exécution pas a pas Begin lo x vaut T 7 Taw WhieNa de 3 atinedne | aaetine dns rene done —_—| Begin ‘x Vaut x#1 soit 2. X aut x+1 soit 3 7 vaut x+T soit 4 ‘ety vaut y+x soit 2 ‘ely vaut y+x soit 5 ‘ety vaut y4x soit 9 Te programme eit o—ty-9 | IV. _ Instructions d’itération repeat ... until oe . cai i t des Dans I’instruction repeat ... until ; 'expression est un prédicat (expression contenant . . 1 . é i lite variables, prenant la valeur vrai ou faux), le bloc représente soit une su instructions simples. — repeat |—[instruction C’est une instruction de boucle, expression |— Sémantique : ~ Tant que "expression reste fausse, le bloc d’instruction est réexéouté = Ds que l’expression est vraie le repeat ... until s’arréte. C’est une boucle non finie (c’est a dire que I’on ne peut pas connaitre dans les cas de figure si une boucle quelconque de ce type s’arrétera aprés un nombre fini d’exécution). Remarque La différence avec le while ... do réside dans le fait que le repeat ... until exécute toujours au moins une fois le bloc d’instructions avant d’évaluer l’expression booléenne alors que le while ... do évalue immédiatement son expression booléenne avant d’exécuter le bloc @ instruction Exemple program RepeterJusqua var x,y : integer ; y=ytx; until x>=4 ; 87 Le programme affiche x=4 y=9 Simulation Begin _ a Tat _ [= yaa _| c ea One din eepeat restive doe Begin 7 Firaon F* Wraton 3 Wraton Sone KvaaTAT SOAP | Gone Na SOAS | x vat ST Sy va FRRGORT | ayautyresais | Ay aay ASOD Pale pata ibe Pat ene dene ae Te poganne ty Ce programme fournit le méme résultat que celui de la boucle while ... do, car il y’a une correspondance sémantique entre ces deux boucles : repeat until ; | L while not do | V. Instruction ditération for ... do C’est une instruction de bouele, il y a deux genres d’instructions for (for ... to et for ... downto) : —{ for | [ienticatour|—(== )— expression ‘o\—— emia) instruction | |__expression (ae) _to do : Version for: ou <[dentificateur> est une variable qui se dénomme indice de boucle et sont obligatoirement des expressions du méme type que la variable indice de boucle ‘Sémantique L’indice de boucle prend toutes les valeurs (par ordre croissant ou décroissant selon le genre de for) comprise entre et bornes incluses. Tant que la valeur de boucle ne dépasse pas 88 Par valeur supérieure dans le cas du for ... to ; + Ou par valeur inférieure dans le cas du for .... downto ; la valeur de , le bloc d’instruction est réexécuter. C’est une boucle finie Exemple : Program PourFaire var xy: integer begin y=0; for x:=1 103 yayt3 end. Simulation yvaut 0 7 ieraion iation $F iration forx:=1to3 do x vaut 1 xvaut 2 x vaut 3 yisytx [y vaut OF1=1 y vaut 142-3 y vaut 3436 end. Ala fin : x=4, y=6 89 ] 1 Chapitre Introduction a turbo pascal UL. Structure simpli iée d’un programme Turbo Pascal | Program caleul — | {c*est un programme qui calcul...) | | Uses crt ; | Var {déclaration des variables) ; Procedure proc (parametres) ; var {déclaration des variables locales} ; | begin | | {Bloc principale de la procédure} : end; functionfunc (parametres) ; begin {bloc de la fonction} ; end; begin {bloc principal du programme avec appel des procédures et fonctions} ; end. L Il. Probleme d’affichage de certains caractéres dans I’éditeur Turbo Pascal lest fort possible, malgré le passage avec suecés du clavier en AZERTY ue yaus ne puissiez produire aucun des caractéres accessibles par combinaison avec la to ; Pour contourner ce probléme génant, on utilise les codes ASCII des caracteres, que Ion tape aprés avoir enfoncé la touche Alt. Codes ASCII Caractéres codes # Alt-35, @ Alt-64. \ Alt-92. [et] Alt-91 et 93 a Alt-94 {et} Alt-123 et Alt-125 1 Alt-124 tilde Alt-126 IV. Les types scalaires prédéfinis —— Type entier reel Codage a0 [6 short int =128..127 . octets, 2 410" Integer —32768..32767 Tosteis_| single Ae + Tong int | —2147483648..2147483647 | 4 octets _| double et 10 Byte 0.255 Toctet | extended | 1.9107". -1- Word 0.65535 re boolean | Prend les valeurs Toctet | char a Vrai ou Faux ‘salut... —— V. _ Les fonctions standards du Turbo Pascal eee Fonction Syntaxe Fonetions syntaxe ‘Valeur absolue ‘Abs(x) Parite entire | int(x)____— Cosinus de x Cos(x) ‘Sinus de x. sin(x) ‘Valeur der Pi ‘Are tangente de x arctan(x) Exponentielle dex | Exp(x) Logarithme népérien | In(x) Racine carré ‘Sqrt(x) Le carré de x sqr(x) Partie entiére dex | Ini(x) x-int(x) frac(x) ‘Arrondi ala valeur la | Round(x) ‘troncature frune(x) plus proche Rendre le code ORD(

Vous aimerez peut-être aussi