PODSTAWY PROGRAMOWANIA

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

Download "PODSTAWY PROGRAMOWANIA"

Transkrypt

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

2 Na poprzednim wykładzie... przegląd konstrukcji języka Delphi Pascal (program, moduł, biblioteka, funkcje i procedury, klasy i obiekty, typy danych, zmienne, instrukcje) struktura programu i modułu podstawowe elementy języka (symbole podstawowe, słowa kluczowe i dyrektywy języka, identyfikatory, liczby, łańcuchy, literały logiczne, komentarze i separatory) PP-4(2 z 88)

3 Na tym wykładzie... typy danych i ich opis definiowanie typów typy proste (porządkowe, rzeczywiste) typy łańcuchowe typy strukturalne (tablicowe, rekordowe, zbiorowe, plikowe) PP-4(3 z 88)

4 Definiowanie typów Każda zmienna występująca w programie (module, bibliotece łączonej dynamicznie) posiada swoją nazwę (identyfikator) i przyjmuje wartości z określonego zbioru. Zbiór ten nazywa się typem zmiennej. Typ zmiennej może być określony w deklaracji zmiennej (będzie dalej) lub w definicji typu. Jeśli zdefiniowano typ, to w deklaracji zmiennej można do niego odwołać się za pomocą identyfikatora typu. Stosowanie w programie (module, bibliotece łączonej dynamicznie) identyfikatorów typów (zamiast ich opisów) zwiększa czytelność programu oraz ułatwia jego strukturalizację. PP-4(4 z 88)

5 Definiowanie typów W języku Delphi występują dwie kategorie typów: typy podstawowe, typy ogólne. Postacie i zakresy wartości typów podstawowych są niezależne od procesora i systemu operacyjnego, co oznacza, że nie zmieniają się one przy różnych implementacjach języka. Typy ogólne zależą od procesora i systemu operacyjnego. W obecniej wersji języka Delphi występują cztery rodzaje typów predefiniowanych, w których rozróżnia się typy podstawowe i ogólne. Są to niektóre typy całkowite i rzeczywiste oraz typy znakowe i łańcuchowe. PP-4(5 z 88)

6 Definiowanie typów Typy dzielą się na: standardowe, niestandardowe. Typy standardowe są predefiniowane i nie wymagają żadnego opisu. Wszystkie typy wprowadzone przez programistę muszą zostać przez niego opisane. Opis taki może być używany bez uprzedniego nadania temu opisowi nazwy (np. w deklaracjach zmiennych) albo też może być podany w definicji typu. Definicja opisuje typ i jednocześnie przyporządkowuje mu identyfikator. PP-4(6 z 88)

7 Definiowanie typów Składnia definicji typów jest następująca: type sekwencja-definicji-typów przy czym każdy element sekwencji definicji typów ma postać identyfikator-typu = oznaczenie-typu; gdzie oznaczenie typu jest opisem typu lub identyfikatorem typu (identyfikatorem typu w opisie typu może być identyfikator typu standardowego lub typu zdefiniowanego wcześniej). PP-4(7 z 88)

8 Definiowanie typów Wystąpienie konstrukcji postaci type identyfikator-typu-1 = identyfikator-typu-2; powoduje, że typ określony za pomocą pierwszego identyfikatora będzie uważany za identyczny z typem podanym przez drugi identyfikator. Podczas wykonywania programu konsekwencją tego faktu będzie niemożliwość rozróżnienia typów zmiennych zadeklarowanych następująco: var zmienna-1 : identyfikator-typu-1; zmienna-2 : identyfikator-typu-2; PP-4(8 z 88)

9 Definiowanie typów W celu rozróżnienia typów definiowanych przez inne typy, należy posługiwać się konstrukcją type identyfikator-typu-1 = type identyfikator-typu-2; która wymusza na kompilatorze utworzenie nowego, innego logicznie typu o nazwie określonej przez pierwszy identyfikator. Oczywiście zbiory wartości obu typów są takie same, a typ określony drugim identyfikatorem powinien być zdefiniowany wcześniej lub oznaczać identyfikator typu standardowego. PP-4(9 z 88)

10 Definiowanie typów Do każdej definicji typu mogą być dołączone następujące dyrektwy języka (nazywa się je dyrektywami wskazówkowymi): platform - oznacza, że definiowany typ jest specyficzny dla określonego systemu operacyjnego i może nie być implementowany w innych systemach, library - oznacza ograniczenie typu do pewnej biblioteki, deprecated - oznacza, że definiowany typ jest przestarzały lub został zdefiniowany dla zgodności z wcześniejszymi wersjami języka. Dyrektywy te powodują wyłącznie wygenerowanie podczas kompilacji pewnych wskazówek lub ostrzeżeń. Mogą być stosowane także w deklaracjach zmiennych, deklaracjach i definicjach funkcji, procedur i metod, deklaracjach pól w rekordach i klasach oraz w nagłówkach modułów. PP-4(10 z 88)

11 Typy proste Typy proste są podstawowymi typami języka Delphi i za ich pomocą określa się bardziej złożone struktury danych. Typy proste dzielimy na: # typy porządkowe, # typy rzeczywiste. Wszystkie typy proste składają się ze skończonego i uporządkowanego zbioru wartości. Dzięki temu możliwe jest m. in. wykonywanie na wartościach tych typów operacji porównań. PP-4(11 z 88)

12 Typy proste Typy porządkowe Do typów porządkowych zaliczamy typy: wyliczeniowe, całkowite, znakowe, logiczne, okrojone. PP-4(12 z 88)

13 Typy proste Typy porządkowe Dla wartości każdego typu porządkowego są określone wartości poprzednie i następne (z wyjątkiem wartości krańcowych). Z każdą wartością typu porządkowego jest skojarzona liczba porządkowa (wartość całkowita) jednoznacznie określająca jej umiejscowienie wśród wszystkich wartości danego typu. Z wyjątkiem typów całkowitych domyślnie pierwsza wartość w każdym typie porządkowym ma liczbę porządkową 0, następna numer 1 itd. PP-4(13 z 88)

