PODSTAWY PROGRAMOWANIA

Wielkość: px
Rozpocząć pokaz od strony:

Download "PODSTAWY PROGRAMOWANIA"

Transkrypt

1 PODSTAWY PROGRAMOWANIA Andrzej Marciniak Prezentacja multimedialna przygotowana za pomocą systemu Corel Presentations X3 Copyright by Andrzej Marciniak PP-11(1 z 95)

2 Na poprzednim wykładzie... P pakiety wykorzystanie pakietu w projekcie tworzenie pakietów P operacje wejścia-wyjścia standardowe wejście-wyjście w programach tekstowych przetwarzanie plików PP-11(2 z 95)

3 Na tym wykładzie... P typy sparametryzowane definiowanie typów sparametryzowanych sparametryzowane typy proceduralne i metody P podstawowe moduły biblioteki RTL moduł System moduł System.Variants moduł System.SysUtils moduł System.Math wywołanie innego programu z programu paskalowego P informacje o bibliotece VCL okienka z komunikatami PP-11(3 z 95)

4 Typy sparametryzowane Typy rekordowe, klasowe i łącz programowych mogą być sparametryzowane. Parametryzacja dotyczy w tym przypadku typów danych występujących w tych strukturach (pól, wartości metod typu funkcji i parametrów metod). Sparametryzować można też ogólne i obiektowe typy proceduralne oraz metody. W języku angielskim wymienione sparametryzowane struktury nazywa się generics (ogólniki?) lub generic types (typy ogólnikowe?). PP-11(4 z 95)

5 Typy sparametryzowane Przykład type TSIPair = class private FKey : string; FValue : Integer; public function GetKey : string; procedure SetKey (Key : string); function GetValue : Integer; procedure SetValue (Value : Integer); property Key : TKey read GetKey write SetKey; property Value : TValue read GetValue write SetValue; end; W powyższej definicji występują typy TKey i TValue, które powinny być zdefiniowane wcześniej i zgodne z typami odpowiednio string i Integer. Klasę TSIPair można uniezależnić od typów pól wprowadzając ich parametryzację. PP-11(5 z 95)

6 Typy sparametryzowane Przykład type TPair<TKey, TValue> = class private FKey : TKey; FValue : TValue; public function GetKey : TKey; procedure SetKey (Key : TKey); function GetValue : TValue; procedure SetValue (Value : TValue); property Key : TKey read GetKey write SetKey; property Value : TValue read GetValue write SetValue; end; Definicja ta określa typ klasowy z dwoma parametrami określającymi typy pól. Definicje metod tej klasy powinny uwzględniać tę parametryzację w nagłówkach, np. function TPair<TKey, TValue>.GetKey : TKey; PP-11(6 z 95)

7 Typy sparametryzowane Przykład type TPair<TKey, TValue> = class private FKey : TKey; FValue : TValue; public function GetKey : TKey; procedure SetKey (Key : TKey); function GetValue : TValue; procedure SetValue (Value : TValue); property Key : TKey read GetKey write SetKey; property Value : TValue read GetValue write SetValue; end; Klasa ta umożliwia późniejsze wystąpienie definicji innych klas, w których w miejscu parametrów będą podawane nazwy odpowiednich typów, np. type TSIPairBis = TPair<string, Integer>; PP-11(7 z 95)

8 Typy sparametryzowane Definiowanie typów sparametryzowanych Definicja sparametryzowanego typu rekordowego: type identyfikator-typu <lista-parametrów> = record lista-elementów-rekordu end; gdzie lista elementów rekordu może zawierać deklaracje takich samych elementów, jak w klasopodobnym typie rekordowym. PP-11(8 z 95)

9 Typy sparametryzowane Definiowanie typów sparametryzowanych Definicja sparametryzowanego typu klasowego: type identyfikator-typu <lista-parametrów> = class [(przodek[<lista-parametrów>])] lista-elementów-klasy end; gdzie lista elementów klasy składa się z deklaracji pól, metod i własności (podobnie jak w definicji zwykłej klasy). Zauważmy, że przodek może też być typem sparametryzowanym. PP-11(9 z 95)

10 Typy sparametryzowane Sparametryzowane typy proceduralne i metody Definicje sparametryzowanych typów proceduralnych: type identyfikator-typu <lista-parametrów> = procedure [(lista- parametrów)] [of object]; type identyfikator-typu <lista-parametrów> = function [(lista- parametrów)] : typ-wartości-funkcji [of object]; gdzie opcjonalne słowa of object dotyczą sparametryzowanych obiektowych typów proceduralnych. Opcjonalna lista parametrów po słowach procedure i function może zawierać deklaracje parametrów, w których typy będą parametrami. To samo dotyczy typu wartości funkcji. PP-11(10 z 95)

11 Typy sparametryzowane Sparametryzowane typy proceduralne i metody Przykład W definicji sparametryzowanego typu proceduralnego postaci type FunkcjaParam<PewienTyp> = function (const łańcuch : string; const wartość : PewienTyp) : PewienTyp; typ PewienTyp występuje jako parametr nie tylko w nazwie typu, ale także jako określenie typu parametru wartość i typu wartości funkcji. Jeśli zadeklarujemy zmienną proceduralną var ZmiennaF : FunkcjaParam<Integer>; to będzie można jej przypisać na przykład następującą funkcję: function MojaFunkcja (const a : string; const b : Integer) : Integer; begin Writeln (a,, b); Result:=b end; PP-11(11 z 95)

12 Typy sparametryzowane Sparametryzowane typy proceduralne i metody Deklaracje metod mogą też być sparametryzowane, a typy parametryczne mogą być użyte przy określaniu typów parametrów tych metod i typów wartości metod-funkcji. Deklaracja sparametryzowanej metody-procedury ma postać procedure nazwa-metody <lista-parametrów> [(lista- parametrów)]; a metody-funkcji S function nazwa-metody <lista-parametrów> [(lista- parametrów)] : typ- wartości-funkcji; Uwaga: Występują pewne ograniczenia dotyczące metod i typów sparametryzowanych (szczegóły zob. w podręczniku). PP-11(12 z 95)

13 Tradycyjny podział modułów standardowych dostarczanych w pakiecie Delphi (od wersji 1.0) na dwie biblioteki (nie mylić z bibliotekami łączonymi dynamicznie): Pwykonawczą, nazywaną biblioteką RTL (skr. od ang. Run-Time Library), P komponentów wizualnych, zwaną biblioteką VCL (skr. od ang. Visual Component Library), uległ od wersji 4 pakietu zmianie. Spowodowane to zostało przede wszystkim faktem dostarczania tych modułów w postaci pakietów. Biorąc jednak pod uwagę domyślne katalogi zapisu wersji źródłowych modułów standardowych, pozostaniemy przy tradycyjnym podziale tych modułów na bibliotekę RTL i bibliotekę VCL. PP-11(13 z 95)

14 Czterema najważniejszymi modułami biblioteki RTL są: System, System.SysUtils, System.Math oraz System.Variants. W modułach tych znajdują się definicje funkcji i procedur standardowych, deklaracje zmiennych, definicje stałych, literałów zmiennych i typów danych wykorzystywanych w tych funkcjach i procedurach oraz definicje typów reprezentujących warunki błędów i stany wyjątkowe. Za pomocą funkcji i procedur standardowych wykonuje się operacje wejścia-wyjścia, dokonuje się konwersji danych, dynamicznie zarządza się pamięcią operacyjną, wykonuje się operacje porządkowe, operacje na różnych typach danych itp. Standardowe funkcje arytmetyczne pozwalają obliczać m. in. wartości funkcji trygonometrycznych, wykładniczych i logarytmów. PP-11(14 z 95)

15 Moduł System Moduł standardowy System jest dostępny automatycznie przez każdy program, bibliotekę DLL i dowolny inny moduł. Stąd też jego deklaracja za pomocą konstrukcji uses jest zbędna. Definicje pewnych literałów, typów, funkcji i procedur (takich jak: False, Real, Readln) nie znajdują się bezpośrednio w module System (zob. tekst źródłowy modułu), lecz są wbudowane w kompilator języka Delphi. Elementy te są jednak traktowane tak samo, jak gdyby były zdefiniowane w module System. PP-11(15 z 95)

16 Moduł System przegląd ważniejszych funkcji i procedur Procedury przerywające wykonywanie instrukcji iteracyjnych i programu Break natychmiastowe wyjście z instrukcji iteracyjnej ją obejmującej Continue natychmiastowe rozpoczęcie następnej iteracji danej pętli PP-11(16 z 95)

17 Moduł System przegląd ważniejszych funkcji i procedur Procedury przerywające wykonywanie instrukcji iteracyjnych i programu Exit natychmiastowe wyjście z bieżącego bloku (jeśli procedura jest wywołana w procedurze lub funkcji, powoduje to zakończenie wykonywania danej procedury lub funkcji i powrót do miejsca wywołania, a gdy wywołanie procedury zachodzi w części wykonawczej programu, to nastąpi przerwanie jego wykonywania) RunError (kod-błędu) lub RunError przerwanie wykonywania programu i wygenerowanie błędu jego wykonania o wyspecyfikowanym kodzie (jeśli kod błędu nie jest podany, przyjmuje się, że jest to 0). PP-11(17 z 95)

