Zeszyt z programowania 1i

Page 1

PROGRAMOWANIE STRUKTURALNE I OBIEKTOWE Imię i nazwisko: Klasa/nr :

DZIAŁY PROGRAMOWE DO REALIZACJI:

1


1. Wprowadzenie do programowania strukturalnego w Pascalu [28]. 2. Podprogramy [30]. 3. Typy strukturalne [18]. Zajęcia w blokach 2 godz. – 38 bloków.

Lekcja1 Lekcja organizacyjna. Zapoznanie z instrukcją BHP pracowni komputerowej, regulaminem pracowni, PSO, programem nauczania i zasadami organizacji pracy na zajęciach. 1

Regulamin pracowni komputerowej

Podstawa prawna: § 17. Rozporządzenia Ministra Pracy i Polityki Socjalnej z dnia 26 września 1997 r. w sprawie ogólnych przepisów bezpieczeństwa i higieny pracy.

Postanowienia ogólne § 1. Pracownia komputerowa przeznaczona jest do prowadzenia zajęć edukacyjnych w Zespole Szkół Zawodowych w Głogowie. § 2. Z pracowni komputerowej mogą korzystać wyłącznie uczniowie oraz upoważnieni nauczyciele i inni pracownicy Zespołu Szkół Zawodowych w Głogowie. § 3. Osoby przebywające w pracowni zobowiązane są do stosowania się do przepisów dotyczących bezpieczeństwa i higieny pracy określonych w: 1) Rozporządzeniu Ministra Pracy i Polityki Socjalnej z dnia 26 września 1997 r. w sprawie ogólnych przepisów bezpieczeństwa i higieny pracy, 2) Rozporządzeniu Ministra Edukacji Narodowej z dnia 17 sierpnia 1992 r. w sprawie ogólnych przepisów bezpieczeństwa i higieny w szkołach i placówkach publicznych1. Przygotowanie do zajęć § 4. Uczniowie mogą przebywać w pracowni tylko pod opieką nauczyciela. Mogą przebywać także poza godzinami zajęć obowiązkowych, ale po uzyskaniu każdorazowo zgody nauczyciela2. § 5. Zabrania się wnoszenia do pracowni substancji lub przedmiotów mogących wpłynąć niekorzystnie na funkcjonowanie sprzętu komputerowego. W szczególności zakaz dotyczy produktów żywnościowych i napojów. § 6. Uczniowie pracują na przydzielonych im stanowiskach. Zmiana stanowiska wymaga każdorazowo zgody nauczyciela prowadzącego zajęcia. § 7.


Przed rozpoczęciem pracy na stanowisku uczniowie są zobowiązani do sprawdzenia jego stanu ogólnego i technicznego i zgłoszenia dostrzegalnych usterek nauczycielowi prowadzącemu zajęcia. Praca na zajęciach § 8. Włączenie lub wyłączenie zasilania komputera każdorazowo wymaga uzyskania zgody nauczyciela prowadzącego zajęcia. § 9. Dokonywanie zmian w konfiguracji sprzętowej systemów komputerowych znajdujących się w pracowni (w szczególności otwieranie jednostek centralnych, przyłączanie/odłączanie myszy, przyłączanie/odłączanie klawiatur, regulacja parametrów monitorów) dozwolone jest wyłącznie za zgodą nauczyciela prowadzącego zajęcia. Zauważone problemy należy mu natychmiast zgłaszać. § 10. Dokonywanie zmian w konfiguracji programowej systemów komputerowych znajdujących się w pracowni (w szczególności instalowanie/usuwanie oprogramowania, zmiany ustawień systemu operacyjnego oraz programów, tworzenie i usuwanie danych) dozwolone jest wyłącznie za zgodą nauczyciela prowadzącego zajęcia. § 11. Uczniowie mają prawo korzystać z danych i programów udostępnionych w systemie komputerowym szkoły. Mają także prawo, po uzyskaniu zgody nauczyciela prowadzącego zajęcia, do korzystania ze znajdujących się w pracowni urządzeń komputerowych. § 12. Użytkownicy pracowni mają prawo do korzystania z własnych danych, pobranych z Internetu lub przyniesionych na wymiennych nośnikach danych, po uprzednim sprawdzeniu ich za pomocą programu antywirusowego – pod kontrolą nauczyciela. § 13. Użytkownicy pracowni mają prawo do zapisywania swoich plików wyłącznie w wyznaczonym miejscu. Dane tymczasowe, utworzone w trakcie pracy, należy po jej zakończeniu usunąć. Obsługa pracowni nie gwarantuje zachowania danych zapisanych poza wyznaczonym miejscem. § 14. Użytkownicy sieci komputerowej mają obowiązek dbać o bezpieczeństwo danych, a w szczególności nie udostępniać innym swoich haseł . § 15. W trakcie pracy użytkownicy zobowiązani są do: 1) przestrzegania przepisów prawa, w szczególności dotyczących: a) uzyskiwania nieuprawnionego dostępu do danych, b) rozpowszechniania pornografii, c) propagowania innych zakazanych przez prawo treści; 2) przestrzegania powszechnie przyjętych norm obyczajowych, w tym dotyczących korzystania z Internetu: a) nierozpowszechniania tzw. spamów, b) nieobrażania innych użytkowników ; 3) informowania nauczyciela prowadzącego zajęcia o nietypowym działaniu komputera. 3


