Podstawy Programowania 2



Podobne dokumenty
PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ

Język programowania PASCAL

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Delphi podstawy programowania. Środowisko Delphi

Laboratorium 1 - Programowanie proceduralne i obiektowe

Język programowania. Andrzej Bobyk

Programowanie obiektowe

Programowanie obiektowe

Rozdział 4 KLASY, OBIEKTY, METODY

Programowanie obiektowe

Aplikacje w środowisku VBA. Visual Basic for Aplications

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Programowanie w języku Python. Grażyna Koba

5.4. Tworzymy formularze

Wykład 8: klasy cz. 4

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

TEMAT : KLASY DZIEDZICZENIE

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

5.2. Pierwsze kroki z bazami danych

Delphi. Lazarus. Kompilatory Delphi. Linki do stron o Delphi

Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno

Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne.

1. Przypisy, indeks i spisy.

Funkcje i instrukcje języka JavaScript

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Wykład 9: Polimorfizm i klasy wirtualne

Makra programu Microsoft Access.

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Instrukcja uŝytkowania programu

Programowanie obiektowe

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Gdy z poziomu programu Delphi otworzysz folder pierwszy program, zauważysz tylko dwa pliki [rys.1]:

Technologie obiektowe

Wprowadzenie do systemu Delphi

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

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Programowanie obiektowe - 1.

Programowanie zaawansowane

Dodawanie i modyfikacja atrybutów zbioru

1 Atrybuty i metody klasowe

OBIEKTY TECHNICZNE OBIEKTY TECHNICZNE

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

Obszar Logistyka/Zamówienia Publiczne

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

Układy VLSI Bramki 1.0

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Delphi Laboratorium 3

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Podstawowe zagadnienia z zakresu baz danych

Deklaracja struktury w C++

Materiały do laboratorium MS ACCESS BASIC

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

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

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Makropolecenia w Excelu

Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno

VinCent Administrator

Menu Plik w Edytorze symboli i Edytorze widoku aparatów

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

Zbieranie kontaktów.

Aplikacje w środowisku Java

Materiały szkoleniowe Moduł Mapa inwestora. Starostwo Powiatowe w Chełmie

Podstawy Programowania semestr drugi. Wykład czternasty

Programowanie obiektowe

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

mfaktura Instrukcja instalacji programu Ogólne informacje o programie biuro@matsol.pl

Programowanie obiektowe

Przewodnik Szybki start

Zakład Systemów Rozproszonych

IIIIIIIIIIIIIIIMMIMMIII

Programowanie obiektowe

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Makropolecenia w PowerPoint Spis treści

Palety by CTI. Instrukcja

KROK 17 i 18. Cel: Tworzymy oddzielne okno - O autorze. 1. Otwórz swój program. 2. Skompiluj i sprawdź, czy działa prawidłowo.

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Dodawanie grafiki i obiektów

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Instalacja


Włączanie/wyłączanie paska menu

Zadanie nr 2: Arytmetyka liczb zespolonych

Wykład 7 Okna dialogowe, menu, pasek stanu itp.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Borland to firma, która stworzyła kilka środowisk programistycznych: Turbo Pascal Borland Pascal Objekt Pascal Borland Delphi C++ Builder C++

Instalacja i opis podstawowych funkcji programu Dev-C++

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Transkrypt:

Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu były poświęcone dotychczasowe laboratoria, przyświecała sentencja Niklausa Wirtha Algorytmy + Struktury Danych = Programy. Jest to klasyczny sposób programowania polegający na tworzeniu struktur danych, na których wykonywane są pewne operacje realizowane przez funkcje lub procedury. Dane te są jednak niemal całkowicie oderwane od funkcji i procedur na nich operujących. Oznacza to, że jeśli jakaś zmienna jest globalna, możemy mieć do niej dostęp nie tylko w procedurach, które powinny na danej zmiennej operować, ale możemy modyfikować jej wartość w dowolnym miejscu programu. Z pomocą przychodzi tu programowanie obiektowe. Umożliwia ono łączenie funkcji, procedur i struktur danych ze sobą w jedną hermetycznie zamkniętą całość. Oznacza to, że na pewnych danych można operować tylko poprzez wydzielone dla nich funkcje lub procedury. Object Pascal Klasyczny język Pascal jest typowym językiem strukturalnym nie oferującym operacji na klasach i obiektach. W związku z tym utworzone zostało rozszerzenie tego języka o odpowiednie funkcje i procedury, które zostało nazwane Object Pascal. Istnieje wiele implementacji tego języka, z których najbardziej popularną jest Borland Delphi dla systemów MS Windows. Implementacja ta wyposażona jest również w szereg dodatkowych komponentów, które nie wchodzą w skład samego języka. Darmowym odpowiednikiem Delphi jest środowisko Lazarus dostępne na większość systemów operacyjnych. Klasa i obiekt Podobnie jak typ określa rodzaj zmiennej, tak klasa określa rodzaj obiektu. Klasa jest więc pewnym rodzajem typu danych i dlatego w języku Object Pascal deklarację klasy umieszcza się w części type. Deklaracja klasy wygląda podobnie do deklaracji rekordu, z tym, że używamy słowa kluczowego object zamiast record. Poniżej przedstawiony został przykład klasy: Klasa=object t1, t2:string; procedure copy(); procedure drukuj(); Podstawy Programowania 2 mgr inż. Leszek Ciopiński 1

