PODSTAWY PROGRAMOWANIA
|
|
- Oskar Dudek
- 7 lat temu
- Przeglądów:
Transkrypt
1 PODSTAWY PROGRAMOWANIA Andrzej Marciniak Prezentacja multimedialna przygotowana za pomocą systemu Corel Presentations X3 Copyright by Andrzej Marciniak PP-7(1 z 84)
2 Na poprzednim wykładzie... Pwyrażenia < rodzaje operatorów i ich priorytet < składnia wyrażenia < wyrażenia stałe < przeciążanie operatorów P instrukcje < instrukcje proste (przypisania, skoku i pusta) < instrukcje strukturalne (złożona i warunkowe) PP-7(2 z 84)
3 Na tym wykładzie... Pinstrukcje (cd.) < instrukcje strukturalne (iteracyjne, wiążąca, obsługi warunków i stanów wyjątkowych) < instrukcja asemblerowa Pfunkcje i procedury < definicje funkcji i procedur < rodzaje parametrów PP-7(3 z 84)
4 Instrukcje iteracyjne Służą do organizowania cykli programowych, tj. wielokrotnego wykonywania pewnych sekwencji instrukcji. W języku Delphi występują trzy instrukcje iteracyjne: Pinstrukcja dla (mająca trzy postacie), Pinstrukcja dopóki, Pinstrukcja powtarzaj. PP-7(4 z 84)
5 Instrukcja dla Stosuje się ją zwykle w celu wykonania pewnej grupy instrukcji w przypadku, gdy liczba powtórzeń jest znana w danym miejscu programu. Dwie pierwsze postacie są następujące: for zmienna:=wyrażenie-1 to wyrażenie-2 do instrukcja lub for zmienna:=wyrażenie-1 downto wyrażenie-2 do instrukcja PP-7(5 z 84)
6 Instrukcja dla Zmienna, zwana zmienną sterującą, musi być identyfikatorem typu porządkowego (bez jakiegokolwiek kwalifikatora) i powinna być lokalna w bloku zawierającym daną instrukcję dla. for zmienna:=wyrażenie-1 to wyrażenie-2 do instrukcja lub for zmienna:=wyrażenie-1 downto wyrażenie-2 do instrukcja PP-7(6 z 84)
7 Instrukcja dla schemat działania instrukcji dla PP-7(7 z 84)
8 Przykłady Instrukcje Instrukcja dla Obliczenie sumy wszystkich ujemnych liczb typu ShortInt można zrealizować następująco: suma:=0; for i:=!128 to!1 do suma:=suma+i; lub za pomocą instrukcji suma:=0; for i:=!1 downto!128 do suma:=suma+i; Zmienna suma nie może być przy tym typu ShortInt, Byte, Word, LongWord, UInt64 lub Cardinal. PP-7(8 z 84)
9 Przykłady Instrukcja dla Instrukcja for k:=1 to 10 do begin k:=k+1; Writeln (k) end; jest błędna (dlaczego?). PP-7(9 z 84)
10 Przykłady Instrukcja dla Instrukcja for k:=1 to 10 do begin k:=k+1; Writeln (k) end; jest błędna (dlaczego?). Wewnątrz pętli nie może występować zmiana wartości zmiennej sterującej k (błąd ten zostanie zasygnalizowany podczas kompilacji). PP-7(10 z 84)
11 Instrukcja dla Przykłady Instrukcje wchodzące w skład instrukcji dla postaci j:=5; for i:=1 to j do begin j:=j+2; Writeln (i,, j) end; zostaną wykonane tylko pięć razy (pomimo zwiększania wartości j wewnątrz pętli). Dlaczego? PP-7(11z 84)
12 Instrukcja dla Przykłady Instrukcje wchodzące w skład instrukcji dla postaci j:=5; for i:=1 to j do begin j:=j+2; Writeln (i,, j) end; zostaną wykonane tylko pięć razy. Jest to spowodowane faktem, że obliczenie górnej granicy zmiennej sterującej następuje w chwili rozpoczęcia wykonywania pętli i później wartość ta nie jest zmieniana. Kolejno wypisywanymi wartościami będą: PP-7(12 z 84)
13 Instrukcja dla Instrukcje iteracyjne mogą być zagnieżdżone, tzn. w obrębie jednej pętli może wystąpić jedna lub więcej kolejnych pętli. Kolejność przetwarzania zagnieżdżonych instrukcji iteracyjnych jest taka, że najbardziej wewnętrzna pętla wykonywana jest najczęściej. PP-7(13 z 84)
14 Przykład for i:=1 to 2 do for j:=1 to 3 do for k:=1 to 4 do a[i,j,k]:=i*j*k; Instrukcja dla Przypisanie odpowiednich wartości elementom tablicy a odbędzie się w kolejności: a[1,1,1], a[1,1,2], a[1,1,3], a[1,1,4], a[1,2,1], a[1,2,2], a[1,2,3], a[1,2,4], a[1,3,1], a[1,3,2], a[1,3,3], a[1,3,4], a[2,1,1], a[2,1,2], a[2,1,3], a[2,1,4], a[2,2,1], a[2,2,2], a[2,2,3], a[2,2,4], a[2,3,1], a[2,3,2], a[2,3,3], a[2,3,4]. PP-7(14 z 84)
15 Instrukcja dla Trzecia postać instrukcji dla jest następująca: for element in kontener do instrukcja Stosuje się ją do wykonania iteracji po elementach zawartych w podanym kontenerze. Może nim być tablica statyczna lub dynamiczna (jedno- lub wielowymiarowa), łańcuch (ogólniej: wyrażenie łańcuchowe), zbiór (ogólniej: wyrażenie, którego wartością jest zbiór), kolekcja (pomijamy) lub rekord. PP-7(15 z 84)
16 Instrukcja dla Przykłady 1) Niech tablica A oraz zmienne k i x będą zadeklarowane następująco: var A : array [1..5] of Integer; k, x : Integer; Instrukcje (w programie tekstowym): for k:=1 to 5 do A[k]:=k; for x in A do Writeln (x); spowodują pojawienie się na ekranie napisów: PP-7(16 z 84)
17 Instrukcja dla Przykłady 2) Niech dane będą dwa łańcuchy i zmienna znak opisane następująco: const łańcuch1 : AnsiString = Programuję w ; łańcuch2 : AnsiString = Delphi ; var znak : AnsiChar; Po wykonaniu instrukcji (w programie tekstowym): for znak in łańcuch1+łańcuch2 do Write (znak); Na ekranie pojawi się napis Programuję w Delphi PP-7(17 z 84)
18 Instrukcja dopóki Służy do opisywania iteracji ze sprawdzeniem warunku na początku i ma postać while wyrażenie do instrukcja Wyrażenie, które najczęściej jest wyrażeniem porównania, powinno w wyniku dawać wartość logiczną. Instrukcja jest wykonywana jest tak długo, jak długo wartością wyrażenia jest True (chyba że nastąpi z niej skok PP-7(18 z 84) przekazujący sterowanie na zewnątrz instrukcji dopóki ).
19 Instrukcja dopóki schemat działania instrukcji dopóki PP-7(19 z 84)
20 Przykłady k:=1; x:=0; while k<10 do begin x:=(x+k)/k; k:=k+1 end; Instrukcja dopóki Instrukcja dopóki zostanie wykonana dziewięć razy (dla k=1, 2,..., 9). PP-7(20 z 84)
21 Przykłady Instrukcja dopóki while k>0 do begin k:=k div 2; n:=k*k end; Liczba wykonań powyższej instrukcji dopóki zależy od wartości zmiennej k przed rozpoczęciem jej wykonywania. Jeśli np. początkowa wartość k wynosi 10, to instrukcja dopóki zostanie wykonana cztery razy (dla k=10, 5, 2 i 1). PP-7(21 z 84)
22 Instrukcja powtarzaj Służy do opisywania iteracji ze sprawdzeniem warunku na końcu i ma postać repeat instrukcja-1; instrukcja-2;... instrukcja-n until wyrażenie Wyrażenie powinno dawać w wyniku wartość logiczną. PP-7(22 z 84)
23 Instrukcja powtarzaj schemat działania instrukcji powtarzaj PP-7(23 z 84)
24 Przykłady repeat k:=i mod j; i:=j; j:=k until j=0; Liczba wykonań powyższej instrukcji powtarzaj zależy od początkowych wartości zmiennych i oraz j. Instrukcje Instrukcja powtarzaj Jeśli na przykład zmienne te przed rozpoczęciem wykonywania instrukcji powtarzaj będą miały wartości odpowiednio 20 i 3, to warunek j=0 zostanie spełniony po trzykrotnym wykonaniu wewnętrznych instrukcji przypisania. PP-7(24 z 84)
25 Przykłady Instrukcje Instrukcja powtarzaj repeat Write ( Podaj godzinę: ); Readln (godzina) until godzina in [0..24]; Powyższa instrukcja powtarzaj będzie wykonywana (w programie tekstowym) tak długo, aż nie zostanie wprowadzona (za pomocą procedury Readln) liczba całkowita należąca do zbioru liczb całkowitych od 0 do 24. Zauważmy, że po słowie until występuje tu porównanie teoriomnogościowe. PP-7(25 z 84)
26 Instrukcja wiążąca Do odwoływania się do poszczególnych pól rekordu lub pól, metod i własności obiektu służą desygnatory pól, metod i własności. Odwołania takie zwykle wydłużają tekst programu (modułu, biblioteki łączonej dynamicznie). Zastosowanie instrukcji wiążącej pozwala na wygodniejsze odwoływanie się do tych pól, metod i własności, a także zwiększa czytelność tekstu źródłowego. PP-7(26 z 84)
27 Instrukcja wiążąca Postać instrukcji jest następująca: with lista-zmiennych do instrukcja przy czym lista zmiennych zawiera oddzielone przecinkami identyfikatory zmiennych rekordowych lub obiektowych (typu klasowego). Umieszczenie zmiennej rekordowej lub obiektowej po słowie kluczowym with pozwala wewnątrz instrukcji wiążącej na odwoływanie się do pól, metod i własności za pomocą samych ich PP-7(27 z 84) identyfikatorów.
28 Instrukcja wiążąca Przyjmuje się, że instrukcja postaci with z1, z2,..., zn do instrukcja jest równoważna zagnieżdżonej instrukcji wiążącej postaci with z1 do with z2 do... with zn do instrukcja PP-7(28 z 84)
29 Przykłady Instrukcje Instrukcja wiążąca Załóżmy, że jest dana następująca deklaracja: var complex : record re, im : Extended end; Przypisania w instrukcji wiążącej with complex do begin re:=1; im:=1 end; są równoważne przypisaniom w instrukcji złożonej begin complex.re:=1; complex.im:=1 end; PP-7(29 z 84)
30 Przykłady Instrukcje Instrukcja wiążąca Przy definicji i deklaracji type odcinek : class x, y : Integer; procedure zaznacz (dx, dy : Integer); end; var segment : odcinek; przypisania i wywołanie metody zaznacz mogą mieć postać with segment do begin x:=5; y:=10; zaznacz (15, 25) end; PP-7(30 z 84)
31 Instrukcje obsługi warunków i stanów wyjątkowych Warunkiem i (lub) stanem wyjątkowym nazywamy wystąpienie błędu lub innego zdarzenia, które przerywa normalne wykonywanie programu. Prawidłowa obsługa warunków i stanów wyjątkowych w programie (module, bibliotece łączonej dynamicznie) pozwala na podniesienie jego niezawodności i uczynienie go bardziej odpornym na ewentualne błędy wykonania. W języku Delphi warunki i stany wyjątkowe są reprezentowane przez typy klasowe. Obsługę błędów, które normalnie powodują przerwanie wykonywania programu, zapewnia moduł System.SysUtils. PP-7(31 z 84)
32 Instrukcje obsługi warunków i stanów wyjątkowych Z obsługą warunków i stanów wyjątkowych są związane trzy instrukcje: Pwywoływania stanów wyjątkowych (raise), Ptry...except, Ptry...finally. PP-7(32 z 84)
33 Instrukcja wywoływania stanów wyjątkowych Może mieć trzy różne postacie: raise stan-wyjątkowy raise stan-wyjątkowy at adres lub raise Stan wyjątkowy oznacza tu obiekt (wyrażenie typu klasowego). Na ogół nie podaje się w tym miejscu zmiennej typu klasowego, lecz wywołuje konstruktor odpowiedniego typu klasowego reprezentującego warunek lub stan wyjątkowy. Wywołanie warunku powoduje utworzenie obiektu-warunku, jego obsługę, a następnie automatyczne usunięcie tego PP-7(33 z 84) obiektu-warunku za pomocą jego destruktora.
34 Instrukcja wywoływania stanów wyjątkowych Po wykonaniu instrukcji raise występującej w instrukcji try...except (będzie dalej) pomiędzy słowami try i except, sterowanie nie jest przekazywane do instrukcji występującej bezpośrednio po niej. Instrukcja raise przekazuje sterowanie do bloku obsługi warunków dotyczącego warunków danej klasy (bloki takie występują po słowie except) i następuje wykonanie instrukcji wchodzących w skład tego bloku. Gdy instrukcja raise zostanie umieszczona poza instrukcją try...except, jej wykonanie polega zwykle na zatrzymaniu programu i wyświetleniu stosownego komunikatu. PP-7(34 z 84)
35 Instrukcja wywoływania stanów wyjątkowych Wywołanie określonego warunku powoduje też przypisanie zmiennej standardowej ErrorAddr, zadeklarowanej w module System, adresu miejsca programu, w którym to wywołanie nastąpiło. W bloku obsługi warunku można odwołać się do tej zmiennej podając, na przykład, użytkownikowi programu adres miejsca wystąpienia błędu. Jeśli adres ten ma być inny niż miejsce wystąpienia błędu, to można go określić za pomocą klauzuli at adres w której adres oznacza w ogólności wyrażenie adresowe (typu Pointer), a więc np. zmienną typu wskaźnikowego. PP-7(35 z 84)
36 Instrukcja wywoływania stanów wyjątkowych Trzecia postać instrukcji raise, składająca się z samego słowa kluczowego, służy do ponownego wywołania bieżącego warunku i może być użyta tylko w bloku except instrukcji try...except (będzie dalej). PP-7(36 z 84)
37 Instrukcja wywoływania stanów wyjątkowych Przykład Załóżmy, że w pewnym miejscu programu zmienna liczba typu Integer może mieć tylko wartości całkowite z przedziału [!10, 10]. Standardowym warunkiem przekroczenia zakresu dozwolonych wartości całkowitych jest EIntOverflow. Wykorzystanie tego warunku do wyświetlenia komunikatu o niedozwolonej wartości zmiennej liczba może mieć postać if (liczba<!10) or (liczba>10) then raise EIntOverflow.Create ( Wartość zmiennej liczba poza + dozwolonym zakresem ); PP-7(37 z 84)
38 Instrukcja try...except Jest podstawową instrukcją obsługi warunków. Powoduje sekwencyjne wykonywanie instrukcji występujących pomiędzy słowami try i except. Jeśli podczas ich wykonywania nie zostanie wywołany żaden warunek, to ciąg instrukcji występujący po słowie except jest ignorowany i sterowanie jest przekazywane do instrukcji występującej bezpośrednio po słowie end kończącym instrukcję try...except (jakby instrukcji try...except nie było). PP-7(38 z 84)
39 Instrukcja try...except Ogólna postać instrukcji jest następująca: try sekwencja-instrukcji except blok-obsługi-warunków end gdzie blok obsługi warunków może składać się albo z sekwencji instrukcji, albo z klauzul on postaci (vérte) PP-7(39 z 84)
40 Instrukcja try...except on identyfikator-warunku do instrukcja przy czym ostatnia klauzula może zawierać jednostkę else: on identyfikator-warunku do instrukcja else sekwencja-instrukcji Poszczególne klauzule on oddziela się średnikami. Identyfikator warunku oznacza albo identyfikator typu klasowego, albo nazwę typu klasowego poprzedzoną dwukropkiem oraz identyfikatorem, który będzie oznaczał obiekt-warunek w instrukcji podanej po słowie do. PP-7(40 z 84)
41 Instrukcja try...except Blok obsługi warunków może być uaktywniony wskutek: Pwystąpienia błędu wśród sekwencji instrukcji poddawanych próbie, tj. wśród instrukcji występujących pomiędzy słowami try i except, Pza pomocą instrukcji raise zamieszczonej wśród tej sekwencji, Pwskutek wywołania procedury (funkcji, metody) z tej sekwencji, której wykonanie spowoduje błąd. PP-7(41 z 84)
42 Instrukcja try...except W zależności od jednej z trzech postaci bloku obsługi warunków (sekwencja instrukcji, klauzule on, klauzule on z jednostką else) działanie instrukcji jest różne zostanie przedstawione na przykładach. Bez względu na to, który ze sposobów obsługi wystąpi, po obsłudze obiekt-warunek zostanie automatycznie usunięty z pamięci przez wywołanie jego destruktora. PP-7(42 z 84)
43 Instrukcja try...except Przykłady Rozważmy następujący program: program programam4; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; var i, j, k : Integer; begin i:=0; k:=1; j:=k div i; {*} Writeln (j); Readln end. Jego wykonanie spowoduje pojawienie się na chwilę symulowanego okienka tekstowego, szybkie jego zamknięcie i zakończenie wykonywania programu. Takie działanie programu jest spowodowane wystąpieniem błędu dzielenia przez zero w wierszu oznaczonym gwiazdką. PP-7(43 z 84)
44 Przykłady Instrukcje Instrukcja try...except W celu obsługi tego błędu można zastosować instrukcję try...except i instrukcje części wykonawczej programu zapisać w postaci: try i:=0; k:=1; j:=k div i; {*} Writeln (j) except on EDivByZero do ShowMessage ( Dzielenie całkowite przez zero ) end; Użycie tej procedury wymaga deklaracji modułu Vcl.Dialogs (program z tą deklaracją niech nazywa się programam5). Readln PP-7(44 z 84)
45 Przykłady Instrukcje Instrukcja try...except Uruchomienie tak zmodyfikowanego programu spowoduje wyświetlenie następującego okienka z komunikatem: PP-7(45 z 84)
46 Przykłady Instrukcje Instrukcja try...except Jeśli instrukcję try...except zapiszemy następująco: try i:=0; k:=1; j:=k div i; Writeln (j) except on EOutOfMemory do ShowMessage ( Brak pamięci ) else ShowMessage ( Wystąpił błąd inny niż brak pamięci ) end; PP-7(46 z 84) to zostanie wykonana instrukcja po słowie else (dlaczego?).
47 Przykłady Instrukcje Instrukcja try...except Zapisanie instrukcji try...except w postaci try i:=0; k:=1; j:=k div i; Writeln (j) except ShowMessage ( Wystąpił jakiś błąd ) end; spowoduje wyświetlenie następującego okienka z komunikatem: PP-7(47 z 84)
48 Instrukcja try...except W pewnych przypadkach może być konieczne ponowne wywołanie warunku pomimo jego (częściowej) obsługi. Do tego celu stosuje się instrukcję wywołania warunku składającą się z samego słowa kluczowego raise instrukcja try...except ma wówczas postać try sekwencja-instrukcji except sekwencja-instrukcji raise end PP-7(48 z 84)
49 Instrukcja try...except Przykład Podczas wykonywania funkcji wystąpienie błędu dzielenia przez zero (a także dowolnego innego) spowoduje wyświetlenie komunikatu podanego w wywołaniu procedury ShowMessage. Instrukcja raise uaktywni jednak ponownie warunek błędu. Ponieważ wywołanie funkcji k_div_i nastąpiło wewnątrz instrukcji try...except programu, po powrocie do niego rozpocznie się znowu poszukiwanie sekwencji mogącej obsłużyć ten warunek. Odpowiednią sekwencją jest tu klauzula on EDivByZero, a więc zostanie wyświetlony drugi komunikat: Dzielenie przez zero. Rozważmy następujący program: program programam6; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, Vcl.Dialogs; var i, j, k : Integer; function k_div_i (k, i : Integer) : Integer; begin try if k>i then Result:=k div i else Result:=i div k except ShowMessage ( Wystąpił jakiś błąd ); raise end end; begin try i:=0; k:=1; j:= k_div_i(k, i); Writeln (j) except on EDivByZero do ShowMessage ( Dzielenie przez zero ) else ShowMessage ( Nie zidentyfikowano błędu ) end; Readln end. PP-7(49 z 84)
50 Instrukcja try...except Warunki błędów wywoływane i obsługiwane w bloku obsługi warunków, tj. po słowie except w instrukcji try...except, nie oddziałują na warunek oryginalny, tzn. warunek, dla którego blok obsługi został uaktywniony. Jeśli jednak warunek wywołany w bloku obsługi zostanie przeniesiony poza ten blok, to warunek oryginalny zostanie zagubiony. PP-7(50 z 84)
51 Instrukcja try...finally Instrukcję tę wykorzystuje się w przypadku, gdy bez względu na wystąpienie jakiegoś warunku należy wykonać pewne instrukcje, przy czym jeśli warunek wystąpi, to należy go ponownie wywołać. Postać tej instrukcji jest następująca: try sekwencja-instrukcji finally sekwencja-instrukcji end PP-7(51 z 84)
52 Instrukcja try...finally Instrukcja powoduje wykonywanie instrukcji występujących pomiędzy słowami try i finally w kolejności sekwencyjnej. Jeśli żadna z tych instrukcji nie zainicjuje żadnego warunku błędu, to zostaną wykonane instrukcje znajdujące się po słowie finally, po czym sterowanie zostanie przekazane do instrukcji bezpośrednio następnej po instrukcji try...finally. try sekwencja-instrukcji finally sekwencja-instrukcji end PP-7(52 z 84)
53 Instrukcja try...finally Jeśli któraś z instrukcji pomiędzy słowami try i finally spowoduje wystąpienie warunku błędu, to sterowanie jest przekazywane do bloku finally, w którym wykonywane są kolejno poszczególne instrukcje, a następnie warunek jest ponownie wywoływany (może więc być obsłużony na zewnątrz instrukcji try...finally). try sekwencja-instrukcji finally sekwencja-instrukcji end Wywołanie innego warunku w tym bloku powoduje zagubienie warunku oryginalnego. PP-7(53 z 84)
54 Instrukcja try...finally Działania instrukcji try...finally nie należy mylić z instrukcją try...except, w której bloku except występuje instrukcja raise (określona samym słowem raise). W przypadku instrukcji try...finally instrukcje występujące po słowie finally zostaną zawsze wykonane, a w przypadku podanego wariantu instrukcji try...except wykonanie instrukcji znajdujących się po słowie except nastąpi tylko wówczas, gdy wcześniej (pomiędzy słowami try i except) wystąpi jakiś warunek. PP-7(54 z 84)
55 Przykłady Instrukcja try...finally Rozważmy fragment programu (tekstowego): tu nie ma obsługi błędu tu jest obsługa błędu i:=2; j:=0; try try k:=i div j finally k:=0 end except on EdivByZero do ShowMessage ( Błąd ) end; Writeln (k); gdzie i, j i k oznaczają zmienne typu Integer. Na ekranie ukaże się najpierw okienko z komunikatem Błąd, a następnie (w symulowanym okienku tekstowym) liczba 0. PP-7(55 z 84)
56 Przykłady Instrukcje Instrukcja try...finally Instrukcja try...finally jest często wykorzystywana przy wykonywaniu operacji na plikach. Zwykle plik powinien być zamknięty bez względu na to, czy jego przetwarzanie przebiegło pomyślnie czy też nie. Operacje te można zaprogramować korzystając z następującego schematu: Reset (plik); otwarcie pliku try... przetwarzanie pliku finally CloseFile (plik) zamknięcie pliku end; Co należy dodać, aby obsłużyć ewentualny błąd EInOutError? PP-7(56 z 84)
57 Predefiniowane warunki i stany wyjątkowe Typem klasowym nadrzędnym w stosunku do wszystkich predefiniowanych klas reprezentujących warunki i stany wyjątkowe jest typ Exception zdefiniowany w module System.SysUtils. Ważniejsze predefiniowane typy klasowe reprezentujące warunki i stany wyjątkowe: P EAccessViolation próba dostępu do miejsca pamięci o niedozwolonym adresie (np. próba dostępu do obiektu poprzez niezainicjowane odwołanie do niego lub dereferencja niezainicjowanego wskaźnika) P EConvertError funkcja nie może przeprowadzić żądanej konwersji P EDivByZero przy dzieleniu całkowitym dzielnik ma wartość 0 PP-7(57 z 84)
58 Predefiniowane warunki i stany wyjątkowe Ważniejsze predefiniowane typy klasowe reprezentujące warunki i stany wyjątkowe (cd.): P EExternalException warunek jest wywoływany w przypadku wystąpienia błędu systemu operacyjnego (Windows), dla którego nie ma odpowiednika wśród predefiniowanych klas języka Delphi Pascal P EInOutError błąd podczas wykonywania operacji wejściawyjścia P EIntOverflow przekroczenie zakresu dozwolonych wartości dla liczb całkowitych P EInvalidOp próba wykonania niedozwolonej operacji arytmetycznej (np. próba obliczenia pierwiastka z liczby ujemnej) PP-7(58 z 84)
59 Predefiniowane warunki i stany wyjątkowe Ważniejsze predefiniowane typy klasowe reprezentujące warunki i stany wyjątkowe (cd.): P EInvalidPointer próba zwolnienia błędnego wskaźnika P EOutOfMemory za mało pamięci do wykonania operacji P EOverflow wystąpienie nadmiaru przy wykonywaniu operacji zmiennoprzecinkowej P ERangeError przekroczenie zakresu indeksów P EStackOverflow stos przeznaczony dla programu nie może być powiększony lub rozmiar stosu osiągnął górną granicę P EUnderflow wystąpienie niedomiaru przy wykonywaniu operacji zmiennoprzecinkowej PP-7(59 z 84)
60 Predefiniowane warunki i stany wyjątkowe Ważniejsze predefiniowane typy klasowe reprezentujące warunki i stany wyjątkowe (cd.): P EVariantError błędne wykonanie operacji na wartościach typu Variant P EZeroDivide w operacji dzielenia dzielnik ma wartość 0 PP-7(60 z 84)
61 Instrukcja asemblerowa Instrukcja ta umożliwia pisanie fragmentów tekstów źródłowych bezpośrednio w asemblerze i ma następującą postać: asm instrukcja-asemblera-1 instrukcja-asemblera-2... instrukcja-asemblera-n end Separatorami instrukcji asemblera są: - średnik, - nowy wiersz, - komentarz języka Delphi. PP-7(61 z 84)
62 Funkcje i procedury Procedurą lub funkcją nazywamy wyodrębnioną część programu (modułu, biblioteki łączonej dynamicznie), stanowiącą pewną całość, posiadającą jednoznaczną nazwę i ustalony sposób wymiany informacji z pozostałymi częściami programu (modułu, biblioteki łączonej dynamicznie). Procedury i funkcje są stosowane do wykonania czynności, które mogą być wykorzystane w różnych programach (modułach, bibliotekach łączonych dynamicznie) lub do wykonania czynności wielokrotnie powtarzanych. Stosowanie procedur i funkcji umożliwia także bardziej efektywne wykorzystanie pamięci (dynamiczny przydział pamięci), gdyż elementom określonym wewnątrz procedury lub funkcji pamięć jest przydzielana dopiero z chwilą wywołania do przetwarzania danej procedury lub funkcji. PP-7(62 z 84)
63 Funkcje i procedury Różnica pomiędzy procedurą i funkcją polega na sposobie przekazywania wartości. Zadaniem procedury jest wykonanie pewnej sekwencji czynności, polegających zwykle na obliczeniu jednej lub wielu wartości. Natomiast zadaniem funkcji jest zwykle obliczenie jednej wartości, przy czym niekoniecznie musi to być wartość skalarna. Odmienne są też sposoby wywoływania procedur i funkcji. PP-7(63 z 84)
64 Funkcje i procedury Definicje funkcji i procedur Na ogół definicja każdej procedury i funkcji składa się z trzech części: Pnagłówka, Popcjonalnej części opisowej, Pczęści operacyjnej (wykonawczej). W nagłówku podaje się identyfikator (przyporządkowany danemu algorytmowi) oraz ewentualnie parametry formalne, tj. pomocnicze nazwy parametryzujące algorytm. Dla funkcji w nagłówku określa się także typ wyniku. PP-7(64 z 84)
65 Funkcje i procedury Definicje funkcji i procedur W części opisowej definiuje i deklaruje się elementy lokalne wewnątrz danej procedury lub funkcji. Część operacyjna (mająca zawsze postać instrukcji złożonej) zawiera sekwencję instrukcji powodującą wykonanie czynności przewidzianych przez dany algorytm. Czynności te mogą być wykonywane zarówno na elementach lokalnych, jak i na elementach nielokalnych (zdefiniowanych lub zadeklarowanych na zewnątrz procedury lub funkcji). Elementy nielokalne występują w treści procedury lub funkcji explicite, bądź są do niej przekazywane przez parametry. PP-7(65 z 84)
66 Funkcje i procedury Definicje funkcji i procedur Część opisowa funkcji i procedury może być dodatkowo poprzedzona jedną z dyrektyw języka (register, pascal, cdecl, stdcall lub safecall) określającą tzw. konwencję wywołania (będzie dalej). Zamiast części opisowej i operacyjnej, treść procedury lub funkcji może składać się wyłącznie z dyrektywy języka external, która określa albo podprogram zewnętrzny, tj. funkcję lub procedurę napisaną w asemblerze i dołączaną do programu (będzie dalej), albo funkcję lub procedurę importowaną z biblioteki łączonej dynamicznie (też będzie dalej). Jeszcze inną postacią treści funkcji lub procedury jest blok asemblerowy, który pozwala na napisanie całości funkcji lub procedury PP-7(66 z 84) (poza nagłówkiem) bezpośrednio w asemblerze (też będzie dalej).
67 Funkcje i procedury Definicje funkcji i procedur Pomijając konwencje wywołania i przypadki, gdy treść funkcji lub procedury zawiera dyrektywę external lub jest blokiem asemblerowym, definicja procedury ma następującą postać: procedure nazwa-procedury (lista-parametrów- formalnych); część-opisowa begin ciąg-instrukcji end; PP-7(67 z 84)
68 Funkcje i procedury Definicje funkcji i procedur... a definicja funkcji: function nazwa-funkcji (lista-parametrów- formalnych) : typ-wyniku; część-opisowa begin ciąg-instrukcji end; przy czym w obu przypadkach część opisowa i lista parametrów formalnych (ujęta w nawiasy) jest PP-7(68 z 84) opcjonalna.
69 Funkcje i procedury Definicje funkcji i procedur Lista parametrów formalnych zawiera deklaracje parametrów formalnych (poszczególne deklaracje oddziela się średnikami). Określa ona także sposób, w jaki poszczególne parametry formalne zostaną zastąpione parametrami aktualnymi (argumentami) podczas wywołania danej procedury lub funkcji. W przypadku funkcji w ciągu instrukcji powinna wystąpić co najmniej jedna instrukcja przypisania postaci: nazwa-funkcji:=wyrażenie lub Result:=wyrażenie które powodują przypisanie wartości pod nazwę funkcji. Typ wyniku funkcji jest określony za pomocą identyfikatora typu lub PP-7(69 z 84) słowa kluczowego string.
70 Funkcje i procedury Definicje funkcji i procedur Jeśli uporządkowanie definicji funkcji i (lub) procedur jest takie, że odwołania do nich nie występują w zasięgu definicji, to niezbędne jest ich zadeklarowanie (zapowiedzenie wystąpienia ich definicji dalej): procedure nazwa-procedury (lista-parametrów- formalnych); forward; function nazwa-funkcji (lista-parametrów-formalnych) : typ- wyniku; forward; Lista parametrów formalnych jest opcjonalna. PP-7(70 z 84)
71 Definicje funkcji i procedur Przykład Funkcje i procedury Jeśli wewnątrz bezparametrowej procedury Procedura1 jest konieczne wywołanie procedury (bezparametrowej) Procedura2, a ponadto druga procedura ma wywoływać pierwszą, to struktura ich opisu powinna być następująca: procedure Procedura2; forward; procedure Procedura1;... begin... Procedura2;... end {Procedura1}; procedure Procedura2;... begin... Procedura1;... end {Procedura2};... lub na odwrót, tj. najpierw zapowiedź definicji procedury Procedura1, następnie definicja procedury Procedura2, a na PP-7(71 z 84) końcu definicja procedury Procedura1.
72 Funkcje i procedury Rodzaje parametrów W zależności od sposobu przekazywania wartości do procedury lub funkcji, tj. zastępowania parametrów formalnych argumentami, wyróżniamy 10 rodzajów parametrów: P parametry przekazywane przez wartości, P parametry przekazywane przez stałe określonego typu, P parametry przekazywane przez zmienne określonego typu, P parametry przekazywane przez stałe nieokreślonego typu, PP-7(72 z 84)
73 Funkcje i procedury Rodzaje parametrów W zależności od sposobu przekazywania wartości do procedury lub funkcji, tj. zastępowania parametrów formalnych argumentami, wyróżniamy 10 rodzajów parametrów: P parametry przekazywane przez zmienne nieokreślonego typu, P parametry wyjściowe określonego typu, P parametry wyjściowe nieokreślonego typu, P parametry otwarte, PP-7(73 z 84)
74 Funkcje i procedury Rodzaje parametrów W zależności od sposobu przekazywania wartości do procedury lub funkcji, tj. zastępowania parametrów formalnych argumentami, wyróżniamy 10 rodzajów parametrów: P otwarte parametry tablicowe typu wariantowego, P parametry o domyślnej wartości. PP-7(74 z 84)
75 Funkcje i procedury Parametry przekazywane przez wartości Deklaracja: lista-parametrów : typ Poszczególne parametry listy parametrów oddziela się przecinkami. Typ oznacza identyfikator typu lub słowo kluczowe string. Dla parametrów typu łańcuchowego (string) nie jest dozwolona specyfikacja długości łańcucha. Jeżeli parametr jest przekazywany przez wartość, to w wywołaniu procedury (funkcji) odpowiadający mu argument może być wyrażeniem. Parametry przekazywane przez wartości nie mogą być typu plikowego PP-7(75 z 84) i typu strukturalnego o elementach składowych typu plikowego.
76 Funkcje i procedury Parametry przekazywane przez stałe określonego typu Deklaracja: const lista-parametrów : typ Parametry tego rodzaju są w treści procedury lub funkcji traktowane jako zmienne lokalne przeznaczone tylko do odczytu. Argument wywołania odpowiadający parametrowi przekazywanemu przez stałą określonego typu w ogólności może być wyrażeniem, ale jego typ musi być zgodny w sensie przypisania z typem parametru formalnego. Dla parametrów typu łańcuchowego i strukturalnego zaleca się stosować parametry przekazywane przez stałe zamiast przekazywanych przez wartości, gdyż kompilator generuje PP-7(76 z 84) dla nich bardziej efektywny kod wynikowy.
77 Funkcje i procedury Parametry przekazywane przez zmienne określonego typu Deklaracja: var lista-parametrów : typ Argumenty odpowiadające parametrom przekazywanym przez zmienną określonego typu muszą być zmiennymi. Typ odpowiedniej zmiennej musi być przy tym identyczny z typem parametru formalnego. Zastosowanie tych parametrów do przekazywania elementów tablic wariantowych nie jest dozwolone. Parametry typu plikowego mogą być przekazywane tylko przez zmienną. PP-7(77 z 84)
78 Funkcje i procedury Parametry przekazywane przez stałe i zmienne nieokreślonego typu Deklaracje: const lista-parametrów var lista-parametrów Argumenty im odpowiadające mogą być literałami lub zmiennymi dowolnych typów. W treści procedury (funkcji) parametry te nie są zgodne z żadnymi innymi zmiennymi. Zgodność tę uzyskuje się za pomocą konstrukcji zmiany typu zmiennej, która nadaje parametrom odpowiednie typy. Parametry nieokreślonego typu służą głównie do konstrukcji procedur i funkcji przetwarzających podobne struktury danych, ale o różnych rozmiarach. PP-7(78 z 84)
79 Funkcje i procedury Parametry wyjściowe Deklaracje: out lista-parametrów : typ out lista-parametrów Argument odpowiadający parametrowi wyjściowemu musi być zmienną. Parametry te są przeznaczone do przekazywania wartości z procedury lub funkcji na zewnątrz. Jakiekolwiek wartości nadane argumentom odpowiadającym parametrom wyjściowym przed wywołaniem procedury (funkcji) po przekazaniu do procedury (funkcji) są anulowane. PP-7(79 z 84)
80 Funkcje i procedury Parametry otwarte Deklaracje: var parametr : array of identyfikator-typu const parametr : array of identyfikator-typu parametr : array of identyfikator-typu Zastosowanie tych parametrów umożliwia przekazywanie do tej samej procedury lub funkcji tablic o różnych rozmiarach. Parametr aktualny (argument) odpowiadający tablicowemu parametrowi otwartemu musi być zmienną typu określonego przez identyfikator typu lub tablicą elementów o typie określonym przez ten identyfikator. PP-7(80 z 84)
81 Funkcje i procedury Parametry otwarte W treści procedury lub funkcji tablicowy parametr otwarty jest traktowany tak, jakby był zadeklarowany za pomocą konstrukcji array [0..n!1] of identyfikator-typu gdzie n oznacza liczbę elementów argumentu. Jeśli argument jest zmienną typu określonego przez identyfikator typu, to traktuje się go jak tablicę jednoelementową o tym typie. W treści funkcji lub procedury do określenia liczby elementów tablicy otwartej stosuje się funkcję standardową High. PP-7(81 z 84)
82 Funkcje i procedury Tablicowe parametry otwarte typu wariantowego Służą do przekazywania do procedury lub funkcji tablic zawierających wartości różnych typów. Typ takiego parametru powinien być określony za pomocą konstrukcji array of const która odpowiada konstrukcji array of TVarRec gdzie TVarRec oznacza wariantowy typ rekordowy (predefiniowany w module System), który może reprezentować wartości różnych (ale nie wszystkich) typów. PP-7(82 z 84)
83 Funkcje i procedury Parametry o domyślnej wartości Deklaracje: const parametr : typ = wyrażenie-stałe parametr : typ = wyrażenie-stałe Parametry z domyślnymi wartościami muszą wystąpić jako ostatnie na liście parametrów. Każdy parametr z domyślną wartością musi być przy tym specyfikowany oddzielnie (użycie listy parametrów nie jest dozwolone). PP-7(83 z 84)
84 Do zobaczenia na następnym wykładzie PP-7(84 z 84)
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
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ść,
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
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
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
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
PODSTAWY PROGRAMOWANIA
PODSTAWY PROGRAMOWANIA Andrzej Marciniak Prezentacja multimedialna przygotowana za pomocą systemu Corel Presentations X3 Copyright 2003-2017 by Andrzej Marciniak PP-8(1 z 78) Na poprzednim wykładzie...
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
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:
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
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
INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};
INSTRUKCJA PUSTA Nie składa się z żadnych znaków i symboli, niczego nie robi Przykłady: for i := 1 to 10 do {tu nic nie ma}; while a>0 do {tu nic nie ma}; if a = 0 then {tu nic nie ma}; INSTRUKCJA CASE
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
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;
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
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++)
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
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
1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania
1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca
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
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
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
Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice
Podstawy programowania Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice 1 Podstawy programowania Iteracja 2 III. Iteracja Iteracja o nieznanej liczbie powtórzeń while warunek do instrukcja_do_wykonania;
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
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
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
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
Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.
Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji
WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}
1 WIADOMOŚCI WSTĘPNE Programowanie komputerów najogólniej mówiąc polega na zapisaniu pewniej listy poleceń do wykonania przez komputer w pewnym umownym języku Taką listę poleceń nazywamy programem Program
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
Zasady Programowania Strukturalnego
Zasady Programowania Strukturalnego Rafał Jakubowski Zespół Teoretycznej Biofizyki Molekularnej rjakubowski@fizyka.umk.pl www.fizyka.umk.pl/~rjakubowski Tel: 33 46 Konsultacje w sem. letnim 11/12: środa,
Procedury i funkcje - powtórzenie i uzupełnienia. Przykład funkcji potęgowanie przy wykładniku naturalnym
Procedury i funkcje - powtórzenie i uzupełnienia Przykład funkcji potęgowanie przy wykładniku naturalnym program potegowanie; {$APPTYPE CONSOLE} uses SysUtils; var x: real; n: integer; function Potega(podstawa:
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
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...
Programowanie w języku C++ Grażyna Koba
Programowanie w języku C++ 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 zasad
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
Zapis algorytmów: schematy blokowe i pseudokod 1
Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu
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
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ć
Pętle. Dodał Administrator niedziela, 14 marzec :27
Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać
Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada
Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe
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,
20. Pascal i łączenie podprogramów Pascala z programem napisanym w C
Opublikowano w: WEREWKA J..: Podstawy programowana dla automatyków. Skrypt AGH Nr 1515, Kraków 1998 20. i łączenie podprogramów a z programem napisanym w Ze względu na duże rozpowszechnienie języka, szczególnie
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
Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać
MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty
Wstęp do programowania
Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje
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
Wykład PASCAL - Pliki tekstowe
Podstawy programowania Wykład PASCAL - Pliki tekstowe 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą,
Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
OPERACJE NA PLIKACH. Podstawowe pojęcia:
OPERACJE NA PLIKACH Podstawowe pojęcia: plik fizyczny, zbiór informacji w pamięci zewnętrznej wykorzystywany do trwałego przechowywania danych lub jako przedłużenie pamięci operacyjnej w przypadku przetwarzania
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
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
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ę
Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.
Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle. Sub Hasla1() Dim wzor_hasla As String Dim haslo As String Dim adres
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
Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel
Wstęp do programowania Procedury i funkcje Piotr Chrząstowski-Wachtel Po co procedury i funkcje? Gdyby jakis tyran zabronił korzystać z procedur lub funkcji, to informatyka by upadła! Procedury i funkcje
Podstawy algorytmiki i programowania - wykład 4 C-struktury
1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
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,
Pliki. Operacje na plikach w Pascalu
Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie
Wykład 5: Klasy cz. 3
Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu
Materiały do laboratorium MS ACCESS BASIC
Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I
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,
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak
ForPascal Interpreter języka Pascal
Akademia Podlaska w Siedlcach Wydział Nauk Ścisłych Instytut Informatyki ForPascal Interpreter języka Pascal Przedmiot: Sieci i Systemy Wirtualne Informatyka IV Prowadzący: dr Krzysztof Trojanowski Grupa:
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
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
Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:
Typy klasowe (klasy) 1. Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która definiuje programy za pomocą obiektów
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
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
Algorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
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
Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u
Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji
C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
Bloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
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.
Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
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
Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,
Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki
Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:
Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:
Instrukcje sterujące wer. 11 z drobnymi modyfikacjami! Wojciech Myszka 2017-07-05 10:53:09 +0200 Ala ma kota Część I Prosty przykład Problem 1. Zadanie polega na tym, żeby opracować algorytm który dla
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ą
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ł
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Wprowadzenie komentarzy do programu
Wprowadzenie komentarzy do programu W programach mogą wystąpić objaśnienia, uwagi zamykane w klamrach { } lub nawiasach z gwiazdką (* *). Komentarze ułatwiają zrozumienie programów. Przyjmijmy, że komentarze
Podstawy programowania - 1
Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl
Ć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)
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
Podstawy Programowania
Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl
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
Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD
Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe
Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)
Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności
Zapis programu z wykorzystaniem modułu (Podstawy Delphi 2.1, 2.2, 2.3 str11 )
Przypomnienie dziedziczenie obiektów Przykład (p6) Zapis programu z wykorzystaniem modułu (Podstawy Delphi 2.1, 2.2, 2.3 str11 ) Przykład (p7) przypomnienie zapis z wykorzystaniem rekordu W pliku projektu
C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU
Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale
PODSTAWY PROGRAMOWANIA
PODSTAWY PROGRAMOWANIA Andrzej Marciniak Prezentacja multimedialna przygotowana za pomocą systemu Corel Presentations X3 Copyright 2003-2017 by Andrzej Marciniak PP-6(1 z 82) Na poprzednim wykładzie...
I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA
I. KARTA PRZEDMIOTU 1. Nazwa przedmiotu: PODSTAWY PROGRAMOWANIA. Kod przedmiotu: Ovi1 3. Jednostka prowadząca: Wydział Mechaniczno-Elektryczny 4. Kierunek: Mechatronika 5. Specjalność: Eksploatacja Systemów
Wstęp do programowania 2
Wstęp do programowania 2 wykład 1 rekordy z wyróżnikami Agata Półrola Wydział Matematyki UŁ 2005/2006 Egzamin z I roku - problemy Problemy z wczytywaniem danych: skip_line Problemy z obliczeniami: zerowanie
TEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku
Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Poprawność programów Jeżeli projektujemy algorytmy lub piszemy programy, to ważne jest pytanie, czy nasz algorytm lub program