§ 16. Nauczyciel prowadzący zajęcia ma prawo blokowania dostępu do określonych danych lub usług (w szczególności dostępu do Internetu) oraz monitorowania poczynań osób korzystających z pracowni). § 17. Korzystanie z urządzeń drukujących – w celu drukowania prac dodatkowych, których opracowanie nie jest zadaniem wynikającym z treści zajęć prowadzonych w pracowni komputerowej, ale służy do realizacji celów dydaktycznych – możliwe jest wyłącznie za zgodą nauczyciela prowadzącego zajęcia. § 18. Po zakończeniu zajęć należy uporządkować swoje stanowisko pracy, a w szczególności odpowiednio wyłączyć komputer, zabezpieczyć sprzęt pokrowcami ochronnymi (o ile takie należą do wyposażenia pracowni), ustawić elementy zestawu komputerowego na właściwym miejscu. § 19. Nauczyciel prowadzący zajęcia ma prawo nakazać uczniom, po uprzednim ich poinstruowaniu i dostarczeniu odpowiednich środków, wykonanie prostych zabiegów konserwacyjnych (czyszczenie klawiatury, myszy, obudowy komputera, ekranu monitora). Postanowienia końcowe § 20. Uczniowie zostają zapoznani z niniejszym regulaminem oraz przepisami dotyczącymi bezpieczeństwa i higieny pracy na pierwszych zajęciach w roku szkolnym. § 21. W kwestiach nie wymienionych w niniejszym regulaminie stosuje się przepisy statutu szkoły oraz powszechnie obowiązujące przepisy prawa 14. § 22. Regulamin pracowni komputerowej obowiązuje wszystkich uczniów korzystających z pracowni zarówno podczas planowych zajęć lekcyjnych, jak i poza nimi.

2

Czego nie robimy: • • • • • • • • • • • • • •

nie jemy i nie pijemy w pobliżu komputerów nie dotykamy klawiatury i myszy brudnymi rękami nie przenosimy, przesuwamy komputera gdy jest włączony dbamy o porządek na stole i na dysku komputera kable trzymamy za wtyczkę podczas włączania i wyłączania przycisk myszy i klawisze naciskamy delikatnie mysz trzymamy na podkładce nie zasłaniamy otworów wentylacyjnych komputera właściwie obchodzimy się z dyskietkami (nie zginamy, nie dotykamy warstwy magnetycznej palcami, chronimy przed kurzem, wilgocią i przedmiotami namagnesowanymi). nie naciskamy bezmyślnie klawiszy gdy komputer wykonuje jakąś operację nie podłączamy żadnych urządzeń do komputera (ani nie odłączamy) gdy jest włączony nie odpowiadamy na żadne pytanie „tak” gdy nie wiemy o co chodzi

4  technik informatyk 312[01]/T,SP/MENIS/204.06.14


• •

jeśli komputer „się zawiesił” nie wyłączamy go lecz resetujemy (Windows) nie zmieniamy ustawień komputera i oprogramowania

Posługiwanie się komputerem nie zwalnia od myślenia, lecz w zamian za odciążenie umysłu od spraw drugorzędnych obliguje do skierowania go na bardziej zaawansowane aspekty rozwiązywania problemów. Komputer się nie myli. Mylą się ci, co go obsługują.

Lekcja 2 Wprowadzenie do algorytmów.  ALGORYTM uporządkowany i uściślony sposób rozwiązywania problemu, zawierający szczegółowy opis wykonywanych czynności.  PROGRAM KOMPUTEROWY jest realizacją wybranego wcześniej algorytmu lub wielu algorytmów.  Inna definicja logicznie uporządkowany ciąg instrukcji języka programowania realizujący algorytm.

Obj100

 SPECYFIKACJA ZADANIA szczegółowy opis zadania, w którym wymienia się dane wejściowe i wyniki oraz warunki, jakie muszą spełniać, określa się więc związek między danymi a wynikami. Jak prezentujemy algorytmy:  Lista kroków  Schemat blokowy  Zapis w postaci programu

Podsumowanie:  Komputery wykonują programy komputerowe, a programy realizują algorytmy. 5


 Algorytm to dokładny przepis podający sposób rozwiązania określonego zadania w skończonej liczbie kroków.  Algorytm zapisany w języku programowania jest programem.  Algorytm może być prezentowany w postaci: listy kroków, schematu blokowego, programu.

Lekcja 3 Graficzna prezentacja algorytmów. Schemat blokowy:  Najbardziej popularny graficzny sposób prezentowania algorytmów.  Jest graficznym opisem działań składających się na algorytm oraz kolejności ich wykonania.  Schemat taki składa się z bloków (zwanych również skrzynkami) oraz połączeń między nimi.  W blokach są zapisywane działania algorytmu, zaś połączenia oznaczają możliwe przejścia w algorytmie. Symbole graficzne:

Start Wprowadź (a,b)

Koniec

s := a+b Sr: = S/2

TAK

Czy a=0

NIE

Rodzaje bloków i ich zadanie w algorytmie: 1. blok początkowy - rozpoczyna algorytm,

2. blok wejścia/wyjścia - określa nazwy danych wprowadzanych do programu lub

wyprowadzanych przez program,

6  technik informatyk 312[01]/T,SP/MENIS/204.06.14


3. blok operacyjny - określa działanie, które może zmienić wartość zmiennej,

4. blok warunkowy (blok decyzyjny) - rozdziela wykonywanie algorytmu na dwie drogi w

zależności od spełnienia, bądź niespełnienia warunku; nie zmienia stanu zmiennych,

5. blok wyboru - wybiera jedną z wielu możliwych dróg algorytmu, na podstawie

aktualnej wartości wyrażenia,

6. bloki łączników na stronie - każdy blok pary: wejściowy i wyjściowy, zawiera ten sam

numer, określający dwa miejsca algorytmu, znajdujące się na tej samej stronie, które są bezpośrednio połączone,

7. bloki łączników międzystronicowych - każdy blok pary: wejściowy i wyjściowy, zawiera

naumer składający się z numeru strony i numeru wejścia na stronie; określający dwa miejsca algrytmu, znajdujące się na różnych stronach, które są bezpośrednio połączone. Są stosowane dla bardziej skomplikowanych algorytmów, nie mieszczących się na jednej stronie,

8. blok podprogramu - określa nazwę procedury lub funkcji i jej zadanie,

9. blok kolekcyjny - łączy dwie różne drogi algorytmu,

10. blok końcowy - kończy algorytm.

7


Przykład

Zasady przedstawiania algorytmów w postaci schematu blokowego:  Operacje algorytmu należy umieszczać w odpowiednich blokach.  Każdy SB ma jeden blok startowy, natomiast bloków zakończenia algorytmu może być kilka.  Wszystkie bloki muszą być ze sobą połączone.  Kolejność wykonywania operacji wyznaczają połączenia między blokami.  Do każdego bloku wchodzi i wychodzi określona liczba połączeń. Analiza poprawności budowy schematu:  Czy umieściliśmy bloki we właściwej kolejności.  Czy wpisaliśmy bezbłędnie odpowiednie operacje wewnątrz bloków.  Czy połączyliśmy wszystkie bloki i czy zrobiliśmy to prawidłowo.