procedure dodaj(x:string); procedure dodaj(x:byte); private tmp:boolean; public Pierwszą rzeczą, która odróżnia klasę od rekordu jest występowanie oprócz pól również procedur i funkcji. W programowaniu obiektowym nazywa się je metodami. Warto zauważyć, że w powyższym przykładzie dwukrotnie występuje deklaracja metody dodaj(), która raz przyjmuje zmienną typu String, a następnie typu byte. W programowaniu strukturalnym każda procedura musiała mieć unikatową nazwę. Programowanie obiektowe wspiera jednak mechanizm polimorfizmu. Polega on na możliwości nadawania funkcjom lub procedurom tych samych nazw. Różnią się one między sobą jedynie listą przyjmowanych parametrów. Oznacza to, że właściwa metoda zostanie wybrana w zależności od typu lub klasy przekazywanego parametru. Co również istotne, ponieważ metody przypisane są do konkretnych obiektów i klas, możliwe jest występowanie metod o tych samych nazwach i parametrach w rożnych klasach. Właściwa metoda zostanie wtedy wybrana w oparciu o klasę z której pochodzi dany obiekt. Ostatnim istotnym elementem są sekcje public i private. Użycie pierwszej z nich powoduje, że wszystkie zmienne i metody wymienione po niej dostępne są w każdym miejscu programu bez żadnych ograniczeń. Ograniczenia takie wprowadza dopiero sekcja private. Powoduje ona, że funkcje, procedury i nazwy pól wymienione po niej dostępne są poprzez bezpośrednie odwołanie się do nich tylko w tym module, w którym znajduje się deklaracja klasy. W pozostałych modułach aplikacji pola i metody z tej części klasy nie są dostępne. Nie oznacza to jednak, że omawiane tu pola i metody są w jakikolwiek sposób usuwane. Istnieje do nich stały dostęp poprzez wybrane przez programistę pola i metody publiczne. W ten sposób tworzony jest interfejs komunikacji i obsługi klasy. Programista zabezpiecza się w ten sposób przed przypadkowym użyciem danego obiektu. Implementacja elementów obiektu Metody, które zostały zadeklarowane w klasie muszą jeszcze zostać zaimplementowane. Wykonuje się to po sekcji type a przed sekcją var. Implementacja metody różni się od implementacji zwykłej procedury i funkcji jedynie dwoma elementami. Pierwszym jest nazwa metody, która składa się najpierw z nazwy klasy do której należy, a dopiero po kropce. własnej nazwy. Drugim, jest możliwość dostępu do wszystkich zmiennych, które zostały zadeklarowane wewnątrz danej klasy. Przypomina to sytuację odwoływania się do zmiennych globalnych. Należy jednak pamiętać, że zawsze operujemy na polach należących do danego obiektu i wywołanie metody dla jednego z obiektów nie skutkuje zmianą wartości parametrów (pól) innego obiektu. Przykładowe implementacje metod zaprezentowanej powyżej klasy przedstawiono poniżej: procedure Klasa.drukuj(); writeln(tmp); procedure Klasa.dodaj(x:String); t2:=t2+x; Podstawy Programowania 2 mgr inż. Leszek Ciopiński 2

procedure Klasa.dodaj(x:byte); t2:=t2+inttostr(x); procedure Klasa.copy(); t2:=t1; tmp:=true; Używanie obiektów i metod Tworzenie obiektów danych klas wygląda podobnie do tworzenia zwykłych zmiennych i wykonuje się je poprzez deklarację w sekcji var. Przykład takiej deklaracji pokazano poniżej: k:klasa; Dostęp do kolejnych parametrów (pól) obiektu danej klasy przypomina dostęp do pól rekordu. W analogiczny sposób został również zorganizowany dostęp do metod obiektu danej klasy: k.t1:='kot'; k.copy(); k.drukuj(); k.dodaj(' aaa '); k.dodaj(5); Writeln(k.t2); Środowisko Lazarus Środowisko Lazarus dostępne jest na licencjach GNU GPL i LGPL (część elementów składowych podlega pierwszej licencji, a pozostała część drugiej). Strona domowa projektu to: http://www.lazarus.freepascal.org/. Po uruchomieniu środowiska automatycznie otwierany jest ostatnio tworzony projekt lub, w przypadku jego braku, nowy projekt. Pierwszym elementem, który może nieco zaskakiwać jest budowa tego środowiska. Wzorowana jest ona na Borland Delphi, gdzie w górnej części okna otwierany jest pasek narzędzi z komponentami, a poniżej znajdują się formatki i okna pomocnicze. Aby przygotować środowisko do nowego projektu należy wybrać polecenie menu: Plik Zamknij Wszystko, a następnie tworzymy nowy projekt poleceniem: Plik Nowy... Projekt Program. Poniżej przedstawiono ogólny wygląd środowiska po wykonaniu powyższych czynności (w tle pulpit i inne otwarte okna): Podstawy Programowania 2 mgr inż. Leszek Ciopiński 3

