Informatyka 1. Dokumentacja programu, moduły programowe, typy tablicowe

Podobne dokumenty
Podstawy Programowania. Tablice i wskaźniki cd., argumenty wywołania programu, reguły stylu programowania, asercje

Podstawy Programowania

Podstawy Programowania

Podstawy Programowania. Tablice i wskaźniki cd., argumenty wywołania programu, reguły stylu programowania, asercje

Informatyka 1. Przetwarzanie tekstów

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Informatyka 1. Procedury i funkcje, struktura programu w Pascalu

Informatyka 1. Wyrażenia i instrukcje cd., ręczna symulacja, operacje wejścia/wyjścia

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Język programowania PASCAL

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

Podstawy programowania

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Zasady Programowania Strukturalnego

2.Sprawdzanie czy podana liczba naturalna jest pierwsza Liczba pierwsza to liczba podzielna tylko przez 1 i przez siebie.

Programowanie w Turbo Pascal

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Informatyka 1. Rekordy, przeszukiwanie i sortowanie tablic

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Lekcja 6: Pascal. Procedura i funkcja

Podstawy programowania

OPERACJE NA PLIKACH. Podstawowe pojęcia:

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

Podstawy Programowania C++

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

Informatyka 1. Rekordy, przeszukiwanie i sortowanie tablic

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Algorytmy i struktury danych

Podstawy programowania

Część 4 życie programu

Pascal - wprowadzenie

Wstęp do programowania. Różne różności

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

tablica: dane_liczbowe

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

3. Podstawowe funkcje mamematyczne. ZAPOZNAĆ SIĘ!!!

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

Język ludzki kod maszynowy

Jerzy Nawrocki, Wprowadzenie do informatyki

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

INSTRUKCJA ITERACYJNA REPEAT. repeat Instrukcja_1; Instrukcja_2; {... } Instrukcja_N; until wyr ; INSTRUKCJA ITERACYJNA WHILE

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Informatyka I. Wyk lad I. Wprowadzenie. Robert Muszyński Instytut Cybernetyki Technicznej Politechnika Wroc lawska

Procedury i funkcje. Przykład programu z procedurą. Definicja. Cechy procedury

PLIKI TEKSTOWE F C E 30 0D 0A 42 6F 72 6C 61 6E 64 1A T U R B O _ P A S C A L _ 7. 0

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

Wprowadzenie komentarzy do programu

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Język C, tablice i funkcje (laboratorium)

Metody Metody, parametry, zwracanie wartości

Schemat konstrukcja pliku Makefile

Ilość cyfr liczby naturalnej

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

Materiały do laboratorium MS ACCESS BASIC

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Jerzy Nawrocki, Wprowadzenie do informatyki

Podstawy Programowania. Specyfikacja funkcji, operacje wejścia i wyjścia na plikach, rekurencja, tablice i wskaźniki

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

LibreOffice Calc VBA

- wszystkie elementy - wszystkie elementy

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Wstęp do programowania

Wstęp do programowania 2

Podstawy programowania skrót z wykładów:

Wprowadzenie do szablonów klas

Tablice. TYPE identyfikator tablicy = ARRAY [Indeksl,..., Indeksn] OF Typ; Dany identyfikator_ tablicy można wykorzystać w deklaracji VAR:

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

INSTRUKCJE PĘTLI, INSTRUKCJA WYBORU. Instrukcja pętli For to do

Podstawy programowania

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Procedury i funkcje - powtórzenie i uzupełnienia. Przykład funkcji potęgowanie przy wykładniku naturalnym

Delphi Laboratorium 3

Pliki. Ze względu na typ zawartych w nich danych rozróżnia się trzy podstawowe rodzaje plików:

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Palindromy. Przykładowe rozwiązanie

Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach

Informatyka 1. Wprowadzenie

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Zmienne i struktury dynamiczne

Podstawy Programowania

Wstęp do programowania

Wrocław, dn. 19 kwietnia 2006 roku. Anna Kaleta Piotr Chojnacki IV rok, informatyka chemiczna Liceum Ogólnokształcące nr 10 we Wrocławiu

Informatyka 1. Wprowadzenie

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

Przykładowerozwiązania.

Transkrypt:

Informatyka 1 Wykład VII Dokumentacja programu, moduły programowe, typy tablicowe Robert Muszyński ZPCiR ICT PWr Zagadnienia: reguły stylu programowania, komentarze marginesowe, blokowe, moduły programowe w Pascalu, deklaracja typu tablicowego, zasady posługiwania się tablicami, tablice jako argumenty procedur i funkcji, przeszukiwanie tablic. Copyright c 2001 2003 Robert Muszyński Niniejszy dokument zawiera materiały do wykładu na temat podstaw programowania w językach wysokiego poziomu. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych, prywatnych potrzeb i może być kopiowany wyłącznie w całości, razem ze stroną tytułową. Skład FoilTEX

Dokumentacja programu, moduły programowe, typy tablicowe 1 Reguły stylu programowania (a) poprawny podział programu na podprogramy, zgodnie ze strukturą opracowywanego zagadnienia, (b) umiejętny dobór nazw tak, by wyjaśniały rolę zmiennych, stałych, procedur itp., i sugerowały czego te obiekty tyczą, (c) postać graficzna programu (oddzielenia pionowe i poziome, wcięcia) tak zaplanowane, aby ukazać jego strukturę i zwiększyć czytelność, (d) dokumentacja programowa (komentarze), dostarczająca informacji do dalszej pracy nad programem, wyjaśniająca wykorzystane rozwiązania, itp., (e) asercje, pozwalające zweryfikować poprawność wywołań procedur i funkcji, (f) zasada lokalności, która mówi, że elementy powiązane ze sobą powinny wystepować razem, a niezwiązane oddzielnie.

Dokumentacja programu, moduły programowe, typy tablicowe 2 Dokumentacja programu komentarze marginesowe CONST SygnalAmp = 10; { amplituda sygnalu wejsciowego } KoniecDanych = 99; { sygnalizuje koniec pracy prog } GrupaDanych = 20; { wielk.grupy danych do zliczania} XZeroMin = 5; { minimalna ilosc przeciec zera } XZeroMax = 10; { maksymalna ilosc przeciec zera } Sprawdz = TRUE; { czy sprawdz.poprawn.wart.sygn. } VAR sygnal: INTEGER; { pobrana wartosc sygnalu } bylplus: BOOLEAN; { czy poprzedni sygnal byl dodat.} nsygn: INTEGER; { licznik wczytanych wart. sygn. } nxzero: INTEGER; { licznik przeciec zera w grupie }

Dokumentacja programu, moduły programowe, typy tablicowe 3 CONST StopnieNaRadiany = 0.017453292; { dla przeliczen } SumaKatow = 180.0; {...w trojkacie } READ(sygnal); {pierwsza wart. dla porown. w petli} nsygn := 1; bylplus := (sygnal = ABS(sygnal)); { tylko wtedy sygn + } IF ((sygnal > 0) AND (NOT bylplus)) OR ((sygnal < 0) AND bylplus) THEN {wykryte przeciec. zera - zapamietac!} nxzero := nxzero + 1; bylplus := (sygnal = ABS(sygnal)); { tylko wtedy sygn + } END;

Dokumentacja programu, moduły programowe, typy tablicowe 4 komentarze in-line IF (b*b - 4.0*a*c) >= 0.0 THEN (* wiemy ze istnieja dwa pierwiastki rzeczywiste, *) (* pozostaje je wyliczyc i wyswietlic na terminalu *) sqdelta := SQRT(b*b - 4.0*a*c); x1 := (-b - sqdelta) / (2.0 * a); x2 := (-b + sqdelta) / (2.0 * a); {...} komentarze blokowe { +-------+-------+-------+-------+-------+------+ } { UWAGA: ponizszy fragment programu zostal } { przeniesiony spod Turbo Pascala i nie ma } { pewnosci co do jego poprawnego dzialania. } { Uzywaj tylko na wlasna odpowiedzialnosc! } { +-------+-------+-------+-------+-------+------+ }

Dokumentacja programu, moduły programowe, typy tablicowe 5 komentarze opisujące działanie procedur i funkcji PROCEDURE DodajDni( Dzien1,Miesiac1,Rok1,NDni: INTEGER; VAR Dzien2,Miesiac2,Rok2: INTEGER); (* Procedura dodaje okreslona ilosc dni do podanej * * daty i oblicza nowa date * * Parametry: * * Dzien1 - dzien daty wyjsciowej (1-31) * * Miesiac1 - miesiac daty wyjsciowej (1-12) * * Rok1 - rok daty wyjsciowej (pelny,np.1996) * * NDni - liczba dni do dodania (+ lub -) * * Dzien2, Miesiac2, Rok2 - nowo wyliczona data * * PRE: Dzien1,Miesiac1,Rok1 musza okreslac poprawna * * date nie wczesniejsza niz 1 stycznia 1970 * * POST: Dzien2,Miesiac2,Rok2 otrzymuja date * * pozniejsza (lub wczesniejsza gdy NDni < 0) * * o NDni od Dzien1,Miesiac1,Rok1 *)