18 Moduł System przegląd ważniejszych funkcji i procedur Procedury przerywające wykonywanie instrukcji iteracyjnych i programu Halt lub Halt (kod-wyjścia) natychmiastowe przerwanie programu i powrót do systemu bez względu na miejsce wywołania; w przypadku wyspecyfikowania kodu wyjścia przerwanie wykonywania programu następuje z podanym kodem zakończenia (wywołanie procedury bez argumentu jest równoważne wy-wołaniu Halt (0)) W przypadku programów okienkowych, zamiast procedury Halt należy stosować wywołanie Application.Terminate Metoda Terminate jest metodą typu klasowego TApplication, a Application predefiniowanym obiektem tego typu. PP-11(18 z 95)

19 Moduł System przegląd ważniejszych funkcji i procedur Procedury dynamicznego przydziału pamięci i zarządzania pamięcią New (zmienna-wskaźnikowa) utworzenie zmiennej dynamicznej i ustalenie zmiennej wskaźnikowej wskazującej na nią; do utworzonej zmiennej dynamicznej można odwołać się za pomocą zmiennej wskazywanej postaci zmienna-wskaźnikowa^; przydzielony zmiennej dynamicznej blok pamięci jest równy rozmiarowi typu, z którym związana jest podana zmienna wskaźnikowa GetMem (zmienna-wskaźnikowa, rozmiar) utworzenie zmiennej dynamicznej o podanym (w bajtach) rozmiarze PP-11(19 z 95)

20 Moduł System przegląd ważniejszych funkcji i procedur Procedury dynamicznego przydziału pamięci i zarządzania pamięcią Przykłady 1)Załóżmy następujące definicje: type tablica = array [1..100] of Real48; var wskaznik : ^tablica; Wywołanie New (wskaznik); spowoduje utworzenie zmiennej dynamicznej typu tablica, która zajmie 600 bajtów pamięci. Przykład odwołania: wskaznik^[50]:=12.34; 2)Wywołanie GetMem (wskaznik, 400); spowoduje również utworzenie zmiennej dynamicznej typu tablica, ale przydzieli się jej tylko 400 bajtów pamięci. Odwołanie, np. wskaznik^[90] przekroczy ten rozmiar i błąd nie będzie sygnalizowany (może to doprowadzić do nieprzewidzianych PP-11(20 z 95) konsekwencji).

21 Moduł System przegląd ważniejszych funkcji i procedur Procedury dynamicznego przydziału pamięci i zarządzania pamięcią Dispose (zmienna-wskaźnikowa) zwalnienie obszaru pamięci dynamicznej zajmowanego przez zmienną wskazywaną zmienna-wskaźnikowa^ (zmienna dynamiczna musi być uprzednio utworzona za pomocą New) FreeMem (zmienna-wskaźnikowa) lub FreeMem (zmienna-wskaźnikowa, rozmiar) zwrócenie do stosu obszaru pamięci wskazywanego wyspecyfikowaną zmienną wskaźnikową, który został uprzednio przydzielony za pomocą procedury GetMem (jeśli podano rozmiar, to jego wartość musi być taka sama, jak w wywołaniu procedury GetMem tworzącej daną zmienną dynamiczną) PP-11(21 z 95)

22 Moduł System przegląd ważniejszych funkcji i procedur Procedury dynamicznego przydziału pamięci i zarządzania pamięcią Przykład W celu zwolnienia pamięci przydzielonej zmiennej dynamicznej wskaznik^ w pierwszym z poprzednich przykładów należy zastosować instrukcję Dispose (wskaznik); a w celu zwolnienia pamięci przydzielonej tej zmiennej za pomocą procedury GetMem, należy zastosować wywołanie FreeMem (wskaznik, 600); PP-11(22 z 95)

23 Moduł System przegląd ważniejszych funkcji i procedur Procedury dynamicznego przydziału pamięci i zarządzania pamięcią Procedury służące do dynamicznego przydzielania i zwalniania pamięci, zmienne typów wskaźnikowych oraz zmienne wskazywane są wykorzystywane przede wszystkim do programowania dynamicznych struktur danych, tj. prostych i złożonych struktur danych, którym pamięć jest przydzielana i zwalniana w trakcie wykonywania programu. Takie złożone struktury danych, zwane też strukturami listowymi, są uporządkowanymi zbiorami składników, niekoniecznie o jednakowych typach. Poszczególne składniki mogą być elementami prostymi (np. liczbami i pojedynczymi znakami) lub złożonymi (np. tablicami, rekordami, a nawet listami). PP-11(23 z 95)

24 Moduł System przegląd ważniejszych funkcji i procedur Procedury dynamicznego przydziału pamięci i zarządzania pamięcią Ze względu na organizację oraz sposoby dołączania, wstawiania i usuwania składników, wśród struktur listowych można wyróżnić m. in.: P stosy, w których wstawianie, usuwanie i dostęp są możliwe tylko w jednym końcu zwanym wierzchołkiem stosu, P kolejki, w których można dołączyć składniki tylko w jednym końcu, a usunąć tylko w drugim końcu, PP-11(24 z 95)

25 Moduł System przegląd ważniejszych funkcji i procedur Procedury dynamicznego przydziału pamięci i zarządzania pamięcią Ze względu na organizację oraz sposoby dołączania, wstawiania i usuwania składników, wśród struktur listowych można wyróżnić m. in.: P listy (liniowe), które charakteryzują się tym, że dla każdego składnika (poza pierwszym i ostatnim) jest określony jeden składnik poprzedni i jeden składnik następny lub tylko składnik poprzedni lub następny, przy czym w dowolnym miejscu takiej struktury można dołączyć nowy składnik lub usunąć składnik istniejący, PP-11(25 z 95)

26 Moduł System przegląd ważniejszych funkcji i procedur Procedury dynamicznego przydziału pamięci i zarządzania pamięcią Ze względu na organizację oraz sposoby dołączania, wstawiania i usuwania składników, wśród struktur listowych można wyróżnić m. in.: P drzewa, w których dla każdego składnika (poza pierwszym) jest określony jeden składnik poprzedni i dla każdego składnika (poza ostatnimi w strukturze) jest określonych n (n 2) składników następnych (poza ostatnimi), P grafy, które definiowane są przez dwa zbiory: zbiór wierzchołków i zbiór krawędzi, określający powiązania pomiędzy poszczególnymi wierzchołkami. PP-11(26 z 95)

27 Moduł System przegląd ważniejszych funkcji i procedur Przetwarzanie tablic dynamicznych SetLength (zmienna, liczba-1, liczba-2,..., liczba-m) przydzielenie pamięci elementom tablicy dynamicznej (zmienna oznacza tu zmienną typu n-wymiarowej tablicy dynamicznej) Pierwsze wywołanie procedury SetLength dla wielowymiarowej tablicy dynamicznej nie musi określać od razu liczby elementów (zakresu indeksów) w każdym wymiarze. Dla tablicy trójwymiarowej można na przykład najpierw określić zakres indeksów pierwszego wymiaru (i tym samym przydzielić mu pamięć), a następnie albo za pomocą jednego wywołania określić zakresy indeksów pozostałych dwu wymiarów, albo poprzez dwukrotne wywołanie określić kolejno zakres indeksów drugiego i trzeciego wymiaru. Oczywiście w obu przypadkach zmienną występującą w wywołaniu procedury SetLength należy odpowiednio indeksować. PP-11(27 z 95)

28 Moduł System przegląd ważniejszych funkcji i procedur Przetwarzanie tablic dynamicznych Initialize (zmienna) wyzerowanie pamięci przydzielonej tablicy dynamicznej za pomocą procedury SetLength Finalize (zmienna) zwolnienie pamięci przydzielonej tablicy dynamicznej za pomocą procedury SetLength Pamięć przydzieloną tablicy dynamicznej można też zwolnić za pomocą instrukcji przypisania zmienna:=nil PP-11(28 z 95)

29 Moduł System przegląd ważniejszych funkcji i procedur Przetwarzanie tablic dynamicznych funkcja Low (zmienna) określenie najmniejszego indeksu tablicy dynamicznej (wartością funkcji jest zawsze 0) funkcja High (zmienna) określenie największego indeksu tablicy dynamicznej funkcja Length (zmienna) określenie liczby elementów tablicy dynamicznej funkcja Copy (zmienna, indeks, licznik) wartością funkcji jest tablica (dynamiczna), która zawiera licznik elementów począwszy od elementu zmienna[indeks]. PP-11(29 z 95)