14 Typy proste Typy porządkowe S typy wyliczeniowe Typy wyliczeniowe stosuje się zwykle dla zbiorów o niewielkiej liczbie elementów, na których nie wykonuje się operacji arytmetycznych. Definicja jednego typu wyliczeniowego jest następująca: type identyfikator-typu = (lista-identyfikatorów); W liście identyfikatorów specyfikuje się identyfikatory (nazwy), które tworzą zbiór wartości danego typu wyliczeniowego. Należy przy tym pamiętać, że ten sam identyfikator nie może być użyty do oznaczania wartości w dwu różnych typach wyliczeniowych, których zakresy pokrywają się, oraz że w obrębie danego typu identyfikatory elementów muszą być różne. PP-4(14 z 88)

15 Przykłady Typy proste Typy porządkowe S typy wyliczeniowe type tydzień = (poniedziałek, wtorek, środa, czwartek, piątek, sobota, niedziela); Typ tydzień sklada się z siedmiu elementów o wyspecyfikowanych identyfikatorach. Liczbą porządkową identyfikatora poniedziałek jest 0, a identyfikatora niedziela liczba 6. PP-4(15 z 88)

16 Typy proste Typy porządkowe S typy wyliczeniowe Przykłady Opis typu wyliczeniowego może być podany bezpośrednio w deklaracji zmiennej, na przykład var tydzień_1 : (poniedziałek, wtorek, środa, czwartek, piątek, sobota, niedziela); Jeśli jednak użyto powyższej deklaracji, to w zakresie ważności identyfikatora tydzień_1 nie jest możliwe zadeklarowanie innej zmiennej o takich samych elementach typu wyliczeniowego. W zakresie ważności identyfikatora tydzień_1 ewentualna deklaracja var tydzień_2 : (poniedziałek, wtorek, środa, czwartek, piątek, sobota, niedziela); jest błędna (błąd kompilacji). PP-4(16 z 88)

17 Przykłady Typy proste Typy porządkowe S typy wyliczeniowe W celu poprawnego zadeklarowania zmiennych tydzień_1 i tydzień_2 należy użyć konstrukcji var tydzień_1, tydzień_2 : (poniedziałek, wtorek, środa, czwartek, piątek, sobota, niedziela); PP-4(17 z 88)

18 Typy proste Typy porządkowe S typy wyliczeniowe Domyślnie liczby porządkowe kolejnych elementów w typach porządkowych rozpoczynają się od 0. Można to zmienić dodając po specyfikacji elementu znak równości i odpowiednią wartość. Przyjmuje się przy tym, że element, dla którego nie podano liczby porządkowej ma liczbę porządkową o jeden większą niż element poprzedni. PP-4(18 z 88)

19 Przykład Typy proste Typy porządkowe S typy wyliczeniowe Z następującej definicji: type rozmiar = (mały = 2, średni = 4, duży = mały +średni); wynika, że liczbą porządkową elementu mały jest 2, elementu średni S 4, a elementu duży S 6. Definicja ta mogłaby sugerować, że typ rozmair ma trzy elementy. Elementów jest jednak pięć o liczbach porządkowych 2, 3, 4, 5 i 6, chociaż tylko trzy z nich mają swoje nazwy. Pozostałe dwa elementy (o liczbach porządkowych 3 i 5) mają anonimowe wartości. Wartości te mogą być przypisane zmiennym typu rozmiar. Jeśli taką zmienną jest np. mój_rozmiar, to poprawna będzie instrukcja mój_rozmiar := rozmiar(3); PP-4(19 z 88)

20 Typy proste Typy porządkowe S typy całkowite Typy całkowite są predefiniowane (nie wymagają opisu). Wszystkie typy całkowite są podzbiorami zbioru liczb całkowitych. Liczba porządkowa elementu dowolnego typu całkowitego jest równa wartości tego elementu. Wśród typów całkowitych wyróżniamy typy podstawowe i ogólne. PP-4(20 z 88)

21 Typy proste Typy porządkowe S typy całkowite Do podstawowych typów całkowitych zalicza się: typ ShortInt (Int8), zawierający liczby całkowite z przedziału [ 128, 127], typ SmallInt (Int16) - przedział [ , ], typ LongInt (Int32) - [ , ], typ Int64 - przedział [ 2 63, ], typ Byte (UInt8) - przedział [0, 255], typ Word (UInt16) - przedział [0, ], typ LongWord (UInt32) - przedział [0, ], typ UInt64 - przedział [0, ]. PP-4(21 z 88)

22 Typy proste Typy porządkowe S typy całkowite Ogólnymi typami całkowitymi, a więc typami zależnymi od rodzaju procesora i systemu operacyjnego, są: typ Integer, którego wartościami w 32-bitowej implementacji języka Delphi są liczby całkowite z przedziału od do , typ Cardinal, który przy implementacji 32-bitowej obejmuje liczby całkowite z przedziału od 0 do PP-4(22 z 88)

23 Typy proste Typy porządkowe S typy całkowite Podstawowe typy całkowite (poza typem UInt64) są podzbiorami typu Int64, chociaż wykonywanie operacji arytmetycznych na elementach typów Int64 i UInt64 w połączeniu z elementami innych typów całkowitych może doprowadzić do błędnych wyników. Dla typu LongInt istnieje predefiniowana stała MaxLongint, która określa maksymalną wartość w tym typie, tj. liczbę Dla typu Integer zdefiniowano stałą MaxInt określającą maksymalną wartość w tym typie (w 32-bitowej implementacji języka stała ta jest równa ). PP-4(23 z 88)

24 Typy proste Typy porządkowe S typy znakowe W języku Delphi zdefiniowano dwa podstawowe typy znakowe i jeden ogólny typ znakowy. Każdy z tych typów oznacza się za pomocą predefiniowanego identyfikatora. Podstawowymi typami znakowymi są: AnsiChar, WideChar. PP-4(24 z 88)

25 Typy proste Typy porządkowe S typy znakowe Wartościami typu AnsiChar są znaki zajmujące jeden bajt pamięci, uporządkowane zgodnie z tabelą rozszerzonego zestawu znaków ASCII. Elementy typu WideChar zajmują dwa bajty pamięci (słowo) i są znakami uporządkowanymi zgodnie z zestawem znaków Unicode. Pierwszych 256 znaków z tego zestawu pokrywa się ze znakami ASCII. Ogólny typ znakowy jest oznaczany za pomocą predefiniowanego identyfikatora Char. W obecnej implementacji języka Delphi odpowiada on typowi WideChar. PP-4(25 z 88)

