15-1. MONITOR IT-utbildning



Relevanta dokument
Övningar II MONITOR IT-utbildning, Cobolskolan Sverige, B2-1

Bättre COBOL. monitors. Peter Sterwe. training people

COBOL. från grunden. monitors. Peter Sterwe. training people

Övningar MONITOR IT-utbildning, Cobolskolan Sverige, B1-1

Laboration 1 Introduktion till Visual Basic 6.0

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

C++ Slumptalsfunktioner + switch-satsen

Objektorienterad programmering D2

F5: Högnivåprogrammering

Objektorienterad programmering

COBOL med DL/I, CICS och JCL. Övningar MONITOR IT-utbildning, Cobolskolan Sverige, B1-1

Java, klasser, objekt (Skansholm: Kapitel 2)

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

F5: Högnivåprogrammering

Ordlistor, filhantering och ut på webben. Linda Mannila

Föreläsning 6 pekare och pekare tillsammans med arrayer

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

Språket Python - Del 2 Grundkurs i programmering med Python

Föreläsning 6: Introduktion av listor

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

Uppgift 1 ( Betyg 3 uppgift )

Tentamen i Introduktion till programmering

Övningar MONITOR IT-utbildning, Cobolskolan Sverige, B1-1

Tentamen Programmeringsteknik för BME, C, D, E, F, I, N & Pi

Introduktion till arv

*Pekarvärden *Pekarvariabler & *

Laboration: Whitebox- och blackboxtesting

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Övning från förra gången: readword

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

Testning av program. Verklig modell för programutveckling

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Komponenter med COM (och COM+/VC++ 7.0)

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Kapitel 4 Arkivmenyn Innehåll

z/os JCL och Utilities

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Statistik över heltal

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Tentamen, EDAA20/EDA501 Programmering

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

DL/I programmering. från grunden. monitors. Peter Sterwe. training people

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

Objektorienterad programmering i Java I

Kopiering av objekt i Java

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander

Dubbelklicka på det erhållna programpaketets ikon för att starta installeraren. Du visas därefter följande:

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Tentamen *:58/ID100V Programmering i C Exempel 3

Instuderingsfrågor, del D

CPU. Carry/Borrow IX. Programräknare

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

Föreläsning 5-6 Innehåll

Objektorienterad programmering i Java

Programmeringsteknik med C och Matlab

Föreläsning 18 Filer och avbildningar

PROGRAMMERING-Java TENTAMINA

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

ENTRÉ DOKUMENTHANTERING...

Övningsuppgifter kapitel 8

Chapter 3: Using Classes and Objects

Grundläggande programmering med C# 7,5 högskolepoäng

4.4 Swing ett interaktivt grafiskt gränssnitt

Objektsamlingar i Java

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

Minnestilldelning (allokering) och frigörande (avallokering) av minne

Föreläsning 4 Programmeringsteknik DD1310. Felhantering. Syntax. try och except är reserverade ord som används för hantering av exekverings fel.

TUTORIAL: KLASSER & OBJEKT

Föreläsning 3-4 Innehåll

OOP Objekt-orienterad programmering

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Sortering. Om du följt dessa steg korrekt så ska böckerna nu vara sorterade.

TDDC74 Lab 04 Muterbara strukturer, omgivningar

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

Objektorienterad programmering

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Frakt och webbutiksinställningar

Tentamen i Grundläggande programmering STS, åk 1 lördag

1 Funktioner och procedurell abstraktion

Programbeskrivning. Chaos på Web. Version

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

Lösningsförslag: Instuderingsfrågor, del D

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

Rekursion och induktion för algoritmkonstruktion

Transkript:

Sortering 15-1

Sortering I detta kapitel skall vi ta en titt på hur vi kan använda sorteringsprogrammet från ett COBOL-program, s.k. internsortering. 15-2

Sortering 15-3

Sortering Vid sortering så finns det alltid en osorterad INFIL och en sorterad UTFIL. När sorteringsprogrammet anropas från COBOL, kan det göras på liknande sätt som vid en BATCH-sortering; sorteringen baseras på sorteringsuttryck och samtliga poster sorteras. Vid en COBOL internsortering så läser COBOL-programmet poster från den osorterade filens i en Input Procedure och kan där avgöra vilka poster från den osorterade infilen som skall överlämnas till sorteringsprogrammet. Alla poster behöver ej släppas (Release) till sorteringsprogrammet, utan kan helt enkelt förkastas. Posterna kan även förändras innan de överlämnas för sortering. När sorteringen är avslutad hämtar COBOL-programmet varje sorterad post i en Output Procedure, (Return) och där kan du avgöra vad du vill göra med den sorterade posten; kanske skriva till den sorterade utfilen eller hanteras på annat sätt. Möjligheterna med en internsortering är stora. 15-4