30 Moduł System przegląd ważniejszych funkcji i procedur Przetwarzanie tablic dynamicznych Przykład Załóżmy, że za pomocą instrukcji SetLength (tablica, 40) przydzieliliśmy pamięć tablicy dynamicznej tablica, która będzie składać się z 40 elementów (o indeksach od 0 do 39). W celu obcięcia tej tablicy do 20 pierwszych elementów można zastosować instrukcję tablica:=copy(tablica, 0, 20) PP-11(30 z 95)

31 Moduł System przegląd ważniejszych funkcji i procedur Funkcje do wykonywania konwersji Chr (kod-znaku) otrzymanie znaku (dwubajtowego) o podanym kodzie dziesiętnym Ord (x) określenie numeru porządkowego podanego argumentu typu porządkowego (wyliczeniowego, całkowitego, logicznego, znakowego lub okrojonego); typem wyrażenia x nie może być typ całkowity Int64 PP-11(31 z 95)

32 Moduł System przegląd ważniejszych funkcji i procedur Funkcje do wykonywania konwersji Round (x) zaokrąglenie wartości x dowolnego typu rzeczywistego do najbliższej liczby całkowitej (typu Int64) Jeśli wartość wyrażenia x znajduje się pośrodku dwóch liczb całkowitych, to wynikiem będzie liczba parzysta! Trunc (x) obcięcie części ułamkowej argumentu x (zaokrąglenie w kierunku zera); wartość funkcji jest typu Int64 PP-11(32 z 95)

33 Moduł System przegląd ważniejszych funkcji i procedur Funkcje do wykonywania konwersji High (x) określanie największej wartości w zakresie określonym podanym argumentem (argument x oznacza zmienną lub identyfikator typu porządkowego, łańcuchowego lub typu tablicy statycznej) Low (x) określanie największej wartości w zakresie określonym podanym argumentem (argument x jw.) Dla typu tablicy statycznej funkcja High (Low) daje największą (najmniejszą) wartość w typie indeksów tablicy, przy czym jeśli tablica jest wielowymiarowa, to odpowiednia wartość dotyczy pierwszego wymiaru. W przypadku typu łańcuchowego wartością funkcji High jest zadeklarowany lub domyślny rozmiar PP-11(33 z 95) łańcucha, a funkcji Low 0 (zero).

34 Moduł System przegląd ważniejszych funkcji i procedur Funkcje arytmetyczne Bardzo ważna uwaga: Błędy arytmetyki zmiennopozycyjnej powodują, że funkcje arytmetyczne języka Delphi obliczają tylko przybliżone wartości odpowiadających im funkcji w sensie matematycznym. Abs(x) wartość bezwzględna x ArcTan(x) arcus tangens x Cos(x) cosinus x PP-11(34 z 95)

35 Moduł System przegląd ważniejszych funkcji i procedur Funkcje arytmetyczne Exp(x) liczba e do potęgi danej przez argument x Frac(x) część ułamkowa argumentu x Int(x) część całkowita argumentu x Ln(x) logarytm naturalny z argumentu x Pi PP-11(35 z 95)

36 Moduł System przegląd ważniejszych funkcji i procedur Funkcje arytmetyczne Sin(x) sinus x Sqr(x) kwadrat argumentu x Sqrt(x) pierwiastek kwadratowy z argumentu x W języku Delphi nie ma operatora potęgowania. Podniesienie liczby x do potęgi niecałkowitej wymaga na ogół zastosowania funkcji standardowych Exp i Ln zgodnie z zależnością x y exp(y ln x) lub skorzystania z funkcji standardowej Power zdefiniowanej w module Math. PP-11(36 z 95)

37 Moduł System przegląd ważniejszych funkcji i procedur Generowanie liczb losowych Randomize zainicjowanie wbudowanego generatora liczb losowych, którego zarodek jest przechowywany pod predefiniowaną zmienną RandSeed (generator liczb losowych może też być zainicjowany przez bezpośrednie przypisanie tej zmiennej wartości różnej od 0) funkcja Random lub Random (zakres) otrzymanie liczby losowej; jeśli nie podano argumentu, to wartością funkcji jest liczba losowa typu rzeczywistego należąca do przedziału [0,1), a gdy podano zakres, to wartością funkcji jest liczba losowa całkowita z przedziału [0, zakres), przy czym dla wartości zakres=0 wartością funkcji jest 0 PP-11(37 z 95)

38 Moduł System przegląd ważniejszych funkcji i procedur Generowanie liczb losowych Przykład Poniższy program wypisuje na ekranie monitora 100 całkowitych liczb losowych z przedziału [0, 100). program programam66; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; var i : ShortInt; begin Randomize; for i:=1 to 100 do Write (Random(100):5); Readln end. Każde wykonanie tego programu spowoduje pojawienie się na ekranie innego ciągu liczb losowych. Aby każde wykonanie dawało ten sam ciąg, należy w programie przypisać pewną wartość literałowi zmiennemu RandSeed i nie inicjować generatora liczb losowych za pomocą procedury Randomize. PP-11(38 z 95)

39 Moduł System przegląd ważniejszych funkcji i procedur Funkcje i procedury porządkowe Dec (x) lub Dec (x, n) dla zmiennej x typu porządkowego i wartości n typu całkowitego podstawienie pod zmienną x wartości bezpośrednio poprzedzającej aktualną wartość tej zmiennej w danym typie porządkowym (gdy drugi argument nie jest wyspecyfikowany) lub wartości poprzedzającej ją o n Inc (x) lub Inc (x, n) podstawienie pod zmienną x wartości następnej lub wartości następującej o n dalej (w sensie uporządkowania) po aktualnej wartości tej zmiennej PP-11(39 z 95)

40 Moduł System przegląd ważniejszych funkcji i procedur Funkcje i procedury porządkowe funkcja Odd (x) testowanie nieparzystości argumentu (wartością funkcji jest wartość liogiczna True, gdy x jest liczbą nieparzystą, lub wartość False, gdy x jest liczbą parzystą) funkcja Pred (x) wartość poprzedzająca x w danym typie porządkowym funkcja Succ (x) wartość następująca po x w tym samym typie porządkowym PP-11(40 z 95)

41 Moduł System przegląd ważniejszych funkcji i procedur Funkcje i procedury przetwarzające łańcuchy funkcja Concat (lista-łańcuchów) połączenie kilku łańcuchów w jeden łańcuch funkcja Copy (łańcuch, indeks, licznik) wycięcie części łańcucha (wartością funkcji jest łańcuch o długości określonej przez licznik, wycięty z wyspecyfikowanego łańcucha, począwszy od znaku o pozycji określonej przez indeks) funkcja Length (łańcuch) określenie długości łańcucha SetLength (zmienna-łańcuchowa, długość) zmiana długości zmiennej łańcuchowej PP-11(41 z 95)

42 Moduł System przegląd ważniejszych funkcji i procedur Funkcje i procedury przetwarzające łańcuchy funkcja Pos (podłańcuch, łańcuch) określenie pozycji, od której w łańcuchu zaczyna się podłańcuch Delete (zmienna-łańcuchowa, indeks, licznik) usunięcie w łańcuchu (przypisanym wyspecyfikowanej zmiennej łańcuchowej) liczby znaków określonej przez licznik, począwszy od pozycji podanej argumentem indeks Insert (podłańcuch, zmienna-łańcuchowa, indeks) wstawienie do łańcucha (przypisanego wyspecyfikowanej zmiennej łańcuchowej), począwszy od pozycji określonej przez indeks, podanego podłańcucha. PP-11(42 z 95)

43 Moduł System przegląd ważniejszych funkcji i procedur Funkcje i procedury przetwarzające łańcuchy Str (argument-numeryczny, zmienna-łańcuchowa) dla argumentu numerycznego o jednej z trzech postaci: wyrażenie wyrażenie:długość wyrażenie:długość:miejsca-dziesiętne zamiana wartości wyrażenia na jego reprezentację łańcuchową, zgodnie z formatującymi argumentami długość i miejsca dziesiętne, oraz podstawienie wyniku pod wyspecyfikowaną zmienną łańcuchową PP-11(43 z 95)

44 Moduł System przegląd ważniejszych funkcji i procedur Funkcje i procedury przetwarzające łańcuchy Val (łańcuch, zmienna-numeryczna, kod) przekształcenie wartości łańcuchowej podanej pierwszym argumentem na jego reprezentację numeryczną i zapamiętanie wyniku pod podaną zmienną numeryczną (wyspecyfikowany łańcuch musi być przy tym ciągiem znaków, który tworzy poprawną liczbę całkowitą lub rzeczywistą) Jeśli łańcuch nie przedstawia poprawnej liczby, to pozycja pierwszego błędnego znaku jest podstawiana pod zmienną kod. W przeciwnym przypadku zmiennej tej jest przypisywana wartość 0). PP-11(44 z 95)

