Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

sem. 3 5w. + 15 lab. sem. 4 5w. + 15 lab. tematyka: podstawy programowania (obiektowego) elementy j. ObjectPascal w systemie Delphi program laboratorium.

Podobne prezentacje


Prezentacja na temat: "sem. 3 5w. + 15 lab. sem. 4 5w. + 15 lab. tematyka: podstawy programowania (obiektowego) elementy j. ObjectPascal w systemie Delphi program laboratorium."— Zapis prezentacji:

1

2 sem. 3 5w lab. sem. 4 5w lab. tematyka: podstawy programowania (obiektowego) elementy j. ObjectPascal w systemie Delphi program laboratorium - reguły odbywania zajęć i zaliczenia DELPHI 7 Personal - darmowe, zaliczenie - bez egzaminu laboratorium – test praktyczny literatura: S.Wołek - Programowanie komputerów cz.I., cz. II pliki wykładów + przykładów - w sieci tbajorek.prz.rzeszow.pl Tomasz BAJOREK dr inż., pok. 28 PROGRAMOWANIE KOMPUTERÓW 1

3 Istota programowania komputerów Chcemy zapisać, co trzeba liczyć (przetwarzać) w sposób prosty, wygodny i zrozumiały dla człowieka Program komputerowy w PaO język programowania (wysokiego poziomu) język komputerowy (wewnętrzny) tłumaczenie (translacja) komputer tworzenie własnych programów system programowania - edycja, tłumaczenie, wykonywanie, uruchamianie (debugging) język programowania - zbiór reguł zapisu algorytmu (operacji obliczeniowych) 2

4 3 Wniosek: ułatwia opracowywanie programówwykonuje programy (obliczenia) podwójna rola komputera

5 Podział języków programowania j. proceduralne (klasyczne) j. obiektowe 4

6 styl tekstowy (DOS-owy): FORTRAN PL-1, ALGOL, COBOL PASCAL, C, C++ MODULA, ADA BASIC styl graficzny (Windows-owy): SMALLTALK DELPHI C obiektowy VisualBASIC pr. naturalne pr. strukturalne pr. pakietowe pr. obiektowe Przegląd języków programowania języki skryptowe stron WWW: po stronie klienta - JavaScript po stronie serwera – VBScript (ASP), PHP 5

7 Programowanie obiektowe (OOP) program nie jest sekwencyjnie wykonywany oczekiwanie na zdarzenie wystąpienie zdarzenia aktywizacja procedury obsługi (metody) realizacja wspomagana przez system operacyjny Windows sterowane zdarzeniami (event_driven) - naciśnięcie klawisza, kliknięcie myszką, - wybranie opcji menu, - przepełnienie dyskietki stosuje się rzeczywiste obiekty, przedstawiane przez dane (pola) operacje programu dotyczą obiektów (metody – operacje na polach) wykonywanie programu: 6 Istota struktura programu:

8 pochodna języka Pascal: zintegrowane środowisko tworzenia aplikacji IDE środowisko RAD język ObjectPascal System Delphi przykład 1: - dodajemy lub mnożymy dwie liczby - sterowanie z menu - przycisk koniec - kolor tła wg przycisków radiowych - kolor liczb wg przycisku wyboru 7

9 Modularna struktura programu składowe struktury: program główny (projekt) moduł (jednostka kompilowalna) – postać półskompilowana + łącznie - biblioteki podprogram (procedura, funkcja) 8

10 struktura programu, modułu, podprogramu: - nagłówek - opis obiektów /część deklaracyjna, opisowa - zapis akcji /część operacyjna, akcyjna - układ: program, moduł - jednopoziomowy podprogram - hierarchiczny składowe: - deklaracje, definicje - instrukcje - komentarze - dyrektywy 9

11 ogólna struktura programu (modułu, podprogramu): unit nazwa;// nagłówek { inny dłuższy komentarz } uses...// deklaracja modułów const...// definicja stałych type...// definicja typów var...// deklaracja zmiennych begin instrukcja_1;// operacje instrukcja_2;... end. część opisowa część akcyjna odwołania do składowych obiektów (właściwości, metody) - kwalifikowane Application.Terminate; Nadawca.Dane.Color := clGreen; Odbiorca.Wynik.Text := Nadawca.Dane.Text; Odbiorca.Wynik.Clear; 10