8  technik informatyk 312[01]/T,SP/MENIS/204.06.14


Lekcja 4 Opisywanie algorytmów w postaci listy kroków [Ćwiczenia].  Lista kroków to przedstawienie algorytmu w kolejnych punktach (krokach). Każdy punkt takiej listy zawiera opis wykonywanej czynności.

Przykład Przedstaw w postaci listy kroków algorytm obliczania średniej arytmetycznej trzech dowolnych liczb rzeczywistych.  Dane: dowolne liczby rzeczywiste: a, b, c  Wynik: wartość średniej arytmetycznej liczb a, b, c równa Sr. 1. Zacznij algorytm. 2. Wprowadź wartości trzech liczb: a, b, c. 3. Oblicz wartość wyrażenia : S:=a+b+c. 4. Oblicz wartość wyrażenia: Sr:= s/3. 5. Wyprowadź wynik: Sr. 6. Zakończ algorytm.

Zadania  Napisz specyfikację zadania i przedstaw w postaci listy kroków algorytm obliczania średniej geometrycznej trzech dowolnych liczb rzeczywistych.  Napisz specyfikację zadania i przedstaw w postaci listy kroków algorytm znajdowania p% liczby a.  Napisz specyfikację zadania i przedstaw w postaci listy kroków rozwiązanie zadania: jaki procent liczby a stanowi liczba b?  Napisz specyfikację zadania i przedstaw w postaci listy kroków algorytm obliczania drogi przebytej w czasie t przez pojazd, poruszający się ze średnią prędkością V.

9


Lekcja 5 Zapisywanie algorytmów w postaci schematu blokowego [Ćwiczenia]. Schemat blokowy:  Najbardziej popularny graficzny sposób prezentowania algorytmów.  Jest graficznym opisem działań składających się na algorytm oraz kolejności ich wykonania.  Schemat taki składa się z bloków (zwanych również skrzynkami) oraz połączeń między nimi.  W blokach są zapisywane działania algorytmu, zaś połączenia oznaczają możliwe przejścia w algorytmie.

Szukanie większej z dwóch liczb START

WCZYTAJ A, B

A>B

WYPISZ A

WYPISZ B

STOP

Schemat wykonany za pomocą programu Edraw Mind Map http://www.edrawsoft.com/freemind.php 10  technik informatyk 312[01]/T,SP/MENIS/204.06.14


Wartość bezwzględna START

WCZYTAJ A

A>0

W=A

W=-A

WYPISZ W

STOP

Schemat blokowy algorytmu obliczającego średnią n liczb.

11 


Start

Czytaj n

s:=0 i:=n

T i>0 T Czytaj x

s:=s+x i:=i-1

n=0

Śr:=0

Sr:=s/n

Pisz Śr

Stop

Schemat blokowy algorytmu obliczającego średnia podanych przez użytkownika liczb dodatnich i różnych od 0.

12  technik informatyk 312[01]/T,SP/MENIS/204.06.14


Start

s:=0 n:=0

Czytaj x

T x>0 T n=0

s:=s+x n:=n+1

Śr:=0

Sr:=s/n

Pisz Śr

Stop

Uwaga! Znajdź błąd w algorytmie powyżej

Schemat blokowy algorytmu Euklidesa – wyznaczanie największego wspólnego dzielnika 2 liczb. 13 


START

Czytaj A B

TAK

NIE A<>B

TAK

NIE A>B

A:=A-B

B:=B-A

Pisz A

STOP

Co robi ten algorytm ?

14  technik informatyk 312[01]/T,SP/MENIS/204.06.14


START

Czytaj N

S:=O I:=N

S:=S+1 I:=I-1 TAK

NIE I>0

Pisz S

STOP

15 


Lekcja 6 Wprowadzenie do programowania w Pascalu. Podstawowe pojęcia Język programowania

Zbiór instrukcji oraz zasad składni, dzięki którym powstaje kod źródłowy programu.

Program komputerowy

Ciąg instrukcji zapisanych w konkretnym języku programowania, przeznaczonych do wykonywania przez komputer.

Notacja

Jednoznacznie interpretowany system oznaczeń umożliwiający zapisywanie pewnej klasy wyrażeń, Np notacja matematyczna, zapis nutowy.

Pseudojęzyk

Uproszczona notacja algorytmiczna, zbliżona do któregoś z popularnych języków programowania, stosowana w książkach, artykułach czy na wykładach.

Program (kod) źródłowy

Algorytm zapisany za pomocą instrukcji programowania.

Implementacja

Zapisanie algorytmu w postaci kodu źródłowego.

Język wysokiego poziomu

Charakteryzuje się przejrzystą strukturą; nie zależy od architektury komputera

Język niskiego poziomu

Posługuje się instrukcjami, które odpowiadają danym instrukcjom konkretnego procesora.

Kod maszynowy

Program napisany w języku wewnętrznym (maszynowym), rozumianym przez procesory.

Interpretacja

Tłumaczenie programu źródłowego na kod maszynowy instrukcja po 16  technik informatyk 312[01]/T,SP/MENIS/204.06.14


instrukcji. Tłumaczenie następuje przy każdorazowym uruchomieniu programu. Kompilacja

Tłumaczenie programu źródłowego na kod maszynowy. Raz skompilowany program nie wymaga już powtórnego tłumaczenia.

 Komputery wykonują programy komputerowe, a programy realizują algorytmy.  Algorytm to dokładny przepis podający sposób rozwiązania określonego zadania w skończonej liczbie kroków.  Algorytm zapisany w języku programowania jest programem.  Algorytm może być prezentowany w postaci: listy kroków, schematu blokowego, programu.

 komputer "rozumie" program napisany w języku wyższego poziomu - czyli tzw. program źródłowy, zwany często kodem źródłowym; 

procesor "rozumie" program napisany w języku procesora - czyli tzw. program lub inaczej kod maszynowy (który jest kompletnie nieczytelny dla większości ludzi)

