1.2 ENVIRONMENT DIVISION.



Vergelijkbare documenten
Programmeren in COBOL. Sephiroth

Sequentie. Methode voor het ontwerpen van een programmastructuur

Zelftest Programmeren in COBOL - deel I

Department CURSUS COBOL 2 E JAAR DEEL 1

EMBEDDED SQL. Inleiding. Queries en update-opdrachten. Embedden en hostvariabelen

Zelftest Inleiding Programmeren

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at

Waarden persistent (blijvend) opslaan gaat in bestanden (files). Lege tekst: eof

PROS1E1 Handleiding ( ) Kf/Dd/Bd

In deze aflevering van deze serie zal ik proberen een groot gebrek van Turbo Pascal weg te nemen, namelijk het gemis aan Random Access Files.

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

Handleiding RS Form! 1.0.4

IF condition THEN {statement-1} ELSE NEXT SENTENCE NEXT SENTENCE END-IF J N C1 C2

Rapporten. Labels en Rapporten in Atlantis 1. Atlantis heeft twee manieren om output te genereren: 1. labels 2. rapporten (reports)

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.

Programmeren met Arduino-software

BLOK 3 HOOFDSTUK 8 PARAGRAAF 2

HomeOffice to ASCII Teksten converteren

De keuzestructuur. Versie DD

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

VBA voor Doe het Zelvers Deel 7

Sequentiële Logica. Processoren 24 november 2014

How To (company) Hieronder volgt een uitleg welk veld zie ik met een aantal scherm voorbeelden: Scherm beeld # 1. Invul tips: Link aanklikken

Persistentie via bestanden. Bestanden

Handleiding Projectplanningsdocument

Dit document is bedoeld voor relaties die al gebruik maken van Tax EKA.

Dynamische gebruikersbeslissingen in SAP Workflow

2 Invoeren project. 2.1 Procedure. 2.2 Instellingen

Bijlage 1. Access VBA code voor het maken van barrièrebestanden.

MS Project Wijzigingen in de planning door Progress mutaties Auteur: S. van Beek. Copyright

Vaak wil je een code schrijven, waar je verschillende acties uitvoeren voor verschillende beslissingen. Je kan daarbij keuzestructuren gebruiken.

Update documentatie. KraamZorgCompleet versie 3.3. KraamzorgCompleet versie 3.3

Macro s. 4.2 Een macro maken

CARGO DATA SYSTEMS BV

SI-Profinet. Unidrive M200-M400 en Siemens S PLC (TIA portal)

Pascal uitgediept Data structuren

Gebruikershandleiding

Deel 2: Endnote bibliografische software gebruiken als databasemanager en editor

In het CMS is het mogelijk om formulieren aan te maken. Voorafgaand een belangrijke tip:

Handleiding voor het maken van een online enquête formulier. Google Drive toepassing

n o F o r t h voor MSP430 Launchpad 1. Memory map Er zijn twee ROM gebieden (alle getallen zijn hex): , verdeeld in vier blokken van 40

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens

Widget Tip van de dag!

STRABRECHT COLLEGE WORDPRESS WEBSITE

Voorbeelden. Sorteren. Voorbeeld: n = 5. # intsort.py: sorteren van een rij getallen

Besturing van de Miniatuurwereld OC32. Apparaatdefinities Servo s en gerelateerde zaken

Bitrix Site Manager gebruikershandleiding BureauZuid

PayCheckout Magento module

Dealer instructie. SE serie 2008 versie 009

Etiketten maken en printen (word 2010).

Handleiding AVANCE Service desk. (ticketing portal)

Gift & Loyalty card. User Guide v2.1 NL Schema Eigenaar. Laatste update : Mei 2014

ADRES 2000 VOOR WINDOWS

UBizz-UBizz Exchange For more information visit our website at

Vakgroep CW KAHO Sint-Lieven

AFO Uitvoeren drukwerk

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

Handleiding : Opdrachten vanuit Excel

Zelftest Programmeren in PL/I

Werken met Winzip. Auteur: Pierre Gorissen Kenmerk: Gor00-WinzipV01

sportadministratie Hoe de kalender/rangschikking opbouwen?

Wijzigingen Universe OSIRIS Manager versie /01 mei 2012

3.4 De Wizard voor het samenvoegen

[13] Rondjes draaien (loops)

INSTRUCT Samenvatting Praktijk Access 2010, H2 SAMENVATTING HOOFDSTUK 2

Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen

Installeren van het programma Shop Pro versie 6

Handleiding Invoeren van een Catia V5R19 document in SmarTeam

Installatie MicroSoft SQL server 2012 Express

Created With ScreenSteps Trial

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen

Verschillen met PowerPoint 2007

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens

AFO Beheer sjablonen voor documenten

Oefeningen Interpretatie I Reeks 6 : Registermachines

Les 9: formulier controle met javascript.


Alure - stappenplan Importeren relaties

Opgave 2. Binaire informatie

2.ouderbeleid.3.plaatsingsprocedure werk admini Pagina 1 van 14

Hoofdstuk 9: Menu s toevoegen

de tabel aanvullen met nieuwe doseringen. Oude doseringen worden hierdoor niet verwijderd.

Handleiding Access 2010

Deze actie kadert binnen het project SOLABIO-'Soorten en landschappen als dragers voor biodiversiteit', mede gefinancierd door het Europees programma

Courbois Software. Extra categoriën toevoegen aan de WebWinkel

Sparse columns in SQL server 2008

HANDLEIDING Vectron Commander 6.xx

Transcriptie:

1 SEQUENTIAL I/O 1.1 Inleiding 1.1.1 SEQUENTIËLE ORGANISATIE (= opslagstructuur) Begrip record: Elk record heeft een vaste voorganger (behalve het 1ste record), elk record heeft een vaste opvolger (behalve het laatste record). Deze relaties worden tijdens de bestandscreatie vastgelegd en zijn onveranderlijk. (Tussenvoegen van nieuwe records en laten vallen van bestaande records is niet mogelijk.) 1.1.2 SEQUENTIËLE TOEGANGSMETHODE (= access) De records zijn uitsluitend toegankelijk in de fysieke volgorde waarin ze oorspronkelijk zijn geschreven. 1.2 ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. Geeft een beschrijving van de technische aspecten van de bestanden die in het programma worden gehanteerd. FILE-CONTROL Deze paragraaf moet voor elk bestand dat in het programma wordt verwerkt een select-opdracht bevatten I-O-CONTROL. (later) Voorbeeld:... ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT artikelbestand ASSIGN TO "c:\student\1i?\naam\cobol\artikel.dat" ORGANIZATION SEQUENTIAL ACCESS SEQUENTIAL FILE STATUS artikel-status. SELECT klantenbestand ASSIGN TO "a:\klanten.dat" ORGANIZATION SEQUENTIAL ACCESS SEQUENTIAL FILE STATUS klanten-status.

DATA DIVISION. WORKING-STORAGE SECTION. 01 artikel-status PIC XX. 01 klanten-status PIC XX. 1.2.1 Bespreking van de SELECT-opdracht 1.2.1.1 SELECT (optional)(2) artikelbestand (1) (1) naam waarmee het bestand in het verdere programma wordt aangeduid (2) geeft aan dat het betrokken bestand niet aanwezig hoeft te zijn als het programma wordt uitgevoerd 1.2.1.2 ASSIGN TO "" PRINTER (zie later) Wordt gebruikt om de soort van randapparatuur te bepalen die voor het bestand wordt gebruikt 1.2.1.3 ORGANIZATION SEQUENTIAL Geeft de opslagstructuur aan (in COBOL zijn er meerdere mogelijk nl. sequentieel, geïndexeerd, relatief). Sequential is de defaultwaarde en mag ontbreken (niet aan te raden!) 1.2.1.4 ACCESS MODE SEQUENTIAL Geeft aan op welke wijze de records van het bestand in het programma benaderd worden.(sequentieel, adresseerbaar, dynamisch) De records van een sequentieel bestand kunnen alleen sequentieel benaderd worden dat wil zeggen in de volgorde van de creatie. Sequential is opnieuw de default-waarde. 1.2.1.5 FILE STATUS artikel-status Voor elk bestand wordt door de compiler een veld gereserveerd van 2 posities, waarin na elke invoer- of uitvoeropdracht wordt vastgelegd hoe die opdracht is verlopen. Dit veld is niet beschikbaar. Door de file-status-clausule geeft men echter aan dat de informatie ook beschikbaar moet zijn in een door ons aangewezen veld (veld ook definiëren in WORKING- STORAGE SECTION) Mogelijke waarden van dit veld zijn: 1 ste positie => 0 : opdracht succesvol verlopen 10 : einde bestandssituatie 01 artikel-status PIC XX. 88 EOF-artikel value 10.