12 Projektant formularzy dodawanie (usuwanie) komponentów graficznych z biblioteki VCL rozmieszczanie i zmiana rozmiarów komponentów: – indywidualnie – grupa komponentów (Shift + kliknięcie) lub kontur + menu kontekstowe standardowe + dodatkowe okienka dialogowe dostęp + obsługa + raporty baz danych serwer i strony WWW Repertuar komponentów Narzędzia pakietu programowania – środowisko DELPHI 11 Czynności projekt interfejsu – komponenty i ich właściwości (Inspektor obiektów) tworzenie kodu dla obsługi metod (Events) kompilacja i wykonanie (Run) - błędy

13 Inspektor obiektów typy właściwości – tekst (wpisywanie) – wybór z listy – właściwości strukturalne - rozwijanie lub okno ustawiania – właściwości mnogościowe - rozwijanie składowych wybór obiektu – wskazanie w formularzu – lista obiektów najważniejsze właściwości: - nazwa obiektu (dla operacji) - name - tytuł (nagłówek) - caption - kolor - color - czcionka – font - zawartość obsługa zdarzeń - nazwy procedur (tworzonych w edytorze): pierwsza 2 x kliknięcie obiektu inne 2 x kliknięcie w pozycję można wybierać z istniejących 12

14 Przykład: Edytor tekstu mechanizmy: wstawianie, usuwanie, wycinki, schowek zamiana na komentarz – wspomaganie pisania (podpowiedzi) podpowiedź o parametrach procedury/funkcji Ctrl+Shift+spacja uzupełnianie tekstu (wstawianie nazwy) Ctrl+spacja : - po kropce - wybieranie tekstem lub wskazaniem - koniec: kropka, spacja, Enter, średnik, nawias - musi być poprawny początek wstawianie wzorców Ctrl+J 13 przykład 2: - przepisywanie z pola Edit do Memo