Aby więc komputer mógł wykonać program napisany w języku źródłowym, musi on zostać jeszcze przetłumaczony na postać zrozumiałą dla procesora, czyli kod maszynowy. Tłumaczenie to może być wykonywane dwojako: 

przed wykonaniem programu - wtedy proces ten nazywamy kompilacją, a specjalny program dokonujący tłumaczenia - kompilatorem;.

na bieżąco, w trakcie pracy programu - wtedy mamy do czynienia z interpretacją i interpreterem.

17 


Etapy tworzenia programu Nazwa etapu

Wynik etapu

Zapis algorytmu w języku programowania

Kod źródłowy, plik tekstowy

Kompilacja, edycja (usuwanie Kod błędów kompilacji, źródłowy, plik syntaktycznych). tekstowy

Uruchamianie – scalanie programu i wykorzystywanych podprogramów bibliotecznych (usuwanie błędów wykonywania np.

Kod wynikowy (binarny, maszynowy)

18  technik informatyk 312[01]/T,SP/MENIS/204.06.14

Błędy

Błędy syntaktyczne (Błędy syntaktyczne występują wtedy, kiedy napisana przez nas instrukcja narusza gramatyczne reguły języka. Wystąpienie takiego błędu, jest sygnalizowane w trakcie kompilacji programu)

Błędy wykonania


dzielenie przez zero). Testowanie programu (usuwanie błędów logicznych-program działa, lecz nie tak jak powinien).

Kod wynikowy

Błędy logiczne

Konserwacja programu (usuwanie błędów wykrytych na etapie użytkowania, zmiany inicjowane przez użytkownika.

Kod wynikowy

Błędy logiczne

Lekcja 7 Środowisko systemu Turbo Pascala. Podstawy zapisywania programu [Ćwiczenia]. Objaśnienie Pojęć

Procedura - jest to w skrócie pewien wyraz, który po wstawieniu do programu, coś nam wykona np. wyczyści ekran, narysuje linię (sformatuje dysk :) itd.

Funkcja- jest to podobnie jak procedura, pewien wyraz, który nie dość że coś wykona to również zwróci nam rezultat tego co zrobił, przykładowymi funkcjami są: pierwiastkowanie, sinus, cosinus. Zwracaną wartością niekoniecznie musi być liczba może to być również inny rodzaj zmiennych.

Słowo Kluczowe- samo w sobie nie robi nic, ale w połączeniu z innymi pozwala nam na grupowanie procedur i funkcji w jedną całość, używanie pętli... a z resztą sami później zobaczycie to w praktyce ;-)

Stała- jest to pewna wartość przypisana znakowi/wyrazowi której nie można zmienić np: stałej PI jest przyporządkowana liczba 3.1415...

Zmienna- Jak sama nazwa wskazuje zmienna jest to wyraz, któremu jest przypisana pewna wartość, którą w czasie działania programu możemy swobodnie zmieniać w zakresie danego typu.

Biblioteki (moduły) - zapisane są w nich różne funkcje i procedury do użycia w programie.

19 


Stosowanie Komentarzy Komentarze w programie nie są niezbędne, ale bardzo upraszczają późniejszą poprawę/modyfikację programu i to dzięki komentarzom nasz program staje się bardziej czytelny również dla innych osób. W Pascalu ujmuje się je pomiędzy nawiasy klamrowe "{","}"

Stosowanie Wcięć Wcięcia stosowane są do łatwiejszego zorientowania się w programie źródłowym, dla programisty jest to bardzo przydatne gdyż natychmiast widzi, które fragmenty programu są ze sobą bardziej powiązane a które mniej. Sam oceń : Program bez wcięć: Var s:string; b:byte;

Begin ReadLn(s); If s='pi' Then Begin For b:=1 To 10 Do Begin WriteLn(PI); WriteLn(b); End; End Else WriteLn('Pozostale'); End. Program z wcięciami: Var s:string; 20  technik informatyk 312[01]/T,SP/MENIS/204.06.14


b:byte;

Begin ReadLn(s); If s='pi' Then Begin For b:=1 To 10 Do Begin WriteLn(PI); WriteLn(b); End; End Else WriteLn('Pozostale'); End.

Naprawdę gorąco zachęcam do stosowania wcięć od początku nauki gdyż później o wiele trudniej się przestawić na taki zapis, a jak program ma na dodatek kilka tysięcy linii to bez tego naprawdę można się pogubić uwierzcie mi :).

Jak wygląda program w Pascalu ? Program napisany w TP składa się z nagłówka programu (PROGRAM), deklaracji modułów, bloku i znaku . (kropka). W nagłówku programu podaje się zwykle jego nazwę. Za pomocą deklaracji modułów określa się moduły standardowe i moduły użytkownika. Blok składa się z opisu danych i części wykonawczej, a kropka kończy tekst programu. Dopuszcza się możliwość opuszczenia nagłówka (jest on pomijany przez kompilator), deklaracji modułów i opisu danych, a wiersz programu nie może zawierać więcej niż 127 znaków. Oto szkielet programu paskalowego:

PROGRAM Nazwa_Programu; {Nagłówek programu} USES {Deklaracja modułów} {Początek części opisowej} LABEL CONST TYPE VAR

21 


PROCEDURE FUNCTION {Koniec części opisowej} BEGIN {Część wykonawcza programu} END.

Klawiatura Kombinacja klawiszy

Funkcja

Edytor strzałki

Poruszanie kursorem

HOME

Początek linii

END

Koniec linii

CTRL + Page Up

Początek tekstu

CTRL + Page Down

Koniec tekstu

BACKSPACE

Skasowanie znaku przed kursorem

DELETE

Skasowanie znaku za kursorem

SHIFT + strzałki

Zaznaczanie bloku

CTRL + INSERT

Skopiowanie zaznaczonego bloku do schowka

SHIFT + DELETE

Skasowanie zaznaczonego bloku

SHIFT + INSERT

Wklejenie zawartości schowka w miejscu stania kursora

F1

Pomoc – spis treści

CTRL + F1

Pomoc kontekstowa

F2

Zapisanie programu źródłowego na dysku

F3

Otwarcie pliku z dysku w nowym oknie

F10

Przejście do menu głównego

ALT + F

Rozwinięcie menu File