Dokumentacja programu, moduły programowe, typy tablicowe 6 Moduły programowe Sun Pascal dołączanie plików poleceniem include PROGRAM arytmetyka(input,output); FUNCTION Silnia( N: INTEGER ): INTEGER; IF N<0 THEN WRITELN( Funkcja: Silnia, blad: ujemny argument:,n) ELSE IF N=0 THEN Silnia := 1 ELSE Silnia := N * Silnia(N-1) END; {Silnia} VAR X: INTEGER; WRITE( Podaj argument dla funkcji Silnia: ); READLN(X); WRITELN( Silnia(, X:1, ) =, Silnia(X):1); END. = plik: silnia.inc = plik: main.p

Dokumentacja programu, moduły programowe, typy tablicowe 7 FUNCTION Silnia( N: INTEGER ): INTEGER; plik: silnia.inc IF N<0 THEN WRITELN( Funkcja: Silnia, blad: ujemny argument:,n) ELSE IF N=0 THEN Silnia := 1 ELSE Silnia := N * Silnia(N-1) END; {Silnia} PROGRAM arytmetyka(input,output); #include "silnia.inc" VAR X: INTEGER; WRITE( Podaj argument dla funkcji Silnia: ); READLN(X); WRITELN( Silnia(, X:1, ) =, Silnia(X):1); END. Kompilacja diablo 21:pc -L main.p = tworzy a.out plik: main.p

Dokumentacja programu, moduły programowe, typy tablicowe 8 tworzenie modułów MODULE pomocniczy; plik: modul.p FUNCTION Silnia( N: INTEGER ): INTEGER; IF N<0 THEN... { jak poprzednio } END; {Silnia} PROGRAM arytmetyka(input,output); FUNCTION Silnia(N: INTEGER): INTEGER; EXTERN; VAR X: INTEGER;... { jak poprzednio } END. Kompilacja diablo 21:pc -L -c modul.p diablo 22:pc -L main.p modul.o (lub jak na stronie następnej) plik: main.p = tworzy modul.o = tworzy a.out

Dokumentacja programu, moduły programowe, typy tablicowe 9 MODULE pomocniczy; plik: modul.p FUNCTION Silnia( N: INTEGER ): INTEGER;... { jak poprzednio } FUNCTION Silnia( N: INTEGER ): INTEGER; EXTERN; plik: modul.h PROGRAM arytmetyka(input,output); #include "modul.h" VAR X: INTEGER;... { jak poprzednio } END. Kompilacja diablo 21:pc -L -c modul.p diablo 22:pc -L -c main.p diablo 23:pc -L main.o modul.o (lub jak na stronie poprzedniej) plik: main.p = tworzy modul.o = tworzy main.o = tworzy a.out

Dokumentacja programu, moduły programowe, typy tablicowe 10 Moduły programowe zakres zmiennych, funkcji i procedur zmienne publiczne i prywatne PROGRAM zakresy(output); PUBLIC VAR publ: INTEGER; PRIVATE VAR pryw: INTEGER; PROCEDURE witaj; EXTERN; witaj; witaj; witaj; WRITELN( A w programie: publ =, publ:1,, pryw =,pryw:1); END. MODULE witaj; PUBLIC VAR publ: INTEGER; PRIVATE VAR pryw: INTEGER; PROCEDURE witaj; publ := publ + 1; pryw := pryw + 1; WRITELN( Oto jestem w module. publ =, publ:1,, pryw =,pryw:1); END; {witaj} plik: main.p plik: modul.p

Dokumentacja programu, moduły programowe, typy tablicowe 11 Przykład uruchomienia diablo 21: a.out Oto jestem w module. publ = 1, pryw = 1 Oto jestem w module. publ = 2, pryw = 2 Oto jestem w module. publ = 3, pryw = 3 A w programie: publ = 3, pryw = 0