26 Typy proste Typy porządkowe S typy logiczne Standardowymi typami logicznymi są typy: Boolean (elementy zajmują jeden bajt), ByteBool (jeden bajt), WordBool (dwa bajty), LongBool (cztery bajty). Wartości typów logicznych są oznaczane za pomocą dwu predefiniowanych literałów (stałych): False i True, oznaczających odpowiednio wartości logiczne fałsz i prawda, przy czym w sensie uporządkowania stała False poprzedza stałą True. PP-4(26 z 88)

27 Typy proste Typy porządkowe S typy okrojone Typy okrojone służą do ograniczania zakresów wartości dowolnego z dotychczas przedstawionych typów porządkowych. Definicja jednego typu okrojonego ma postać: type identyfikator-typu = stała-1.. stała-2; przy czym obie stałe muszą być tego samego typu porządkowego, zwanego typem bazowym. Pierwsza z nich podaje ograniczenie dolne i nie może być większa od drugiej ograniczenia górnego. PP-4(27 z 88)

28 Przykłady Typy proste Typy porządkowe S typy okrojone type litera = A.. Z ; Typ okrojony litera jest podzbiorem standardowego typu Char (WideChar). PP-4(28 z 88)

29 Przykłady Typy proste Typy porządkowe S typy okrojone type tydzień = (poniedziałek, wtorek, środa, czwartek, piątek, sobota, niedziela); dni_robocze= poniedziałek.. piątek; W definicji tej typ tydzień jest typem wyliczeniowym, a typ dni_robocze typem okrojonym, którego elementami są poniedziałek, wtorek, środa, czwartek i piątek. PP-4(29 z 88)

30 Przykłady Typy proste Typy porządkowe S typy okrojone const a = 10; b = 20; type przedział = 2*(a b).. 2*(a+b); W definicji typu okrojonego przedzial zastosowano wyrażenia stałe. Elementami tego typu są liczby całkowite z przedziału [ 20, 60]. Następująca definicja jest błędna (dlaczego?): type przedział = (a b)*2.. 2*(a+b); PP-4(30 z 88)

31 Typy proste Typy rzeczywiste Wszystkie typy rzeczywiste są predefiniowane. Każdy z dostępnych typów rzeczywistych jest dyskretnym i skończonym podzbiorem zbioru liczb rzeczywistych (w sensie matematycznym). W języku Delphi zdefiniowano sześć podstawowych typów rzeczywistych i jeden ogólny typ rzeczywisty. PP-4(31 z 88)

32 Typami podstawowymi są: Typy proste Typy rzeczywiste Real48, będący typem rzeczywistym, którego elementy zajmują po sześć bajtów pamięci, Single, oznaczający typ rzeczywisty o pojedynczej długości, którego elementy zajmują cztery bajty pamięci każdy, Double, będący typem rzeczywistym o podwójnej długości (każdy element tego typu zajmuje osiem bajtów pamięci), PP-4(32 z 88)

33 Typami podstawowymi są: Typy proste Typy rzeczywiste Extended, oznaczający typ rzeczywisty o rozszerzonej długości, w którym każdy element zajmuje 10 bajtów pamięci, Comp, którego elementy są liczbami całkowitymi z przedziału od 2 63 do , tj. od około 9.2e18 do około 9.2e18, zajmującymi po osiem bajtów pamięci, PP-4(33 z 88)

34 Typami podstawowymi są: Typy proste Typy rzeczywiste Currency, który jest typem danych stałoprzecinkowych przeznaczonych do obliczeń pieniężnych o wartościach od do , zajmujących też po osiem bajtów. PP-4(34 z 88)

35 Typy proste Typy rzeczywiste Mantysa wartości typu Real48 może zawierać do 11 lub 12 cyfr znaczących (w zależności od tego, czy wyspecyfikowano kropkę dziesiętną czy nie). Dla typu Single mantysa może zawierać odpowiednio 7 8 cyfr znaczących, dla typu Double 15 lub 16 cyfr, a dla typu Extended 19 lub 20. Ogólnym typem rzeczywistym jest typ Real, który w 32-bitowej implementacji języka jest równoważny z typem Double. Oznacza to, że w implementacji tej elementy (wartości) ogólnego typu Real zajmują po osiem bajtów pamięci. PP-4(35 z 88)

36 Typy proste Typy rzeczywiste W systemie pomocy środowiska Delphi podano następujące najmniejsze dodatnie i największe wartości elementów podstawowych typów rzeczywistych Real48, Single, Double, Extended i ogólnego typu Real: typ najmniejsza wartość dodatnia największa wartość )))))))))))))))))))))))))))))))))))))))))))) Real48 2.9e e38 Single 1.5e e38 Double 5.0e e308 Extended 3.4e e4932 Real 5.0e e308 PP-4(36 z 88)

37 program FloatArithmetic; {$APPTYPE CONSOLE} {$R *.res} type num = Single; var n : Integer; ex: Extended; x : num; begin x:=1; n:=0; repeat ex:=x; x:=x/2; Inc (n) until x=0; Writeln ( 2^, n+1, =, ex:26); Readln end. Typy proste Typy rzeczywiste Ten program wykazuje, że najmniejszą wartością dodatnią zmiennej typu Single jest , Podobne testy można przeprowadzić dla pozostałych typów rzeczywistych! PP-4(37 z 88)

38 Typy łańcuchowe Łańcuchy służą do reprezentowania ciągu znaków, w tym niewidocznego znaku spacji. W języku Delphi występują następujące rodzaje typów łańcuchowych: łańcuchy krótkie, łańcuchy długie (ANSI), łańcuchy Unicode, łańcuchy zakończone znakiem pustym, łańcuchy zasobowe. PP-4(38 z 88)

39 Typy łańcuchowe Typy łańcuchowe krótkie Elementami typu łańcuchowego krótkiego są łańcuchy, którym pamięć przydziela się statycznie i których długość może zmieniać się dynamicznie od 0 do maksymalnej długości podanej w definicji typu łańcuchowego lub przyjmowanej domyślnie. Przy wyłączonej dyrektywie $H (w stanie {$H }) typ łańcuchowy krótki określa słowo kluczowe string. PP-4(39 z 88)