ALT + X

Wyjście z programu

Praca z wieloma oknami F5

Powiększenie okna na cały ekran

ALT + zero

Lista otwartych okien

22  technik informatyk 312[01]/T,SP/MENIS/204.06.14


ALT + numer okna

Przełączanie między otwartymi oknami

ALT + F3

Zamykanie okna

Kompilator CTRL + F9

Kompilacja i uruchomienie programu

ALT + F9

Sama kompilacja

Run-time CTRL + BREAK

Przerwanie wykonywania programu

ENTER

Potwierdzenie wprowadzenia danych

Debugger CTRL + F2

Reset programu

F8

Wykonanie pojedynczej linii

F7

Rozwinięcie procedury lub funkcji

23 


Lekcja 8 Napisy, Liczby i zmienne – budowa prostego programu w TP. Typy całkowite Nazwa

Min. wartość

Max. wartość

Zużycie pamięci

SHORTINT

-128

127

1 bajt

BYTE

0

255

1 bajt

INTEGER

-32768

32767

2 bajty

WORD

0

65535

2 bajty

LONGINT

-2147483648

2147483647

4 bajty

min..max -okrojony

min

max

1-4 bajty

(a, b, c) -wyliczeniowy

a

c

1 bajt

Typy rzeczywiste Nazwa

Min. wartość

Max. wartość

Cyfry znaczące

Zużycie pamięci

SINGLE

1.5 x 10^–45

3.4 x 10^38

7-8

4 bajty

REAL

2.9 x 10^–39

1.7 x 10^38

11-12

6 bajtów

DOUBLE

5.0 x 10^–324

1.7 x 10^308

15-16

8 bajtów

EXTENDED

3.6 x 10^–4951

1.1 x 10^4932

19-20

10 bajtów

COMP

–2^63+1

2^63 –1

całkowity

8 bajtów

Typy znakowe Nazwa

Min. długość

Max. długość

Zużycie pamięci

CHAR

1

1

1 bajt

STRING

0

255

256 bajtów

STRING[długość]

0

długość

długość+1

24  technik informatyk 312[01]/T,SP/MENIS/204.06.14


Typy złożone Opis

Składnia

Zbiór

SET OF typ_całkowity;

Tablica jednowymiarowa

ARRAY [wymiar] OF typ;

Tablica wielowymiarowa

ARRAY [w1,w2] OF typ;

Rekord

RECORD lista_pól; END;

Plik tekstowy

TEXT;

Plik elementowy

FILE OF typ;

Operatory w Turbo Pascalu Operator

Znaczenie

Przykład

Priorytet wykonania

Operatory arytmetyczne -

Zmiana znaku

a := -a;

1

*

Mnożenie

a := a*b;

2

/

Dzielenie bez reszty

r := a/b;

2

DIV

Dzielenie z resztą

i := a div b;

2

MOD

Reszta z dzielenia

i := a mod b;

2

+

Dodawanie

a := a+b;

3

-

Odejmowanie

a := a-b;

3

Operatory porównania =

Równe

IF a = b THEN ...

4

<>

Nierówne

IF a <> b THEN ...

4

<

Mniejsze

IF a < b THEN ...

4

<=

Mniejsze równe

IF a <= b THEN ...

4

>

Większe

IF a > b THEN ...

4

>=

Większe równe

IF a >= b THEN ...

4

IN

Należy do

IF a IN zbior THEN ...

4

IF NOT (a<4) THEN ...

1

Operatory logiczne i bitowe NOT

Negacja

25 


AND

Iloczyn logiczny

IF (a<4) AND (a>1) THEN ...

2

OR

Suma logiczna

IF (a>=4) OR (a<=1) ...

3

XOR

Różnica symetryczna

a := b XOR $7F;

3

SHL

Przesunięcie w lewo

a := b shl 3;

2

SHR

Przesunięcie w prawo

a := b shr 3;

2

Inne operatory .

Wskazanie

a := rekord.pole;

1

&

Referencja

adres := &a;

1

^

Wyłuskanie

b := adres^;

1

typ( )

Wymuszenie typu

b := byte(i);

1

Lekcja 9 Struktury sterujące. Najprostsza składnia instrukcji warunkowej: IF warunek (lub warunki, o tym niżej) THEN instrukcje Jest to typ okrojony, pełna instrukcja warunkowa wygląda tak: IF warunek (lub warunki, o tym niżej) THEN instrukcje ELSE instrukcje program przyklad; var x: integer; begin write('Podaj jakas liczbe typu integer: '); readln(X); if(X>0) then writeln('Liczba wieksza od zera!') {gdy warunek X>0 jest prawdziwy} 26  technik informatyk 312[01]/T,SP/MENIS/204.06.14


else writeln('Wprowadzona liczba jest albo zerem, albo jest ujemna'); readln; end.

Instrukcja wielokrotnego wyboru: Instrukcja ta posiada następującą składnię: CASE wyrażenie OF wartość1 : Instrukcja1; wartość2 : Instrukcja2; ... END; lub CASE wyrażenie OF wartość1 : Intrsukcja1; wartość2 : Instrukcja2; ... ELSE Instrukcja3 End; Przykład: PROGRAM litery (input, output); VAR Znak: char; BEGIN writeln(’Program rozpoznawania liter’); writeln(’Podaj znak’); read(znak); writeln(znak); IF (’a’ <=znak) AND (znak <=’z’) THEN {litera} CASE znak OF ’a’, ’e’, ’i’, ’o’,’u’, ’y’ : writeln(’samogłoska’); ’q’, ’v’, ’x’ : writeln(’spółgłoska obca’); ’b’, ’c’, ’d’, ’f’,’g’, ’h’, ’j’, ’k’,’l’, ’m’, ’n’, ’p’,’r’, ’s’, ’t’, ’w’,’z’ : writeln(’spółgłoska polska’); 27 


END ELSE writeln(‘to nie była litera’) END.