1.3 DATA DIVISION FILE SECTION: voor elke select-opdracht moet hier een bestand benoemd worden. Vervolg Voorbeeld: DATA DIVISION. FILE SECTION. FD artikelbestand FD = file description moet in zone A beginnen. 01 A-artikelrecord. 03 A-artikelnummer PIC 9(6). 03 A-omschrijving PIC X(30). 03 A-eenheidsprijs PIC 9(6). 03 A-winstpercentage PIC 99. 03 A-Btwpercentage PIC 99. 03 A-aantal PIC 999. FD klantenbestand 01 K-klantenrecord. 03 K-klantennaam PIC X(30). WORKNG-STORAGE SECTION. Intern geheugen 01 artikel-status PIC XX. 88 EOF-artikel value "10". 01 klanten-status PIC XX. 88 EOF-klanten value "10". 01 I-artikelrecord. I input (klavier) 03 I-artikelnummer PIC 9(6). 03 I-omschrijving PIC X(30). 03 I-eenheidsprijs PIC 9(6). 01 O-klantenrecord. O output (scherm) 03 O-klantennaam PIC X(30). 1.4 PROCEDURE DIVISION. 1.4.1 De OPEN-opdracht Deze opdracht maakt het mogelijk om in het programma een bestand te gaan verwerken. 1.4.1.1 OPEN INPUT artikelbestand Er wordt aangegeven dat men in een reeds bestaand bestand wil gaan lezen READopdracht. 1.4.1.2 OPEN OUTPUT artikelbestand Men geeft aan dat men een nieuw bestand wil creëren. Direct na de uitvoering van de opdracht bestaat het bestand, het bevat op dat moment nog geen records: het is dan een leeg

bestand. Door het uitvoeren van de WRITE-opdracht wordt het bestand gevuld met records. Het is ook mogelijk om een reeds bestaand bestand te openen voor output. In dat geval komt het bestand als een leeg bestand ter beschikking; alle records zijn weg. 1.4.1.3 OPEN EXTEND artikelbestand Men geeft aan dat men records wil toevoegen aan het einde van een bestaand bestand; dit gebeurt opnieuw via de WRITE-opdracht. 1.4.1.4 OPEN I-O artikelbestand Men geeft aan dat men de records van een bestaand bestand wil wijzigen (muteren). Men moet de records eerst met een READ-opdracht lezen en dan met een REWRITE-opdracht op dezelfde plaats terugschrijven. Voorbeelden : Open input artikelbestand If artikel-status not = "00" Then display "Fout in bestand" End-if Open input artikelbestand If artikel-status = "00" Then close artikelbestand Open extend artikelbestand Else open output artikelbestand End-if 1.4.2 De CLOSE-opdracht Beëindigt de verwerking van het bestand CLOSE <bestandsnaam> CLOSE artikelbestand 1.4.3 De READ-opdracht Voerin (artikelbestand, A-record) READ-opdracht O-record A-artikelrecord (WS) MOVE-opdracht Voeruit (scherm, O-artikelnummer) DISPLAY Er wordt een logisch record van een bestaand bestand ter beschikking gesteld in het I/O gebied. Het bestand moet geopend zijn voor Input of I/O. READ artikelbestand AT END set EOF-artikel to true END-READ Move A-artikelrecord to O-artikelrecord DISPLAY O-artikelrecord

Variant: READ klantenbestand INTO O-artikelrecord AT END set EOF-artikel to true NOT AT END DISPLAY O-artikelrecord END-READ Opmerking: De optie AT END set EOF-artikel to TRUE kan vervangen worden door de optie AT END continue. De compiler zal de file status waarde automatisch aanpassen. 1.4.4 De WRITE-opdracht Voerin (klavier, I-artikelnummer) (WS) A-artikelrecord I-artikelrecord voeruit (artikelbestand, A-artikelrecord) ACCEPT MOVE WRITE Het WRITE-commando voegt een record toe aan een bestand. Het bestand moet geopend zijn voor OUTPUT of EXTEND. MOVE I-artikelrecord to A-artikelrecord WRITE A-artikelrecord = WRITE A-artikelrecord from I-artikelrecord 1.4.5 De REWRITE-opdracht Hierdoor wordt een record gewijzigd. Het bestand moet geopend zijn voor I/O en de REWRITE-opdracht moet worden voorafgegaan door een READ-opdracht. REWRITE A-artikelrecord REWRITE A-artikelrecord From I-artikelrecord