45 Moduł System.Variants przegląd ważniejszych funkcji i procedur funkcja VarType (wariant) określenie aktualnego typu wariantu Wartość funkcji (typu Integer) określa kod typu wariantu, który jest złożony ze stałych o przedrostku var. W celu sprawdzenia, czy odpowiedni bit tego kodu jest włączony, zaleca się zastosowanie konstrukcji if VarType(wariant) and stała = stała then... PP-11(45 z 95)

46 Moduł System.Variants przegląd ważniejszych funkcji i procedur funkcja VarAsType (wariant, typ-wariantowy) VarCast (zmienna-wariantowa, wariant, typ-wariantowy) zmiana aktualnego typu wartości wariantu (typ wariantowy oznacza jedną ze stałych o przedrostku var) funkcja VarIsEmpty (wariant) sprawdzenie, czy wariantowi przypisano już jakąś wartość (jeśli wartość wyspecyfikowanego wariantu jest równa predefiniowanej zmiennej Unassigned, to wartością funkcji jest wartość logiczna True, a w przypadku przeciwnym False) VarClear (zmienna-wariantowa) przypisanie wariantowi wartości Unassigned PP-11(46 z 95)

47 Moduł System.Variants przegląd ważniejszych funkcji i procedur funkcja VarArrayCreate (granice, typ-wariantowy) utworzenie tablicy wariantowej (parametr granice musi zawierać parzystą liczbę wartości każda para wartości określa dolną i górną granicę indeksów jednego wymiaru tablicy) Przykład Dla zmiennej x typu Variant instrukcja x:=vararraycreate([0, 2, 1, 5, 1, 1], varbyte); utworzy trójwymiarową tablicę wariantową o typach elementów określonych stałą varbyte. Indeksy pierwszego wymiaru będą mogły zmieniać się od 0 do 2, drugiego od 1 do 5, a trzeciego wymiaru od 1 do 1. PP-11(47 z 95)

48 Moduł System.Variants przegląd ważniejszych funkcji i procedur funkcja VarArrayOf (wartości) utworzenie jednowymiarowej tablicy wariantowej o podanych wartościach Przykłady 1) w:=vararrayof([0, 1, 2, 3, 4, 5]); 2) Po wykonaniu instrukcji w:=vararraycreate([1, 4], varvariant); utworzenie tablicy wariantowej dla elementu w[4] można osiągnąć za pomocą instrukcji w[4]:=vararrayof([ Object, False, 1.2, 2]); PP-11(48 z 95)

49 Moduł System.Variants przegląd ważniejszych funkcji i procedur funkcja VarIsArray (wariant) sprawdzenie, czy wariant jest tablicą wariantową funkcja VarArrayDimCount (wariant) określenie liczby wymiarów tablicy wariantowej (wartość funkcji równa 0 oznacza, że podany wariant nie jest tablicą wariantową) funkcja VarArrayHighBound (tablica-wariantowa, wymiar) określenie maksymalną wartości indeksu w określonym wymiarze tablicy wariantowej funkcja VarArrayLowBound (wariant, wymiar) określenie minimalnej wartości indeksu w określonym wymiarze tablicy wariantowej PP-11(49 z 95)

50 Moduł System.SysUtils W module System.SysUtils zdefiniowano m. in.: P typy klasowe reprezentujące warunki błędów i stany wyjątkowe oraz funkcje i procedury ich obsługi, P funkcje i procedury do przetwarzania łańcuchów zakończonych znakiem pustym, Pfunkcje i procedury do przetwarzania łańcuchów paskalowych (uzupełniają one elementy zdefiniowane w module System), P funkcje i procedury związane z datą i czasem, Pfunkcje i procedury do wykonywania różnych konwersji. PP-11(50 z 95)

51 Moduł System.SysUtils Wśród stałych i zmiennych zdefiniowanych w module System.SysUtils można wyróżnić m. in.: Pstałe atrybutów i trybów zbiorów, P stałe i zmienne dotyczące daty i czasu, P zmienne wykorzystywane w operacjach monetarnych, P zmienne dotyczące łańcuchów, P zmienne informujące o środowisku Windows. PP-11(51 z 95)

52 Moduł System.Math Moduł System.Math zawiera funkcje i procedury arytmetyczne, trygonometryczne, logarytmiczne i statystyczne, będące uzupełnieniem funkcji zdefiniowanych w module System. Ponadto w module System.Math znajdują się definicje funkcji przeznaczonych do obliczeń finansowych, które przeniesiono z pakietu Quattro Pro firmy Borland. Część wykonawcza wielu funkcji i procedur modułu System.Math została zaprogramowana bezpośrednio w asemblerze, z wykorzystaniem instrukcji zmiennopozycyjnych, operujących bezpośrednio na jednostce arytmetyki zmiennopozycyjnej procesora Pentium. PP-11(52 z 95)

53 Moduł System.Math przegląd ważniejszych funkcji i procedur Funkcje i procedury trygonometryczne ArcCos(x) ArcSin(x) ArcTan2(x, y) Cotan(x) SinCos(x, s, c) Tan(x) arcus cosinus x arcus sinus x arcus tangens ilorazu x przez y cotangens x sinus i cosinus x (oddzielne obliczenie sinusa i cosinusa za pomocą funkcji Sin i Cos modułu System trwa dwa razy dłużej) tangens x DegToRad(stopnie) zamiana stopni na radiany RadToDeg(radiany) zamiana radianów na stopnie PP-11(53 z 95)

54 Moduł System.Math przegląd ważniejszych funkcji i procedur Funkcje hiperboliczne i area funkcje ArcCosh(x) area cosinus x ArcSinh(x) area sinus x ArcTanh(x) area tangens x Cosh(x) cosinus hiperboliczny x Sinh(x) sinus hiperboliczny x Tanh(x) tangens hiperboliczny x Funkcje logarytmiczne LnXP1(x) logarytm naturalny z x+1 (funkcja zalecana do stosowania dla wartości x bliskich 0) Log10(x) logarytm dziesiętny z x Log2(x) logarytm o podstawie 2 z x LogN(p, x) logarytm o podstawie p z x PP-11(54 z 95)

55 Moduł System.Math przegląd ważniejszych funkcji i procedur Funkcje wykładnicze i potęgowe IntPower (podstawa, wykładnik) argument podstawa podniesiony do potęgi (całkowitej) określonej przez wykładnik Power (podstawa, wykładnik) podniesienie liczby rzeczywistej do dowolnej potęgi (nie tylko całkowitej) PP-11(55 z 95)

56 Moduł System.Math przegląd ważniejszych funkcji i procedur Funkcje i procedury do obliczeń statystycznych funkcja Sum (dane) obliczanie sumy elementów (dane argument odpowiadający tablicowemu parametrowi otwartemu o elementach typu Double) funkcja SumOfSquares (dane) SumsAndSquares (dane, suma, suma-kwadratów) obliczenie sumy kwadratów elementów funkcja Norm (dane) obliczenie normy euklidesowej wektora (pierwiastek z sumy kwadratów jego składowych) funkcja Mean (dane) obliczenie średniej arytmetycznej pewnej liczby elementów PP-11(56 z 95)

57 Moduł System.Math przegląd ważniejszych funkcji i procedur Funkcje i procedury do obliczeń statystycznych funkcja PopnVariance (dane) wyznaczenie wariancji funkcja Variance (dane) obliczenie nieobciążonego estymatora wariancji (nazwa może być myląca, gdyż funkcja nie oblicza wariancji) funkcja PopnStdDev (dane) wyznaczenie odchylenia standardowego MeanAndStdDev (dane, średnia, odchylenie-standardowe) jednoczesne wyznaczenie średniej i odchylenia standardowego funkcja RandG (średnia, odchylenie-standardowe) PP-11(57 z 95) otrzymywanie liczb losowych o rozkładzie normalnym (Gaussa)

58 Moduł System.Math przegląd ważniejszych funkcji i procedur Inne funkcje i procedury Frexp (x, mantysa, cecha) wyodrębnienie mantysy i cechy wielkości zmiennopozycyjnej (mantysa zmienna typu Extended, cecha zmienna typu Integer) funkcja Ceil (x) wyznaczenie najmniejszej liczby całkowitej większej od lub równej podanej wartości x funkcja Floor (x) wyznaczenie największej liczby całkowitej mniejszej od lub równej podanej wartości x PP-11(58 z 95)

59 Moduł System.Math przegląd ważniejszych funkcji i procedur Inne funkcje i procedury funkcja Poly (x, współczynniki) obliczenie wartości wielomianu stopnia n zmiennej x algorytmem Hornera: w n := a n, w i := w i+1 x + a i, dla i = n 1, n 2,..., 0. gdzie w 0 oznacza wyznaczaną wartość (x oznacza wartość typu Extended, a argument współczynniki odpowiada tablicowemu parametrowi otwartemu o elementach typu Double liczba elementów tej tablicy jest równa stopniowi wielomianu minus 1) PP-11(59 z 95)