40 Typy łańcuchowe Typy łańcuchowe krótkie Jeśli po słowie string wyspecyfikowano rozmiar ujęty w nawiasy kwadratowe (string [rozmiar]), gdzie rozmiar oznacza liczbę całkowitą z przedziału od 0 do 255 lub nazwę literału o wartości całkowitej z tego samego przedziału, to bez względu na stan dyrektywy kompilatora $H określenie takie oznacza łańcuch krótki. Brak wyspecyfikowania rozmiaru w stanie {$H } powoduje domyślne przyjęcie długości 255 znaków (dla łańcucha krótkiego). PP-4(40 z 88)

41 Typy łańcuchowe Typy łańcuchowe krótkie Bez względu na stan dyrektywy kompilatora $H typ łańcuchowy krótki można zdefiniować za pomocą predefiniowanego identyfikatora ShortString. Elementami typu ShortString są łańcuchy (krótkie) o maksymalnej długości 255 znaków. Każdy znak łańcucha krótkiego zajmuje jeden bajt pamięci, a cała dana zajmuje liczbę bajtów pamięci wynikającą z liczby znaków i zwiększoną o jeden. W tym dodatkowym bajcie pamięci (o indeksie 0) jest przechowywana informacja o aktualnym rozmiarze łańcucha. PP-4(41 z 88)

42 Przykłady Typy łańcuchowe Typy łańcuchowe krótkie type nazwisko = string [20]; Typ łańcuchowy krótki nazwisko może zawierać dane będące łańcuchami o maksymalnej długości 20 znaków. type napis = ShortString; Bez względu na stan dyrektywy $H definicja ta określa typ łańcuchowy krótki napis, którego elementami mogą być łańcuchy o maksymalnej długości 255 znaków. PP-4(42 z 88)

43 Typy łańcuchowe Typy łańcuchowe długie Typy łańcuchowe długie są oznaczane za pomocą predefiniowanego identyfikatora AnsiString. Dla elementów typów łańcuchowych długich nie jest określona ich maksymalna długość. Pamięć jest im przydzielana dynamicznie, a ich długość jest ograniczona rozmiarem pamięci przeznaczonej dla programu (teoretycznie do 2 GB). PP-4(43 z 88)

44 Typy łańcuchowe Typy łańcuchowe długie Zmienna typu łańcuchowego długiego zajmuje cztery bajty pamięci i zawiera wskaźnik do łańcucha, tj. wskazuje na miejsce w pamięci, w którym znajduje się łańcuch. Łańcuch długi znajdujący się w pamięci jest zakończony znakiem pustym (znakiem ASCII o kodzie 0), który jednak nie jest jego częścią składową (nie zalicza się do łańcucha). Gdy zmienna typu łańcuchowego długiego nie zawiera łańcucha (zawiera łańcuch o długości 0), jej wartością jest adres pusty (nil). PP-4(44 z 88)

45 Typy łańcuchowe Łańcuchy Unicode Do reprezentowania łańcuchów złożonych ze znaków zestawu znaków Unicode służą predefiniowane typy UnicodeString i WideString. W domyślnym stanie dyrektywy kompilatora $H ({$H +}) typ UnicodeString może też być oznaczany za pomocą słowa kluczowego string. Maksymalne długości elementów obu typów łańcuchowych są ograniczone wyłącznie dostępną pamięcią. Zmienne tych typów zajmują jednak tylko cztery bajty pamięci i zawierają wskaźnik do dynamicznie przydzielonego obszaru pamięci. Wartość nil takich zmiennych oznacza, że łańcuch jest pusty. PP-4(45 z 88)

46 Typy łańcuchowe Łańcuchy Unicode Elementami łańcucha typu UnicodeString mogą być znaki jedno- lub wielobajtowe (w 32-bitowej implementacji języka są to znaki dwubajtowe), a typu WideString S znaki dwubajtowe zestawu znaków Unicode. PP-4(46 z 88)

47 Typy łańcuchowe Łańcuchy zakończone znakiem pustym Przez pojęcie łańcucha zakończonego znakiem pustym rozumie się łańcuch podobny do łańcucha długiego i łańcuchów typów UnicodeString i WideString, tyle że opisany za pomocą tablicy znaków (niekoniecznie jednobajtowych) indeksowanej od 0. Przykłady type nazwisko = array [0..15] of Char; nazwa = array [0..92] of WideChar; PP-4(47 z 88)

48 Typy łańcuchowe Łańcuchy zakończone znakiem pustym Podstawowa różnica w stosowaniu zwykłych łańcuchów i łańcuchów zakończonych znakiem pustym polega na wykonywaniu operacji na tych drugich za pomocą wskaźników. Do reprezentacji wskaźników do łańcuchów zakończonych znakiem pustym służy predefiniowany typ PChar. Zmiennej tego typu można przypisać literał zmienny, a każde jej wystąpienie można zastąpić tablicą znaków indeksowaną od 0. PP-4(48 z 88)

49 Przykład Typy łańcuchowe Łańcuchy zakończone znakiem pustym Jeśli zmienną wsk_znak zadeklarujemy następująco: var wsk_znak : PChar; to wykonanie instrukcji przypisania wsk_znak := Delphi XE2 ; spowoduje, że zmienna ta będzie wskazywała na obszar pamięci zawierający podany łańcuch. Ten sam skute da zastosowanie konstrukcji const łańcuch : array [0..10] of Char = Delphi XE2 ; var wsk_znak : PChar;... wsk_znak:=@łańcuch; PP-4(49 z 88)

50 Typy łańcuchowe Łańcuchy zasobowe Łańcuchy zasobowe są to stałe, które są automatycznie zapamiętywane w zasobie i kompilowane do plików.exe,.dll i.dpl. Deklaracja pojedynczego łańcucha zasobowego ma postać: resourcestring identyfikator = wyrażenie-stałe; gdzie wyrażenie stałe oznacza w ogólności wyrażenie typu łańcuchowego, które może być obliczone przez kompilator. W najprostszym przypadku jest to łańcuch. PP-4(50 z 88)