Sortering Sorteringsprogrammet kräver en sorteringsfil, en virtuell fil, som bara används under själva sorteringen. Alla filer som används vid sorteringen måste beskrivas i COBOL-programmet på vanligt sätt med Select och FD, men sorteringsfilen beskrivs med ett SD-uttryck. Denna innehåller beskrivning av sorterade poster 15-5

Sortering Programmets infil och utfil beskrivs på vanligt sätt med Select- och FD-uttryck. Sort använder en tänkt arbetsfil vid sorteringen som beskrivs med Select-uttryck på vanligt sätt, men den har en Sortfile Description, SD i stället för FD. I dess postbeskrivning så skall samtliga sorteringsnycklar finnas beskrivna. Dessa kommer senare att refereras i ett Sort-verb. Filen behöver EJ allokeras med JCL vid exekvering av programmet. 15-6

Sortering Sort-verbet används för att starta själva sorteringen. Den sortfil (virtuell sortfil) som refereras innehåller beskrivning över de sorterade posterna; nyckelvärden och övrig data. Sort kan ange flera sorteringsnycklar (Key) med olika sorteringsordning. I Sort-uttrycket anges om posterna skall hämtas från en fil (Using) eller om en procedur skall ges kontrollen (Input Procedure) innan sorteringen alternativt om posterna skall skrivas till en fil (Giving) eller om en procedur skall ges kontrollen (Output Procedure) efter sorteringen. Input-Procedure används om du vill kunna ta hand om en post innan den är sorterad. I denna procedur kan du förändra postens innehåll innan den skickas för sortering, eller helt förkasta den; den kanske inte skall vara med i sorteringen. Du måste själv läsa posterna från den osorterade filen i denna procedur. Using används om du vill använda den osorterade infilen utan förändring. Output Procedure används för att ta hand om sorterade poster. Här kan du själv avgöra vad du vill göra med de sorterade posterna. Om du vill skriva till en sorterad fil så gör du det i denna procedur. Du kanske bara vill göra en utskrift av posten och då gör du det här. Alternativ kan vara att du vill spara den på annat sätt, kanske i en intern tabell. Giving används när du inte vill hantera sorterade poster själv, utan låta sorteringsprogrammet själv skriva till filen. Notera att du kan använda antingen Procedur eller fil för både indata och utdata. När du använder Using eller Giving så öppnar och stänger COBOL dessa filer automatisk, men när du använder en procedur så måste du själv öppna och stänga filen, samt även läsa och skriva. 15-7

Sortering I detta exempel så sker en helt vanlig sortering på nyckel med namnet Sortfil-Namn. 15-8

Sortering Sortfil, som är den tänkta filen som skall sorteras, är beskriven med en SD i Data Division. Här finns en exakt beskrivning av posterna. Denna sorteringsfil måste förses med poster. Detta kan göra genom att beskriva Using filnamn i Sort-verbet. Då används de poster som finns i denna fil utan förändring. Om du behöver göra ändring av de poster som finns i denna fil, så kan du använda en Input Procedure. I denna procedur får du själv läsa poster från indata-filen, analysera innehållet och kanske förändra eller förkasta. För att överlämna posten till COBOL för sortering använder du COBOL-verbet Release. Du behöver inte ha en Infil utan data kan hämtas från en annan källa. Det kan t.ex. vara från en intern tabell, men du överlämnar poster för sortering med Release. Sorterade poster kan skrivas till en Utfil utan förändring efter sorteringen. Då anger du Giving i Sort-verbet. Om du själv vill ta hand om de poster som COBOL har sorterat, dvs innehållet av Sortfil, så kan du ange en Output Procedure. I denna procedur hämtar du själv sorterade poster, en efter en med verbet Return, och behandlar dom hur du vill. Om du vill skriva till Utfil så kan du göra det, men posterna kan givetvis placeras på annan plats. Det kan t.ex. vara en intern tabell med sorterat data. 15-9

Sortering I inputproceduren används Release för att frisläppa en post till sorteringsprogrammet. Varje Release ger en (1) post, så du måste ha en slinga för att hämta osorterat data och sedan gör Release för varje post. Den fil du har som en osorterad fil måste hanteras som andra filer; den måste öppnas och sedan läsas. I exemplet ser du en slinga som läser samtliga poster från filen Sortin. I villkoret Not At End kan du analysera posten och avgöra om den skall förändras eller ej eller kanske förkastas. 15-10