60 Wywołanie innego programu z programu paskalowego Do wykonania tej operacji służy funkcja ShellExecute zdefiniowana w module ShellAPI. Funkcja ta nie jest opisana w systemie pomocy środowiska Delphi. Odwołuję się ona bezpośrednio do funkcji API systemu Windows o tej samej nazwie: HINSTANCE ShellExecute( HWND hwnd, // handle to parent window LPCTSTR lpoperation, // pointer to string that specifies operation to perform LPCTSTR lpfile, // pointer to filename or folder name string LPCTSTR lpparameters, // pointer to string that specifies executable-file parameters LPCTSTR lpdirectory,// pointer to string that specifies default directory INT nshowcmd // whether file is shown when opened ); PP-11(60 z 95)

61 Wywołanie innego programu z programu paskalowego Nagłówek funkcji ShellExecute z modułu ShellAPI ma następującą postać: function ShellExecute (hwnd : HWND; Operation, FileName, Parameters, Directory : PChar; ShowCmd : Integer) : HINST; stdcall; Bezpośrednie używanie tej funkcji w praktyce może być uciążliwe. Dlatego proponujemy korzystać z następującej, użytecznej funkcji: PP-11(61 z 95)

62 Wywołanie innego programu z programu paskalowego function ExecuteFile (const FileName, Params, DefaultDir : string; ShowCmd : Integer) : THandle; var zfilename, zparams, zdir : array [0..79] of Char; begin Result:=ShellExecute(Application.MainForm.Handle, nil, StrPCopy(zFileName, FileName), StrPCopy(zParams, Params), StrPCopy(zDir, DefaultDir), ShowCmd) end; FileName nazwa zbioru programowego (lub folderu), Params parametry wykonania programu, DefaultDir skorowidz (katalog) domyślny, ShowCmd określenie sposobu wyświetlania okienka: SW_SHOW (bieżący rozmiar i położenie), SW_MAXIMIZE, SW_MINIMIZE (inne stałe SW_ zob. opis funkcji API o nazwie ShellExecute w systemie pomocy) PP-11(62 z 95)

63 Informacje o bibliotece VCL Biblioteka VCL składa się z obiektów i komponentów, za pomocą których konstruuje się programy okienkowe przeznaczone do uruchamiania w środowisku Windows. Cała biblioteka VCL pakietu Delphi jest zaprojektowana przy użyciu dziewięciu głównych klas, z których są wyprowadzone wszystkie jej komponenty i elementy sterujące. Klasami tymi są: TObject, TPersistent, TComponent, TControl, TGraphControl, TWinControl, TSrollingWinControl, TCustomForm i TCustomControl. PP-11(63 z 95)

64 Informacje o bibliotece VCL Hierarchia głównych typów klasowych biblioteki VCL PP-11(64 z 95)

65 Informacje o bibliotece VCL Wszystkie typy klasowe biblioteki VCL można podzielić na trzy grupy: Pogólne typy klasowe wyprowadzone bezpośrednio z typu TObject, Pkomponenty, tj. typy klasowe wyprowadzone z typu TComponent, które w programach okienkowych dodaje się do formatek, Pelementy sterujące, wyprowadzone z typu TControl, które są komponentami widocznymi podczas wykonywania programu. PP-11(65 z 95)

66 Informacje o bibliotece VCL Okienka z komunikatami Do wyświetlania okienek z komunikatami służą procedury ShowMessage, ShowMessageFmt, ShowMessagePos i funkcje: MessageDlg, MessageDlgPos, MessageDlgPosHelp, CreateMessageDialog, InputBox, InputQuery, TaskMessageDlg, TaskMessageDlgPos, TaskMessageDlgPosHelp, PP-11(66 z 95) które są zdefiniowane w module Vcl.Dialogs.

67 Informacje o bibliotece VCL Okienka z komunikatami Do wyświetlania okienek z komunikatami służy też metoda MessageBox typu TApplication (typ ten jest zdefiniowany w module Vcl.Forms). Do wyświetlania okienek z informacjami o wystąpieniach warunków błędów i stanów wyjątkowych jest przeznaczona procedura ShowException zdefiniowana w module System.SysUtils oraz metoda o takiej samej nazwie typu TApplication (zob. podręcznik lub system pomocy środowiska Delphi). PP-11(67 z 95)

68 Informacje o bibliotece VCL Okienka z komunikatami Procedura ShowMessage powoduje wyświetlenie okienka z komunikatem i przyciskiem OK. Tytułem tego okienka jest nazwa zbioru wykonywalnego programu. Wywołanie procedury ShowMessage ma postać ShowMessage (łańcuch) gdzie łańcuch oznacza w ogólności wyrażenie typu string, którego wartością jest treść komunikatu wyświetlanego w okienku. PP-11(68 z 95)

69 Informacje o bibliotece VCL Okienka z komunikatami Przykład ShowMessage ( Lubię programować w języku + Delphi ); PP-11(69 z 95)

70 Informacje o bibliotece VCL Okienka z komunikatami Za pomocą procedury ShowMessageFmt o wywołaniu ShowMessageFmt (łańcuch, argumenty) można wyświetlić podobne okienko, jak za pomocą procedury ShowMessage, ale ze sformatowanym łańcuchem. Argumenty wywołania funkcji ShowMessageFmt są takie same, jak funkcji Format (z modułu System.SysUtils). PP-11(70 z 95)

71 Informacje o bibliotece VCL Okienka z komunikatami Przykład ShowMessageFmt ( Kupiłem pakiet %s za %m, [ Delphi XE2 Professional, ]); Stosując jako drugi argument inny konstruktor tablicy otwartej (np. [ Visual C++, ]), możemy zmienić nazwę pakietu i jego cenę. PP-11(71 z 95)

72 Informacje o bibliotece VCL Okienka z komunikatami Procedury ShowMessage i ShowMessageFmt powodują wyświetlenie okienka z komunikatem na środku ekranu. Za pomocą procedury ShowMessagePos można spowodować wyświetlenie takiego samego okienka w określonym miejscu ekranu. Wywołanie: ShowMessagePos (łańuch, x, y) gdzie x i y oznaczają wyrażenia typu Integer, powoduje wyświetlenie okienka tak, by jego lewy górny narożnik znajdował się na ekranie w miejscu o współrzędnych (absolutnych) x i y. PP-11(72 z 95)

73 Informacje o bibliotece VCL Okienka z komunikatami O wiele większe możliwości redagowania okienek z komunikatami dają dwie funkcje: MessageDlg (łańcuch, rodzaj, przyciski, kontekst-pomocy [, przycisk-domyślny]) i MessageDlgPos (łańcuch, rodzaj, przyciski, kontekst-pomocy, x, y [, przycisk-domyślny]) Pierwsza funkcja wyświetla okienko na środku ekranu, a druga powoduje wyświetlenie okienka w taki sposób, że jego lewy górny narożnik zostanie umiejscowiony na ekranie w punkcie o współrzędnych absolutnych (x, y). PP-11(73 z 95)

74 Informacje o bibliotece VCL Okienka z komunikatami W wywołaniach obu funkcji pierwszy argument (łańcuch) definiuje wyświetlany komunikat, a kontekst pomocy (wyrażenie typu LongInt) określa numer okienka z pomocniczą informacją kontekstową, które przy aktywności okienka z komunikatem będzie wyświetlone na ekranie po naciśnięciu klawisza F1. W przypadku, gdy numer kontekstu pomocy jest równy 0, okienko dziedziczy numer z nadrzędnego elementu sterującego (jeśli takiego nie ma, okienko z informacjami pomocniczymi nie będzie wyświetlone). PP-11(74 z 95)

75 Informacje o bibliotece VCL Okienka z komunikatami Argumenty rodzaj i przyciski oraz opcjonalny argument przycisk domyślny służą do określenia postaci okienka z komunikatem. Argument rodzaj jest predefiniowanego typu wyliczeniowego TMsgDlgType określonego (w module Vcl.Dialogs) następująco: type TMsgDlgType = (mtwarning, mterror, mtinformation, mtconfirmation, mtcustom); PP-11(75 z 95)

76 Informacje o bibliotece VCL Okienka z komunikatami Poszczególne elementy tego typu oznaczają rodzaj komunikatu wyświetlanego w okienku, co ma wpływ na jego tytuł, a zarazem piktogram (znak graficzny będący mapą bitową): mtwarning ostrzeżenie (okienko zawiera znak wykrzyknika w żółtym trójkącie, a jego tytułem jest Warning), mterror błąd (okienko o tytule Error z białym krzyżykiem na czerwonym tle), mtinformation informacja (okienko zawiera białą literę i na niebieskim tle, a jego tytułem jest Information), mtconfirmation zapytanie (okienko o tytule Confirmation z białym znakiem zapytania na niebieskim tle), mtcustom okienko bez piktogramu o tytule będącym nazwą zbioru wykonywalnego programu. PP-11(76 z 95)

77 Informacje o bibliotece VCL Okienka z komunikatami Typem argumentu przyciski jest typ zbiorowy TMsgDlgButtons, którego typem bazowym jest typ wyliczeniowy TMsgDlgBtn. Definicje tych typów (w module Vcl.Dialogs) są następujące: type TMsgDlgBtn = (mbyes, mbno, mbok, mbcancel, mbabort, mbretry, mbignore, mball, mbnotoall, mbyestoall, mbhelp, mbclose); TMsgDlgButtons = set of TMsgDlgBtn; Poszczególne elementy typu TMsgDlgBtn służą do oznaczenia rodzaju przycisku wyświetlanego w okienku i opcjonalnego argumentu przycisk domyślny. PP-11(77 z 95)

78 Informacje o bibliotece VCL Okienka z komunikatami W module Vcl.Dialogs zdefiniowano także pięć stałych, które predefiniują zbiory z dwoma lub trzema najczęściej występującymi zestawami przycisków: mbyesnocancel zbiór definiujący przyciski z napisami Yes, No i Cancel, mbyesallnoallcancel zbiór definiujący przyciski z napisami Yes, YesToAll, No, NoToAll i Cancel, mbokcancel zbiór określający przyciski z napisami OK i Cancel, mbabortretryignore zbiór definiujący przyciski z napisami Abort, Retry i Ignore, mbabortignore zbiór definiujący przyciski z napisami Abort i Ignore. Stałe te oznaczają odpowiednie zbiory, a więc ich użycie jako argumentu przyciski nie wymaga stosowania nawiasów kwadratowych. PP-11(78 z 95)

79 Informacje o bibliotece VCL Okienka z komunikatami Wartością funkcji MessageDlg (a także funkcji MessageDlgPos) jest wartość typu Integer określająca, który z przycisków powodujących zamknięcie okienka został naciśnięty (zamknięcia nie powoduje przycisk z napisem Help). Wartość tę można sprawdzić przez jej przyrównanie do jednej ze stałych: const mrnone = 0; nie naciśnięto żadnego przycisku mrok = idok; naciśnięto przycisk OK mrcancel = idcancel; naciśnięto przycisk Cancel (lub zamknięto okienko za pomocą piktogramu zamknięcia) mrabort = idabort; naciśnięto przycisk Abort mrretry = idretry; naciśnięto przycisk Retry mrignore = idignore; naciśnięto przycisk Ignore mryes = idyes; naciśnięto przycisk Yes mrno = idno; naciśnięto przycisk No mrall = mrno+1; naciśnięto przycisk All mrnotoall = mrall+1; naciśnięto przycisk No to All mryestoall = mrnotoall+1; PP-11(79 z 95) naciśnięto przycisk Yes to All

80 Informacje o bibliotece VCL Okienka z komunikatami Przykłady 1)MessageDlg ( Nie zakończono wprowadzania + danych, mtwarning, mbabortretryignore, 0) Przyciskiem domyślnym (określanym domyślnie) jest przycisk Retry. PP-11(80 z 95)