1.5 Opgaven 1.5.1 Opgave 12: toevoegen van records Ontwerp een COBOL-programma dat een sequentieel bestand "CDS.DAT" creërt en records aan het bestand toevoegt. CDBESTAND C-nummer PIC X(10) C-titel PIC X(10) C-uitvoerder PIC X (20) C-CDRECORD C-aantal PIC 99 C-genre PIC X(15) C-prijs PIC 9(4) C-releasedatum PIC 99/99/99 SCHERM-1 HOGESCHOOL GENT Datum TOEVOEGEN CD-RECORDS Nummer : Titel : Uitvoerder : Aantal : Genre : Prijs : Releasedatum : Wil je nog een record (CD) toevoegen? (J/N) Naam Opgave 12 1) SND O-SCHERM I-klavier P-OPGAVE12 CDBESTAND

2) Gegevensstructuren invoer uitvoer I-Klavier (1) (1) O-SCHERM CDBESTAND (1) I-record * (2) (2) SCHERM-1 * C-CDRECORD * (2) I-record: de gegevens van het record en het antwoord dat ingevoerd wordt. 3) Programmastructuur P-opgave12 B-prog BODY E-prog C1 6 8 7 V-I-RECORD * M-SCHERM-1 M-CD-RECORD 1 4 3 2 5 4) Opdrachten en condities c1) ZOLANG antwoord "N" DOE 1) voeruit (scherm, scherm-1) 2) voeruit (CDBESTAND, C-CDRECORD) 3) C-CDRECORD I-CDRECORD 4) voerin (klavier, I-record) meerdere velden 5) voerin (klavier, antwoord) 6) open uitvoer CDBESTAND 7) sluit CDBESTAND 8) antwoord "J" 5) tekststap

1.5.2 Opgave 12 b : maken van een lijst Ontwerp een COBOL programma dat van het sequentieel georganiseerd bestand CDBESTAND een lijst afdrukt op het scherm met volgende velden: TITEL, UITVOERDER, PRIJS. HOGESCHOOL GENT DATUM O-kopregels Lijst CD's TITEL UITVOERDER PRIJS O-BODY O-titel O-uitvoerder O-prijs O-regel Druk op een toets O-Eindregel NAAM OPGAVE 12b 1) SND CDBESTAND P-Opgave 12b O-SCHERM 2) Gegevensstructuren invoer CDBESTAND (1) C-CDRECORD * (2) uitvoer O-SCHERM (1) O-kopregels O-body O-eindregel O-REGEL * (2)

3) Programmastructuur P-opgave 12b M-O-kopregels M-O-Body M-O-eindregel 8 7 1 C1 9 3 4) Opdrachten en condities V-C-CDRECORD * M-O-REGEL 4 5 6 2 7 c1) ZOLANG NIET EOF-CDBESTAND DOE 1) voeruit (scherm, O-kopregels) 2) voeruit (scherm, O-regel) 3) voeruit (scherm, O-eindregel) 4) O-TITEL C-TITEL in 3 stukken, omdat er meer dan 3 velden 5) O-UITVOERDER C- UITVOERDER in het record zitten, anders wordt 6) O- PRIJS C-PRIJS het record volledig gemoved. 7) voerin (CDBESTAND, C-CDRECORD) 8) open invoer CDBESTAND 9) sluit CDBESTAND 5) Tekststap P-opgave 12b M-O-kopregels M-O-body M-O-eindregel M-O-kopregels open invoer CDBESTAND voerin (CDBESTAND, C-CDRECORD) voeruit (scherm, O-kopregels) M-O-body ZOLANG NIET EOF-CDBESTAND DOE V-C-CDRECORD-M-O-REGEL

M-O-eindregel sluit CDBESTAND voeruit (scherm, O-eindregel) V-C-CDRECORD-M-O-REGEL O-TITEL C-TITEL O-UITVOERDER C- UITVOERDER O- PRIJS C-PRIJS voeruit (scherm, O-regel) voerin (CDBESTAND, C-CDRECORD) 1.5.3 Opgave 12c Ontwerp een COBOL-programma dat van het CDBESTAND een lijst afdrukt op het scherm (zie 12b) maar nu worden telkens 10 records getoond. Telkens er 10 records getoond worden, wordt er gevraagd om op een toets te drukken om de volgende 10 te tonen. CDBESTAND 1 1 10 11 per 10 20 BEGRENZINGSCONFLICT 97 oplossen door GROEPSONDERBREKING 1) SND CDBESTAND P-Opgave 12c O-SCHERM I-klavier