51 Typy łańcuchowe Łańcuchy zasobowe Łańcuchy zasobowe umożliwiają przygotowanie programów okienkowych, w których teksty ukazujące się na ekranie będą wyświetlane w zależności od kraju użytkownika programu. Łańcuchy zasobowe są zapisywane w oddzielnym pliku.drc. Aby utworzyć dla danego programu jeden taki plik, wszystkie łańcuchy zasobowe należy umieścić w jednym module. Zasoby, które są w wyizolowanych plikach.drc mogą być łatwo doprowadzone do odpowiednich wersji językowych za pomocą programu narzędziowego Resource DLL Wizard, uruchamianego poleceniem New Other Delphi Projects Resource DLL Wizard. Dotyczy to także plików.dfm, w których środowisko Delphi automatycznie zapisuje zasoby zawierające menu, okienka dialogowe i mapy bitowe. PP-4(51 z 88)

52 Typy strukturalne Typy te stosuje się do opisu obiektów złożonych. Każdy z typów strukturalnych definiuje się przez podanie typów elementów i metody strukturalizacji, która zarazem określa sposób dostępu do elementów. W ogólności definicja pojedynczego typu strukturalnego ma postać type identyfikator-typu = opis-typu-strukturalnego; PP-4(52 z 88)

53 Typy strukturalne Opis dowolnego typu strukturalnego może zaczynać się od słowa kluczowego packed. Jego użycie jest wskazówką dla kompilatora, aby wybrał reprezentację danej struktury zajmującą możliwie jak najmniej bajtów pamięci. Reprezentację taką nazywamy postacią spakowaną lub upakowaną. Domyślnie kompilator umieszcza w pamięci poszczególne elementy składowe struktur od granicy słowa lub podwójnego słowa, co zapewnia szybszy dostęp do nich. Użycie słowa kluczowego packed powoduje zapamiętywanie elementów struktur w kolejnych bajtach, a tym samym zmniejsza całkowity obszar pamięci zajętej przez strukturę. Programista ma zatem do wyboru optymalizację programu albo ze względu na szybsze jego działanie, albo na mniejszą zajętość pamięci. PP-4(53 z 88)

54 Typy strukturalne Typy tablicowe Tablica reprezentuje indeksowany zbiór elementów tego samego typu. Jeśli w opisie typu tablicowego podaje się liczbę wymiarów i elementów w każdym wymiarze, to tablica ma z góry określony rozmiar. Tablice takie nazywamy tablicami statycznymi. Drugim rodzajem tablic są tablice dynamiczne, dla których w opisie typu tablicowego specyfikuje się wyłącznie typ jej elementów, a pamięć przydziela się w części wykonawczej jednostki programowej (programu, modułu, biblioteki, funkcji lub procedury). PP-4(54 z 88)

55 Typy strukturalne Typy tablicowe S tablice statyczne Tablica statyczna składa się z ustalonej liczby elementów tego samego typu, zwanego typem składowym, który może być zarówno typem prostym lub łańcuchowym, jak i typem strukturalnym. Za pomocą tablic są reprezentowane regularne układy danych, np. wektory i macierze. Dostęp do poszczególnych elementów tablic uzyskuje się za pomocą indeksowania. Indeksem może być dowolne wyrażenie, którego wartość jest zgodna w sensie przypisania (będzie dalej) z typem indeksowym. Dopuszczalny zakres indeksów jest podany w definicji typu tablicowego. PP-4(55 z 88)

56 Typy strukturalne Typy tablicowe S tablice statyczne Definicja pojedynczego typu tablicy statycznej ma postać type identyfikator-typu = array [typy-indeksowe] of typ-składowy; gdzie typy indeksowe są opisami typu porządkowego, przy czym poszczególne opisy oddziela się przecinkami. Typ składowy oznacza dowolny typ. PP-4(56 z 88)

57 Przykłady Typy strukturalne Typy tablicowe S tablice statyczne type wektor = array [0..50] of Integer; Powyższa definicja określa typ wektor jako typ tablicowy, o elementach ogólnego typu całkowitego (Integer), ponumerowanych od 0 do 50. PP-4(57 z 88)

58 Przykłady Typy strukturalne Typy tablicowe S tablice statyczne type macierz = array [1..20] of array [1..30] of Extended; Typem składowym, tj. typem każdego z 20 elementów typu tablicowego macierz, ponumerowanych od 1 do 20, jest 30-elementowa tablica liczb rzeczywistych (Extended) o elementach ponumerowanych od 1 do 30. Elementami typu macierz są więc tablice dwuwymiarowe o 600 elementach typu Extended. PP-4(58 z 88)

59 Przykłady Typy strukturalne Typy tablicowe S tablice statyczne type macierz = array [1..20, 1..30] of Extended; Definicja ta określa taki sam typ tablicowy jak poprzednio. Typ tablicowy macierz został tu wprost zdefiniowany jako zbiór dwuwymiarowych tablic, o zakresie pierwszego indeksu od 1 do 20 (liczby całkowite) i drugiego indeksu od 1 do 30 (także liczby całkowite). Ze względu na nieco krótszy zapis, tego rodzaju definicje zaleca się stosować do opisu typów tablicowych wielowymiarowych. PP-4(59 z 88)

60 Typy strukturalne Typy tablicowe S tablice statyczne Przykłady type tablica = array [Boolean, 1..20, znak] of Char; type tablica = array [Boolean, 1..20] of array [znak] of Char; type tablica = array [Boolean] of array [1..20, znak] of Char; type tablica = array [Boolean] of array [1..20] of array [znak] of Char; Wszystkie powyższe definicje typu tablica określają taki sam typ tablicowy. Zauważmy, że typy indeksów określone są w różny sposób. PP-4(60 z 88)

61 Typy strukturalne Typy tablicowe S tablice dynamiczne Opis typu tablicowego (w definicji typu lub deklaracji zmiennej), który nie zawiera określenia typów indeksowych określa tablicę dynamiczną. Definicja pojedynczego typu tablicy dynamicznej ma postać type identyfikator-typu = array of typ-składowy; gdzie typ składowy oznacza dowolny typ. PP-4(61 z 88)