Dokumentacja programu, moduły programowe, typy tablicowe 12 Typy tablicowe Tablica jednowymiarowa N elementowa tab[1] tab[2] tab[3] tab[n] tab[i] prosta zmienna Tablica dwuwymiarowa N M elementowa tab[1,1] tab[1,2] tab[1,3] tab[1,m] tab[2,1] tab[2,2] tab[2,3] tab[2,m]....... tab[n,1] tab[n,2] tab[n,3] tab[n,m] Tablice wielowymiarowe tab[i,j] prosta zmienna

Dokumentacja programu, moduły programowe, typy tablicowe 13 CONST NStudentow = 200; {calkowita liczba studentow} TYPE Zaliczenia = ARRAY [1..NStudentow] OF INTEGER; VAR Grupa: Zaliczenia; stud, min, max, srednia, suma: INTEGER; (***************************************************) suma := 0; min := 10; max := 0; FOR stud := 1 TO NStudentow DO WRITELN( Prosze podac zaliczenie dla studenta,stud) READLN(Grupa[stud]); suma := suma + Grupa[stud]; IF Grupa[stud] > max THEN max := Grupa[stud]; IF Grupa[stud] < min THEN min := Grupa[stud]; END; srednia := suma DIV NStudentow;

Dokumentacja programu, moduły programowe, typy tablicowe 14 Typy tablicowe zgodność typów TYPE Zaliczenia = ARRAY [1..NStudentow] OF INTEGER; VAR Grupa1, Grupa2: Zaliczenia; Grupa3: Zaliczenia; Grupa4, Grupa5: ARRAY [1..NStudentow] OF INTEGER; Grupa6: ARRAY [1..NStudentow] OF INTEGER;

Dokumentacja programu, moduły programowe, typy tablicowe 15 START Suma = 0 Min = 10 Max = 0 Stud = 1 Wczytanie wyników studentów oraz znalezienie wyniku maksymalnego, minimalnego i œredniej Wczytaj zaliczenie do Grupa[Stud] Suma = Suma + Grupa[Stud] Grupa[Stud] >Max? Tak Max=Grupa[Stud] Nie Grupa[Stud] <Min? Tak Min=Grupa[Stud] Nie Czy ostatni student? Nie Stud = Stud + 1 Tak STOP

Dokumentacja programu, moduły programowe, typy tablicowe 16 Tablica dwuwymiarowa przykład Cwiczenie NrStudenta tab[1,1] tab[1,n]..... tab[m,1] tab[m,n]

Dokumentacja programu, moduły programowe, typy tablicowe 17 CONST NStudentow = 200; {calkowita ilosc studentow } NCwiczen = 8; {ilosc cw.do wykon.w semest} TYPE Zaliczenia = ARRAY [1..NStudentow] OF 2..5; WynikiCwiczen = ARRAY [1..NStudentow,0..NCwiczen] OF INTEGER; VAR Zal1,Zal2,Zal3: Zaliczenia; Wyn1,Wyn2,Wyn3: WynikiCwiczen; (***************************************************) FOR stud := 1 TO NStudentow DO Suma := 0; FOR cwicz := 1 TO NCwiczen DO Suma := Suma + Wyn1[stud,cwicz]; Wyn1[stud,0] := Suma; Zal1[stud] := 2 + (3*Suma) DIV (NCwiczen*MaxPunkt); END;

Dokumentacja programu, moduły programowe, typy tablicowe 18 Posługiwanie się tablicami wykorzystanie pętli FOR-TO-DO liczba elementów tablicy z góry ustalona przekroczenie rozmiaru tablicy możliwość podstawiania całych tablic tablice jako argumenty procedur i funkcji (ale nie wartości funkcji!!!) zgodność typów

Dokumentacja programu, moduły programowe, typy tablicowe 19 Przeszukiwanie tablic START Elem = 1 Przeszukiwanie tablicy jednowymiarowej START Elem = 0 Przeszukiwanie tablicy jednowymiarowej Czy Tab[Elem] jest elementem szukanym lub ostatnim? Tak STOP Nie Elem = Elem + 1 Procedura Elem = Elem + 1 Czy Tab[Elem] jest elementem szukanym lub ostatnim? Nie Tak Zrób Coœ Czy Tab[Elem] jest elementem ostatnim? Nie Tak STOP