Lekcja 10 Praca w środowisku systemu TP [Ćwiczenia]. Kod źródłowy programu wyświetlającego wizytówkę w Delphi. program Wizytowka; {$APPTYPE CONSOLE} uses SysUtils; begin writeln; writeln(' Tadeusz Graczyk klasa 1i/34'); writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'); writeln(' KONIEC PROGRAMU - wcisnij dowolny klawisz'); readln; end. Kod źródłowy programu obliczającego pole trójkąta ze wzoru Herona. program Heron; {$APPTYPE CONSOLE} uses SysUtils; var a,b,c,p,s:real; begin writeln;

28  technik informatyk 312[01]/T,SP/MENIS/204.06.14


writeln('

Tadeusz Graczyk klasa 1i/34');

writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'); writeln('Program oblicza pole trojkata ze wzorow Herona.'); writeln('Podaj dlugosci bokow trojkata:'); write('a='); readln(a); write('b='); readln(b); write('c='); readln(c); p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); writeln('Pole trojkata wynosi: ',s:5:2); writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'); writeln(' KONIEC PROGRAMU - wcisnij dowolny klawisz'); readln; end.

Lekcja 11 Temat: Analizowanie przykładowych programów, wykrywanie błędów i ich usuwanie [Ćwiczenia]. Wklej źródła programów wykonywanych na zajęciach.

Lekcja 12 Temat: Porządkowanie trzech, czterech i pięciu liczb [Ćwiczenia].

29 


Lekcja 13 Temat: Projekty prostych programów obliczeniowych [Ćwiczenia]. Pętla FOR ma postać: FOR zmienna:= wartość początkowa TO wartość końcowa Do instrukcja; Po słowie kluczowym FOR występuje zmienna sterująca. Wartość początkowa oraz wartość końcowa muszą być tego samego typu co zmienna porządkowa (sterująca). Pętla FOR charakteryzuje się tym, iż w każdym kolejnym cyklu jej wykonywania zmienna sterująca zostaje zwiększona o 1. Wygląda to tak: program LekcjaFor; {$APPTYPE CONSOLE} uses SysUtils; var i,liczba:integer; begin write('Podaj liczbe:'); readln(liczba); for i:=0 to liczba do writeln(i); readln; end.

Po słowie TO wpisujemy wartość końcową, czyli wartość dzięki której pętla wie kiedy zakończy swoje działanie.

Pętla For może mieć także taką postać: FOR zmienna := wartość początkowa DOWNTO wartość końcowa DO instrukcja; Różnica pomiędzy zapisem obu postaci pętli polega na tym, że słowo Do zastępujemy słowem DOWNTO, co oznacza, że odliczanie zmiennej sterującej odbywać się będzie „w dół”, a nie „w górę” .

30  technik informatyk 312[01]/T,SP/MENIS/204.06.14


program LekcjaFor; {$APPTYPE CONSOLE} uses SysUtils; var i,liczba:integer; begin write('Podaj liczbe:'); readln(liczba); for i:=liczba downto 0 do writeln(i); readln; end.

Schemat blokowy pętli FOR ma postać:

Źródło:www.home.agh.edu.pl

Pętla While ma postać: WHILE warunek DO instrukcja; Pętla wykonywana będzie dopóty, dopóki warunek będzie spełniony przy każdym wykonywaniu pętli. Popatrzmy na przykład, lekcjawhile. program LekcjaWhile; {$APPTYPE CONSOLE} uses SysUtils; var i,liczba:integer;

31 


begin write('Podaj liczbe:'); readln(liczba); i:=0; while i<=liczba do begin writeln(i); i:=i+1; end; readln; end.

Schemat blokowy pętli While ma postać:

Źródło:www.home.agh.edu.pl

Petla Repeat ma postać: REPEAT instrukcje UNTIL warunek; Pętla wykonywana jest tak długo, aż spełniony będzie warunek. Cechą charakterystyczną tej pętli jest to, iż grupę występujących tu instrukcji nie otaczamy słowami begin i end.

32  technik informatyk 312[01]/T,SP/MENIS/204.06.14


program LekcjaRepeat; {$APPTYPE CONSOLE} uses SysUtils; var i,liczba:integer; begin write('Podaj liczbe:'); readln(liczba); i:=0; repeat writeln(i); i:=i+1; until i>liczba; readln; end.

Zasadą działania jest: najpierw wykonana INSTRUKCJA, a następnie sprawdzony warunek, innymi słowy instrukcje umieszczane między słowami Repeat i Until są wykonywane wtedy, gdy wartość warunku logicznego jest fałszem (False), w przeciwnym wypadku pętla zostaje zakończona.

Źródło: http://gazeta-it.pl/200305225179/Programowanie-w-jezyku-Pascal-cz.-3.html

Projekty do wykonania 1. Wyświetla liczby parzyste od 2 do liczba. 2. Sumuje liczby od 1 do liczba. 33 


3. Sumuje liczby parzyste od 2 do liczba.

Lekcja 14 Temat: Sprawdzian wiadomości i umiejętności. Tu należy umieści kod źródłowy rozwiązanych zadań.

Lekcja 15 Temat: Wyrażenia stałe i inicjowanie zmiennych. 1. Stałe deklaruje się jeszcze przed głównym programem słowem kluczowym "Const", w programie przykładowo wygląda to tak: Const abc=500; l3='tu jest tekst'; sprawdz=TRUE;

begin end.

Jak już pewnie zauważyłeś nawet w tak prostym programiku, zastosowałem wcięcia dzięki temu widzimy, które linie są liniami ze stałymi a które nie. Zadeklarowałem tutaj trzy stałe: "abc" - przypisana została do niej liczba 500, teraz jeżeli dalej w programie użyjemy stałej "abc" będzie ona postrzegana przez kompilator jako liczba 500, można ją dodawać, odejmować, wyświetlać itd. Stała "l3" jest ciągiem znaków 'tu jest tekst', a "sprawdz" jest postrzegane jako stała logiczna "PRAWDA". 2. Zmienne deklaruje się podobnie jak stałe jeszcze przed głównym programem, słowem kluczowym "Var", w programie przykładowo wygląda to tak: 34  technik informatyk 312[01]/T,SP/MENIS/204.06.14


Var abc:byte; A3,linia,t:string;

{1}

sprawdz:boolean;

begin end.