62 Typy strukturalne Typy tablicowe S tablice dynamiczne W chwili deklaracji zmiennej typu tablicy statycznej następuje przydzielenie jej odpowiedniego obszaru pamięci. Deklaracja zmiennej typu tablicy dynamicznej powoduje przydzielenie jej tylko czterech bajtów pamięci. Bajty te zawierają wskaźnik do miejsca pamięci, począwszy od którego są pamiętane wartości elementów tablicy (w chwili deklaracji zmiennej bajtom tym przypisuje się wartość nil oznaczającą adres pusty). Właściwe przydzielenie pamięci tablicy dynamicznej następuje przez wywołanie procedury standardowej SetLength lub DynArraySetLength, a zwolnienie przez przypisanie danej zmiennej wartości nil lub wywołanie dla niej procedury Finalize (będzie dalej). PP-4(62 z 88)

63 Typy strukturalne Typy rekordowe S rekordy klasyczne Rekordem (klasycznym) nazywa się złożoną strukturę danych, której składowe, zwane polami, mogą mieć różne charakterystyki (należeć do różnych typów). Poszczególne pola mogą być same strukturami złożonymi, przy czym liczba pól rekordu jest ustalona. PP-4(63 z 88)

64 Typy strukturalne Typy rekordowe S rekordy klasyczne Definicja pojedynczego typu rekordowego (klasycznego) jest następująca: type identyfikator-typu = record lista-deklaracji-pól end; (cdn.) PP-4(64 z 88)

65 Typy strukturalne Typy rekordowe S rekordy klasyczne Każda z deklaracji pól ma postać lista-nazw-pól : opis-typu; lub var lista-nazw-pól : opis-typu; Deklaracje pól mogą zawierać dyrektywy wskazówkowe. Ostatnia deklaracja (wariantowa) może mieć postać case deklaracja-pola-wyróżnikowego of wykaz- wariantów; lub case identyfikator-typu-porządkowego of wykaz- wariantów; (cdn.) PP-4(65 z 88)

66 Typy strukturalne Typy rekordowe S rekordy klasyczne Deklaracja pola wyróżnikowego wygląda następująco: identyfikator-pola-wyróżnikowego : identyfikator-typu- porządkowego Każdy element wykazu wariantów ma postać lista-etykiet-wyboru : (lista-deklaracji-pól) PP-4(66 z 88)

67 Typy strukturalne Typy rekordowe S rekordy klasyczne Deklaracja pól ustala listę stałych pól danego typu rekordowego i dla każdego pola określa jego nazwę oraz typ. Deklaracje wariantowe stosuje się co najmniej w dwóch przypadkach. Po pierwsze, gdy chcemy utworzyć jeden typ rekordowy zawierający różne typy danych, ale z góry wiemy, że tylko z jednego rodzaju danych będziemy korzystać dla każdej zmiennej tego typu rekordowego. Po drugie, gdy zamierzamy w różny sposób interpretować dane zapisywane w części wariantowej rekordu. PP-4(67 z 88)

68 Typy strukturalne Typy rekordowe S rekordy klasyczne Liczba bajtów zajętych przez elementy typów rekordowych zależy od użycia lub nie słowa kluczowego packed oraz od stanu dyrektywy przełącznikowej kompilatora $A. Przykłady type data = record rok : SmallInt; miesiac : ; dzien : end; PP-4(68 z 88)

69 Przykłady Typy strukturalne Typy rekordowe S rekordy klasyczne W poniższej definicji typu rekwar występują dwa pola stałe (w tym jedno wyróżnikowe). Pozostałe pola są wariantowe. Informacje zapisane w odpowiednim miejscu pamięci będzie można odczytać albo jako dwie wartości typu Byte, albo jako wartość typu SmallInt. type rekwar = record a : Extended; case b : Boolean of True : (c, d : Byte); False : (e : SmallInt) end; PP-4(69 z 88)

70 Przykłady Typy strukturalne Typy rekordowe S rekordy klasyczne Zastąpienie wiersza case b : Boolean of wierszem case Boolean of a więc zastąpienie deklaracji pola wyróżnikowego identyfikatorem typu porządkowego, spowoduje, że typ rekordowy będzie miał tylko jedno pole stałe i dwa lub jedno pole wariantowe. W przypadku zadeklarowania zmiennej r2 takiego typu, dostęp do jej pól wariantowych będzie możliwy za pomocą odwołań r2.c, r2.d i r2.e. PP-4(70 z 88)

71 Typy strukturalne Typy rekordowe S rekordy klasopodobne Rekordy mogą mieć strukturę bardziej złożoną, która przypomina strukturę klasy (będzie dalej). Oprócz pól elementami rekordów mogą być: - metody (w tym metody klasowe), - konstruktory, - własności (w tym własności klasowe), - pola klasowe, - typy zagnieżdżone. Elementy te zostaną szczegółowo omówione przy okazji opisu typu klasowego. Tutaj ograniczymy się do podania przykładu. PP-4(71 z 88)

72 Typy strukturalne Typy rekordowe S rekordy klasopodobne Przykład type rekord_kl = record type wzrost = Word; pole var wysoki : Word; pole klasowe class var niski : Word; konstruktor constructor Utwórz (wartość : Word); metoda procedure Pokaż; metoda klasowa class procedure Zmień; własność property własność_wysoki : wzrost read wysoki write wysoki; class property własność_niski : wzrost read niski write niski; end; typ zagnieżdżony własność klasowa PP-4(72 z 88)

73 Typy strukturalne Typy rekordowe S rekordy klasopodobne Przykład (cd.) Po definicji tego typu rekordowego powinny wystąpić (w przypadku modułu w jego części implementacyjnej) definicje konstruktora Utwórz, metody Pokaż i metody klasowej Zmień. Różnice pomiędzy rekordami klasopodobnymi i klasami: - rekordy nie mają własności dziedziczenia, - w rekordach można przeciążać operatory, - w rekordach nie można deklarować destruktorów, metod wirtualnych, dynamicznych i metod do obsługi wiadomości. PP-4(73 z 88)

74 Typy strukturalne Typy rekordowe S rekordy pomocnicze Rekordy pomocnicze to rekordy skojarzone z innymi rekordami, które definiują dla nich dodatkowe metody i własności. Rekordy takie są wykorzystywane przy modyfikacji kodu źródłowego, aby nie zmieniać definicji rekordu oryginalnego. Definicja: type id-typu = record helper for id-typu-oryg lista-elem-rekordu-pomoc end; PP-4(74 z 88)