Dokumentacja programu, moduły programowe, typy tablicowe 20 CONST NWartosci = 30; TYPE Wartosci = ARRAY[1..NWartosci] OF INTEGER; (*************************************************************) FUNCTION ZnajdzNastepna(tab: Wartosci; w,i: INTEGER): INTEGER; (* Wyszukuje w tablicy podana wartosc w zaczynajac od *) (* pozycji i + 1, o ile jest wewnatrz tablicy. Zwraca *) (* znaleziony indeks lub -1 gdy nie zostal znaleziony. *) VAR Znaleziona: BOOLEAN; Znaleziona := FALSE; i := i + 1; WHILE (i>=1) AND (i<=nwartosci) AND NOT Znaleziona DO IF (tab[i] = w) THEN Znaleziona := TRUE ELSE i := i + 1; IF Znaleziona THEN ZnajdzNastepna := i ELSE ZnajdzNastepna := -1 END; {ZnajdzNastepna} (***************************************************) i := 0; Szukana :=... (* Inicjacja wartosci *) REPEAT i := ZnajdzNastepna(tablica,Szukana,i); IF i<>-1 THEN WRITELN( Szukana wartosc znaleziona na pozycji,i:0); UNTIL i=-1; END.

Dokumentacja programu, moduły programowe, typy tablicowe 21 Wykorzystanie tablic CONST MaxString = 25; MaxElement = 100; TYPE Menu = (Koniec,Dodaj,Wczytaj,Zapisz); String = PACKED ARRAY[1..MaxString] OF CHAR; TabNazwisk = ARRAY[1..MaxElemenent] OF String; TabLiczb = ARRAY[1..MaxElemenent] OF INTEGER; VAR IloscOsob : INTEGER; {w bazie} dane : TEXT; NazwaPliku : String; KoniecPracy : BOOLEAN; WyborMenu : Menu; ImieiNazwisko, ImieiNazwisko_Ojca, {skladowe} ImieiNazwisko_Matki : TabNazwisk; {tablice} NumerStatystyczny, DzienUrodzenia, {bazy} MiesiacUrodzenia, RokUrodzenia : TabLiczb; {danych} CDN.

Dokumentacja programu, moduły programowe, typy tablicowe 22 KoniecPracy := FALSE; IloscOsob := 0; REPEAT CASE WyborMenu OF Koniec : KoniecPracy := TRUE; Dodaj : {...}; Wczytaj : WRITELN( Podaj nazwe pliku z baza danych: ); READLN(NazwaPliku) RESET(dane,NazwaPliku); WczytajPlik(dane, {...,} IloscOsob); CLOSE(dane); END; Zapisz : {...}; END; {CASE} UNTIL KoniecPracy; END. CD.

Dokumentacja programu, moduły programowe, typy tablicowe 23 PROCEDURE WczytajPlik(dane: TEXT; { VAR...: (tablice); } VAR IloscOsob: INTEGER); { Wczytuje zawartosc pliku do struktur w pamieci } { Parametry: (pominiety opis parametrow) } { PRE: plik dane musi byc otwarty do czytania (RESET) } { zm. IloscOsob okresla dotychczasowa ilosc elemen. } { POST: czyta plik dane do wystapienia NumerOsoby<0 } { umieszcza wczytane elementy w tablicach } { umieszcza nowa ilosc elementow w zmien.iloscosob } { wyswietla komunikat na ekranie } VAR Poprzednio : INTEGER; CDN.

Dokumentacja programu, moduły programowe, typy tablicowe 24 Poprzednio := IloscOsob; READLN(dane,NumerOsoby); {pierwszy numer osoby} WHILE (NumerOsoby > 0) AND (IloscOsob < MaxElement) DO IloscOsob := IloscOsob + 1; NumerStatystyczny[IloscOsob] := NumerOsoby; READLN(dane,ImieiNazwisko[IloscOsob]); READLN(dane,ImieiNazwisko_Ojca[IloscOsob]); READLN(dane,ImieiNazwisko_Matki[IloscOsob]); READLN(dane,RokUrodzenia[IloscOsob]); READLN(dane,MiesiacUrodzenia[IloscOsob]); READLN(dane,DzienUrodzenia[IloscOsob]); CD. READLN(dane,NumerOsoby); END; {nastepny numer} WRITE( Wczytano,IloscOsob-Poprzednio, elementow ); IF EOF(dane) THEN WRITELN(. ) ELSE WRITELN( --- PRZED KONCEM PLIKU!!,chr(12)); END; (* WczytajPlik *)