Teraz zmienne zostały przypisane do danego typu, i ich wartość będzie można dowolnie zmieniać w zakresie tego typu. Zwróć uwagę że pomiędzy nazwą zmiennej a jej rodzajem, został użyty dwukropek zamiast znaku równości jak to miało miejsce przy stałych. Możliwe jest definiowanie wielu zmiennych tego samego typu w jednej linii, wystarczy je wtedy rozdzielić przecinkami {1}. KAŻDA ZMIENNA PRZED UŻYCIEM W PROGRAMIE MUSI BYĆ WCZEŚNIEJ ZADEKLAROWANA. Źródło: http://www.pascal.eu.org/lekcja1.htm

Lekcja 16 Temat: Procedury i funkcje w języku Turbo Pascal. Procedury Cel ćwiczenia: Poznanie zastosowań procedur. Struktura procedury. Przekazywanie parametrów do procedur. Obliczanie sum szeregów z wykorzystaniem procedur. z1. Opracować procedurę, która oblicza sumę dwóch liczb rzeczywistych przekazywanych przez wartości za pomocą argumentów x i y oraz zwraca wynik dodawania argumentów za pośrednictwem zmiennej wyn, będącej argumentem procedury. W programie głównym wywołać funkcję dla danych wejściowych wczytywanych z klawiatury. Przyjąć następujący nagłówek procedury: procedure Suma1(x, y: real; Var wyn: real). program lek16_z1; {$APPTYPE CONSOLE}

35 


uses SysUtils;

var x,y,wyn: real; {-------------------------------------------} procedure Suma1(x,y: real; var wyn: real); begin wyn:=x+y; end; {-------------------------------------------} begin write('Podaj x: '); readln(x); write('Podaj y: '); readln(y); Suma1(x,y,wyn); write(wyn:0:2); readln; end. z2. Opracować procedurę, która zwraca przez zmienne minimum, maksimum oraz średnią arytmetyczną z dwóch liczb rzeczywistych przekazywanych do procedury przez wartości. Nagłówek procedury: procedure MS(x, y: real; Var min, max, sr: real). program lek16_z2; {$APPTYPE CONSOLE}

uses SysUtils;

36  technik informatyk 312[01]/T,SP/MENIS/204.06.14


var x,y,min,max,sr: real; {-------------------------------------------} procedure MS(x,y: real; var min,max,sr:real); begin { wyznaczenie min } min:=x; if y<=min then min:=y;

{ wyznaczenie max } max:=x; if y>=max then max:=y;

{ wyznaczenie sredniej arytmetycznej } sr:=(x+y)/2;

end; {-------------------------------------------}

begin write('Podaj x: '); readln(x); write('Podaj y: '); readln(y);

MS(x,y,min,max,sr);

writeln('min = ', min:0:2); 37 ď‚—


writeln('max = ', max:0:2); writeln('sr = ', sr:0:2); readln; end.

Funkcje Cel ćwiczenia: Poznanie zastosowań funkcji. Struktura funkcji. Przekazywanie parametrów do funkcji i zwracanie wyników. Funkcje rekurencyjne. Obliczenia iteracyjne i rekurencyjne. z1.Opracować funkcję, która oblicza sumę dwóch liczb rzeczywistych przekazywanych przez wartości, za pomocą argumentów x i y, oraz zwraca wynik dodawania argumentów przez wartość funkcji. W programie głównym wywołać funkcję dla danych wejściowych wczytywanych z klawiatury. Przyjąć, że nagłówek funkcji ma następującą postać: function Suma(x, y: real): real. program lek16_z3; {$APPTYPE CONSOLE}

uses SysUtils;

var x,y: real;

function Suma(x,y:real): real; begin Suma:=x + y; end;

begin 38  technik informatyk 312[01]/T,SP/MENIS/204.06.14


write('Podaj x ='); readln(x); write('Podaj y ='); readln(y); writeln(Suma(x,y):0:2)); readln; end. z2.Opracować funkcję, która zwraca przez wartość średnią arytmetyczną z dwóch liczb rzeczywistych, przekazywanych do funkcji przez wartości, oraz zwraca minimum i maksimum z tych liczb przez zmienne. Przyjąć, że nagłówek funkcji ma następującą postać: function SMM(x,y: real; Var min,max: real): real. program lek16_4; {$APPTYPE CONSOLE}

uses SysUtils;

var x,y,min,max: real;

function SMM(x,y: real; var min,max: real): real; begin SMM:=(x + y)/2; {wyznaczenie min} min:=x; if y<=min then min:=y; {wyznaczenie max} max:=x; if y>=max then max:=y; end; 39 


begin write('Podaj x ='); readln(x); write('Podaj y ='); readln(y); writeln('Funkcja oblicza srednia z liczb x,y'); writeln('SMM = ',SMM(x,y,min,max):0:2); writeln('Max = ',max:0:2); writeln('Min = ',min:0:2); readln; end.

Źródło: http://admin.zspw.pl/pascal.php#et6

Lekcja 17 Temat: Podział programu na podprogramy [Ćwiczenia].

Lekcja 18 Temat: Różne metody przekazywania parametrów [Ćwiczenia]. Jaki będzie efekt działania poniższego programu? Co zmieni się jeśli w definicji procedury oblicz usuniemy słowo kluczowe var? {-------------------------------------------------} program Project1; {$APPTYPE CONSOLE} uses 40  technik informatyk 312[01]/T,SP/MENIS/204.06.14


SysUtils; var a,b:integer; {--------------------------------------------------} procedure oblicz(var x,y:integer); begin x:=x+1; y:=y-1; writeln('x=',x); writeln('y=',y); end; {-------------------------------------------------} begin a:=6; b:=9; oblicz(a,b); writeln('a=',a); writeln('b=',b); readln; end. Program Pole_i_obwód nie wyświetla prawidłowych wyników. Popraw ten błąd oraz dopisz procedurę obliczającą obwód prostokąta. program Pole_i_obwod; {$APPTYPE CONSOLE} uses SysUtils; var a,b,pol:real; procedure czytaj_dane(x,y:real); begin write('podaj dlugosc boku 1: '); readln(x); write('podaj dlugosc boku 2:'); readln(y); end; {--------------------------------------------------} procedure pole(x,y:real; var p:real); begin p:=x*y; end; 41 