2) Gegevensstructuren invoer I-klavier (1) Toets * (2) CDBESTAND (1) CDGROEP * (2) C-CDRECORD * (3) uitvoer O-SCHERM (1) O-SCHGRP* (2) O-kopregels O-body O-eindregel O-REGEL * (3) 3) Programmastructuur P-Opgave-12c B-Prog Groep-body E-Prog 8 7 C1 V-CDgroep * V-toets M-O-Schgrp 9 M-O-Kopregel M-O-Body M-O-eindregel 1 10 C2 V-C-Cdrecord * M-O-Regel 3 12 4 5 6 2 11 7

4) Opdrachten en condities C1) ZOLANG NIET EOF CDbestand C2) ZOLANG NIET EOF CDbestand en Teller <= 10 1) Voeruit (Scherm, O-Kopregels) 2) Voeruit (Scherm, O-regel) 3) Voeruit (Scherm, O-Eindregels) 4) O-titel C-titel 5) O-uitvoerder C-uitvoerder 6) O-prijs C-prijs 7) Voerin (CDbestand, C-CDrecord) 8) Open invoer CDbestand 9) Sluit CDbestand 10) Teller 1 11) Teller Teller + 1 12) Voerin (Klavier, toets) 5) Tekststap P-oef-12c B-Prog Groep-body E-Prog B-Prog Open Invoer CDbestand Voerin (CDbestand, C-CDrecord) Groep-body ZOLANG NIET EOF CDbestand DOE V-CDgroep-V-Toets-M-O-Scherm EINDE-ZOLANG-DOE V-CDgroep-V-Toets-M-O-Scherm M-O-KopRegel M-O-Body M-O-Eindregel

E-Prog Sluit CDbestand M-O-Kopregel Voeruit (Scherm, O-Kopregels) Teller 1 M-O-Body ZOLANG NIET EOF CDbestand En Teller <= 10 DOE V-C-CDrecord-M-O-Regel EINDE-ZOLANG-DOE M-O-Eindregel Voeruit (Scherm, O-eindregels) Voerin (Klavier, Toets) V-C-CDrecord-M-O-regel O-titel C-titel O-uitvoerder C-uitvoerder O-prijs C-prijs Voeruit (Scherm, O-regel) Teller Teller + 1 Voerin (CDbestand, C-CDrecord)

1.5.4 Opgave12d Ontwerp een COBOL-programma dat van het sequentieel georganiseerd bestand CDBESTAND een nieuw sequentieel georganiseerd bestand CDEURO creëert CE-nummer PIC X(10) CE-titel PIC X(10) CE-uitvoerder PIC X (20) CDEURO-RECORD CE-aantal PIC 99 CE-genre PIC X(15) CE-prijs PIC 9(4) CE-releasedatum PIC 99/99/99 1) SND CDbestan d P-Opgave-12d CDEURO 2) Gegevensstructuur Invoer Uitvoer CDBESTAND CDEUROBESTAND C-CDRECORD * CDEURO-RECORD * 3) Programmastructuren P-Opgave-12d B-Prog Body E-Prog 1 2 7 3 C1 V-C-CD-record * M-CDEuro-record 4 5 6 8 7

4) Opdrachten en condities C1) ZOLANG NIET EOF CDbestand 1) Open Invoer CDbestand 2) Open Uitvoer CDEuro 3) Sluit CDbestand 4) Sluit CDEuro 5) CE-prijs C-prijs / 40,399 6) CDEuro 'andere gegevens' CDbestand 'andere gegevens' 7) Voerin (CDbestand, C-CDrecord) 8) Voeruit (CDEuro, CDEURO-record) 5) Tekststap P-Opgave-12d B-Prog Body E-prog Body ZOLANG NIET EOF CDbestand DOE V-C-CD-record-M-CDEuro-record EINDE-ZOLANG-DOE B-Prog Open Invoer CDbestand Open Uitvoer CDEuro Voerin (Cdbestand, C-CDrecord) V-C-CDrecord-M-CDEuro-record CE-prijs C-prijs / 40,3399 CDEuro 'andere gegevens' CDbestand 'andere gegevens' Voeruit (CDEuro, CDEuro-record) Voerin (CDbestand, C-CDrecord) E-Prog Sluit CDbestand Sluit CDEuro