15 właściwości Formularz (okno) - Form name: string - nazwa obiektu (formularza) caption: string - tytuł okna menu: - główne - obiekt popUpMenu: - kontekstowe - obiekt Standardowe komponenty graficzne VCL właściwości name: string- nazwa obiektu (przycisku) caption: string- tytuł przycisku (&z - litera klawisza skrótu) Przycisk akcji - Button zdarzenia i metody onClick - obsługa kliknięcia ` 14

16 właściwości (ważniejsze) text: string- treść wiersza Pole edycji jednowierszowej – Edit otrzymywanie lub wprowadzanie danych tekstowych pełna edycja informacji zaznaczanie wycinka tekstu i operacje zdarzenia i metody w. text := war_tekstowa- ustawienie (wpisanie) z. onClick- obsługa kliknięcia z. onChange- dowolna zmiana zawartości p. clear- wyzerowanie pola 15

17 Pole edycji wielowierszowej – Memo wartości wprowadzane z klawiatury lub programowo możliwość edycji wielowierszowej współpraca ze schowkiem lines: Tstrings - cała lista wierszy lines[nr_w]- dostęp do wiersza (numeracja od 0) lines[nr_w] := wyr_tekstowe- zmiana treści wiersza lines.count: integer - liczba składowych listy właściwości: 16

18 metody - dla lines : - p. clear; - zeruje - p. append( s: string );- dodaje na koniec listy; - f. add( s: string ): integer; - podobnie wynik - nr wiersza (od 0) - p. insert( index: integer; s: string);- wstawia w pozycji index - p. delete( index: integer ); - usunięcie wiersza - p. loadFromFile( fileName: string );- dopisanie z pliku tekstowego - p. saveToFile( fileName: string); - zapisanie do pliku Memo1.Lines.Add( 'Kowalski'); Memo1.Lines[2] := Edit1.Text; Memo1.Lines.Insert( 5, 'Kowalski ); Memo1.Font.Size := 14; Memo1.Clear; Przykłady: 17

19 symbole podstawowe (pascalowe) nazwy zastrzeżone Język ObjectPascal - podstawowe elementy Słowa kluczowe Identyfikatory (nazwy) ciąg liter (także _ ) lub cyfr, rozpoczynający się od litery, różny od słowa kluczowego całkowite - ciąg cyfr, ewentualnie poprzedzonych przez + - Stałe numeryczne - liczby rzeczywiste - zapis zwykły m.n - zapis wykładniczy (naukowy) Alfabet języka 18

20 varlista_nazw_zmiennych: integer; lista_nazw_zmiennych: real; Zmienne całkowite i rzeczywiste (proste) np.: var i, j, k: integer; a, b, suma: real; Postać deklaracji: Zmienne przechowują dane – muszą być deklarowane ich nazwy (identyfikatory) i przyporządkowanie do typu var lista nazw zmiennych: typ1; lista nazw zmiennych: typ2;....;

21 Typy liczbowe całkowite: Integer i inne (Byte, Word...) rzeczywiste podstawowy Real i inne Single Double Extended, różnią się zakresem Typ znakowy: Char Typ tekstowy (łańcuchowy): String Typ logiczny: Boolean (wartości true i false) Typy standardowe

22 Typ wyliczeniowy Definicja:( lista wartości ) np. var dzien : (po, wt, sr, cz, pi, so,ni); Typ okrojony Typ okrojony wyznacza podzbiór dowolnego typu porządkowego (boolean, char, całkowitoliczbowy, wyliczeniowy) zwanego typem bazowym: w1.. w2 gdzie w1 <= w2 np. vardni : ; Inne (strukturalne) poznamy potem – tablicowy, rekordowy, plikowy Typy definiowane

23 Typy można definiować a potem używać np. type dni = (po, wt, sr, cz, pi, so,ni); var dzien : dni; UWAGA: dni to nazwa typu, dzien to nazwa zmiennej, tylko w niej można przechować wartości, np. dzien := wt; //to jest instrukcja wykonywana Typ okrojony Typ okrojony wyznacza podzbiór dowolnego typu porządkowego (boolean, char, całkowitoliczbowy, wyliczeniowy) zwanego typem bazowym: w1.. w2 gdzie w1 <= w2 np. vardni : ; Inne (strukturalne) poznamy potem – tablicowy, rekordowy, plikowy

24 Postać - sensowna kombinacja – podobnie jak w Excelu: Wyrażenie arytmetyczne operatory - jednoargumentowe - dwuargumentowe nawiasy - kolejność operacji argumenty: - stałe- ich wartości - zmienne- ich wartości - wywołania funkcji- ich wartości 23 wyrażenie stała wyrażenie zmienna wyrażenie funkcja (wyrażenie) wyrażenie wyrażenie operator wyrażenie

25 Operatory: 24

26 kolejność wykonywania operacji nawiasy - w pierwszym rzędzie ważność operatorów: -jednoargumentowe -multiplikatywne -addytywne w grupie jednakowo ważnych - od lewej do prawej funkcje standardowe - wywołanie nazwa_funkcji( argument ) wyrażenie - rekurencja ogólnie: zawsze nawias typ argumentu i wyniku określony wartość 25

27 absreal/integerwartość bezwzględna intrealczęść całkowita fracrealczęść ułamkowa roundintegerzaokrąglenie do całkowitej truncintegerobcięcie do całkowitej maxintintegermaksymalna wartość całkowitastała exprealfunkcja wykładnicza e arg lnreallogarytm naturalny ln arg arg 0 sqrreal integerkwadrat arg 2 sqrtrealpierwiastek kwadratowy arg 0 sinrealsin argarg w radianach cosrealcos argarg w radianach arctanrealarctg argwynik w radianach pirealstała 26

28 Przykłady wyrażeń: 27

29 Instrukcja przypisania - nadanie wartości zmiennej Np.: N := -234; suma := suma + x; Wprowadzanie i wyprowadzanie danych - z/do pola Edit funkcje konwersji tekstowo-numerycznej: intToStr( v: integer ): string;- integer string strToInt( s: string ): integer;- string integer strToFloat( s: string ): real; - string real floatToStr( v: real ): string; - real string Podstawowe instrukcje proste zmienna := wyrażenie; 28

30 przykład praktyczny: 29

31 stałe - znakowe i tekstowe Stałe, zmienne i wyrażenia tekstowe napisy - pojedyncze znaki, ciągi (łańcuchy) znaków postać '.....' 'Nowak' Przykłady : zmienne łańcuchowe (tekstowe) - typ stringnp. 'Pan Kowalski' istnieje mechanizm selekcji znaku zmienna[ pozycja ] znak - deklaracja zmiennej string[ rozmiar ] wyrażenia tekstowe - podobnie jak arytmetyczne: operator - jeden łączenia (konkatenacji) "+" Np.:'Object' + 'Pascal' ObjectPascal argumenty: - stała tekstowa - zmienna znakowa lub tekstowa - wywołanie funkcji o wartości znakowej lub tekstowej stałę znakowe - typ char, np. 'A' 30

32 stałe trueprawda "1" tak falsefałsz "0 nie Stałe, zmienne, wyrażenia i operacje logiczne zmienne logiczne - typ boolean np.: var jest_zwolniony: boolean; wyrażenia logiczne - podobnie jak arytmetyczne: argumenty: - stałe logiczne - zmienne logiczne - funkcje o wartościach logicznych - relacje operatory nawiasy- ( ) 31

33 relacja (porównanie) W 1 W 2 wartość true | false W 1, W 2 obydwa numeryczne (typu Real lub Integer) obydwa znakowe lub tekstowe (porównanie alfabetyczne) operatorznaczenie =równy <>nierówny >większy >=większy lub równy 2 suma <= 10.0 sin( 2*x + a) >= 0.5 nazwisko >= 'K' 32

34 Operatory logiczne koniunkcja (iloczyn logiczny) arg 1 and arg 2 np.: ( k >= -5 ) and ( k <= 5 ) -5 k +5 alternatywa (suma logiczna) arg 1 or arg 2 np.: ( k 5 ) | k | > 5 negacja not arg np.: not( k = 5 33

35 Instrukcja warunkowa "jeśli", "if" postać skrócona if warunek then instrukcja; Wb Wb postać pełna if warunek then instrukcja_1 else instrukcja_2; 34

36 przykład: Założenia: - zmiana a, b lub c chowa pola wyników i napis - gdy delta < 0 tylko napis "Wynik - brak pierwiastków" - gdy delta = 0 napis "Wynik - jeden pierwiastek podwójny" widać jedno pole wyniku i wartość pierwiastka - gdy delta > 0 napis "Wynik - dwa pierwiastki" widać dwa pola wyniku i dwie wartości pierwiastków - podwójne kliknięcie w tło okna zeruje pola współczynników, chowa pola wyników i skraca napis na "Wynik:" 35

37 składowe okna i programu: - w_a, w_b, w_c- pola współczynników - wynik- etykieta - tekst o wyniku - x1, x2- pola wyniku - a, b, c, delta - zmienne wewnętrzne procedury wyznaczania wyniku - wyznacz, koniec - procedury obsługi kliknięcia przycisków - Zeruj- obsługa podwójnego kliknięcia w okno - Schowaj, - obsługa zmiany wartości pól współczynników 36

38 schemat blokowy: 37

39 procedure TForm1.wyznaczClick(Sender: TObject); vara, b, c, // współczynniki równania delta: real; begin a := strToFloat(w_a.text); b := strToFloat(w_b.text); c := strToFloat(w_c.text); delta := b*b - 4*a*c; if delta < 0 then form1.wynik.Caption := 'Wynik - brak pierwiastków' else if delta = 0 then begin form1.wynik.Caption := 'Wynik - pierwiastek podwójny'; x1.text := floatToStr( -b/2/a ); x1.visible := true; end else begin delta := sqrt( delta ); form1.wynik.Caption := 'Wynik - dwa pierwiastki:'; x1.text := 'x1 = ' + floatToStr( ( -b - delta )/2/a ); x1.visible := true; x2.text := 'x2 = ' + floatToStr( ( -b + delta )/(2*a) ); x2.visible := true; end; 38

40 procedure TForm1.Schowaj (Sender: TObject); begin x1.Visible := false; x2.Visible := false; wynik.Visible := false end; procedura Schowaj procedure TForm1.Zeruj (Sender: TObject); begin Schowaj(Sender); w_a.Clear; w_b.Clear; w_c.Clear; end; 39 procedura Zeruj

41 Instrukcja case umożliwia alternatywne wykonanie wielu instrukcji w zależności od wartości wyrażenia typu porządkowego. Postać instrukcji: Instrukcja wyboru – case..of.. case w of s 1 :Instrukcja_1 ; s 2 :Instrukcja_2 ;.... [ else Instrukcja_k ] end ; w - wyrażenie–selektor typu porządkowego (np. całkowitego, znakowego), s - stałe wyboru (etykiety wyboru) w możliwej postaci: s- pojedyncza wartość, s 1, s 2, s n - lista wartości, s 1..s 2 - zakres wartości (okrojenie), możliwe połączenie listy i zakresów, np. s 1..s 2, s 3, s 4. 40

42 var miesiac: ; dni: ; begin miesiac := StrToInt (Edit1.Text) ; case miesiac of 2 : dni := 28 ; {pojedyncza wartość} 4, 6, 9, 11 :dni := 30 ; {lista} :dni := 31 ; {zakres} {lub else dni := 31} end ; Przykład: 41

43 Przy konieczności wykonania więcej niż jednej instrukcji wewnątrz dowolnej instrukcji strukturalnej stosujemy tzw. instrukcję złożoną (sekwencji): begin ciąg instrukcji end Instrukcja złożona (sekwencji)

44 Iteracje – użycie: sumowanie, obliczenia statystyczne, sortowanie, wyszukiwanie maksimum, minimum itp. Iteracje Algorytmy: Zbiór elementów np. w tablicy (macierzy) – wyszukaj najmniejszy element: - załóż że 1-szy jest najmniejszy - sprawdź następny, jeśli mniejszy to zapamiętaj - czy ostatni? jeśli nie to powtórz poprzedni krok

45 Instrukcja for.. do.. (dla.. wykonuj..)

46 for Z := W 1 W 2 do Instrukcja x := 0 ; i1:=1 ; i2:=3 ; for i := i1 to i2 do x := x+5 ; x := 0 ; for i := 1 to 3 do x := x+5 ; x := 0 ; for i := 3 downto 1 do x := x+i ; // użycie zmiennej sterującej w instrukcji Postać: to downto

47 repeat ciąg instrukcji until W B ; Instrukcja repeat..until.. (powtarzaj.. aż..) Postać: x := 3 ; repeat x := x + 5 until x > 100 ; Ciąg instrukcji wewnętrznych w instrukcji repeat..until.. jest powtarzany dopóty, dopóki wyrażenie logiczne W B posiada wartość false, zmiana na true powoduje zakończenie pętli Uwaga: możliwość nieskończonej pętli !!

48 Instrukcja while..do.. (dopóki.. wykonuj..) while W B do Instrukcja ; Postać: Działanie instrukcji polega na powtarzaniu wykonywania wewnętrznej instrukcji, dopóki wyrażenie logiczne W B posiada wartość true. Wartość ta jest sprawdzana każdorazowo przed wykonaniem instrukcji wewnętrznej. Uwaga: konieczność wykonania w instrukcji (także złożonej) takiej operacji, która wpływa na wartość wyrażenia logicznego, aby iteracja mogła się kiedyś skończyć.

49 var i, suma : integer ; begin i := 2 ; suma := 0 ; while i <= 100 do begin suma := suma + i ; i := i + 2 ; end ; Przykład:

50 ShowMessage - k omunikat informujący p. ShowMessage( wyrażenie tekstowe ) - pokazuje tekst w dodatkowym oknie z przyciskiem OK - w pasku tytułowym nazwa aplikacji (programu.exe) związane są z osobnymi oknami przekazują informację dla użytkownika, wymagającą podjęcia przez niego decyzji: - komunikat informujący - komunikat z dialogiem - komunikat w formularzu użytkownika - dialogu wejściowego DELPHI - PODOKNA KOMUNIKATÓW 49

51 Menu główne mainMenu przedstawia pasek menu głównego - baza dla pozycji menu (sekcji) komponent niewidoczny - widać skutek nazwa obiektu ma być podana na jako właściwość menu formularza właściwości 2x kliknięcie w items lub w symbol menu kreator menu (menu designer) dodawanie, usuwanie opcji tytuł sekcji (opcji) - & oznacza znak podkreślony (klawisz skrótu) podmenu create submenu (operacja z menu podręcznego) 2x klik w pozycję procedura obsługi (zdarzenie onClick) zasady: item - lista sekcji menu z ich zawartością (drzewo) items[ index:integer ]: TMenuItem - jedna sekcja lub opcja 50

52 Menu podręczne kontekstowe popupMenu pole menu kontekstowego - aktywizowanego prawym kliknięciem komponent niewidoczny - widać skutek nazwa obiektu ma być podana na jako właściwość popupMenu - formularza lub innego komponentu właściwości i metody items: Tmenu - lista sekcji menu z ich zawartością (drzewo) items[ index:integer ]: TMenuItem - jedna opcja lub podsekcja alignment: (paLeft, paCenter, paRight) - położenie pola menu w stosunku do kursora projektowanie jak menu główne menu designer w formularzu może być wiele menu podręcznych związanych z różnymi komponentami (kontekst) zasady: 51

53 Przykład 3 52


Pobierz ppt "sem. 3 5w. + 15 lab. sem. 4 5w. + 15 lab. tematyka: podstawy programowania (obiektowego) elementy j. ObjectPascal w systemie Delphi program laboratorium."

Podobne prezentacje


Reklamy Google