81 Informacje o bibliotece VCL Okienka z komunikatami Przykłady 2)MessageDlgPos ( Czy umiesz już programować + w języku Delphi?, mtconfirmation, [mbyes, mbno], 0, 200, 100, mbno) Lewy górny narożnik okienka będzie znajdował się w punkcie o współrzędnych ekranowych (200, 100), a przyciskiem domyślnym (określonym przez programistę) będzie przycisk No. PP-11(81 z 95)

82 Informacje o bibliotece VCL Okienka z komunikatami W funkcjach MessageDlg i MessageDlgPos ewentualne wyświetlanie informacji pomocniczych wymaga przygotowania systemu pomocy i podania numeru odpowiedniej informacji kontekstowej ze zbioru pomocy skojarzonego z danym programem. Informacje te mogą być pobierane także z innego (odpowiednio przygotowanego) zbioru pomocy za pomocą funkcji MessageDlgPosHelp o wywołaniu MessageDlgPosHelp (łańcuch, rodzaj, przyciski, kontekst-pomocy, x, y, nazwa-zbioru-pomocy [, przycisk-domyślny]) PP-11(82 z 95)

83 Informacje o bibliotece VCL Okienka z komunikatami Jeśli jakieś okienko z komunikatem jest wyświetlane wiele razy w programie, to zamiast wielokrotnego wykonywania którejś z podanych bliżej funkcji lub procedur wygodniejsze jest utworzenie odpowiedniego obiektu-okienka dialogowego za pomocą funkcji CreateMessageDialog. Jej wywołanie jest następujące: CreateMessageDialog (łańcuch, rodzaj, przyciski, [, przycisk-domyślny]) przy czym wszystkie argumenty poznaliśmy przy okazji opisywania poprzednich funkcji. PP-11(83 z 95)

84 Informacje o bibliotece VCL Okienka z komunikatami Przykład Jeśli zadeklarujemy zmienną: var komunikat : TForm; (konieczna jest deklaracja modułu Vcl.Forms), to po wykonaniu instrukcji komunikat:=createmessagedialog ( Lubię programować w języku Delphi, mtinformation, [mbok]); każdorazowe wykonanie instrukcji komunikat.showmodal; spowoduje pojawienie się na ekranie następującego okienka: Zwolnienie pamięci zajętej przez obiekt komunikat uzyskamy przez wywołanie komunikat.free; PP-11(84 z 95)

85 Informacje o bibliotece VCL Okienka z komunikatami Metoda-funkcja MessageBox typu TApplication umożliwia dobór przycisków w okienku, a ponadto określenie tytułu okienka. Jej wywołanie ma postać zmienna-klasowa.messagebox (łańcuch, nagłówek, charakterystyki) gdzie zmienna klasowa powinna być zmienną typu TApplication (najczęściej stosuje się predefiniowaną zmienną Application). Łańcuch (typu PChar) określa tekst wyświetlany w okienku, a nagłówek (też typu PChar) tytuł okienka. Za pomocą charakterystyk (typu LongInt) określa się nie tylko przyciski, które mają wystąpić w okienku, ale także wyświetlane piktogramy, przyciski domyślne, sposób justowania tekstu itp. PP-11(85 z 95)

86 Informacje o bibliotece VCL Okienka z komunikatami Do określenia charakterystyk służą stałe o przedrostku mb_ zdefiniowane w module Winapi.Windows (zob. system pomocy). Stałe te mogą być łączone za pomocą operatora or. Wartość funkcji MessageBox (typu Integer) określa wybór odpowiedniego przycisku w okienku. Do zbadania tej wartości można użyć jednej ze stałych o przedrostku id, które są także zdefiniowane w module Winapi.Windows. PP-11(86 z 95)

87 Informacje o bibliotece VCL Okienka z komunikatami Przykład Application.MessageBox ( Brak pamięci do + wykonania wszystkich operacji, Ostrzeżenie, mb_ok or mb_iconwarning); PP-11(87 z 95)

88 Informacje o bibliotece VCL Okienka z komunikatami Funkcja InputBox o wywołaniu InputBox (nagłówek, komunikat, tekst-domyślny) powoduje wyświetlenie okienka o tytule podanym pierwszym argumentem z tekstem określonym argumentem komunikat, obok którego zostanie wyświetlone podokienko wejściowe z tekstem określonym trzecim argumentem. W okienku będą występować dwa przyciski: OK i Cancel. Po wyborze przycisku OK. tekst wpisany w podokienku wejściowy stanie się wartością funkcji, a po wyborze przycisku Cancel wartością funkcji będzie tekst domyślny. PP-11(88 z 95)

89 Informacje o bibliotece VCL Okienka z komunikatami Przykład InputBox ( Wejście, Wprowadź tekst, Tu napisz tekst ); Wartość funkcji (typu string) będzie uzależniona od tekstu wpisanego (lub nie) w podokienku wejściowym i wyboru przycisku. PP-11(89 z 95)

90 Informacje o bibliotece VCL Okienka z komunikatami Funkcja InputQuery o wywołaniu InputQuery (nagłówek, komunikat, tekst) powoduje wyświetlenie okienka o tytule podanym argumentem nagłówek z tekstem określonym argumentem komunikat, po którym zostanie wyświetlone podokienko wejściowe z tekstem określonym trzecim argumentem (musi to być zmienna). Użytkownik może zmienić ten tekst, który stanie się nową wartością tej zmiennej. W okienku będą występować dwa przyciski: OK i Cancel. Po wyborze przycisku OK wartością funkcji jest wartość logiczna True, a po wyborze przycisku Cancel lub naciśnięciu przycisku Esc S False. PP-11(90 z 95)

91 Informacje o bibliotece VCL Okienka z komunikatami Funkcja PromptForFileName powoduje wyświetlenie okienka do wczytania lub zapisu pliku o podanym tytule. Jej wywołanie ma postać PromptForFileName (nazwa-pliku, filtr, domyślne-rozszezrenie-nazwy-pliku, tytuł, początkowy-katalog, rodzaj-okienka); Domyślnymi wartościami parametrów filtr, domyślne rozszerzenie nazwy pliku, tytuł i początkowy katalog są łańcuchy puste. Domyślna wartość False ostatniego parametru oznacza, że zostanie wyświetlone okienko do wczytania pliku. Postać filtru: opis-maski maska [ opis-maski maska].... Wartością funkcji jest wartość logiczna True, gdy użytkownik określił plik i wybrał w okienku przycisk Zapisz lub Otwórz. Początkowa nazwa pliku zostanie zmieniona na nazwę wprowadzoną w okienku. PP-11(91 z 95)