{-------------------------------------------------} begin czytaj_dane(a,b); pole(a,b,pol); writeln('pole=',pol:0:2); readln; end.

Lekcja 19 Temat: Stosowanie algorytmów iteracyjnych [Ćwiczenia]. Pojęcie iteracji •

iteracja od łac. iteratio = następowanie. Funkcja jest wywoływana dla kolejnych (następnych) elementów (mogą to być także proste instrukcje).

W większości języków programowania istnieje co najmniej kilka instrukcji iteracyjnych. Najważniejsze z nich to instrukcje FOR, WHILE i REPEAT (w języku C DO-WHILE).

Przykład obliczania silni metodą iteracyjną •

Silnią liczby naturalnej n (w notacji matematycznej n! co czytamy n silnia) nazywamy iloczyn wszystkich dodatnich liczb naturalnych nie większych niż n. Oznaczenie n! wprowadził w 1808 roku Christian Kramp.

Przykłady:

4! = 1 · 2 · 3 · 4 = 24. 5! = 1 · 2 · 3 · 4 · 5 = 120. 6! = 1 · 2 · 3 · 4 · 5 · 6 = 720. Wartość n! pozwala określić liczbę możliwych permutacji n elementów.

Funkcja iteracyjna obliczająca silnię za pomocą pętli FOR function Silnia(n:Integer):Integer; var I,wynik: Integer; begin wynik := 1; for i:=2 to n do wynik := wynik * i; Silnia := wynik; end;

42  technik informatyk 312[01]/T,SP/MENIS/204.06.14


Funkcja iteracyjna obliczająca silnię za pomocą pętli While do function Silnia(n:Integer):Integer; var i: Integer; wynik: Integer; begin wynik := 1; i := 2; while i<=n do begin wynik := wynik * i; i := i+1; end; Silnia := wynik; end;

Lekcja 20 Temat: Algorytmy rekurencyjne [Ćwiczenia]. Pojęcie rekurencji •

rekurencja od łac. recursio = powracanie. Funkcja wywołuje samą siebie (ewentualnie inną, która wywoła pierwszą funkcję), a potem wykonywanie programu wraca do pierwszej.

Funkcja silnia przykład rekurencyjny function silniaRek(n:byte):longint; begin if n=0 then silniaRek:=1 else silniaRek:=n*silniaRek(n-1) end;

Zad1. Wykonaj projekt wykorzystujący funkcję silniaRek. Zad2. Wykonaj projekt, który dla danej liczby a oblicza i wyświetla wartości silni od 0 do a.

Lekcja 21 Temat: Przykłady algorytmów klasycznych (Euklidesa, obliczania potęgi, wyznaczanie liczb Fibonacciego) [Ćwiczenia]. 43 


Algorytm Euklidesa – znajdowania największego wspólnego dzielnika liczb:

START

WCZYTAJ (A,B)

TAK

NIE A<>B

TAK

NIE A>B

A:=A-B

B:=B-A

WYPISZ A

STOP

44  technik informatyk 312[01]/T,SP/MENIS/204.06.14


Liczby Fibonacciego  Fibonacci Leonardo, (znany również jako Leonardo z Pizy, Leonardo Pisano, Filius Bonacci), około 1175-około 1250. Matematyk włoski, jeden z najwybitniejszych uczonych średniowiecza; wprowadził w Europie cyfry arabskie; autor dzieł poświęconych arytmetyce i algebrze: m.in. Liber abaci (1202); od 1960 wzrosło zainteresowanie ciągiem Fibonacciego, gdzie każda liczba jest sumą dwóch poprzednich (1,1,2,3,5,8,13,...); liczby te posiadają niezwykłe cechy, umożliwiające zastosowanie ich w obliczeniach w botanice, psychologii i astronomii (np. dokładniejsza zgodność odległości między Słońcem a planetami niż przedstawiona w prawie Bode’a). Rozważmy taki oto problem: Pewien gospodarz zamknął w dużej klatce parę królików. Ile par królików będzie w klatce po roku, jeżeli każda para królików co miesiąc rodzi nową parę, a ta staje się ,,reproduktywna'' po upływie miesiąca? Miesiąc

Pary

Pary

Całkowita

dorosłe

młode

liczba par

1

1

1

2

2

2

1

3

3

3

2

5

4

5

3

8

5

8

5

13

6

13

8

21

7

21

13

34

8

34

21

55

9

55

34

89

10

89

55

144

11

144

89

233

12

233

144

377 45 


Funkcja obliczająca liczbę w ciągu Fibonacciego metodą rekurencyjną. function fibonacci(nr:integer):integer; begin if ((nr =1) or (nr = 2)) then fibonacci :=1 else fibonacci := fibonacci(nr-1) + fibonacci(nr-2); end;

Grafika w Pascalu. 1. Opracowywanie interfejsu aplikacji [Ćwiczenia]. 2. Prezentowanie graficzne wyników obliczeń [Ćwiczenia]. 3. Tworzenie modułów użytkownika [Ćwiczenia]. 4. Przykłady stosowania w programach sygnalizacji dźwiękowej. Sygnalizowanie błędów [Ćwiczenia]. 5. Programy rozwiązujące równanie kwadratowe, liniowe, układ równań liniowych [Ćwiczenia]. 6. Rozwiązywanie zadań w języku Turbo Pascal [Ćwiczenia]. 7. Sprawdzian wiadomości i umiejętności. 8. Typy strukturalne – tablice. 9. Stosowanie tablic i wykonywanie na nich podstawowych operacji [Ćwiczenia]. 10. Zamiana liczb dziesiętnych na binarne i obliczanie miar centralności danych [Ćwiczenia]. 11. Znajdowanie zera funkcji metodą połowienia przedziału [Ćwiczenia]. 12. Pliki i operacje na nich w języku Turbo Pascal. 13. Operowanie plikami tekstowymi i elementowymi [Ćwiczenia]. 46  technik informatyk 312[01]/T,SP/MENIS/204.06.14


14. Zbiory i rekordy w języku Turbo Pascal. 15. Algorytmy umożliwiające wykonywanie operacji na zbiorach [Ćwiczenia]. 16. Wykorzystanie plików i rekordów do projektowania baz danych [Ćwiczenia].

47 


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.