Sortering I en Ouput Procedure hämtar du poster från den sorterade filen med Return. Du gör detta i en slinga och använder villkoret AT End för att förstå när det inte finns fler sorterade poster att hämta. Om du vill skriva den sorterade posten till en fil, så får du inte glömma att först öppna filen för skrivning. Detta sker inte automatiskt som i fallet med Giving. I proceduren är du fri att ha egen logik. 15-11

Sortering Sort-Return är ett s.k. Special Register, vilket innebär att denna variabel inte behöver beskrivas, utan finns inbyggd, och tilldelas ett värde som berättar med vilken retur-kod som sorteringsprogrammet avslutades. 15-12

Adresser och pekare 18-1

Adresser och pekare I detta kapitel skall jag försöka reda ut hur strukturer adresseras, d v s hur programmet egentligen fungerar för att referera ett dataelement eller en struktur. 18-2

Adresser och pekare Adressering av strukturer sker genom att en basadress tilldelas en fysisk adress vid programexekveringen. Denna adress varierar och beror på hur programmet exekveras; som huvudprogram eller subprogram, var strukturen finns placerad m.m. En struktur som består av flera element adresseras på så sätt att till basadressen adderas avståndet till det element som refereras (Displacement/Offset). Avståndet till ett specifikt element är ju alltid detsamma, men den fysiska placeringen av strukturen kan variera, dvs basadressen kan olika värde. För att kunna referera en struktur så måste basadressen ha ett verkligt värde, annars uppstår ett exekveringfel på grund av felaktig adress ( Program Check Interrupt; 0C4, 0C5), och COBOL avbrotthanterare kommer att avsluta programmet onormalt (Abnormal End, ABEND) 18-3

Adresser och pekare Strukturer i Working-Storage Section är alltid adresserbara eftersom COBOLs initieringsrutiner skaffar fysisk utrymme till hela WS. Kompilatorn bygger kod för att adressera elementen i WS med tekniken Basadress + Tilläggsaddress, och run-time försäkrar att basadressen har ett verkligt värde. Det kan aldrig uppstå några exekveringsfel på grund av felaktig adress vid referens till element i WS. Strukturer i Linkage Section adresseras med basadress och tilläggsadress på samma sått som WS, men du måste själv ansvara för att basadressen har ett verkligt värde. Detta sker vanligen i samband med Call Using WS-ref och beskrivningen Procedure Division Using LS-ref. Andra sätt är att själv med programmering tilldela en verklig adress till en basadress. 18-4

COBOL påbyggnad Adresser och pekare Du kan själv deklarera en pekare. Detta görs genom att beskriva ett dataelement på valfri nivå, utan picture och endast Usage is Pointer. Du kan även försäkra dig om att värdet inledningsvis är ogiltigt, genom att ange Value Null. För att tilldela ett värde till en pekare, eller pekarvariabel, kan du inte använda Move, utan tilldelning sker med verbet Set. Genom att tilldela värdet Null till en pekarvariabel, kan du göra den ogiltig, vilket senare kan konstateras i en jämförelse med Null. Innehållet i pekare kan jämföras mot varandra eller mot värdet Null. Du kan även använda en uttrycklig pekarvariabel som ett argument i ett Call-anrop. 18-5

COBOL påbyggnad Adresser och pekare Address Of är ett s.k. Special Register (jfr Return-Code) som är en underförstådd pekarbeskrivning. När du behöver få tillgång till en strukturs adress använder du detta uttryck, eller tvärtom när du vill tilldela en struktur ett värde från en pekare eller från en annan struktur. En pekare kan tilldelas värdet Null (ogiltig) och kan användas i programlogik som du ser i detta exempel. 18-6

COBOL påbyggnad Adresser och pekare I detta exempel ser du en struktur som är beskriven i Linkage Section. Initialt så är detta bara en bild över hur en Kundpost ser ut, men basadressen (Address of Kundpost) är ogiltig eftersom den inte har blivit tilldelad något värde. För att kunna använda denna Kundpost-struktur, så måste en verklig förekomst av Kundpost existera. I detta exempel antar vi att det anropade programmet tillhandahåller en sådan via pekaren Minpekare. Efter anropet görs en test om pekaren har ett giltigt värde och i så pall tilldelas denna pekares adress till Address of Kundpost. Nu kan de olika elementen i Kundpost refereras utan risk för exekveringsfel orsakad av felaktig adress. 18-7

Adresser och pekare 18-8

Övningar II Övningar II 2015, Cobolskolan Sverige, www.cobolskolan.se B2-1