Pasek menu i komponentów Okno z kodem źródłowym Okno komunikatów kompilacji Okienko z kodem źródłowym zawiera kod tworzonego programu. Posiada numerowanie linii i kolorowanie kodu w celu jego łatwiejszego przeglądania. Przydatnym jest również narzędzie zwijania implementacji procedur. Informację o wyniku kompilacji, jej powodzeniu lub napotkanych błędach znaleźć można w okienku Komunikaty. Głównym elementem środowiska jest jednak pasek menu i komponentów: Menu Najważniejsze funkcje sterujące Paleta formatów Paleta komponentów wykorzystywana jest przy tworzeniu aplikacji okienkowych i zostanie dokładniej omówiona w następnych instrukcjach. Teraz zwróćmy uwagę na najważniejsze funkcje sterujące: 1 2 3 4 5 6 7 8 9 10 11 12 13 1. Nowy moduł tworzony jest schemat nowego modułu. 2. Otwórz istniejący plik. Podstawy Programowania 2 mgr inż. Leszek Ciopiński 4

3. Zapisz zmiany w bieżącym oknie. 4. Zapisz zmiany we wszystkich otwartych plikach. 5. Nowy Formularz nowa formatka przy tworzeniu aplikacji okienkowych. 6. Przełącz pomiędzy formularzem modułem. Umożliwia podgląd kodu źródłowego powiązanego z daną formatką. 7. Pokaż moduły wyświetla listę modułów tworzonego programu/aplikacji. 8. Pokaż formularze wyświetla listę formularzy tworzonej aplikacji. 9. Uruchom kompiluje projekt i uruchamia utworzony program/aplikację. 10.Wstrzymaj wstrzymuje tymczasowo działanie aplikacji. 11. Zatrzymaj zatrzymuje i wyłącza utworzoną aplikację, Przydatne, jeśli program ulega zawieszeniu. 12.Wejdź do podczas debugowania umożliwia wejście do danej funkcji lub procedury i wykonanie kolejnego kroku aplikacji. 13.Przejdź przez podczas debugowania umożliwia przejście przez daną funkcję lub procedurę do następnego kroku aplikacji. Wybrane funkcje dodatkowe W module sysutils znajdują się funkcje pomocnicze ułatwiające tworzenie aplikacji. Poniżej podano jedynie niektóre z nich: IntToStr() - zamienia liczbę typu Integer na zmienną typu String IntToHex() - zamienia liczbę typu Integer na zmienną typu String, zawierającą liczbę zapisaną w postaci szesnastkowej. StrToInt() - zamienia liczbę zapisaną w typie String na typ Integer. Zadania: Należy utworzyć klasę, której obiekt będzie mógł wykonać następujące operacje na liczbach zespolonych: 1. Wyświetlanie liczby w postaci kanonicznej (a+ib) i trygonometrycznej ( z (cosφ+isinφ)) najpierw w formacie dziesiętnym, a następnie szesnastkowym. 2. Dodawanie do jednej liczby zespolonej drugiej liczby zespolonej. Należy to zrealizować poprzez metodę przyjmującą jako parametr inną liczbę zespoloną. Wynik należy zapisać w obiekcie wywołującym metodę: a.dodaj(b) wynik zapisujemy w obiekcie a 3. Mnożenie liczb zespolonych. Należy to zrealizować poprzez metodę przyjmującą jako parametr inną liczbę zespoloną. Wynik należy zapisać w obiekcie wywołującym metodę: a.pomnoz(b) wynik zapisujemy w obiekcie a 4. Dzielenie liczb zespolonych. Należy to zrealizować poprzez metodę przyjmującą jako parametr inną liczbę zespoloną. Wynik należy zapisać w obiekcie wywołującym metodę: a.pomnoz(b) wynik zapisujemy w obiekcie a 5. Kopiowanie wartości liczby zespolonej. Należy to zrealizować poprzez metodę przyjmującą jako parametr inną liczbę zespoloną. Wynik należy zapisać w obiekcie wywołującym metodę: a.kopiuj(b) wynik zapisujemy w obiekcie a Podstawy Programowania 2 mgr inż. Leszek Ciopiński 5