PODSTAWY PROGRAMOWANIA Andrzej Marciniak Prezentacja multimedialna przygotowana za pomocą systemu Corel Presentations X3 Copyright 2003-2012 by Andrzej Marciniak PP-2(1 z 53)
Na poprzednim wykładzie... P plan wykładów P podstawowe pojęcia związane z programowaniem P przegląd języków programowania P symbole w sieciach działań (schematy blokowe) PP-2(2 z 53)
Na tym wykładzie... P maksymy programistyczne (D. Van Tassel) P ogólne zasady programowania zorientowanego obiektowo P historia języka Delphi i ogólna charakterystyka pakietu Embarcadero Delphi XE2 P podstawowe pojęcia związane z konstruowaniem programów w zintegrowanym systemie programowania P posługiwanie się zintegrowanym systemem PP-2(3 z 53) programowania
Maksymy programistyczne (Dennie Van Tassel, Praktyka programowania, WNT, Warszawa) PBezbłędny i sensowny program jest abstrakcyjnym pojęciem teoretycznym. PCelem programowania jest nie program, lecz wynik obliczenia. PDuży monolityczny program jest jak talerz spaghetti: dotkniesz go z jednej strony i zaraz coś się rusza z drugiej. PP-2(4 z 53)
Maksymy programistyczne (Dennie Van Tassel, Praktyka programowania, WNT, Warszawa) PDlaczego nie mamy nigdy czasu, by program napisać dobrze, natomiast zawsze dość czasu, by go przerobić? PKłopoty z ukrytymi błędami polegają na tym, że występują one tym częściej, im częściej i powszechniej stosuje się program. PJeśli program warto napisać, to warto go napisać poprawnie. PP-2(5 z 53)
Maksymy programistyczne (Dennie Van Tassel, Praktyka programowania, WNT, Warszawa) PProgramy mają być czytane przez ludzi. PBUZI = Bez Udziwnień Zapisuj, Idioto (ang. KISS = Keep It Simple, Stupid). PWybieraj jak najstaranniej algorytm rozwiązania. PNajpierw projekt, potem kodowanie. PProjektując, dbaj o uniwersalność programu. PGdy coś nie działa, jego sprawność nie ma żadnego znaczenia. PP-2(6 z 53)
mhm... Nie w każdej chwili, nie w każdym czasie dobre programy napisać da się. Więc jeśli możesz, śpiesz do nich śmiało, strzegąc się przeszkód, których niemało. A. M. PP-2(7 z 53)
Ogólne zasady programowania zorientowanego obiektowo Programowanie zorientowane obiektowo jest podstawową metodologią wszystkich współczesnych języków. U jego podstaw leżą trzy podstawowe pojęcia: Phermetyczność (ang. encapsulation), Pdziedziczność (ang. inheritance), Ppolimorfizm (ang. polymorphism). PP-2(8 z 53)
Ogólne zasady programowania zorientowanego obiektowo Hermetyczność oznacza, że struktury danych i kody programowe są połączone w całościową jednostkę programową, zwaną obiektem. Ogólnie dostępne struktury danych w obiekcie nazywa się własnościami (ang. properties), a ogólnie dostępne kody programowe - metodami. Obiekt może posiąść metody i dane innego obiektu, ale metody jednego obiektu nie mają bezpośredniego dostępu do danych innego obiektu. Możliwe jest też ukrycie pewnych danych i metod obiektu przed innym obiektem, przez co nie będą one z niego dostępne. PP-2(9 z 53)
Ogólne zasady programowania zorientowanego obiektowo Główną zaletą hermetyczności obiektów jest możliwość zabezpieczenia danych przed jednoczesnym dostępem przez różne fragmenty kodu programowego. W programowaniu strukturalnym nie było strukturalizacji danych, co powodowało możliwość dostępu do morza danych przez każdą procedurę, a zapewnienie dostępu do odpowiednich danych było zadaniem programisty. PP-2(10 z 53)
Ogólne zasady programowania zorientowanego obiektowo PP-2(11 z 53)
Ogólne zasady programowania zorientowanego obiektowo PP-2(12 z 53)
Ogólne zasady programowania zorientowanego obiektowo Dziedziczność obiektów umożliwia programiście definiowanie potomków istniejących obiektów. Ponieważ potomek dziedziczy własności i metody po swoim przodku, określa się w nim jedynie różnice w odniesieniu do przodka. Praca programisty koncentruje się na oprogramowaniu własności i metod unikatowych dla potomka. Zasada dziedziczności jest też wygodna w przypadku wykonywania zmian obejmujących całą klasę obiektów - wystarczy wówczas je wykonać tylko w obiekcie nadrzędnym (wszystkie obiekty potomne automatycznie będą uwzględniać te zmiany). PP-2(13 z 53)
Ogólne zasady programowania zorientowanego obiektowo PP-2(14 z 53)
Ogólne zasady programowania zorientowanego obiektowo Polimorfizm umożliwia tworzenie w obiektach potomnych metod o takich samych nazwach, jak w obiektach nadrzędnych, ale wykonujących różne czynności. Dzięki polimorfizmowi programista może nakazać obiektowi wykonać określoną metodę, bez wnikania w wewnętrzne szczegóły dotyczące rodzaju (typu) danego obiektu. PP-2(15 z 53)
Ogólne zasady programowania zorientowanego obiektowo PP-2(16 z 53)
Nieco historii... P 1971 Niklaus Wirth, The Programming Language Pascal, Acta Informatica 1, 35-63 P 1974 Kathleen Jensen, Niklaus Wirth, Pascal User Manual and Report, Springer-Verlag, New York Później N. Wirth zaprzestał rozwijanie języka Pascal i w 1977 roku stworzył jego następcę język Modula, który jednak nie stał się tak bardzo popularny. P 1983 Anders Hejlsberg, Turbo Pascal (1.0) P Turbo Pascal 3.0 (1986) grafika żółwiowa (ang. turtle graphics) P Turbo Pascal 4.0 (1987) programowanie modularne P Turbo Pascal 5.0 (1988) nakładkowanie oraz wykorzystanie wbudowanego asemblera i debuggera PP-2(17 z 53)
Nieco historii... P Turbo Pascal 5.5 (1989) elementy programowania zorientowanego obiektowo P Turbo Pascal 7.0 (1992) pokonanie bariery 640 kb pamięci operacyjnej P Delphi (1) (1995) konstruowanie aplikacji z elementów wizualnych, wykorzystanie bibliotek DLL, dostęp do mechanizmów obsługi baz danych P Delphi 2 (1996) Delphi dla 32-bitowego środowiska Windows 95 i NT, nowe komponenty, dziedziczenie formatek, wykorzystanie technologii OLE, zgodność z 16-bitowymi projektami PP-2(18 z 53)
Nieco historii... P Delphi 3 (1997) implementacja kolejnych technologii dotyczących programowania w środowisku Windows: obiektów COM, komponentów ActiveX, aplikacji serwerów WWW i wielowarstwowych aplikacji SQL P Delphi 4 (1998) usprawnienia zintegrowanego środowiska programowania (eksplorator modułów, edytor pokazujący uzupełnianie definicji klas), technologie MIDAS, DCOM, MTS i CORBA P Delphi 5 (1999) elementy usprawniające tworzenie aplikacji związanych z Internetem W 2000 roku pojawia się wersja 1.0 produktu firmy Borland Free Pascal. PP-2(19 z 53)
Nieco historii... P Delphi 6 (2001) zgodność z Kylix (bibioteka komponentów CLX Component Library for Cross Platform) P Delphi 7 (2002) przystosowanie aplikacji stworzonych w Delphi do platformy Microsoft.NET (aplikacje korporacyjne), raportowanie wizualne (Rave Reports), nowe komponenty specyficzne dla Windows XP, usługi sieciowe wykorzystujące XML (Extensible Markup Language) P Delphi 8 (2003) zmiana wyglądu i rozszerzenia funkcjonalności zintegrowanego środowiska programowania, rozszerzenia PP-2(20 z 53) bibliotek VCL i CLX
Nieco historii... P Delphi 2005 (część pakietu Borland Developer Studio 2005) nowe zintegrowane środowisko programowania umożliwia pracę wieloosobową oraz programowanie dla środowisk Win 32,.NET i w języku C# Free Pascal 2.0 (2005) P Delphi 2006 (część pakietu Borland Developer Studio 2006) środowisko programowania umożliwia dodatkowo programowanie w języku C++ Free Pascal 2.0.4 (2006) W listopadzie 2006 roku firma Borland tworzy firmę-córkę CodeGear, której zadaniem ma być dalszy rozwój środowisk programowania. P CodeGear Delphi 2007 dla Vista i AJAX P Delphi/400 CodeGear (2008) PP-2(21 z 53)
Nieco historii... W maju 2008 roku firma CodeGear zostaje sprzedana firmie Embarcadero Technologies. P Delphi 2009 wprowadzenie do języka typów generycznych, metod anonimowych i pełnej obsługi składni standardu Unicode P Embarcadero Delphi XE (Delphi 2011) Informacja producenta: Embarcadero Delphi XE jest kompletnym pakietem do szybkiego tworzenia rozbudowanych aplikacji Windows. Pozwala znacznie ograniczyć czas pisania kodu i nawet kilkakrotnie skrócić czas dostarczania aplikacji dzięki wykorzystaniu bogatej biblioteki komponentów oraz w pełni dwukierunkowego środowiska RAD IDE (skrót ang. Rapid Application Development, Integrated Development Environment) PP-2(22 z 53)
Nieco historii... W maju 2008 roku firma CodeGear zostaje sprzedana firmie Embarcadero Technologies. P Delphi 2009 wprowadzenie do języka typów generycznych, metod anonimowych i pełnej obsługi składni standardu Unicode P Embarcadero Delphi XE (Delphi 2011) Informacja producenta: Narzędzie pozwala na wydajne tworzenie rozwiązań dla wielu różnych systemów Windows korzystających z różnych platform bazodanowych, w tym rozbudowanych aplikacji GUI (skr. ang. Graphical User Interface), interaktywnych aplikacji dotykowych, kiosków multimedialnych oraz wielowarstwowych aplikacji bazodanowych, internetowych i programowania w chmurze. PP-2(23 z 53)
Nieco historii... W maju 2008 roku firma CodeGear zostaje sprzedana firmie Embarcadero Technologies. P Delphi 2009 wprowadzenie do języka typów generycznych, metod anonimowych i pełnej obsługi składni standardu Unicode P Embarcadero Delphi XE (Delphi 2011) Informacja producenta: Delphi XE pozwala na: - szybsze tworzenie aplikacji dzięki gotowym do użycia komponentom oraz wizualnej technice drag-and-drop, - tworzenie aplikacji które wymagają szybkiej wizualizacji danych, bieżącego kontrolowania urządzeń (tryb czasu rzeczywistego), manipulowania obiektami i grafiką 3D, tworzenia modeli finansowych, PP-2(24 z 53)
Nieco historii... W maju 2008 roku firma CodeGear zostaje sprzedana firmie Embarcadero Technologies. P Delphi 2009 wprowadzenie do języka typów generycznych, metod anonimowych i pełnej obsługi składni standardu Unicode P Embarcadero Delphi XE (Delphi 2011) Informacja producenta: Delphi XE pozwala na: - otwarcie aplikacji na przyszłe wyzwania tworzenie natywnych połączeń z 9 głównymi bazami danych wsparte wykorzystaniem komponentów do łączenia w chmurze, - wykorzystanie tysięcy darmowych i komercyjnych komponentów wspierających programowanie interfejsów użytkownika, baz danych, rozwiązań wielowarstwowych, internetowych i wielu innych. PP-2(25 z 53)
Ogólna charakterystyka pakietu Embarcadero Delphi XE2 Pakiet Embarcadero Delphi XE2 zawiera środowisko programistyczne, za pomocą którego można tworzyć profesjonalne aplikacje wykorzystujące biblioteki komponentów, bazy danych i usługi połączeniowe. Jest on dostępny w pięciu wersjach: Starter, Professional, Enterprise, Ultimate i Architect. We wszystkich wersjach znajduje się 32-bitowy optymalizujący kompilator języka Delphi uwzględniający kraj użytkownika określony w systemie operacyjnym. PP-2(26 z 53)
Ogólna charakterystyka pakietu Emarcadero Delphi XE2 Kompilator taki przyjęto w Polsce nazywać kompilatorem natywnym (ang. native code compiler). Tworzy on pliki wykonywalne, które mogą być uruchamiane w 32- i 64-bitowym systemie operacyjnym Windows. Poza wersją Starter, w pozostałych wersjach są wbudowane kompilatory 64-bitowe dla systemu Windows oraz kompilator dla systemu Mac OS X. Wersje te zawierają też platformę FireMonkey, za pomocą której można tworzyć aplikacje mobilne przeznaczone do uruchamiania na takich urządzeniach, jak iphone, ipod Touch oraz ipad. PP-2(27 z 53)
Ogólna charakterystyka pakietu Embarcadero Delphi XE2 Wersje Enterprise, Ultimate i Architect posiadają narzędzia do obsługi wszystkich popularnych baz danych (w wersji Professional znajdują się tylko sterowniki do obsługi lokalnej bazy InterBase i bazy MySQL). Umożliwiają one także tworzenie programów typu klient-serwer, w których programy kliencie mogą być instalowane na innych komputerach niż program-serwer i współdziałać ze sobą (w wersji Professional też można tworzyć takie programy, ale współdziałać mogą one tylko pod warunkiem, że są zainstalowane na tym samym komputerze). PP-2(28 z 53)
Ogólna charakterystyka pakietu Embarcadero Delphi XE2 Zainstalowanie pakietu Embarcadero Delphi XE2 wymaga jednego z następujących systemów operacyjnych: P Microsoft Windows 7 (wersja 32- lub 64-bitowa), P Microsoft Windows Vista z pakietem Service Pack 2 (wersja 32- lub 64-bitowa z uprawnieniami administratora), P Microsoft Windows XP Home lub Professional z pakietem Service Pack 2 lub 3 (wersja 32- lub 64-bitowa). Zaleca się instalację najnowszych pakietów Service Pack i uaktualnień systemu zabezpieczeń oraz przeglądarki internetowej Microsoft Internet Explorer 6.0 z pakietem Service Pack 1 lub wersji późniejszej. PP-2(29 z 53)
Ogólna charakterystyka pakietu Embarcadero Delphi XE2 Minimalnymi wymaganiami sprzętowymi są: P procesor Intel Pentium lub zgodny z nim o częstotliwości 1,6 GHz (zaleca się częstotliwość 2 GHz lub większą), P pamięć RAM o pojemności 1 GB (zaleca się pojemność 2 GB lub większą), P od 0,5 do 1,5 GB dodatkowej wolnej pamięci do wykorzystania przez program instalacyjny pakietu, P myszka lub inne urządzenie wskazujące, P monitor o rozdzielczości 1024 x 768 lub większej o liczbie kolorów ponad 256). PP-2(30 z 53)
Ogólna charakterystyka pakietu Embarcadero Delphi XE2 Zintegrowane środowisko programowania ma cechy języka czwartej generacji, w której wiele implementacyjnych detali językowych jest niedostępnych dla programisty lub ukrytych przed nim. środowisko to zalicza się jednak do języków trzeciej generacji, w któreych każdy zaprojektowany element ma swoją podstawę w kodzie programowym. Środowisko umożliwia redagowanie programów, których wizualna część jest bezpośrednio odzwierciedlana na ekranie, pozwala na kompilowanie i wykonywanie programów wraz z możliwością śledzenia tego procesu, ma wbudowany debuger (program umiejscawiania i usuwania usterek) oraz zawiera programy narzędziowe do tworzenia różnych zasobów i wspomagające konstruowanie programów obsługi baz danych. PP-2(31 z 53)
Ogólna charakterystyka pakietu Embarcadero Delphi XE2 Językiem programowania stosowanym w pakiecie Embarcadero Delphi XE2 jest Delphi (w poprzednich pakietach Delphi: Delphi Pascal i Object Pascal). Kompilator tego języka znacznie przewyższa szybkością kompilatory innych języków programowania wizualnego, w tym języka C++ pakietów C++ Builder i Visual C++ oraz języków Visual Basic i PowerBuilder. PP-2(32 z 53)
Podstawowe pojęcia związane z konstruowaniem programów w zintegrowanym systemie programowania Projekt - program lub biblioteka łączona dynamicznie przygotowane w środowisku Delphi, na które składają się: a) plik programowy (.DPR), przy czym dla każdego projektu istnieje tylko jeden taki plik, b) binarne pliki z formatkami (.DFM), które zawierają obrazy formatek (okienek programu), c) pliki z modułami (.PAS), które są związane z formatkami i które zawierają ich kody programowe. Za pomocą odpowiednich dyrektyw kompilatora do projektu mogą być też dołączone pliki z zasobami, z tekstami PP-2(33 z 53) źródłowymi funkcji i procedur, pliki.obj i inne.
Podstawowe pojęcia związane z konstruowaniem programów w zintegrowanym systemie programowania Formatka - okienko, na którym w procesie tworzenia programu można umieszczać różne komponenty (przyciski, podokienka, napisy itp.), przy czym z każdą formatką jest związany jeden moduł programowy. Komponent - widoczny lub niewidoczny element łącza użytkownika programu znajdujący się na formatce lub powiązany z formatką. Element ten jest reprezentowany przez obiekt programowy. PP-2(34 z 53)
Podstawowe pojęcia związane z konstruowaniem programów w zintegrowanym systemie programowania Własność - cecha obiektu (np. napis na przycisku, kolor tekstu, tytuł i rozmiar okienka). Zdarzenie - zjawisko wymagające reakcji przez program (np. naciśnięcie klawisza myszki). Z każdym komponentem są związane różne zdarzenia. Ich obsługa polega na napisaniu odpowiedniej metody (procedury). PP-2(35z 53)
Podstawowe elementy środowiska Zintegrowane środowisko programowania pakietu uruchamia się w systemie operacyjnym w taki sam sposób, jak każdy inny program. Standardowa postać ekranu po uruchomieniu pakietu zawiera stronę powitalną (ang. Welcome Page) z własnym menu, które umożliwia m. in. rozpoczęcie redagowania nowego projektu, otwarcie wcześniej zapisanego projektu, dostęp do informacji internetowych oraz dokumentacji środowiska i języka programowania. Jeśli na ekranie znajduje się inne okno główne, np. Code Editor lub Design, wyświetlenie strony powitalnej można uzyskać po wyborze zakładki Welcome Page, a w przypadku zamknięcia tej strony po zainicjowaniu polecenia Welcome Page w opcji View. PP-2(36 z 53)
PP-2(37 z 53)
Podstawowe elementy środowiska Uwaga: Postać i widoczne elementy środowiska mogą być zmienione przez programistę. Rozpoczęcie redagowania nowego projektu (np. przez wybór polecenia New 6 VCL Forms Application -Delphi w opcji File głównego menu) spowoduje zmianę ekranu do postaci przedstawionej na następnym rysunku. PP-2(38 z 53)
formatka (do projektowania graficznego łącza użytkownika) PP-2(39 z 53)
okienko redakcyjne PP-2(40 z 51) 53)
wiersz menu PP-2(41 z 51) 53)
polecenia opcji menu PP-2(42 z 51) 53)
piktogramy szybkiego inicjowania poleceń PP-2(43 z 51) 53)
paleta komponentów (I) PP-2(44 z 51) 53)
wybór komponentu (I) PP-2(45 z 53)
zmiana wyglądu środowiska PP-2(46 z 53)
paleta komponentów (II) PP-2(47 z 53)
wybór komponentu (II) PP-2(48 z 53)
okienko Object Inspector PP-2(45 PP-2(49 z 51) 53)
Posługiwanie się zintegrowanym systemem programowania okienko Object Inspector własności zdarzenia PP-2(50 z 53)
okienko Structure PP-2(51 z 53)
Posługiwanie się zintegrowanym systemem programowania okienko Structure przy aktywności zakładki Design przy aktywności zakładki Code i rozwinięciu drzewa PP-2(52 z 53)
PP-2(53 z 53)