PODSTAWY PROGRAMOWANIA
|
|
- Amelia Nowacka
- 5 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-6(1 z 82)
2 Na poprzednim wykładzie... P typy danych i ich opis (typy opisujące obiekty, typy wskaźnikowe, proceduralne, wariantowe, zagnieżdżone definicje typów, zgodność typów) Pzmienne (deklaracje zmiennych, zmienne ideksowane, rekordowe, obiektowe, dynamiczne, proceduralne, wariantowe, wątkowe, z początkową wartością, nakładanie zmiennych, literały stałe i zmienne) PP-6(2 z 82)
3 Na tym wykładzie... P wyraż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-6(3 z 82)
4 Wyrażenie jest zapisem algorytmu określającego sposób obliczania pewnej wartości i składa się z sensownej kombinacji operatorów i argumentów (operandów), które same mogą być też wyrażeniami. Wyrażenie nie stanowi samoistnej instrukcji języka Delphi, a jedynie jest jej częścią składową. PP-6(4 z 82)
5 Operatory dzielimy na: Parytmetyczne, P logiczne, P relacyjne, P teoriomnogościowe, P operator konkatenacji, P wariantowe, P P wskaźników znaków (pomijamy), PP-6(5 z 82) P odwołań do klas i obiektów.
6 Priorytet operatorów W celu jednoznacznego przypisania argumentów do operatorów, a tym samym wykonania obliczeń w pożądanej kolejności, stosuje się nawiasy okrągłe. W przypadku braku odpowiednich nawiasów kolejność wykonywania obliczeń jest ustalona przez priorytet operatorów. Obowiązują przy tym następujące zasady: P argument występujący pomiędzy dwoma operatorami o różnych priorytetach jest związany z operatorem o wyższym priorytecie, P argument znajdujący się między dwoma operatorami o tym samym priorytecie jest związany z operatorem z lewej strony, P wyrażenia występujące w nawiasach (okrągłych) są wykonywane przed użyciem ich jako pojedynczego argumentu. Operacje z równymi priorytetami są wykonywane od strony lewej do prawej (?). PP-6(6 z 82)
7 Priorytet operatorów Operatory Priorytet Kategoria operatorów not 1 (najwyższy) jednoargumentowe *, /, div, 2 multiplikatywne mod, and, shl, shr, as +,, or, xor 3 addytywne =, <>, <, >, 4 (najniższy) relacyjne <=, >=, in, is PP-6(7 z 82)
8 Składnia wyrażenia W ogólności wyrażenie jest zbudowane z czynników, składników i wyrażeń prostych. Czynnik jest to: P odwołanie do zmiennej, P odwołanie do zmiennej poprzedzone P nazwa funkcji lub procedury poprzedzona P kwalifikowana nazwa metody poprzedzona P stała bez znaku, P wywołanie funkcji, P konstruktor zbioru, P zmiana typu wyrażenia, P czynnik poprzedzony znakiem + (plus), (minus) lub operatorem not, P wyrażenie ujęte w nawiasy okrągłe. PP-6(8 z 82)
9 Składnia wyrażenia Przykłady a odwołanie do odwołanie do zmiennej poprzedzone 123 stała bez znaku (liczba bez znaku) 123 stała bez znaku (łańcuch) Sin(x) wywołanie funkcji [ 0.. 9, a.. b ] konstruktor zbioru Integer(x+123) zmiana typu wyrażenia 123 czynnik poprzedzony znakiem (minus) not a czynnik poprzedzony operatorem not (a+b+c) wyrażenie ujęte w nawiasy okrągłe PP-6(9 z 82)
10 Składnia wyrażenia Składnikiem nazywamy czynnik lub połączenie dwu lub większej liczby czynników operatorem multiplikatywnym (*, /, div, mod, and, shl, shr, as). Przykłady a*b a/(b 2) (x+y) div z (a<b) and (x>=y) alpha shl beta PP-6(10 z 82)
11 Składnia wyrażenia Wyrażenie proste jest to składnik lub połączenie dwu lub większej liczby składników operatorem addytywnym (+,, or, xor). Przykłady x a+b x*y+c PP-6(11 z 82)
12 Składnia wyrażenia Wyrażeniem nazywamy wyrażenie proste lub połączenie dwu wyrażeń prostych operatorem relacyjnym (<, <=, =, >, >=, <>, in, is). Przykłady (a+b)<1.5 (alpha>beta)<>gamma x in zbior nadawca is TButton PP-6(12 z 82)
13 Operatory arytmetyczne Stosuje się je do obliczania wartości liczbowych. Operator Operacja Typ argumentów Typ wyniku + (jednoarg.) identyczność całkowity Integer lub Int64 rzeczywisty Extended (jednoarg.) zmiana znaku całkowity Integer lub Int64 rzeczywisty Extended + dodawanie całkowity Integer lub Int64 rzeczywisty Extended odejmowanie całkowity Integer lub Int64 rzeczywisty Extended PP-6(13 z 82)
14 Operatory arytmetyczne Stosuje się je do obliczania wartości liczbowych. Operator Operacja Typ argumentów Typ wyniku * mnożenie całkowity Integer lub Int64 rzeczywisty Extended / dzielenie całkowity Extended rzeczywisty Extended div dzielenie całkowity Integer lub Int64 całkowite mod reszta całkowity Integer lub Int64 z dzielenia PP-6(14 z 82)
15 Operatory arytmetyczne W języku Delphi nie występuje operator potęgowania. Kwadraty i pierwiastki oblicza się za pomocą funkcji standardowych Sqr i Sqrt. Podniesienie do potęgi całkowitej można zrealizować poprzez wielokrotne mnożenie lub za pomocą funkcji IntPower z modułu System.Math. W celu obliczenia dodatniej potęgi rzeczywistej liczby można zastosować w odpowiedni sposób na przykład funkcje standardowe Exp i Ln lub funkcję Power z modułu System.Math. PP-6(15 z 82)
16 Operatory arytmetyczne Uwaga! Wartość typu Int64 można otrzymać tylko w przypadku, gdy co najmniej jeden operand jest tego typu. Przypisanie wartości typu Integer do zmiennej typu Int64 może doprowadzić do otrzymania błędnego wyniku. Przykład Niech zmienne j oraz k będą zadeklarowane następująco: var j : Integer; k : Int64; W wyniku wykonania instrukcji j:=maxint; k:=j+1; otrzymamy niepoprawną wartość. Przypisanie właściwej wartości typu Int64 do zmiennej k nastąpi po wykonaniu instrukcji k:=int64(j)+1; PP-6(16 z 82)
17 Operatory logiczne Operatory te służą do wykonywania operacji logicznych na wartościach typów logicznych oraz na wartościach całkowitych. Operator Operacja Typ argumentów Typ wyniku not (jednoarg.) negacja całkowity całkowity logiczny Boolean and koniunkcja całkowity całkowity logiczny Boolean or alternatywa całkowity całkowity logiczny Boolean PP-6(17 z 82)
18 Operatory logiczne Operatory te służą do wykonywania operacji logicznych na wartościach typów logicznych oraz na wartościach całkowitych. Operator Operacja Typ argumentów Typ wyniku xor różnica całkowity całkowity symetryczna logiczny Boolean shl przesunięciecałkowity całkowity w lewo shr przesunięciecałkowity całkowity w prawo PP-6(18 z 82)
19 Operatory logiczne Uwaga! Jeżeli obydwa argumenty operatora and, or lub xor są różnych typów całkowitych, to typem wyniku jest predefiniowany typ całkowity o najmniejszym zakresie, w którym są zawarte wszystkie wartości typów obu argumentów. Jeżeli operandy operatora logicznego są typów logicznych, to wynik jest określony tak, jak w logice matematycznej. Operacje logiczne na operandach typów całkowitych są operacjami wykonywanymi na odpowiednich bitach operandów. Negacja operandu typu całkowitego polega na zamianie każdego bitu reprezentacji danej w pamięci na przeciwny, tj. bitu 0 na 1, a bitu 1 na 0. Dotyczy to także bitu znaku. PP-6(19 z 82)
20 Operatory logiczne Przykład Niech zmienne w oraz sh będą zadeklarowane następująco: var w : Word = 1000; sh : Shortint = 100; Jaka jest wartość wyrażenia w or sh? Typem o najmniejszym zakresie zawierającym wszystkie wartości typów argumentów jest typ Integer. Zatem najpierw zostaną wykonane konwersje: 1000 (10) = (2) : (2) 100 (10) = (2) : (2). dwójkowa arytmetyka uzupełnieniowa 100 (10) = (2) = (zamiana) (2) + 1 (2) PP-6(20 z 82)
21 Przykład Operatory logiczne Niech zmienne w oraz sh będą zadeklarowane następująco: var w : Word = 1000; sh : Shortint = 100; Jaka jest wartość wyrażenia w or sh? Następnie jest wykonywana operacja alternatywy na odpowiadających sobie bitach: (2) or (2) (2) PP-6(21 z 82)
22 Przykład Operatory logiczne Niech zmienne w oraz sh będą zadeklarowane następująco: var w : Word = 1000; sh : Shortint = 100; Jaka jest wartość wyrażenia w or sh? Pierwszy bit (1) wskazuje, że otrzymaliśmy liczbę ujemną. Zamieniając na pozostałych bitach cyfry 0 na 1, a cyfry 1 na 0, a następnie dodając jedynkę dwójkową otrzymujemy (przejście do zwykłego zapisu dwójkowego) (2), a więc w zapisie dziesiętnym mamy 4. PP-6(22 z 82)
23 Operatory logiczne Operacje logiczne shl (przesunięcie w lewo) i shr (przesunięcie w prawo) mogą dotyczyć wyłącznie argumentów typu całkowitego. Wynik operacji jest wartością uzyskaną z reprezentacji pierwszego argumentu po przesunięciu go w lewo (shl) lub w prawo (shr) o liczbę pozycji określoną drugim argumentem. Podczas przesuwania bit znaku nie ulega powieleniu, a zwolnione pozycje zapełniane są bitami o wartości 0. PP-6(23 z 82)
24 Przykłady Operatory logiczne wyrażenie wartość wyrażenie wartość 1 shl shr shl shr shl shr shl shr shl shr shl shr shl shr shl shr shl shr PP-6(24 z 82)
25 Operatory relacyjne Operatory relacyjne (dwuargumentowe) służą do konstrukcji wyrażeń porównania. Operatorami tymi są: = równy <> nierówny < mniejszy > większy <= nie większy lub jest zawarty, >= nie mniejszy lub zawiera, in jest elementem. Wynik wyrażenia porównania jest typu Boolean i ma wartość logiczną True, gdy relacja jest prawdziwa lub wartość False, gdy relacja jest fałszywa. PP-6(25 z 82)
26 Operatory relacyjne W zależności od typu argumentów relacje dzielimy na: P arytmetyczne (w tym logiczne), P łańcuchowe (w tym znakowe), P teoriomnogościowe, P wskaźnikowe (w tym działań na klasach, łączach programowych i odwołaniach do klas), P wariantowe. PP-6(26 z 82)
27 Relacje arytmetyczne oczywiste. Operatory relacyjne Porównanie łańcuchowe występuje wtedy, gdy oba argumenty są typu łańcuchowego, znakowego (Char, AnsiChar, WideChar) lub upakowanego typu łańcuchowego (jednowymiarową tablicą znaków). Nie wymaga się przy tym, aby argumenty te musiały być identycznych typów. Podczas porównywania wartości typu znakowego z wartością typu łańcuchowego pierwsza z nich jest uważana za wartość typu łańcuchowego o długości 1. PP-6(27 z 82)
28 Operatory relacyjne Porównanie zachodzi pomiędzy odpowiadającymi sobie znakami, zgodnie z ich uporządkowaniem w zestawie znaków Unicode. Dwa argumenty uważa się za równe, gdy składają się z identycznych znaków. Jeśli nie są równe i żaden nie składa się z pustego ciągu znaków, to relacja jest równoważna relacji pomiędzy pierwszymi różnymi i odpowiadającymi sobie znakami. Jeśli takie znaki nie istnieją, co występuje w przypadku, gdy jeden ciąg znaków jest podciągiem drugiego, to za mniejszy uważa się argument składający się z mniejszej liczby znaków. Pusty ciąg znaków jest mniejszy od każdego innego ciągu. PP-6(28 z 82)
29 Operatory relacyjne Przykłady wyrażenie ABC > ABD ABC < ABD ABC = abc ABC <= abc + <= wynik False True False True True 01 = 1 False PP-6(29 z 82)
30 Operatory relacyjne Na operandach a i b typu zbiorowego można wykonywać następujące operacje porównania (porównania teoriomnogościowe): a = b a <> b a <= b a >= b c in a równość zbiorów (relacja prawdziwa, jeśli zbiory a i b zawierają te same elementy), różność zbiorów (relacja prawdziwa, gdy zbiory a i b są zbiorami różnych elementów), zawieranie zbioru a w zbiorze b (relacja prawdziwa, gdy każdy element zbioru a jest także elementem zbioru b), zawieranie zbioru b w zbiorze a (relacja prawdziwa, gdy każdy element zbioru b jest także elementem zbioru a), sprawdzenie, czy element c typu porządkowego jest elementem zbioru a (typem bazowym zbioru a musi być PP-6(30 z 82) typ zgodny z typem elementu c).
31 Przykłady Operatory relacyjne Załóżmy, że jest dany następujący opis: type dni_pracy = set of (poniedziałek, wtorek, środa, czwartek, piątek); var dni : dni_pracy; oraz instrukcja dni:=[poniedziałek.. piątek]; Wówczas: wyrażenie wynik dni=[poniedziałek..piątek] dni=[wtorek..czwartek] [wtorek..czwartek]<>dni [wtorek..czwartek]<=dni dni<=[wtorek..czwartek] wtorek in dni True False True True False True PP-6(31 z 82)
32 Operatory relacyjne Operandy typu wskaźnikowego mogą być porównywane (porównanie wskaźnikowe) wyłącznie za pomocą operatorów = ( równy ) i <> ( nierówny ). Dwa wskaźniki uważane są za równe, jeżeli oznaczają ten sam adres w pamięci. Za pomocą tych operatorów można także porównywać elementy typów klasowych i typów odwołań do klas. Dwa takie elementy uważa się za równe, gdy wskazują na ten sam obiekt (a więc gdy podobnie jak poprzednio wskazują ten sam adres w pamięci). PP-6(32 z 82)
33 P suma, P różnica, P iloczyn zbiorów. Operatory teoriomnogościowe Operacjami teoriomnogościowymi, które mogą być bezpośrednio zaprogramowane w języku Delphi Pascal za pomocą odpowiednich operatorów są: Operacje te są wykonywane na argumentach typu zbiorowego o zgodnych typach bazowych. PP-6(33 z 82)
34 Operatory teoriomnogościowe Operator Operacja Typ argumentów Typ wyniku + suma zbiorów zbiorowy zbiorowy o zgodnych typach bazowych różnica zbiorów * iloczyn zbiorów Przykłady wyrażenie wynik [2, 3, 4]+[4, 5, 6] [2, 3, 4, 5, 6] [2, 3, 4] [4, 5, 6] [2, 3] [2, 3, 4]*[4, 5, 6] [4] wyrażenie wynik [20..30]+[25..50] [20..50] [True, False] [ ] [True, False] [ a, c, e ] [ e ] [ a, c ] PP-6(34 z 82)
35 Konkatenacja Do połączenia dwu lub więcej łańcuchów w jeden łańcuch służy operator konkatenacji, zapisywany za pomocą znaku + (plus). Argumenty typu łańcuchowego, znakowego lub upakowanego typu łańcuchowego połączone tym operatorem tworzą wyrażenie konkatenacji. Typ wyniku zależy przy tym od typu operandów. Przykłady wyrażenie wynik Delphi + Pascal DelphiPascal Delphi + + Pascal Delphi Pascal E E 1 PP-6(35 z 82)
36 Operatory w wyrażeniach wariantowych Na elementach typów wariantowych mogą być wykonywane operacje określone operatorami +,, *, /, div, mod, not, and, or, xor, shl, shr, =, <>, <, >, <= oraz >=. Dla operatorów dwuargumentowych obowiązuje przy tym zasada, że jeśli jeden z argumentów jest typu Variant, to przed wykoniem operacji drugi argument jest automatycznie przekształcany na ten typ. Typem wyniku operacji nierelacyjnej (+,, *, /, div, mod, not, and, or, xor, shl i shr) jest zawsze Variant, a operacji relacyjnej (=, <>, <, >, <= i >=) Boolean. PP-6(36 z 82)
37 Jednoargumentowy służy do utworzenia wskaźnika (adresu) podanego argumentu. Postać wyrażenia zawierającego jest argument przy czym wartość tego wyrażenia jest typu wskaźnikowego, a argument może być zmienną, nazwą funkcji lub procedury lub kwalifikowaną nazwą metody. PP-6(37 z 82)
38 Przykłady Jeśli zmienne bajt i wsk_bajt będą zadeklarowane następująco: var bajt : Byte; wsk_bajt : ^Byte; to instrukcja przypisania wsk_bajt:=@bajt; spowoduje przypisanie zmiennej wsk_bajt adresu zmiennej bajt. PP-6(38 z 82)
39 Przykłady Załóżmy, że w programie występuje definicja typu proceduralnego funkcja postaci: type funkcja = function : Integer; deklaracja zmiennej proceduralnej zm_funk: var zm_funk : funkcja; oraz definicja funkcji bezparametrowej alfa o wartości typu Integer. W celu sprawdzenia, czy aktualnie zmienna proceduralna zm_funk reprezentuje funkcję alfa należy sprawdzić, czy jest prawdziwe wyrażenie Zastosowanie do tego celu porównania zm_funk=alfa PP-6(39 z 82) jest błędne (dlaczego?).
40 Przykłady W celu otrzymania adresu zmiennej proceduralnej z poprzedniego przykładu należy użyć określa bowiem adres funkcji, która jest aktualnie przypisana zmiennej zm_funk. PP-6(40 z 82)
41 Operatory odwołań do klas i obiektów Do wykonywania operacji na klasach i odwołaniach do klas służą operatory is i as. Operator is służy do sprawdzania typu obiektu podczas wykonywania programu, tzn. do określenia, czy dany obiekt (wartość zmiennej typu klasowego) jest aktualnie elementem pewnej klasy. Postać wyrażenia z operatorem is jest następująca: zmienna-typu-klasowego is odwołanie-do-klasy gdzie odwołanie do klasy jest identyfikatorem klasy lub zmienną typu odwołania do klasy. PP-6(41 z 82)
42 Operatory odwołań do klas i obiektów Wartością wyrażenia z operatorem is jest wartość logiczna True, gdy obiekt określony przez zmienną typu klasowego jest elementem klasy określonej przez odwołanie do klasy lub klasy z niej wyprowadzonej (potomnej). W przeciwnym przypadku wartością wyrażenia jest wartość logiczna False. Jeśli wartością zmiennej typu klasowego jest adres pusty (nil), to wartością wyrażenia jest zawsze False. Wyrażenie z operatorem is jest na ogół wykorzystywane w instrukcji warunkowej jeśli do zagwarantowania poprawności zmiany typu, na przykład if sterowanie is TEdit then TEdit(sterowanie).ClearSelection; PP-6(42 z 82)
43 Operatory odwołań do klas i obiektów Wyrażenie z operatorem as ma postać zmienna-typu-klasowego as odwołanie-do-klasy gdzie odwołanie do klasy ma takie samo znaczenie, jak poprzednio. Wyrażenie to pozwala zmienić typ wyspecyfikowanej zmiennej na typ określony drugim operandem, przy czym zmienna ta w dalszym ciągu będzie wskazywała ten sam obiekt w pamięci. Zmienna określająca obiekt musi mieć albo wartość nil, albo wskazywać na obiekt typu zdefiniowanego przez odwołanie do klasy, albo też na obiekt typu potomnego tej klasy. PP-6(43 z 82)
44 Operatory odwołań do klas i obiektów z operatorem as używa się zwykle w połączeniu z instrukcją wiążącą (będzie dalej) do skrócenia odwołań o zmienionym typie do pól, metod i własności. Przykład (nadawca as TButton).Caption:='&Ok'; (nadawca as TButton).OnClick:=OkClick; lub with nadawca as TButton do begin Caption:='&Ok'; OnClick:=OkClick end; Typ zmiennej nadawca musi być typem nadrzędnym, równym lub potomnym typu TButton. PP-6(44 z 82)
45 stałe Wyrażenie stałe jest to wyrażenie, które może być obliczone przez kompilator. Wyrażenie takie nie może zawierać zmiennych, literałów zmiennych, wskaźników, wywołań funkcji (z wyjątkiem funkcji wymienionych poniżej) oraz operatora W wyrażeniach stałych dozwolone jest stosowanie następujących funkcji standardowych: Abs High Low Pred Succ Chr Length Odd Round Swap Hi Lo Ord SizeOf Trunc PP-6(45 z 82)
46 Przykłady stałe 123*45.67 Abs( ) (432 div 2) informa + tyka [ ] + [ A.. Z, a.. z ] A +Chr(35) PP-6(46 z 82)
47 Zmiana typu wyrażenia Każde z przedstawionych wyrażeń daje w wyniku wartość określonego typu. Wartości wyrażeń typu porządkowego lub wskaźnikowego mogą być zmienione na wartości innego typu porządkowego lub wskaźnikowego. Do zmiany typu wyrażenia służy konstrukcja: identyfikator-typu (wyrażenie) przy czym typ wyrażenia i typ podany za pomocą identyfikatora typu muszą być jednocześnie albo typami porządkowymi, albo typami wskaźnikowymi. PP-6(47 z 82)
48 Zmiana typu wyrażenia Przykłady Integer( A ) Konstrukcja ta spowoduje zinterpretowanie wewnętrznego przedstawienia znaku A, tj. ciągu , jako liczby typu Integer. Wartością powyższego wyrażenia będzie zatem 65. Boolean(0) Liczba całkowita 0 zostanie zinterpretowana jako wartość logiczna False. PP-6(48 z 82)
49 Przeciążanie operatorów W obrębie definicji typów rekordowych można przeciążać pewne operatory, tj. spowodować ich działanie inne niż standardowe. Deklaracja operatora przeciążonego w typie rekordowym ma postać class operator sygnatura-deklaracyjna gdzie sygnatura deklaracyjna określa operator (operatory mają swoje nazwy), typy operandów i typ wyniku S zob. następne slajdy. Po definicji typu rekordowego z deklaracją operatora przeciążonego musi wystąpić definicja tego operatora. PP-6(49 z 82)
50 Przeciążanie operatorów sygnatura deklaracyjna oznaczenie symboliczne Implicit (a : typ) : typ-wyniku; niejawna zmiana typu Explicit (a : typ) : typ-wyniku; jawna zmiana typu Negative (a : typ) : typ-wyniku; Positive (a : typ) : typ-wyniku; + Inc (a : typ) : typ-wyniku; Inc (funkcja standardowa) Dec (a : typ) : typ-wyniku; Dec (funkcja standardowa) LogicalNot (a : typ) : typ-wyniku; not Trunc (a : typ) : typ-wyniku; Trunc (funkcja standardowa) Round (a : typ) : typ-wyniku; Round (funkcja standardowa) In (a : typ; b : typ) : Boolean; in Equal (a : typ; b : typ) : Boolean; = NotEqual (a : typ; b : typ) : Boolean; < > GreaterThan (a : typ; b : typ) : Boolean; > PP-6(50 z 82)
51 Przeciążanie operatorów sygnatura deklaracyjna oznaczenie symboliczne GreaterThanOrEqual (a : typ; b : typ) : Boolean; >= LessThan (a : typ; b : typ) : Boolean; < LessThanOrEqual (a : typ; b : typ) : Boolean; <= Add (a : typ; b : typ) : typ-wyniku; + Subtract (a : typ; b : typ) : typ-wyniku; Multiply (a : typ; b : typ) : typ-wyniku; * Divide (a : typ; b : typ) : typ-wyniku; / IntDevide (a : typ; b : typ) : typ-wyniku; div Modulus (a : typ; b : typ) : typ-wyniku; mod LeftShift (a : typ; b : typ) : typ-wyniku; shl RightShift (a : typ; b : typ) : typ-wyniku; shr LogicalAnd (a : typ; b : typ) : typ-wyniku; and LogicalOr (a : typ; b : typ) : typ-wyniku; or PP-6(51 z 82)
52 Przeciążanie operatorów sygnatura deklaracyjna LogicalXor (a : typ; b : typ) : typ-wyniku; BitwiseAnd (a : typ; b : typ) : typ-wyniku; BitwiseOr (a : typ; b : typ) : typ-wyniku; BitwiseXor (a : typ; b : typ) : typ-wyniku; oznaczenie symboliczne xor and or xor Definicja operatora przeciążonego powinna wystąpić po definicji typu rekordowego z jego deklaracją (w tej samej jednostce programowej). Jej postać jest podobna do definicji metody, tyle że rozpoczyna się od słów class operator. PP-6(52 z 82)
53 Przykład Przeciążanie operatorów type dod_mod5 = record var w : Integer; class operator Add (a, b : dod_mod5) : Integer; class operator Implicit (a : Integer) : dod_mod5; class operator Explicit (a : dod_mod5) : Integer; end; W definicji tej występują deklaracje trzech operatorów przeciążonych. Niech ich definicje będą następujące: class operator dod_m5.add (a, b : dod_m5) : dod_m5; begin Result:=a.w+b.w mod 5 end; PP-6(53 z 82)
54 Przykład Przeciążanie operatorów type dod_mod5 = record var w : Integer; class operator Add (a, b : dod_mod5) : Integer; class operator Implicit (a : Integer) : dod_mod5; class operator Explicit (a : dod_mod5) : Integer; end; W definicji tej występują deklaracje trzech operatorów przeciążonych. Niech ich definicje będą następujące: class operator dod_m5.implicit (a : Integer) : dod_m5; begin Result.w:=a end; PP-6(54 z 82)
55 Przykład Przeciążanie operatorów type dod_mod5 = record var w : Integer; class operator Add (a, b : dod_mod5) : Integer; class operator Implicit (a : Integer) : dod_mod5; class operator Explicit (a : dod_mod5) : Integer; end; W definicji tej występują deklaracje trzech operatorów przeciążonych. Niech ich definicje będą następujące: class operator dod_m5.explicit (a : dod_m5) : Integer; begin Result:=a.w end; PP-6(55 z 82)
56 Przykład Jeśli dalej zadeklarujemy zmienne: Przeciążanie operatorów var x, y : dod_m5; a, b : Integer; to wykonanie (w programie tekstowym) instrukcji: a:=20; b:=12; Writeln (a+b mod 5); x:=a; y:=b; niejawna zmiana typu z Integer Writeln (x+y); na dod_m5 spowoduje pojawienie się na ekranie napisów: PP-6(56 z 82)
57 Przykład Deklaracje zmiennych: var x, y : dod_m5; a, b : Integer; Instrukcje: a:=20; b:=12; Writeln (a+b mod 5); x:=a; y:=b; Writeln (x+y); Przeciążanie operatorów Gdyby nie zdefiniowano operatora Implicit (niejawnej zmiany typu), to instrukcje te trzeba by zastąpić instrukcjami: x.w:=a; y.w:=b; PP-6(57 z 82)
58 Przykład Deklaracje zmiennych: var x, y : dod_m5; a, b : Integer; Instrukcje: a:=20; b:=12; Writeln (a+b mod 5); x:=a; y:=b; Writeln (x+y); Przeciążanie operatorów Operator Explicit (jawnej zmiany typu) może być wykorzystany np. w instrukcjach: Writeln (Integer(x)); Writeln (Integer(y)); które spowodują pojawienie się na ekranie następujących napisów: PP-6(58 z 82)
59 Instrukcje Instrukcje służą do opisu czynności wykonywanych na danych i dzielą się na: P instrukcje proste, tj. takie, które nie zawierają jako składowych innych instrukcji, P instrukcje strukturalne, zbudowane na podstawie pewnego schematu strukturalizacji kilku instrukcji, P instrukcję asemblerową umożliwiającą pisanie fragmentów tekstów źródłowych bezpośrednio w asemblerze Poszczególne instrukcje oddziela się średnikami. PP-6(59 z 82)
60 P instrukcję przypisania, P instrukcję skoku, Pinstrukcję pustą, Instrukcje Instrukjce proste Do instrukcji prostych zaliczamy: P instrukcję wywołania procedury i funkcji (będzie w temacie dotyczącym funkcji i procedur), P instrukcję dziedziczenia (będzie w temacie dotyczącym przetwarzania obiektów). PP-6(60 z 82)
61 Instrukcje Instrukcja przypisania Instrukcja przypisania służy do przypisania zmiennej nowej wartości. Ogólna jej postać jest następująca: odwołanie-do-zmiennej:=wyrażenie Instrukcja ta powoduje obliczenie wartości wyrażenia prawostronnego i przypisanie tej wartości odwołaniu do zmiennej występującemu z lewej strony symbolu przypisania := (dwukropek i znak równości). Wartość wyrażenia musi być przy tym zgodna w sensie przypisania PP-6(61 z 82) z typem zmiennej.
62 Instrukcje Instrukcja przypisania W części operacyjnej funkcji (będzie dalej) powinna wystąpić co najmniej jedna instrukcja przypisania postaci nazwa-funkcji:=wyrażenie lub Result:=wyrażenie gdzie Result oznacza predefiniowany identyfikator, lokalny w każdej funkcji. PP-6(62 z 82)
63 Instrukcje Przykłady Instrukcja przypisania a:=1; b[1]:=2*c-d/(e[3,4]+f); war_log:=true; tekst:= Delphi + + Pascal ; x:=x+1; warunek:=a=b; x[i*(i+1)+1,j]:=2; PP-6(63 z 82)
64 Instrukcje Instrukcja skoku Instrukcja skoku jest jedyną instrukcją języka Delphi Pascal, której stosowanie podobnie jak w standardowym Pascalu nie jest zalecane. Jej używanie zmniejsza bowiem przejrzystość programu, ogranicza optymalizację kodu wynikowego wykonywaną przez kompilator i utrudnia dowodzenie poprawności programu, modułu czy biblioteki. Instrukcja ta może być zawsze zastąpiona instrukcjami dopóki lub powtarzaj (będzie dalej). Instrukcja skoku wymaga podania etykiety, która jest identyfikatorem lub ciągiem do dziesięciu cyfr dziesiętnych (od 0 do ) poprzedzonym ewentualnie zerami (zera te nie są znaczące). Etykiety powinny być zadeklarowane (dotyczy to także przypadku, gdy etykieta jest ciągiem cyfr). PP-6(64 z 82)
65 Deklaracje etykiet mają postać Instrukcje Instrukcja skoku label lista-etykiet; przy czym w liście etykiet poszczególne etykiety oddziela się przecinkami. Każda instrukcja może być poprzedzona jedną lub kilkoma etykietami. Instrukcja poprzedzona jedną etykietą ma postać etykieta: instrukcja PP-6(65 z 82)
66 Instrukcje Instrukcja skoku Do instrukcji poprzedzonej etykietą można przekazać sterowanie za pomocą instrukcji skoku o następującej postaci: goto etykieta Instrukcja, do której ma nastąpić przejście może występować przed lub po odnośnej instrukcji skoku. Obowiązuje przy tym zasada, że instrukcja poprzedzona etykietą musi występować w tym samym bloku, co instrukcja skoku z tą etykietą (nie jest dozwolony skok do wnętrza i na zewnątrz procedury lub funkcji). Ponadto skok do wnętrza instrukcji strukturalnej, choć dozwolony (kompilator nie wykaże błędu), może mieć nieokreślone skutki. PP-6(66 z 82)
67 Instrukcje Instrukcja pusta Zapisanie instrukcji pustej nie wymaga użycia żadnego symbolu języka i nie powoduje ona wykonania żadnych czynności. Instrukcję pustą stosuje się w tych kontekstach, w których jest wymagane użycie instrukcji, ale chce się uniknąć wykonania jakiejkolwiek czynności, lub w celu ułatwienia opracowywania programu. PP-6(67 z 82)
68 Instrukcje Instrukcje strukturalne Do instrukcji strukturalnych zaliczamy: P instrukcję złożoną, P instrukcje warunkowe ( jeśli i wyboru), P instrukcje iteracyjne ( dla, dopóki i powtarzaj ), P instrukcję wiążącą, P instrukcje obsługi warunków i stanów wyjątkowych (raise, try...except i try...finally). PP-6(68 z 82)
69 Instrukcje Instrukcja złożona Instrukcja ta tworzy z ciągu instrukcji jedną i używana jest w przypadku, gdy składnia języka wymaga użycia jednej instrukcji, a niezbędne jest wykonanie wielu. Instrukcje wchodzące w skład instrukcji złożonej wykonywane są sekwencyjnie. PP-6(69 z 82)
70 Instrukcje Instrukcja złożona Struktura instrukcji złożonej jest następująca: begin instrukcja-1; instrukcja-2;... instrukcja-n end Przykład begin a:=1; b.c:=2; d[1,2]:=3 end PP-6(70 z 82)
71 Instrukcje Instrukcje warunkowe Instrukcje warunkowe uzależniają wykonanie innych instrukcji od spełnienia określonego warunku. W języku Delphi Pascal istnieją dwie instrukcje warunkowe: P instrukcja jeśli (mająca dwie postacie), P instrukcja wyboru. PP-6(71 z 82)
72 Instrukcje Instrukcja jeśli Instrukcja ta uzależnia wykonanie innej lub innych instrukcji od spełnienia lub niespełnienia podanego warunku. Ogólna postać instrukcji jeśli jest następująca: if wyrażenie then instrukcja lub if wyrażenie then instrukcja else instrukcja przy czym wartością wyrażenia powinna być wartość logiczna True lub False. PP-6(72 z 82)
73 Przykłady Instrukcje Instrukcja jeśli 1) if x<y then a:=0 else a:=1 Zapis równoważny: if x>=y then a:=1 else a:=0 2) if x=(y=z) then x:=y=x else y:=x=z PP-6(73 z 82)
74 Instrukcje Instrukcja jeśli Instrukcje warunkowe jeśli mogą być zagnieżdżone. Z zagnieżdżoną instrukcją jeśli mamy do czynienia wówczas, gdy po słowach then lub else występuje znowu instrukcja jeśli, która z kolei może zawierać następną instrukcję tego typu itd. W zagnieżdżonych instrukcjach jeśli obowiązuje zasada, że każda jednostka else jest przyporządkowana najbliższej poprzedzającej ją jednostce then, dla której nie wystąpiła jeszcze jednostka else. PP-6(74 z 82)
75 Instrukcje Instrukcja jeśli Przykłady if a<0 then if b<>0 then x:=a/b Instrukcję tę krócej można zapisać następująco: if (a<0) and (b<>0) then x:=a/b PP-6(75 z 82)
76 Instrukcje Instrukcja jeśli Przykłady Rozważmy następujący schemat: if y<0 then if z>0 then if x<>0 then a:=(y+2)/x else else else a:=1 Użycie dwóch jednostek else z instrukcją pustą jest konieczne! PP-6(76 z 82)
77 Instrukcje Przykłady Instrukcja jeśli Opuszczenie jednostek else, tj. instrukcja: if y<0 then if z>0 then if x<>0 then a:=(y+2)/x else else a:=1 else a:=1 odpowiadałoby schematowi z lewej strony. PP-6(77 z 82)
78 Instrukcje Instrukcja wyboru Instrukcja ta służy do wykonywania różnych operacji w zależności od wartości pewnej zmiennej. Jej ogólna postać jest następująca: case wyrażenie of sekwencja-instrukcji-wyboru end lub (verté) PP-6(78 z 82)
79 Instrukcje Instrukcja wyboru case wyrażenie of sekwencja-instrukcji-wyboru else instrukcja end gdzie wartość wyrażenia, zwanego selektorem, musi być typu porządkowego. Sekwencja instrukcji wyboru składa się z instrukcji, przy czym każda z nich poprzedzona jest jedną lub kilkoma stałymi wyboru, które od instrukcji oddzielone są dwukropkiem. Poszczególne stałe wyboru oddzielane są przecinkami i mogą mieć postać: stała lub stała.. stała PP-6(79 z 82)
80 Przykłady Instrukcje Instrukcja wyboru case miesiac of 1, 3, 5, 7, 8, 10, 12 : dni:=31; 2 : dni:=28; 4, 6, 9, 11 : dni:=30 end Jeśli zmienna miesiac będzie zadeklarowana następująco: var miesiac : ; to powyższa instrukcja może być też zapisana w postaci: case miesiac of 2 : dni:=28; 4, 6, 9, 11 : dni:=30; else dni:=31 end PP-6(80 z 82)
81 Instrukcje Przykłady case a+b of : begin x:=5; y:=(a+2)/10 end; : x:=a*a; else begin x:=(a+2)/10; y:=5 end end; Instrukcja wyboru case znak of + : k:=1; : k:=2 end; PP-6(81 z 82)
82 ... i to wszystko na dzisiaj Zapraszam na stronę podstrona Dydaktyka PP-6(82 z 82)
Przeciążanie operatorów
Przeciążanie operatorów 1. Przeciążanie operatorów - teoria W języku Delphi w ramach typów rekordowych można przeciążać pewne operatory czyli spowodować ich działanie inne niż standardowe. Poszczególne
Bardziej szczegółowoProgramowanie 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ółowoPascal 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ółowoDIAGRAMY 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ółowoJę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ółowoWstę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ółowoOperacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.
Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach
Bardziej szczegółowoMATERIAŁ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ółowoInformatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa
Informatyka 1 Wykład III Wyrażenia i instrukcje, złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: składnia wyrażeń, drzewa rozbioru gramatycznego i wyliczenia wartości wyrażeń, operatory
Bardziej szczegółowoAlgorytmika 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ółowoWydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe
Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 2 Programowanie 1 Program wykładu Typy danych Wyrażenia Operatory 2 VBA Visual Basic dla aplikacji (VBA) firmy Microsoft jest językiem
Bardziej szczegółowoProgramowanie 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ółowoDr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI
Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku
Bardziej szczegółowoOdczyt danych z klawiatury Operatory w Javie
Odczyt danych z klawiatury Operatory w Javie Operatory W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje
Bardziej szczegółowoProgramowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Bardziej szczegółowoPodstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.
Podstawy programowania Programowanie wyrażeń 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. W językach programowania są wykorzystywane
Bardziej szczegółowoJę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 -
Bardziej szczegółowoOperatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1
Operatory Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne
Bardziej szczegółowoPodstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoPascal - 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ółowoInformatyka 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ółowoOpis: 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ółowoPodstawy 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ółowoPodstawy 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ółowoLuty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl
System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy
Bardziej szczegółowoMikrokontroler ATmega32. Język symboliczny
Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami
Bardziej szczegółowoPodstawy programowania w języku C
Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowotyp 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ółowoPodstawowe operacje arytmetyczne i logiczne dla liczb binarnych
1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie
Bardziej szczegółowoWstę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
Bardziej szczegółowoDYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE
ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE @KEMOR SPIS TREŚCI. SYSTEMY LICZBOWE...3.. SYSTEM DZIESIĘTNY...3.2. SYSTEM DWÓJKOWY...3.3. SYSTEM SZESNASTKOWY...4 2. PODSTAWOWE OPERACJE NA LICZBACH BINARNYCH...5
Bardziej szczegółowoPodstawy 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/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>
Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch
Bardziej szczegółowoWł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ółowodr inż. Jarosław Forenc
Informatyka Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 8/9 Wykład nr 4 (.3.9) Rok akademicki 8/9, Wykład nr 4 /33 Plan wykładu
Bardziej szczegółowoArytmetyka liczb binarnych
Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1
Bardziej szczegółowoInstrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.
Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania
Bardziej szczegółowoElż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ółowoJęzyki i paradygmaty programowania
Języki i paradygmaty programowania Instytut Teleinformatyki ITI PK Kraków marzec 2012 Spis rzeczy 1 Operatory w C/C++ Operatory Operatory w C/C++ operator - rodzaj funkcji wbudowanej w język; różnica notacja
Bardziej szczegółowoWstęp do informatyki- wykład 2
MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe 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
Bardziej szczegółowoJę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ółowoOperatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";
1 2 Operacje na zmiennych Kolejność operacji: deklaracja, inicjacja bool decyzja; int licznik, lp; double stvat, wartpi; char Znak; string S1, S2 = "Kowalski"; przypisanie wartości podstawienie decyzja
Bardziej szczegółowoPoniŜ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ółowoJĘ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ółowoWYRAŻENIA ALGEBRAICZNE
WYRAŻENIA ALGEBRAICZNE Wyrażeniem algebraicznym nazywamy wyrażenie zbudowane z liczb, liter, nawiasów oraz znaków działań, na przykład: Symbole literowe występujące w wyrażeniu algebraicznym nazywamy zmiennymi.
Bardziej szczegółowoCw.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ółowoWprowadzenie 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ółowoProgramowanie 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:
Bardziej szczegółowo1 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ółowoStrona 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
Bardziej szczegółowoPodstawy 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ółowoInstrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory
Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.
Bardziej szczegółowoVisual Basic for Application (VBA)
Visual Basic for Application (VBA) http://dzono4.w.interia.pl Książka Visual Basic dla aplikacji w Office XP PL, autorzy: Edward C. Willett i Steve Cummings, Wyd. Helion Typy zmiennych Różne dane różnie
Bardziej szczegółowooperator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania
http://torus.uck.pk.edu.pl/~fialko Operatory, wyrażenia, instrukcja przypisania Operatory arytmetyczne * / + - % operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania,
Bardziej szczegółowoPodstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
Bardziej szczegółowoJAVAScript 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ółowoElementy języków programowania
Elementy języków programowania Olsztyn 2007-2012 Wojciech Sobieski Języki programowania wymyślono po to, by można było dzięki nim tworzyć różnorodne programy komputerowe. Oczekuje się również, że tworzone
Bardziej szczegółowoC++ wprowadzanie zmiennych
C++ wprowadzanie zmiennych Każda zmienna musi być zadeklarowana, należy określić jej nazwę (identyfikator) oraz typ. Opis_typu lista zmiennych Dla każdej zmiennej rezerwowany jest fragment pamięci o określonym
Bardziej szczegółowoWstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne
1 Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,
Bardziej szczegółowoPODSTAWY 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ółowoZmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Bardziej szczegółowo2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Bardziej szczegółowoProgramowanie 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ółowoPrzykład programu Rozwiązanie równania postaci:
Przykład programu Rozwiązanie równania postaci: a x 2 + b x + c = 0 program trojmian; var a, b, c : real; var delta, x1, x2 : real; writeln('podaj wspolczynniki a, b, c równania kwadratowego: '); readln(a,
Bardziej szczegółowoJęzyk C zajęcia nr 11. Funkcje
Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji
Bardziej szczegółowoWykł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ółowoPODSTAWY 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ółowoTemat 1: Podstawowe pojęcia: program, kompilacja, kod
Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 3 - operatory oraz instrukcje warunkowe i wyboru mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 19 października 2018 1 / 35 mgr inż. Krzysztof
Bardziej szczegółowoJAVAScript 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ółowoOperatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:
Operatory logiczne Komputery i ich logika AND - && Podstawy programowania w C++ Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com
Bardziej szczegółowoPowtó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. Ważne terminy: Java DevelopRment
Bardziej szczegółowoWprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2
Wprowadzania liczb Liczby wpisywane w komórce są wartościami stałymi. W Excel'u liczba może zawierać tylko następujące znaki: 0 1 2 3 4 5 6 7 8 9 + - ( ), / $ %. E e Excel ignoruje znaki plus (+) umieszczone
Bardziej szczegółowoWykład 2. Informatyka Stosowana. 8 października 2018, M. A-B. Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41
Wykład 2 Informatyka Stosowana 8 października 2018, M. A-B Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41 Elementy logiki matematycznej Informatyka Stosowana Wykład 2 8 października
Bardziej szczegółowoJAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak
JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard
Bardziej szczegółowoProgramowanie Komputerów
Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 17 1. Typy i zmienne Jak wiemy, komputer
Bardziej szczegółowoSystemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).
Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych
Bardziej szczegółowoINSTRUKCJA 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
Bardziej szczegółowoPrzeciążanie operatorów
Instrukcja laboratoryjna nr 4 Programowanie w języku C 2 (C++ poziom zaawansowany) Przeciążanie operatorów dr inż. Wilk-Jakubowski Jacek mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz Wprowadzenie Oprócz
Bardziej szczegółowoStan wysoki (H) i stan niski (L)
PODSTAWY Przez układy cyfrowe rozumiemy układy, w których w każdej chwili występują tylko dwa (zwykle) możliwe stany, np. tranzystor, jako element układu cyfrowego, może być albo w stanie nasycenia, albo
Bardziej szczegółowoInstrukcja standardowa Writeln
Instrukcja standardowa Writeln Instrukcja Writeln umożliwia wprowadzenie danych na ekran monitora powodując automatycznie późniejsze przejście kursora do nowej linii. Jest to ustawienie domyślne w działaniu
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program
Bardziej szczegółowo1. Operacje logiczne A B A OR B
1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne
Bardziej szczegółowoKiedy i czy konieczne?
Bazy Danych Kiedy i czy konieczne? Zastanów się: czy często wykonujesz te same czynności? czy wielokrotnie musisz tworzyć i wypełniać dokumenty do siebie podobne (faktury, oferty, raporty itp.) czy ciągle
Bardziej szczegółowoARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.
ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb
Bardziej szczegółowoMateriały pomocnicze do wykładu 3 - Elementy języka Java
Materiały pomocnicze do wykładu 3 - Elementy języka Java 1) Typy danych Typy całkowite Typ Rozmiar Zakres przechowywanych danych byte 8 bitów -128 do 127 short 16 bitów -32768 do 32767 int 32 bity -2147483648
Bardziej szczegółowoWstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 4. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Obliczenia matematyczne (operatory) Operator
Bardziej szczegółowoLaboratorium 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ółowoC++ - 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
Bardziej szczegółowoWykł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ółowoWykł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ółowoProgramowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL
Programowanie Pascal - język programowania wysokiego poziomu Klasa 2 Lekcja 9 PASCAL Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany
Bardziej szczegółowoInstytut 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ółowoDelphi 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ółowoPASCAL 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ółowoWstęp do wskaźników w języku ANSI C
Wstęp do wskaźników w języku ANSI C / Materiał dydaktyczny pomocniczy do przedmiotu Informatyka sem.iii kier. Elektrotechnika/ 1. Wprowadzenie W języku ANSI C dla każdego typu X (wbudowanego, pochodnego,
Bardziej szczegółowoPASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie
PASCAL Język programowania wysokiego poziomu Opracowany przez Mikołaja Wirtha na początku lat 70 XX wieku Prosty, z silną kontrolą poprawności Stosowany prawie wyłącznie na uczelniach do nauki programowania
Bardziej szczegółowo