75 Typy strukturalne Typy rekordowe S rekordy pomocnicze Lista elementów rekordu pomocniczego może zawierać takie same elementy, jak w rekordzie klasopodobnym z wyjątkiem deklaracji zwykłych pól. Dla danego typu rekordowego można zdefiniować wiele pomocniczych typów rekordowych, ale będzie zastosowany ten, który znajduje się najbliżej zasięgu oryginalnego typu rekordowego. Jeśli w pomocniczym typie rekordowym zostanie zdefiniowana metoda o takiej samej nazwie, jak w typie oryginalnym, to przesłoni ona metodę zadeklarowaną w typie oryginalnym. PP-4(75 z 88)

76 Typy strukturalne Typy zbiorowe Każdy typ zbiorowy jest zbiorem potęgowym danego typu porządkowego, tzn. jest zbiorem wszystkich podzbiorów tego typu, w tym zbioru pustego. Definicja pojedynczego typu zbiorowego ma postać type identyfikator-typu = set of typ-porządkowy; Liczba elementów typu porządkowego, zwanego typem bazowym, nie może przekraczać 256, przy czym ich liczby porządkowe muszą należeć do przedziału [0, 255]. PP-4(76 z 88)

77 Typy strukturalne Typy zbiorowe Oznacza to, że spośród standardowych typów całkowitych jest dozwolone wyspecyfikowanie tylko typu Byte. Na ogół typ bazowy jest określany jako typ wyliczeniowy lub okrojony. Wartości typu zbiorowego zapisuje się przez podanie w nawiasach listy elementów danego zbioru (poszczególne elementy oddziela się przecinkami), a zapis [ ] oznacza zbiór pusty. Zapis taki nazywamy konstruktorem zbioru. PP-4(77 z 88)

78 Typy strukturalne Typy zbiorowe Przykłady type dni_pracy = set of (poniedziałek, wtorek, środa, czwartek, piątek); Elementami typu dni_pracy może być dowolny podzbiór zbioru podanych nazw dni tygodnia, m. in.: [poniedziałek, czwartek] [ ] [wtorek, środa, piątek], [wtorek, piątek, środa], [środa, wtorek, piątek], [piątek, wtorek, środa] - te same podzbiory PP-4(78 z 88)

79 Przykłady Typy strukturalne Typy zbiorowe type znaki = set of AnsiChar; małe_litery = set of a.. z ; Elementami typu znaki są dowolne podzbiory zbioru znaków ASCII, a elementami typu małe_litery dowolny podzbiór zbioru małych liter alfabetu łacińskiego. PP-4(79 z 88)

80 Typy strukturalne Typy plikowe Plik jest ciągiem elementów tego samego typu, tyle że liczba jego składowych jest zmienna. Jest ona uzależniona od przebiegu wykonywania programu, a w szczególności od skojarzenia pliku z fizycznym zbiorem danych, tj. zbiorem danych rezydującym w pamięci operacyjnej lub wprowadzanym czy wyprowadzanym poprzez urządzenia zewnętrzne (klawiatura, drukarka, napędy dysków). Od tablicy plik różni się też metodą dostępu do poszczególnych elementów. PP-4(80 z 88)

81 Typy strukturalne Typy plikowe Plik jest logicznym modelem fizycznego zbioru danych. Ze względu na rodzaj operacji wykonywanych na plikach można uważać, że plik reprezentuje fizyczny zbiór danych o dostępie sekwencyjnym. Oznacza to, że w dowolnej chwili może być dostępny tylko jeden element pliku, a dostęp do pozostałych elementów jest możliwy dopiero po wykonaniu pewnych operacji na pliku. Za pomocą tego samego pliku można w programie przetwarzać różne fizyczne zbiory danych. PP-4(81 z 88)

82 Typy strukturalne Typy plikowe Pojedynczy typ plikowy definiuje się za pomocą konstrukcji type identyfikator-typu = file of opis-typu-elementów-pliku; Opis typu elementów pliku oznacza w ogólności identyfikator typu prostego, opis typu porządkowego, typ łańcuchowy krótki lub opis typu strukturalnego. PP-4(82 z 88)

83 Typy strukturalne Typy plikowe Opis typu plikowego może składać się z samego słowa kluczowego file. W takim przypadku przyjmuje się, że dany typ plikowy jest niezdefiniowany. Niezdefiniowane pliki są stosowane głównie w celu dostępu do fizycznych zbiorów dyskowych bez względu na ich wewnętrzny format. PP-4(83 z 88)

84 Typy strukturalne Typy plikowe W języku Delphi istnieje też predefiniowany plik tekstowy o nazwie TextFile (synonimem tej nazwy jest Text). Elementami pliku tekstowego są wiersze podzielone na znaki. Każdy wiersz takiego pliku zakończony jest parą znaków sterujących CR/LF (skr. ang. carriage return i line feed). Pliki tekstowe stanowią logiczne modele służące do obsługi zbiorów fizycznych dostępnych głównie za pomocą takich urządzeń, jak: klawiatura, terminale, drukarki i ekran monitora. PP-4(84 z 88)

85 Przykłady Typy strukturalne Typy plikowe type dane = file of LongInt; wyniki = file of Extended; Identyfikatory dane i wyniki zostały tu zdefiniowane jako identyfikatory typów plikowych o elementach odpowiednio LongInt i Extended. PP-4(85 z 88)

86 Przykłady Typy strukturalne Typy plikowe type complex = file of record re, im : Extended end; Typ plikowy complex składa się z elementów będących parami danych typu Extended. PP-4(86 z 88)

87 Typy strukturalne Typy plikowe Przykłady type data = file of record rok : SmallInt; miesiac : ; dzien : end; PP-4(87 z 88)

88 I to by było na tyle ale będzie ciąg dalszy! PP-4(88 z 88)

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

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

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Podstawy Programowania C++

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Podstawy programowania

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

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 1

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

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Zmienne Proste typy danych Strukturalne typy danych Witold Marańda maranda@dmcs.p.lodz.pl 1 Zmienne Liczby (i struktury danych) występują w algorytmach i programach komputerowych