92 Informacje o bibliotece VCL Okienka z komunikatami Przykład Niech rozdział oznacza zmienną typu string, a OK zmienną typu Boolean. Wykonanie instrukcji: rozdział:= Delphi-XE2'; OK:=PromptForFileName (rozdział, Pliki Corel WordPerfect (*.wpd) *.WPD,, Pliki książki o Delphi,, False); w systemie Windows Vista spowoduje ukazanie się na ekranie następującego okienka PP-11(92 z 95)

93 Informacje o bibliotece VCL Okienka z komunikatami Przykład Jeśli w okienku tym użytkownik wybierze plik Delphi-Appl, po czym przycisk Otwórz, to zmiennej OK zostanie przypisana wartość logiczna True, a zmiennej rozdział S łańcuch C:\Users\...\Documents \Delphi-Appl.wpd. PP-11(93 z 95)

94 Informacje o bibliotece VCL Okienka z komunikatami Do wyświetlania okienek z komunikatami służą także funkcje TaskMessageDlg, TaskMessageDlgPos i TaskMessageDlgPosHelp. Argumenty ich wywołania oraz działania są takie same, jak funkcji odpowiednio MessageDlg, MessageDlgPos i MessageDlgPosHelp. PP-11(94 z 95)

95 Ufff!!!!! Dzisiaj nareszcie koniec ale ciąg dalszy nastąpi! PP-11(95 z 95)

Delphi podstawy programowania. Dialogi

Delphi podstawy programowania. Dialogi Delphi podstawy programowania Dialogi Olsztyn 2004 Dialogi Dialogi Komunikaty: 1. ShowMessage 2. ShowMessagePos 3. ShowMessageFmt 4. MessageBox 5. MessageDlg 6. MessageDlgPos Okna dialogowe: 1. InputBox

Bardziej szczegółowo

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia

Bardziej szczegółowo

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

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

Bardziej szczegółowo

Programowanie Delphi obliczenia, schematy blokowe

Programowanie Delphi obliczenia, schematy blokowe Informatyka II MPZI2 ćw.2 Programowanie Delphi obliczenia, schematy blokowe Zastosowania obliczeń numerycznych Wyrażenia arytmetyczne służą do zapisu wykonywania operacji obliczeniowych w trakcie przebiegu

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

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

Wstęp do programowania. Różne różności Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste

Bardziej szczegółowo

Delphi Laboratorium 3

Delphi Laboratorium 3 Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,

Bardziej szczegółowo

PODSTAWY PROGRAMOWANIA

PODSTAWY PROGRAMOWANIA PODSTAWY PROGRAMOWANIA Andrzej Marciniak Prezentacja multimedialna przygotowana za pomocą systemu Corel Presentations X3 Copyright 2003-2017 by Andrzej Marciniak PP-4(1 z 88) Na poprzednim wykładzie...

Bardziej szczegółowo

Wprowadzenie do języka Pascal

Wprowadzenie do języka Pascal Wprowadzenie do języka Pascal zmienne i typy standardowe operatory arytmetyczne, funkcje standardowe odczyt danych i wyświetlanie wyników obsługa wyjątków Techniki programowania I s.2-1 Podstawowe zasady

Bardziej szczegółowo

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

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word Pascal - powtórka Alfabet, Nazwy W odróŝnieniu do C w Pascal nie odróŝnia małych i duŝych liter. Zapisy ALA i ala oznaczają tę samą nazwę. Podobnie np. słowo kluczowe for moŝe być zapisane: FOR. W Pascalu

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

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

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript

Bardziej szczegółowo

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

Właściwości i metody obiektu Comment Właściwości

Właściwości i metody obiektu Comment Właściwości Właściwości i metody obiektu Comment Właściwości Właściwość Czy można zmieniać Opis Application nie Zwraca nazwę aplikacji, która utworzyła komentarz Author nie Zwraca nazwę osoby, która utworzyła komentarz

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

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

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika i Programowanie VBA 1 - podstawy Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

PODSTAWY PROGRAMOWANIA

PODSTAWY PROGRAMOWANIA PODSTAWY PROGRAMOWANIA Andrzej Marciniak Prezentacja multimedialna przygotowana za pomocą systemu Corel Presentations X3 Copyright 2003-2013 by Andrzej Marciniak PP-12(1 z 46) Na poprzednim wykładzie...

Bardziej szczegółowo

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych 2. Tablice Tablica to struktura danych przechowująca elementy jednego typu (jednorodna). Dostęp do poszczególnych elementów składowych jest możliwy za pomocą indeksów. Rozróżniamy następujące typy tablic:

Bardziej szczegółowo

Tworzenie własnych komponentów

Tworzenie własnych komponentów Tworzenie własnych komponentów 1. Tworzenie nowego komponentu W tym celu należy wykorzystać menu Component. Interesujące są dwie opcje menu New Component i Install Component. Pierwsze polecenie służy do

Bardziej szczegółowo

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?

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? Część XVIII C++ Funkcje 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? Umiemy już podzielić nasz

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe Podstawy programowania Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe 1 Podstawy programowania Część I Łańcuchy znaków 2 I. Zmienne łańcuchowe Klasyfikacja zmiennych statycznych

Bardziej szczegółowo

JAVAScript w dokumentach HTML (1)

JAVAScript w dokumentach HTML (1) JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript

Bardziej szczegółowo

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Instalacja Pakietu R

Instalacja Pakietu R Instalacja Pakietu R www.r-project.org wybór źródła wybór systemu operacyjnego: Download R for Windows opcja: install R for the first time opcja: Download R 3.3.3 for Windows uruchomienie R-3.3.3-win MAGDA

Bardziej szczegółowo

PODSTAWY PROGRAMOWANIA

PODSTAWY PROGRAMOWANIA PODSTAWY PROGRAMOWANIA Andrzej Marciniak Prezentacja multimedialna przygotowana za pomocą systemu Corel Presentations X3 Copyright 2003-2016 by Andrzej Marciniak PP-5(1 z 93) Na poprzednim wykładzie...

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część ósma Tablice znaków i przetwarzanie napisów Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

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

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Wprowadzenie do programowania w VBA

Wprowadzenie do programowania w VBA Wprowadzenie do programowania w VBA Spis treści Struktura programu... 1 Typy danych... 2 Deklaracja zmiennych i stałych... 2 Deklaracja tablic... 3 Instrukcja przypisania... 3 Wprowadzanie danych... 3

Bardziej szczegółowo

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Procedury i funkcje. Programowanie komputerowe

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Procedury i funkcje. Programowanie komputerowe Wydział Zarządzania AGH Katedra Informatyki Stosowanej Procedury i funkcje Programowanie komputerowe Procedury i funkcje Wprowadzenie Budowa procedur i funkcji Przekazywanie parametrów Funkcje wbudowane

Bardziej szczegółowo

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

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych;

Bardziej szczegółowo

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

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

Wprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

Wprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu Wprowadzenie do Pakietu R dla kierunku Zootechnika Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu Instalacja Pakietu R www.r-project.org wybór źródła wybór systemu operacyjnego:

Bardziej szczegółowo

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej  Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium

Bardziej szczegółowo

Pliki wchodzące w skład projektu Rozmiar formatki, okna. Wyświetlanie okien komunikatów Rzutowanie Konwersja Tworzenie standardowych przycisków

Pliki wchodzące w skład projektu Rozmiar formatki, okna. Wyświetlanie okien komunikatów Rzutowanie Konwersja Tworzenie standardowych przycisków Pliki wchodzące w skład projektu Rozmiar formatki, okna. Wyświetlanie okien komunikatów Rzutowanie Konwersja Tworzenie standardowych przycisków Pliki wchodzące w skład projektu. Elementy projektu: plik

Bardziej szczegółowo

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 1

Algorytmy i struktury danych. wykład 1 Plan całego wykładu:. Pojęcie algorytmu, projektowanie wstępujące i zstępujące, rekurencja. Klasy algorytmów. Poprawność algorytmu, złożoność obliczeniowa. Wskaźniki, dynamiczne struktury danych: listy,

Bardziej szczegółowo

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych 1. Wczytywanie z plików tekstowych. Wczytywanie z pliku tekstowego wymaga: a) skojarzenia zmiennej plikowej z plikiem procedura assignfile b)

Bardziej szczegółowo

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

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

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop. 2010 Spis treści Wstęp 11 Część I PASCAL - wprowadzenie do programowania strukturalnego

Bardziej szczegółowo

PASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka

PASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka PASCAL Kompendium Środowisko TURBO PASCAL Skróty klawiaturowe Edycja kodu F1 Pomoc spis treści CTRL + F1 Pomoc kontekstowa SHIFT + strzałki Zaznaczanie bloku CTRL + INSERT Skopiowanie zaznaczonego bloku

Bardziej szczegółowo

JAVAScript w dokumentach HTML - przypomnienie

JAVAScript w dokumentach HTML - przypomnienie Programowanie obiektowe ćw.1 JAVAScript w dokumentach HTML - przypomnienie JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Wykład 2 Składnia języka C# (cz. 1)

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

Zaawansowane programowanie w (pakiecie) Delphi

Zaawansowane programowanie w (pakiecie) Delphi DEL420 Zaawansowane programowanie w (pakiecie) Delphi Andrzej Marciniak Prezentacja multimedialna przygotowana za pomoc¹ systemu Corel Presentations 11 i X3 Copyright 2004-2010 by Andrzej Marciniak DEL-2(1

Bardziej szczegółowo

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 Uwaga: DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 1. Zostały pominięte diagramy: CYFRA, CYFRA SZESNASTKOWA, ZNAK i LITERA. Nie została uwzględniona możliwość posługiwania się komentarzami. 2. Brakuje

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

Wykład 4. Tablice. Pliki

Wykład 4. Tablice. Pliki Informatyka I Wykład 4. Tablice. Pliki Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Tablice Tablica uporządkowany zbiór elementów określonego typu Każdy element tablicy posiada

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

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

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

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

3 Przygotował: mgr inż. Maciej Lasota

3 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 3 1/8 Język C Instrukcja laboratoryjna Temat: Instrukcje warunkowe, pętle. 3 Przygotował: mgr inż. Maciej Lasota 1) Instrukcje warunkowe. Instrukcje warunkowe pozwalają zdefiniować warianty

Bardziej szczegółowo

Funkcje matematyczne w C. Programowanie w C Marek Pudełko

Funkcje matematyczne w C. Programowanie w C Marek Pudełko Funkcje matematyczne w C Programowanie w C Marek Pudełko Używanie funkcji matematycznych W standardowym ANSI C jest możliwe skorzystanie z 22 funkcji matematycznych. By to zrobić, do programu należy włączyć

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.2.

Języki programowania wysokiego poziomu. PHP cz.2. Języki programowania wysokiego poziomu PHP cz.2. Instrukcje strukturalne PHP Instrukcje strukturalne Instrukcja grupująca (blok instrukcji) Instrukcja warunkowa, if-else Instrukcja wyboru, switch-case

Bardziej szczegółowo

Obliczenia iteracyjne

Obliczenia iteracyjne Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej

Bardziej szczegółowo

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

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1 Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych; Begin

Bardziej szczegółowo

PODSTAWY PROGRAMOWANIA

PODSTAWY PROGRAMOWANIA PODSTAWY PROGRAMOWANIA Andrzej Marciniak Prezentacja multimedialna przygotowana za pomocą systemu Corel Presentations X3 Copyright 2003-2016 by Andrzej Marciniak PP-7(1 z 84) Na poprzednim wykładzie...

Bardziej szczegółowo

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu Plan wykładu Ada 95 #1/5 - typy Wojciech Complak, Instytut Informatyki, Politechnika Poznańska e-mail : Wojciech.Complak@cs.put.poznan.pl www : http://www.cs.put.poznan.pl/wcomplak Hierarchia typów w Adzie

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część piąta Proste typy danych w języku Pascal Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo

Warsztaty dla nauczycieli

Warsztaty dla nauczycieli WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne

Bardziej szczegółowo

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

Bardziej szczegółowo

Delphi podstawy programowania. Środowisko Delphi

Delphi podstawy programowania. Środowisko Delphi Delphi podstawy programowania Środowisko Delphi Olsztyn 2004 Delphi Programowanie obiektowe - (object-oriented programming) jest to metodologia tworzeniu programów komputerowych definiująca je jako zbiór

Bardziej szczegółowo

Podstawy programowania. Podstawy C# Tablice

Podstawy programowania. Podstawy C# Tablice Podstawy programowania Podstawy C# Tablice Tablica to indeksowany zbiór elementów Tablica jest typem referencyjnym (deklaracja tworzy tylko referencję, sama tablica musi być utworzona oddzielnie, najprościej

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015 POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 4 : Napisy. Tablice dwuwymiarowe. Formaty

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Informatyka I. Wykład 4. Tablice. Dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Wykład 4. Tablice. Dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Wykład 4. Tablice. Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Tablice Tablica uporządkowany zbiór elementów określonego typu Każdy element tablicy posiada

Bardziej szczegółowo

Ada-95. Dariusz Wawrzyniak

Ada-95. Dariusz Wawrzyniak Część I Wskaźniki Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Wskaźniki

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Zaawansowane programowanie w (pakiecie) Delphi

Zaawansowane programowanie w (pakiecie) Delphi DEL420 Zaawansowane programowanie w (pakiecie) Delphi Andrzej Marciniak Prezentacja multimedialna przygotowana za pomoc¹ systemu Corel Presentations 11 i X3 Copyright 2004-2010 by Andrzej Marciniak DEL-9-10(1

Bardziej szczegółowo

Programowanie RAD Delphi

Programowanie RAD Delphi Programowanie RAD Delphi Dr Sławomir Orłowski Zespół Fizyki Medycznej, Instytut Fizyki, Uniwersytet Mikołaja Kopernika w Toruniu Pokój: 202, tel. 611-32-46, e-mial: bigman@fizyka.umk.pl Delphi zasoby Aplikacje

Bardziej szczegółowo

Programowanie w Turbo Pascal

Programowanie w Turbo Pascal Skróty: ALT + F9 Kompilacja CTRL + F9 Uruchomienie Struktura programu: Programowanie w Turbo Pascal Program nazwa; - nagłówek programu - blok deklaracji (tu znajduje się VAR lub CONST) - blok instrukcji

Bardziej szczegółowo

Ćwiczenie 1 Proste aplikacje - podstawowe komponenty.

Ćwiczenie 1 Proste aplikacje - podstawowe komponenty. Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5 1. Informacje o programie i środowisku Ćwiczenie 1 Proste aplikacje - podstawowe komponenty. Wygeneruj nową aplikację

Bardziej szczegółowo

Pascal - wprowadzenie

Pascal - wprowadzenie Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego

Bardziej szczegółowo

Wykład 3 Składnia języka C# (cz. 2)

Wykład 3 Składnia języka C# (cz. 2) Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest

Bardziej szczegółowo

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

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Laboratorium nr 1. i 2.

Laboratorium nr 1. i 2. Laboratorium nr 1. i 2. Celem laboratorium jest zapoznanie się ze zintegrowanym środowiskiem programistycznym, na przykładzie podstawowych aplikacji z obsługą standardowego wejścia wyjścia, podstawowych

Bardziej szczegółowo

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

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ. ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ. LICZBA TEMAT GODZIN LEKCYJNYCH Potęgi, pierwiastki i logarytmy (8 h) Potęgi 3 Pierwiastki 3 Potęgi o wykładnikach

Bardziej szczegółowo

Powtórka algorytmów. Wprowadzenie do języka Java.

Powtórka algorytmów. Wprowadzenie do języka Java. Powtórka algorytmów. Wprowadzenie do języka Java. BEGIN Readln(a); Readln(b); Suma := 0; IF Suma < 10 THEN Writeln( Suma wynosi:, Suma); ELSE Writeln( Suma większa niż 10! ) END. 1. Narysować schemat blokowy

Bardziej szczegółowo

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał

Bardziej szczegółowo

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

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

Bardziej szczegółowo

Księgarnia PWN: Wojciech Sterna Delphi od podstaw

Księgarnia PWN: Wojciech Sterna Delphi od podstaw Księgarnia PWN: Wojciech Sterna Delphi od podstaw Podziękowania (11) Wstęp (12) Rozdział 1. Początki początków (13) O czym jest ta książka (13) Object Pascal i Delphi (13) Najważniejsze polecenia Delphi

Bardziej szczegółowo

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup Baltie 3 Podręcznik do nauki programowania dla klas I III gimnazjum Tadeusz Sołtys, Bohumír Soukup Czytanie klawisza lub przycisku myszy Czytaj klawisz lub przycisk myszy - czekaj na naciśnięcie Polecenie

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

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

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem. Podstawy programowania Wykład PASCAL Zmienne wskaźnikowe i dynamiczne 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje zmiennych Zmienne dzielą się na statyczne i dynamiczne. Zmienna

Bardziej szczegółowo

MATERIAŁY DO ZAJĘĆ II

MATERIAŁY DO ZAJĘĆ II MATERIAŁY DO ZAJĘĆ II Zmienne w C# Spis treści I. Definicja zmiennej II. Hierarchia typów (CTS) III. Typy wbudowane IV. Deklaracja zmiennych V. Literały VI. Pobieranie i wypisywanie wartości zmiennych

Bardziej szczegółowo