Övningar II Innehållsförteckning Uppgift 1 Frequent Flyer File... 3 Övning 2 Frequent Flyer Program... 4 Övning 3 Bonus Report... 5 Övning 4 Frequent Flyer Mileage... 6 Övning 5 Mileage File... 7 Övning 6 Date-and-Day Program... 8 Övning 8 Airline ID... 10 Övning 9 Mileage Table, sort, pekare... 11 2015, Cobolskolan Sverige, www.cobolskolan.se B2-2

Övningar II Uppgift 1 Frequent Flyer File Denna fil är grunden för flertalet övningar. Filen innehåller information om olika flygresor som en person gjort. Uppgifter som datum (Flight-Date), avrese- och destinationsort (City-Pair), flygbolag (Airline-Id), etc. finns lagrade här. Filen har ett utseende som du ser i nedanstående bild. Kol Fält Format 01 Reserved 02-06 Flight-Date mm/dd 07-13 City-Pair xxx-xxx 14-15 Airline-ID xx 16-19 Flight-Number nnnn 20 Class-of-Travel x 22-25 Mileage nnnnn 26-80 Filler Filen FREQFILE finns i mappen C:\COBOLKURS\DATA. Lokalisera filen, notera namnet och bekanta dig med innehållet. 2015, Cobolskolan Sverige, www.cobolskolan.se B2-3

Övningar II Övning 2 Frequent Flyer Program I denna uppgift kommer du att skriva ett program som skapar en rapport från information i resefilen. Skriv ett program, FREQPGM, som läser samtliga poster i filen FREQFILE och skriver en rapport. FREQFILE FREQPGM FREQLIST Rapporten skall ha följande utseende: Frequent Flyer Report Date Id Fl# Cl C-Pair Mileage 01/07 01 0222 Y DFW-ATL 731 01/10 02 0322 Y LAS-DFW 1 056 01/11 07 0351 Y BNA-DFW 631.......... 02/23 04 0633 C SXM-DFW 2 339 02/24 05 0730 Y RDU-DCA 227 03/10 07 0049 Y DFW-LAX 1 235 03/16 12 0495 C SJU-SXM 192...... Total Mileage nn nnn Page 1 2015, Cobolskolan Sverige, www.cobolskolan.se B2-4

Övningar II Övning 3 Bonus Report Komplettera ditt program så att rapporten kommer att ha följande utseende: Frequent Flyer Report Date Id Fl# Cl C-Pair Mileage Inc Bonus 01/07 01 0222 Y DFW-ATL 731 731 02/11 03 1609 Y ATL-BNA 214 500 02/21 07 0351 Y BNA-DFW 631 631.......... 03/03 02 0769 C SXM-DFW 227 500 04/03 01 1263 Y RDU-DFW 1 061 1 061 04/10 07 0049 Y DFW-LAX 1 235 1 235 05/15 11 0428 C LAX-DFW 1 235 1 544...... Total Mileage mm mmm nn nnn Page 1 End of Report Som Du ser så har det tillkommit en kolumn, Inc Bonus. För varje resa så skall en extra bonus tillkomma enligt följande regler: o o o o Samtliga klasser skall alltid få minst 500 miles när reslängden är lägre än 500, men ingen ytterligare bonus skall då tillkomma. Turistklass, Y, skall inte ha någon extra bonus. Business Class, C skall erhålla 125% på aktuell reslängd. First Class, F skall erhålla 150% på aktuell reslängd. 2015, Cobolskolan Sverige, www.cobolskolan.se B2-5

Övningar II Övning 4 Frequent Flyer Mileage I denna uppgift så kommer du att skapa en ny indexerad fil som skall fyllas med data, så att du från denna kan hämta reseavstånd (Mileage) när du senare skall skapa din rapport. Du skall skriva ett program som skapar en indexerad fil. Innehållet till filen finns mappen C:\COBOLKURS\DATA och innehåller reseavstånd för olika destinationer. Kontrollera och notera namnet. Filen antas vara osorterad, varför du först skall sortera filen till en ny fil, FREQMILS.TXT. Sorteringsbegreppet skall vara City-Pair. Den indexerad filen skall ha City-Pair som primärnyckel. Namnet på den skapade filen skall vara FREQMILE.NDX Filen har ett utseende som liknar denna: Kol Fält Format 01-07 City-Pair xxx-xxx 08 Filler x 09-13 Mileage nnnnn 14-80 Filler x Innehållet ser du delar av här: AKL-HNL/04406 AKL-MEL/01636 AKL-NAN/01341 AKL-PPT/02544 AKL-SYD/01343... DFW-DEN/00645 DFW-DSM/00624 DFW-DTW/00987 DFW-ELP/00553... SYD-NLK/01043 YYZ-DFW/01199 YYZ-LGA/00356 YYZ-ORD/00437 Notera att filen bara innehåller information om flygväg i ena riktningen, t.ex DFW-DSM, men FREQFILE-filen kan mycket väl innehålla information om en resa gjord i andra riktningen. 2015, Cobolskolan Sverige, www.cobolskolan.se B2-6

