11 septembre 2007
Etapes de la journée
* 4 heures de théorie (introduction à Cobol, explications de quelques règles, historique, etc ...) : Cf Polycopié "Introduction à Cobol" + Syntaxe, clauses, etc ...
* 4 heures de programmation
Documents fournis
* Introduction à Cobol : impressions écran du fichier PAO
* Syntaxes, etc .. de Cobol (gros polycopié de 34 feuilles environ)
* Exemples de programmes Cobol (polycopié vert)
* Exercices (polycopié bleu)
Notes
A l’époque de l’arrivée de Cobol, nous avions 2 langages : * langage machine (assembleur ou similaires) * langage orienté homme, dits langages évolués (exemple Cobol)
Deux modes d’utilisation d’un ordinateur/machine : * Interactif (nous sommes devant) * Automatisé : traitement par lot (=batch)
MVS est un système d’exploitation, aujourd’hui nommé ZOS, c’est le système utilisé par IBM.
Mainframes : Très très grosses bécanes, dans des salles blanches.
Schéma des différents langages de programmation
CICS = Système de transaction (gestion des grilles)
DB2 = Base relationnelle d’IBM
Fortran = traducteur de formules
PL/1 = Program Language the First (ce n’était pas le premier langage de programmation, mais IBM a toujours vu grand, et ne connaissait pas la modestie)
K/R = Karigan & Ritchie
L’ASCII est un code à 7bits, mais comme l’ordinateur n’apprécie pas les chiffres impairs, on code sur 8 bits.
ASCII
Apprendre par coeur l’ASCII
Trucs & Astuces :
* Lettre A majuscule commence à 41
* Lettre a minuscule commence à 61
* Chiffres commencent à 30
* Espace = 20
* + = 2B
* - = 2D
* NULL = tout les bits à zéro
Lettre I = 49H donne 0100 1001 en binaire (4 puis 9).
Pour avoir la lettre i minuscule, on fait : 0110 1001
Donc le 3ième bit est celui des majuscules minuscules.
Et que se passe t il lorsque nous appuyons sur Ctrl + I ?
Le système inihbe la position 2 et 3 du premier octet.
Expressions
Littéral = une constante
Alphanumériques = chaîne de caractère
Divisions d’un programme
Un programme est subdivisé en 4 DIVISIONS distinctes :
- IDENTIFICATION DIVISION : Nom du programme
- ENVIRONNEMENT DIVISION : Configuration et Assignation de fichiers
- DATA DIVISION : Structure de données
- PROCEDURE DIVISION : Instructions
Autre
Une variable c’est trois choses :
- Un identifiant de variable
- Un type (char, string, etc …)
- Une valeur
Abréviations
ANSI = American National Standard Institute
DIN = Deutsches Institut für Normung
ISO ###### International Standard Organisation > mondial
AGL ###### Atelier de Génie Logiciel > fond des émulateur, appelé Workbench
ASCII = American Standard Code for Information Interchange
CCITT = Comité Consultatif International Téléphonique et Télégraphique
Dirigé par l’UIT (à Genève) = Union Internationale des télécommunications
EBCDIC = Extended Binary Coded Decimal International Code
ASCII
SOH = Start
BS = Backspace
HT = Horizontal Tabulation
CR = Cariage Return (retour chariot)
Exercices
Pour les exercices se référer à la feuille bleue fournise avec le cours.
Aujourd’hui a été effectué le premier exercice, à savoir : Vérifier la validité d’un code INSEE.
Code INSEE
Le but est simple : entrer un code INSEE (carte vitale) dans le programme Cobol, et en ressortir une validité ou pas dudit code.
A vérifier :
* Premier chiffre : 1 ou 2 (1######Homme, 2Femme)
* Second et troisième chiffre : Aucune vérification à faire
* Quatrième et cinquième chiffre : Compris entre 1 et 12 inclus (rien d’autre)
* Sixième et septième chiffre : Département, entre 01 et 99 (sans le 96 OU 97, et en remplaçant la corse 2A par 19 et 2B par 18 pour le calcul de la clé de contrôle)
* Huitième à dizième chiffre : Aucune vérification nécessaire
* Onzième à treizième chiffre : Aucune vérification
* Clé de contrôle : Pour vérifier la validité de la clé de contrôle (et donc de tout le chiffre), procéder ainsi :
* Prendre les chiffres 1 à 13
* Faire le modulo 97 de ce chiffre
* Prendre le reste
* Retrancher ce reste à 97
* La clé de contrôle est identique à cette différence.
Exemple :
1 83 04 67 180 035 52
52 = 97 - (1830467180035 Modulo 97)