Bardziej szczegółowo

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

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

Bardziej szczegółowo

Język programowania PASCAL

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

Bardziej szczegółowo

PODSTAWY PROGRAMOWANIA

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

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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

Bardziej szczegółowo

Wstęp do programowania

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

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wykład PASCAL - Pliki tekstowe

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ą,

Bardziej szczegółowo

Pascal - wprowadzenie

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

OPERACJE NA PLIKACH. Podstawowe pojęcia:

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

Bardziej szczegółowo

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze Podstawy Informatyki Metalurgia, I rok Wykład 3 Liczby w komputerze Jednostki informacji Bit (ang. bit) (Shannon, 1948) Najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie prawdopodobnych

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Java Podstawy. Michał Bereta

Java Podstawy. Michał Bereta Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu

Bardziej szczegółowo

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne 1. Wstęp Turbo Pascal jest jednym z najpopularniejszych języków programowania wyższego poziomu. Program napisany w tym języku jest ciągiem zdań opisującym określony algorytm. Nazywamy go postacią źródłową

Bardziej szczegółowo

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. 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ółowo

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

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

Bardziej szczegółowo

Elementy języków programowania

Elementy 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ółowo

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

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

Bardziej szczegółowo

Podstawy programowania

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

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. 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ółowo

1 Podstawy c++ w pigułce.

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

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

Wykład 8: klasy cz. 4

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

Bardziej szczegółowo

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

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:

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

PODSTAWY PROGRAMOWANIA

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...

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

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.

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

Bardziej szczegółowo

Autor: dr inż. Katarzyna Rudnik

Autor: dr inż. Katarzyna Rudnik Bazy danych Wykład 2 MS Access Obiekty programu, Reprezentacja danych w tabeli, Indeksy, Relacje i ich sprzężenia Autor: dr inż. Katarzyna Rudnik Obiekty programu MS ACCESS Obiekty typu Tabela są podstawowe

Bardziej szczegółowo

MATERIAŁY DO ZAJĘĆ II

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Typy danych, zmienne i tablice. Tomasz Borzyszkowski

Typy danych, zmienne i tablice. Tomasz Borzyszkowski Typy danych, zmienne i tablice Tomasz Borzyszkowski Silne typy Javy Java jest językiem wyposażonym w silny system typów. Wywodzi się stąd siła i bezpieczeństwo tego języka. Co to znaczy silny system typów?

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 12 Struktury, unie, pola bitowe 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Struktury 2 Struktury Struktury to złożone typy danych

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

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

Bardziej szczegółowo

Wprowadzenie Tablica jednowymiarowa Tablice wielowymiarowe Algorytmy Rekordy Pliki Zadania Bibliografia

Wprowadzenie Tablica jednowymiarowa Tablice wielowymiarowe Algorytmy Rekordy Pliki Zadania Bibliografia Program Rozwojowy Potencjału Dydaktycznego Politechniki Świętokrzyskiej w Kielcach: kształcenie na miarę sukcesu. Priorytet IV Szkolnictwo wyższe i nauka. Działanie 4.1 Wzmocnienie i rozwój potencjału

Bardziej szczegółowo

Pliki. Operacje na plikach w Pascalu

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

Bardziej szczegółowo

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

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;

Bardziej szczegółowo

PODSTAWOWE WIADOMOSCI O JĘZYKU TURBO PASCAL

PODSTAWOWE WIADOMOSCI O JĘZYKU TURBO PASCAL PODSTAWOWE WIADOMOSCI O JĘZYKU TURBO PASCAL! Podstawowe wiadomości o języku Turbo Pascal " Symbole podstawowe. " Jednostki leksykalne. # Słowa kluczowe # Deklaratory # Identyfikatory # Liczby # Łańcuchy

Bardziej szczegółowo

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

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

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

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

Bardziej szczegółowo

Języki programowania obiektowego Nieobiektowe elementy języka C++

Języki programowania obiektowego Nieobiektowe elementy języka C++ Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Przetwarzanie tablic znaków Łańcuchy znakowe jako tablice znaków

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, 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ółowo

Języki i metodyka programowania. Wprowadzenie do języka C

Języki i metodyka programowania. Wprowadzenie do języka C Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne

Bardziej szczegółowo

Język ludzki kod maszynowy

Ję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ółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Podstawy algorytmiki i programowania - wykład 4 C-struktury

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

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2016/2017 Wykład nr 7 (11.01.2017) Rok akademicki 2016/2017, Wykład

Bardziej szczegółowo

Wstęp do programowania 2

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

Bardziej szczegółowo

Delphi Laboratorium 3

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

Bardziej szczegółowo

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Załóżmy, że uprawiamy jogging i chcemy monitorować swoje postępy. W tym celu napiszemy program, który zlicza, ile czasu

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

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

Bardziej szczegółowo

Wykład 4. Tablice. Pliki

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

Bardziej szczegółowo

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach: Skrypty powłoki Skrypty są zwykłymi plikami tekstowymi, w których są zapisane polecenia zrozumiałe dla powłoki. Zadaniem powłoki jest przetłumaczenie ich na polecenia systemu. Aby przygotować skrypt, należy:

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 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ółowo

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

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

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski Laboratorium 3: Tablice, tablice znaków i funkcje operujące na ciągach znaków dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski 7 kwietnia 2014 1. Wprowadzenie Pierwsza część instrukcji zawiera informacje

Bardziej szczegółowo

Pracownia Komputerowa wykład IV

Pracownia Komputerowa wykład IV Pracownia Komputerowa wykład IV dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada/pk16 1 Reprezentacje liczb i znaków! Liczby:! Reprezentacja naturalna nieujemne liczby całkowite naturalny

Bardziej szczegółowo

Zasady Programowania Strukturalnego

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,

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Wprowadzenie do języka Java

Wprowadzenie do języka Java WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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.) 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

Bardziej szczegółowo

PODSTAWY PROGRAMOWANIA

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wprowadzenie do języka Pascal

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

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

Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 2 Podstawy programowania 2 Temat: Zmienne dynamiczne tablica wskaźników i stos dynamiczny Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Tablice wskaźników Tablice

Bardziej szczegółowo