Övningar II Övning 5 Mileage File Komplettera ditt tidigare program så att det hämtar reseavståndet från den nyligen skapade filen, FREQMILE.NDX, och inte från posterna i filen FREQFILE. FREQFILE FREQPGM FREQMILE Mileage? FREQLIST 2015, Cobolskolan Sverige, www.cobolskolan.se B2-7

Övningar II Övning 6 Date-and-Day Program I den här uppgiften skall du skriva ett program som skall kunna skapa datum i olika format. Programmet skall kunna anropas med en parameter som beskriver i vilket format datumet skall levereras. Skriv ett program, FREQDATE, som skall kunna anropas som ett subprogram, där du i anropet skall kunna ange att det returnerade datumet skall vara i något av nedanstående format. DATE=S ( 4/4, 200x ) DATE=M ( April 4, 200x ) DATE=L ( Tuesday, April 4, 200x, at hh:mm ) Programmet skall konstrueras så att det består av ett huvudprogram som analyserar att anropsparametern är korrekt. Sedan skall de olika datumformaten konstrueras av inbakade program i samma laddmodul/källkod. FREQPGM FREQDATE Call Program Using Parm1, Parm2,.. Exit Program Datshort Datmed Datlong Datnext Lämpligen skapar du ett huvudprogram som innehåller enskilda program för att skapa de olika datumformaten. Du behöver ju även ett hjälp-program som beräknar framtida datum. Bestäm själv formatet för interna anropsparametrar etc. Datum som programmet skall returnera är dagens datum samt datum om 30 dagar. Komplettera sedan huvudprogrammet så att det kan anropas med en parameter vid exekveringen (DATE=S/DATE=M/DATE=L). Programmet skall även skriva ut ett meddelande om exekveringsparameter utelämnats eller är felaktig och avslutas med lämplig returkod. Uppdatera programmet, så att rapporten får ett utseende som liknar denna: 2015, Cobolskolan Sverige, www.cobolskolan.se B2-8

Övningar II Frequent Flyer Report Printed : Monday, March 3, 200x, at hh:mm Valid until : Friday, April 7, 200x Date Id Fl# Cl C-Pair Mileage Inc Bonus..................... Total Mileage mm mmm nn nnn Page 1 End of Report 2015, Cobolskolan Sverige, www.cobolskolan.se B2-9

Övningar II Övning 8 Airline ID Komplettera rapporten så att den skriver ut namnet på flygbolaget. Detta namn finns i en indexerad fil i mappen C:\COBOLKURS\DATA. Airline-Id är nyckel. Filen har följande utseende: Kol Fält Format 01-02 Airline-Id nn 03 Filler x 04-29 Airline-Name xxxx xxx (25) 30-80 Filler x Det kan vara lämpligt att läsa in denna fil i en intern COBOL-tabell och söka i denna för att hämta Airline-Name. Räkna med att maxantalet flygbolag är 25. 2015, Cobolskolan Sverige, www.cobolskolan.se B2-10

Övningar II Övning 9 Mileage Table, sort, pekare I denna uppgift så kommer du skapa en ny version av programmet FREQMILE. Programmet FREQMIL2 skall använda samma fil som användes för att skapa filen FREQMILE.NDX, för fylla en intern COBOL-tabell med data från filen samt kunna göra sökning i tabellen. Filen antas vara osorterad och programmet skall gör en COBOL internsort av filen innan tabellen fylls med data. Nyckeln är som tidigare City-Pair. Utrymme för tabellen skulle i icke-windows -miljö kunna allokeras dynamiskt m.h.a Cobol Language Environment callable services. I vår miljö antar vi att tabellen kan innehålla maximalt 500 element. Programmet FREQPGM2 skall anropa FREQMIL2 med begäran om sökning av visst City-Pair samt med en pekare, som detta program skall peka på den sökta posten i tabellen vid lyckad sökning. Om sökningen misslyckas skall pekaren ha värdet Null. FREQPGM2 Postpekare FREQMIL2 Postpekare FREQMILE CALL Pgmnamn Using City- Pair,Postpekare Sort 2015, Cobolskolan Sverige, www.cobolskolan.se B2-11