PODSTAWY INFORMATYKI wykład 4.

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

Download "PODSTAWY INFORMATYKI wykład 4."

Transkrypt

1 PODSTAWY INFORMATYKI wykład 4. Adrian Horzyk Web: Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutnicza w Krakowie WEAIiE, Katedra Automatyki Mickiewicza Av. 30, Cracow, Poland

2 Struktury danych Przy rozwiązywaniu problemu (za pomocą komputera, czy też bez niego) trzeba dokonać wyboru pewnego abstrakcyjnego modelu rzeczywistości, czyli zdefiniować zbiór danych mających reprezentować rzeczywistą sytuację. W tym celu wykorzystujemy pewne specyficzne zbiory danych, które charakteryzują się różną strukturą wewnętrzną ułożenia tych danych oraz różnym sposobem zapisu i dostępu do tych danych. Dostęp do odpowiednich składowych takiego zbioru może w dużym stopniu wpłynąć na złożoność obliczeniową całego algorytmu więc wybór odpowiednich struktur danych jest sprawą kluczową decydującą o efektywności działania programów. Wybór odpowiednich struktur danych podyktowany jest poprzez rozwiązywany problem oraz możliwości obliczeniowe komputera. Wybór reprezentacji danych zależny jest nie tylko od możliwości komputera, lecz również zależny jest od przewidywanych operacji, jakie na danych będą wykonywane. Wykład 4. Strona 2.

3 Rodzaje podstawowych struktur danych Tablica składa się z wielu elementów tego samego typu ułożonych jedna po drugiej z możliwością odwoływania się do nich za pomocą indeksów. Rekord składa się z wielu elementów różnego typu, do których odwołujemy się za pomocą ich nazwy. Zbiór składa się z wielu elementów tego samego typu. Plik sekwencyjny składa się z sekwencji elementów różnego typu. Ciąg znaków składa się z sekwencji elementów typu znakowego. Kolejki FIFO (first in first out) składa się z ciągu elementów tego samego typu z możliwością wkładania elementów na jej końcu i wyciągania elementów z jej początku. Stos FILO (first in last out) składa się z ciągu elementów tego samego typu z możliwością wkładania i wyciągania elementów tylko z jego końca. Lista (pojedynczo lub podwójnie wiązane) składa się z elementów tego samego typu tak, że elementy są wzajemnie ze sobą powiązane tak, że każdy element zna tylko swojego następnika (ew. również poprzednika). Drzewo (binarne, rozpinające, pozycyjne, turniejowe) składa się z elementów tego samego typu ułożonych hierarchicznie w taki sposób, że każdy węzeł drzewa może być rodzicem dla innych węzłów, a węzły mające swojego rodzica nazywamy dziećmi. Graf (skierowane i nieskierowane, cykliczne, acykliczne, planarne) składa się z wierzchołków i krawędzi, które łączą ze sobą poszczególne wierzchołki w różny sposób. Wykład 4. Strona 3.

4 Tablica Tablica jest strukturą jednorodną, która składa się z elementów tego samego typu; charakteryzuje się swobodnym dostępem do danych, zaś składowe tablicy są indeksowane, co umożliwia łatwy i szybki dostęp do poszczególnych składowych tablicy: Definiujemy tablicy w Pascalu: type T = array [ZAKRES] of TYP; Deklaracja tablicy w Pascalu: var x: Wektor; np. type Wektor = array [1..50] of real; var i: Integer; Odwołanie do elementów tablicy poprzez odpowiedni indeks i, np.: x[i] Indeks tablicy może być stałą (np. x[3]), zmienną (np. x[i]), jak również wyrażeniem indeksowym (np. x[2*i+1]). Przykład 1. Poszukiwanie najmniejszego indeksu i składowej o wartości x var A: array[1.. ] of T { >0}; i:=0; repeat i:=i+1 until (A[i]=x) or (i= ); var i : Integer; if A[i] <> x then Writeln( ie ma takiego elementu w tablicy A. ) else Writeln ( Znaleziono x na, i, -tej pozycji w tablicy A. ); Wykład 4. Strona 4.

5 Tablica uporządkowana i wielowymiarowa Jeżeli elementy tablicy zostały wcześniej uporządkowane/posortowane przeszukiwanie można znacznie przyspieszyć. W takim przypadku stosuje się metodę połowienia przedziału, w którym może się znajdować poszukiwany element. Metodę tą nazywamy metodą bisekcją lub przeszukiwaniem połówkowym: i:=1; j:= ; repeat k:=(i+j) div 2 if x>a[k] then i:=k+1 else j:=k-1 until (A[k]=x) or (i>j) Górną granicą wymaganej liczby porównań jest log 2 Macierz (tablica dwuwymiarowa) to tablica, której składowe są również tablicami: np. M: array [1..10] of Wektor jest tablicą o 10 składowych (wierszach), z których każdy wiersz składa się z 50 składowych typu real i nazywa się macierzą 10x50 o składowych rzeczywistych lub też macierzą o 10 wierszach i 50 kolumnach. Odwołujemy się do elementów macierzy poprzez odpowiednie indeksy: M[i][j] lub M[i,j] Deklarację macierzy można uprościć w następujący sposób w Pascalu: M: array [1..10] of array [1..50] of real; lub M: array [1..10,1..50] of real; Wykład 4. Strona 5.

6 Record Rekord jest najprostszym sposobem tworzenia typów złożonych, składających się z elementów dowolnego typu. Definicja typu record w Pascalu: type LiczbaZespolona = record re, im: real; end type Osoba = record imie, nazwisko: alfa; dataurodzenia: Data; plec: (kobieta, mezczyzna); stancywilny: (wolny, zonaty, owdowialy, rozwiedziony) end Deklaracja zmiennej typu rekord w Pascalu: z: LiczbaZespolona; p: Osoba; Konstruujemy/inicjujemy rekord przez: z = LiczbaZespolona (1.0, -2.0); p = Osoba ( Jan, owak, Data(19,3,1976), mezczyzna, wolny); Wykład 4. Strona 6.

7 Zbiór Zbiór odnosi się do elementów tego samego typu. Definiujemy go następująco: type Z = set of TYP np. type zbiorznakow = set of char Deklaracja zbioru: zz := [ +, -, d, g, 5 ] a wszystkich typach zbiorowych są określone następujące operatory elementarne, uszeregowane według priorytetów: * - przecięcie (mnożenie) zbiorów + - suma (dodawanie) zbiorów - - różnica zbiorów in - należenie do zbioru r*s+t = (r*s) + t; r-s*t = r-(s*t); r-s+t = (r-s)+t; x in s+t = x in (s+t) Zbiór S wygodnie jest reprezentować w pamięci komputera za pośrednictwem jego funkcji charakterystycznej C(s). Jest to wektor wartości logicznych, którego i-ta składowa określa występowanie bądź brak wartości i w zbiorze, np. zbiór liczb całkowitych: S = [1,4,8,9] jest reprezentowany przez ciąg wartości logicznych F (fałsz) i T (prawda) następująco: C(s) = (FTFFTFFFTT) jeśli typem podstawowym zbioru S jest Wykład 4. Strona 7.

8 Zbiór i jego reprezentacja w pamięci W pamięci komputera sekwencja wartości logicznych jest reprezentowana przez ciąg bitów: S: reprezentacja w pamięci kolejne bity Reprezentacja zbioru przez jego funkcję charakterystyczną ma tę zaletę, że operacje obliczania sumy, przecięcia i różnicy dwóch zbiorów można realizować w maszynie cyfrowej jako elementarne operacje logiczne. Sprawdzanie czy element x należy do zbioru możemy wykonać poprzez badanie warunku: if x in [c 1, c 2,..., c n ] then Zamiast if (x= c 1 ) or (x= c 2 ) or or (x= c n ) then Wykład 4. Strona 8.

9 Plik sekwencyjny (ciąg) Plik sekwencyjny (ciąg) należy do struktur danych o mocy nieskończonej: type tekst = file of char {definicja typu pliku znakowego (tekstowego)} rewrite(x) {konstruowanie pliku/ciągu pustego} put(x) {wydłuża plik/ciąg x poprzez dołączenie na jego końcu elementu z bufora} reset(x) {zapoczątkowuje przeglądanie pliku/ciągu x} get(x) {przejście do następnej składowej, odczytanie jej i przypisanie do bufora} eof(x) {służy do badania, czy został osiągnięty koniec pliku x} read(x,v) {odczytanie elementu z ciągu x i zapisanie go do zmiennej v} write(x,v) {wydłuża plik/ciąg x poprzez dołączenie na jego końcu elementu v} Przykłady: rewrite (x); while p do begin Operacja(v); write (x,v) end; reset (x); while not(eof(x)) do begin read(x,v); Operacja(v) end; Wykład 4. Strona 9.

10 Teksty i pliki tekstowe Teksty odgrywają szczególnie istotną rolę w przetwarzaniu danych, albowiem służą do komunikacji użytkownika z komputerem. type tekst = file of char; var input, output: tekst; writeln(f) {dołącz znak końca wiersza do pliku f} readln(f) {przeskocz ciąg znaków pliku f aż do znaku występującego bezpośrednio po najbliższym znaczniku końca wiersza} eoln(f) {funkcja booloa, która przyjmuje wartość true, jeśli aktualna pozycja pliku azuje na separator wiersza, w przeciwnym przypadku przyjmuje wartośćfalse} rewrite(f); while not(q) do begin while not(p) do begin Operacja(x); write (f,x) end; writeln(f) end reset(f); while not eof(f) do begin Operacja1(); while not eoln(f) do begin read(f,x); Operacja2(x); end; Operacja3(); readln(f) end Wykład 4. Strona 10.

11 Dynamiczne struktury danych Dynamiczne struktury danych charakteryzują się zmiennością swoich struktur podczas procesu obliczeniowego. Zmiany te dotyczą przede wszystkim ich rozmiarów (ilości zajętej pamięci). a dynamiczne struktury danych kompilator nie może z góry przydzielić określonej ilości pamięci podczas dokonywanej translacji kodu, gdyż jej ilość może się zmieniać. Mówimy więc o tzw.dynamicznym przydzielaniu pamięci już podczas wykonywania programu. Oznacza to przydzielanie pamięci każdej ze składowych w chwili powołania danego obiektu do życia. Kompilator w procesie translacji przydziela więc tylko stałą ilość pamięci na zapamiętanie adresu składowej umieszczanej dynamicznie w pamięci zamiast samej składowej. Zmienna statyczna powiązana jest z konkretnym miejscem i rozmiarem pamięci już w momencie kompilacji programu. Zmienna dynamiczna jest tworzona i usuwana podczas wykonywania programu. Tak więc pamięć potrzebna do zapamiętania zmiennej dynamicznej może być przydzielana (w miarę dostępnych zasobów), zwalniana i znowu przydzielana innej zmiennej. W Pascalu można tworzyć proste zmienne dynamiczne oraz dynamiczne struktury danych, np. listy. Dynamiczne struktury danych mogą się rozszerzać lub kurczyć w miarę potrzeb w trakcie wykonywania programu. Wykład 4. Strona 11.

12 Wskaźniki i przykład ich zastosowania Dynamiczny przydział pamięci jest realizowany za pomocą aźników, które są specjalnym typem zmiennej, która nie przechowuje żadnych danych, lecz adres ich położenia w pamięci. W programie można zmienić wartość aźnika, tak aby azywał na inne miejsce pamięci lub żeby nie azywał żadnego miejsca ( IL). Można też zwolnić miejsce związane z określonym aźnikiem i przydzielić je innym zmiennym. Listy są przydatne w sytuacjach, gdy nie można przewidzieć zapotrzebowania na pamięć. Wskaźniki służą do powiązania poszczególnych elementów listy ze sobą. Każdy element listy zawiera minimalnie jeden aźnik, który azuje następny element listy (lista pojedynczo wiązana). Można też zastosować dwa aźniki, wtedy azywany jest również element poprzedni listy. Tablice można traktować jako przeciwieństwo list, gdyż te wymagają określenia wielkości w momencie ich tworzenia bez dalszej możliwości ich zwiększania czy zmniejszania. Wadą tablic jest więc konieczność przydzielania takiej ilości pamięci, ile wymaga maksymalna przewidziana liczba danych. Takie postępowanie może być dużym marnotrawstwem pamięci. Wykład 4. Strona 12.

13 Definiowanie aźników i operacje na aźnikach Wskaźniki mogą odwoływać się do danych dowolnego typu. W Pascalu chcąc odnieść się do obiektu azywanego przez aźnik dodajemy daszek ^. Deklaracja aźnika azującego na zmienną typu integer : var Wsk_Int : ^integer; astępnie trzeba przydzielić pamięć dla danej typu integer azywanej przez ten aźnik: new (Wsk_Int); Przypisanie: Wsk_Int^ := 500; Zmienna = Wsk_Int^; Działania na aźnikach ograniczają się do porównania, np.: if Wsk1 = Wsk2 then...; i do przypisania wartości, np.: Wsk1 := Wsk2; W wyniku takiego działania zmienia się miejsce odwołania aźnika Wsk1 na takie samo, jakie ma aźnik Wsk2. Miejsce pamięci azywane wcześniej prze Wsk1 jest po wykonaniu działania niedostępne (o ile nie azywał na nie inny aźnik). Zwalnianie miejsca pamięci azywanego przez aźnik: dispose (Wsk_Int); Wykład 4. Strona 13.

14 Funkcje i procedury na aźnikach ew tworzy nową dynamiczną zmienną i przypisuje jej adres zmiennej: procedure ew(var P: Pointer); Dispose zwalnia pamięć przydzieloną dynamicznej zmiennej: procedure Dispose(var P: Pointer); Przykłady: type Str18 = string[18]; var P: ^Str18; begin ew(p); P^ := ' ow you see it...'; Dispose(P); { ow you don't... } end. Wykład 4. Strona 14.

15 Dynamiczny przydział pamięci GetMem tworzy dynamiczną zmienną o podanej wielkości i przypisuje adres tego bloku do wyspecyfikowanego aźnika: procedure GetMem(var P: Pointer; Size: Word); FreeMem zwalnia pamięć zajmowaną przez dynamiczną zmienną o określonej wielkości: procedure FreeMem(var P: Pointer; Size: Word); Przykłady: type TFriendRec = record ame: string[30]; Age : Byte; end; var p: pointer; begin if MaxAvail < SizeOf(TFriendRec) then Writeln(' ot enough memory') else begin GetMem(p, SizeOf(TFriendRec)); { Allocate memory on heap } {...Use the memory... } FreeMem(p, SizeOf(TFriendRec)); { Then free it when done } end; end. Wykład 4. Strona 15.

16 Stos (FILO First In Last Out) STOS FILO DODAWA IE USUWA IE góra góra +1. góra IL 1. IL 1. IL Wykład 4. Strona 16.

17 Definicja i deklaracja stosu w Pascalu Deklaracja dynamicznej struktury stosu: TYPE StosPtr = ^Stos; Stos = record dolny : StosPtr; zawartosc: integer end Tworzenie pustego stosu: VAR wierzch : StosPtr; wierzch := IL; Wstawianie nowego elementu (recordu) na górę stosu: VAR nowy : StosPtr; ew (nowy); nowy^.dolny := wierzch; wierzch := nowy; Usuwanie górnego elementu (recordu) ze stosu: if (wierzch^.dolny) then begin usuwany := wierzch; wierzch := wierzch^.dolny; Dispose (usuwany) end else begin Dispose (wierzch); wierzch := IL end; Wykład 4. Strona 17.

18 Kolejki (FIFO First In First Out) Dynamiczna struktura kolejki: koniec. IL początek Usuwanie elementu (rekordu) z początku kolejki: koniec. IL początek Dodawanie nowego elementu (rekordu) na koniec kolejki: koniec początek +1. IL Wykład 4. Strona 18.

19 Definicja i deklaracja kolejki w Pascalu Deklaracja dynamicznej struktury kolejki: TYPE KolejkaPtr = ^Kolejka; Kolejka = record nastepny : KolejkaPtr ; zawartosc: integer end Pusta kolejka: VAR poczatek, koniec : KolejkaPtr ; poczatek := IL; koniec := IL; Wstawianie nowego elementu (recordu) na koniec kolejki: VAR nowy : KolejkaPtr ; ew (nowy); koniec^.nastepny := nowy; nowy^.nastepny := IL; koniec := nowy; Usuwanie elementu (recordu) z przodu kolejki: if (poczatek) then begin usuwany := poczatek; poczatek := poczatek^.nastepny; Dispose (usuwany) end Wykład 4. Strona 19.

20 Listy pojedynczo wiązane Przykład listy pojedynczo wiązanej: początek IL Wklejanie elementu (rekordu) na początek listy: OWY początek Wklejanie elementu (rekordu) do środka listy: OWY. IL początek IL Wykład 4. Strona 20.

21 Listy pojedynczo wiązane Przykład listy pojedynczo wiązanej: początek IL Usuwanie elementu (rekordu) z początku listy: początek IL Usuwanie elementu (rekordu) ze środka listy: początek IL Wykład 4. Strona 21.

22 Listy podwójnie wiązane Przykład listy pojedynczo wiązanej: koniec początek 1. następny 2. następny 3. następny. IL IL poprzed. poprzed. poprzed. Wklejanie elementu (rekordu) do środka listy: OWY następny poprzed. koniec początek 1. następny 2. następny 3. następny. IL IL poprzed. poprzed. poprzed. Usuwanie elementu (rekordu) ze środka listy: koniec początek 1. następny IL 2. następny poprzed. 3. następny poprzed.. IL poprzed. Wykład 4. Strona 22.

23 Implementacja listy z wykorzystaniem tablicy INDEKSY TABLICY: NASTĘPNIKI ELEMENTÓW LISTY PODWÓJNIE WIĄZANEJ: POPRZEDNIKI ELEMENTÓW LISTY PODWÓJNIE WIĄZANEJ : Listę wobec tego możemy zaimplementować również z wykorzystaniem tablicy. Mankamentem takiej implementacji jest niemożliwość rozszerzenia listy poza wyznaczony rozmiar tablicy oraz ew. nieoszczędność takiej implementacji, jeśli lista jest mała, a zadeklarowania tablica bardzo duża. Wykład 8. Strona 23.

24 Definicja i deklaracja listy w Pascalu Definicja i deklaracja dynamicznej struktury listy podwójnie wiązanej: TYPE ListPtr = ^List; List = record nastepny, poprzedni : ListPtr; zawartosc: integer end Tworzenie pustej listy dwukierunkowej: VAR poczatek, koniec : ListPtr; poczatek := IL; koniec := IL; Wstawianie nowego elementu (recordu) po aktualnym aźniku do listy: VAR nowy : ListPtr; ew (nowy); nowy^.nastepny := aktualny^.nastepny; nowy^.poprzedni := aktualny; nowy^.nastepny^.poprzedni := nowy; aktualny^.nastepny := nowy; Usuwanie azywanego elementu (recordu) z listy: aktualny^.następny^.poprzedni := aktualny^.poprzedni; aktualny^.poprzedni^.nastepny := aktualny^.nastepny; if (aktualny^.poprzedni) begin aktualny := aktualny^.poprzedni; Dispose (aktualny^.nastepny) end else if (aktualny^.nastepny) begin aktualny := aktualny^.nastepny; Dispose (aktualny^.poprzedni) end else begin Dispose (aktualny); aktualny := IL end; Wykład 4. Strona 24.

25 Edycja kodu źródłowego w Pascalu PROGRAM Nazwa; USES NazwaBiblioteki; CONST NazwaStalej = WartoscStalej; TYPE NazwaTypu = DefinicjaTypu; VAR NazwaZmiennejGlobalnej : TypZmiennejGlobalnej; BEGIN Readln (a); {wielkość liter w nazwach instrukcji nie ma znaczenia} FOR i=1 TO a DO BEGIN IF i<10 THEN Writeln ( Mała liczba ) {brak średnika przed ELSE} ELSE Writeln ( Duża liczba ) {brak średnika przed END} END Writeln ( Wcięcia w programie powinny odwzorowywać strukturę! ); REPEAT UNTIL Keypressed {brak średnika przed END} END. {program główny w Pascalu kończy się kropką} {Wcięcia ułatwiają orientację w programie i jego czytelność.} Wykład 4. Strona 25.

26 Algorytm obliczania NWD - klasyczny Klasyczny szkolny algorytm charakteryzuje się dużą złożonością obliczeniową. Wykład 4. Strona 26.

27 Algorytm obliczania NWD poszukiwanie efektywnego alg. Dążenie do efektywności i optymalizacji to cecha dobrych informatyków! Wykład 4. Strona 27.

28 Wyszukiwanie z wykorzystaniem wartownika Zadanie wyszukania słowa w słowniku uporządkowanych słów. Wykład 4. Strona 28.

29 Wyszukiwanie połówkowe Dziel i zwycięŝaj! Zasada wyszukiwania połówkowego polega na podzieleniu posortowanego ciągu elementów na 2 części, zbadanie, w której z nich leży poszukiwany element i powtórzeniu tego algorytmu tylko dla tej części, w której on leży. Dzięki takiemu podziałowi uzyskujemy złożoność obliczeniową wyszukiwania O(log n), gdzie n ilość elementów ciągu. Zasadę tą stosujemy we wielu bardziej skomplikowanych algorytmach, np. podczas sortowania. Wykład 4. Strona 29.

30 Potęgowanie o wykładniku naturalnym Można zauważyć, iż w przypadku wykładników o większych potęgach można wykorzystać wcześniejsze wyniki mnożenia zamiast mnożenia podstawy n-1 razy: Wykład 4. Strona 30.

31 Obliczanie dnia tygodnia Dzień tygodnia może być obliczony bardzo efektywnie zastępując intuicyjne dodawanie od wybranej daty wzorami matematycznymi, które bez wykorzystania pętli obliczą stosowny dzień tygodnia z uwzględnieniem lat przestępnych, różnej ilości dni w poszczególnych miesiącach itp. Wykład 4. Strona 31.

32 Obliczanie wartości wielomianu Często prosta zamiana kolejności operacji i umiejętne wykorzystanie wspólnych wyników cząstkowych umożliwia zmniejszenie złożoności obliczeń. Wykład 4. Strona 32.

33 Literatura i bibliografia: L. Banachoi, K. Diks, W. Rytter: Algorytmy i struktury danych, WNT, Warszawa, 2001 Z. Fortuna, B. Macukow, J. Wąsoi, Metody numeryczne, WNT, Warszawa, K. Jakubczyk, Turbo Pascal i Borland C++, Wydanie II, Helion, J. i M. Jankowscy, Przegląd metod i algorytmów numerycznych, WNT, Warszawa, A. Kiełbasiński, H. Schwetlick, Numeryczna algebra liniowa, WNT, Warszawa A. Kierzkoi, Turbo Pascal. Ćwiczenia praktyczne., Helion K. Koleśnik, Wstęp do programowania z przykładami w Turbo Pascalu, Helion, M. Sysło: Elementy Informatyki. A. Szepietoi: Podstawy Informatyki. R. Tadeusiewicz, P. Moszner, A. Szydełko: Teoretyczne podstawy informatyki. W. M. Turski: Propedeutyka informatyki. N. Wirth: Wstęp do programowania systematycznego. N. Wirth: ALGORYTMY + STRUKTURY DANYCH = PROGRAMY. Wykład 4. Strona 33.

PODSTAWY INFORMATYKI wykład 10.

PODSTAWY INFORMATYKI wykład 10. PODSTAWY INFORMATYKI wykład 10. Adrian Horzyk Web: http://home.agh.edu.pl/~horzyk/ E-mail: horzyk@agh.edu.pl Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutniacza w Krakowie WEAIiE,

Bardziej szczegółowo

PODSTAWY INFORMATYKI wykład 5.

PODSTAWY INFORMATYKI wykład 5. PODSTAWY INFORMATYKI wykład 5. Adrian Horzyk Web: http://home.agh.edu.pl/~horzyk/ E-mail: horzyk@agh.edu.pl Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutnicza w Krakowie WEAIiE,

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325 PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj

Bardziej szczegółowo

PODSTAWY INFORMATYKI wykład 6.

PODSTAWY INFORMATYKI wykład 6. PODSTAWY INFORMATYKI wykład 6. Adrian Horzyk Web: http://home.agh.edu.pl/~horzyk/ E-mail: horzyk@agh.edu.pl Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutnicza w Krakowie WEAIiE,

Bardziej szczegółowo

WSTĘP DO INFORMATYKI. Struktury liniowe

WSTĘP DO INFORMATYKI. Struktury liniowe Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Struktury liniowe www.agh.edu.pl STRUKTURY LINIOWE SEKWENCJE Struktury

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

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy) Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013

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

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 INFORMATYKI wykład 1.

PODSTAWY INFORMATYKI wykład 1. PODSTAWY INFORMATYKI wykład 1. Adrian Horzyk Web: http://home.agh.edu.pl/~horzyk/ E-mail: horzyk@agh.edu.pl Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutniacza w Krakowie WEAIiE,

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

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

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

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

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

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

Algorytmy i struktury danych. wykład 5

Algorytmy i struktury danych. wykład 5 Plan wykładu: Wskaźniki. : listy, drzewa, kopce. Wskaźniki - wskaźniki Wskaźnik jest to liczba lub symbol który w ogólności wskazuje adres komórki pamięci. W językach wysokiego poziomu wskaźniki mogą również

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

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

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

Bardziej szczegółowo

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego

Bardziej szczegółowo

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania 1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca

Bardziej szczegółowo

Podstawy Informatyki. Wykład 6. Struktury danych

Podstawy Informatyki. Wykład 6. Struktury danych Podstawy Informatyki Wykład 6 Struktury danych Stałe i zmienne Podstawowymi obiektami występującymi w programie są stałe i zmienne. Ich znaczenie jest takie samo jak w matematyce. Stałe i zmienne muszą

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

Informatyka 1. Przetwarzanie tekstów

Informatyka 1. Przetwarzanie tekstów Informatyka 1 Wykład IX Przetwarzanie tekstów Robert Muszyński ZPCiR ICT PWr Zagadnienia: reprezentacja napisów znakowych, zmienne napisowe w Sun Pascalu, zgodność typów, operowanie na napisach: testowanie

Bardziej szczegółowo

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element

Bardziej szczegółowo

Wstęp do programowania. Listy. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Listy. Piotr Chrząstowski-Wachtel Wstęp do programowania Listy Piotr Chrząstowski-Wachtel Do czego stosujemy listy? Listy stosuje się wszędzie tam, gdzie występuje duży rozrzut w możliwym rozmiarze danych, np. w reprezentacji grafów jeśli

Bardziej szczegółowo

Metody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/

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

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

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

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie

Bardziej szczegółowo

Dynamiczne struktury danych: listy

Dynamiczne struktury danych: listy Dynamiczne struktury danych: listy Mirosław Mortka Zaczynając rogramować w dowolnym języku rogramowania jesteśmy zmuszeni do oanowania zasad osługiwania się odstawowymi tyami danych. Na rzykład w języku

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

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

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Programowanie w Turbo Pascal

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

Bardziej szczegółowo

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

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

Przykładowe B+ drzewo

Przykładowe B+ drzewo Przykładowe B+ drzewo 3 8 1 3 7 8 12 Jak obliczyć rząd indeksu p Dane: rozmiar klucza V, rozmiar wskaźnika do bloku P, rozmiar bloku B, liczba rekordów w indeksowanym pliku danych r i liczba bloków pliku

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06

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

WSTĘP DO INFORMATYKI WPROWADZENIE DO ALGORYTMIKI

WSTĘP DO INFORMATYKI WPROWADZENIE DO ALGORYTMIKI Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk WPROWADZENIE DO ALGORYTMIKI www.agh.edu.pl ALGORYTMIKA Algorytmika

Bardziej szczegółowo

Dynamiczne struktury danych

Dynamiczne struktury danych Dynamiczne struktury danych 391 Dynamiczne struktury danych Przez dynamiczne struktury danych rozumiemy proste i złożone struktury danych, którym pamięć jest przydzielana i zwalniana na żądanie w trakcie

Bardziej szczegółowo

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

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

Wstęp do informatyki

Wstęp do informatyki Wstęp do informatyki LITERATURA: L. Banachowski, K. Diks, W. Rytter: Algorytmy i struktury danych, WNT, Warszawa, 2001 M. Iglewski, J. Madey, S. Matwin: Pascal A. Marciniak: Turbo Pascal W. J. Savith:

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 4 Tablice nieporządkowane i uporządkowane

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane Algorytmy i struktury danych Wykład 4 Tablice nieporządkowane i uporządkowane Tablice uporządkowane Szukanie binarne Szukanie interpolacyjne Tablice uporządkowane Szukanie binarne O(log N) Szukanie interpolacyjne

Bardziej szczegółowo

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119 Tablice Tablica to struktura danych, która może przechowywać wiele wartości tego samego typu. Na przykład tablica może zawierać: 10 wartości typu int opisujących liczbę studentów przyjętych na kierunek

Bardziej szczegółowo

PLIKI TEKSTOWE F C E 30 0D 0A 42 6F 72 6C 61 6E 64 1A T U R B O _ P A S C A L _ 7. 0

PLIKI TEKSTOWE F C E 30 0D 0A 42 6F 72 6C 61 6E 64 1A T U R B O _ P A S C A L _ 7. 0 PLIKI TEKSTOWE plik_liczb : file of integer; plik_znakow : file of char; plik_linii : text; deklaracja zmiennej plikowej Przykład sekwencji bajtów: 54 55 52 42 4F 20 50 41 53 43 41 4C 20 37 2E 30 0D 0A

Bardziej szczegółowo

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

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

Bardziej szczegółowo

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C Opublikowano w: WEREWKA J..: Podstawy programowana dla automatyków. Skrypt AGH Nr 1515, Kraków 1998 20. i łączenie podprogramów a z programem napisanym w Ze względu na duże rozpowszechnienie języka, szczególnie

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

Wstęp do programowania. Pliki. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Pliki. Piotr Chrząstowski-Wachtel Wstęp do programowania Pliki Piotr Chrząstowski-Wachtel Pamięci zewnętrzne Pamięć wewnętrzna (RAM) jest jednorodna. Dostęp do każdej komórki jest szybki i kosztuje tyle samo W przypadku pamięci zewnętrznych

Bardziej szczegółowo

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku System plików 1. Pojęcie pliku 2. Typy i struktury plików 3. etody dostępu do plików 4. Katalogi 5. Budowa systemu plików Pojęcie pliku (ang( ang. file)! Plik jest abstrakcyjnym obrazem informacji gromadzonej

Bardziej szczegółowo

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43 Programowanie w C++ Wykład 6 Katarzyna Grzelak 1 kwietnia 2019 K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły

Bardziej szczegółowo

Lista 5 Typy dynamiczne kolejka

Lista 5 Typy dynamiczne kolejka Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Metody i języki programowania 1 Wprowadzenie Lista 5 Typy dynamiczne kolejka Kolejka jest jedną z podstawowych struktur umożliwiających

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

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

Bardziej szczegółowo

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to

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

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

Wszystkie zmienne typu plikowego, z wyjątkiem Output i Input muszą być zadeklarowane w sekcji deklaracji programu, który z nich korzysta.

Wszystkie zmienne typu plikowego, z wyjątkiem Output i Input muszą być zadeklarowane w sekcji deklaracji programu, który z nich korzysta. Programowanie strukturalne - pliki 1 LEKCJA 29. TYPY STRUKTURALNE - PLIKI Wprowadzenie Zmienne proste, tablice i rekordy są wykorzystywane w programie do przechowywania danych podczas wykonywania programu;

Bardziej szczegółowo

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK 1 2 3 Pamięć zewnętrzna Pamięć zewnętrzna organizacja plikowa. Pamięć operacyjna organizacja blokowa. 4 Bufory bazy danych. STRUKTURA PROSTA

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

Tabela wewnętrzna - definicja

Tabela wewnętrzna - definicja ABAP/4 Tabela wewnętrzna - definicja Temporalna tabela przechowywana w pamięci operacyjnej serwera aplikacji Tworzona, wypełniana i modyfikowana jest przez program podczas jego wykonywania i usuwana, gdy

Bardziej szczegółowo

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel Wstęp do programowania Procedury i funkcje Piotr Chrząstowski-Wachtel Po co procedury i funkcje? Gdyby jakis tyran zabronił korzystać z procedur lub funkcji, to informatyka by upadła! Procedury i funkcje

Bardziej szczegółowo

Wykład 1: Wskaźniki i zmienne dynamiczne

Wykład 1: Wskaźniki i zmienne dynamiczne Programowanie obiektowe Wykład 1: Wskaźniki i zmienne dynamiczne 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD Podstawy programowania w C++ Wskaźniki 2 dr Artur Bartoszewski - Programowanie

Bardziej szczegółowo

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA Rekurencja - zdolność podprogramu (procedury) do wywoływania samego (samej) siebie Wieże Hanoi dane wejściowe - trzy kołki i N krążków o różniących się średnicach wynik - sekwencja ruchów przenosząca krążki

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

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje Podstawy informatyki Informatyka stosowana - studia niestacjonarne - Zajęcia nr 4 Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w

Bardziej szczegółowo

Wykład 6_1 Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych

Wykład 6_1 Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych Wykład 6_ Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych Abstrakcyjny typ danych Klient korzystający z abstrakcyjnego typu danych: o ma do dyspozycji jedynie

Bardziej szczegółowo

Struktury Danych i Złożoność Obliczeniowa

Struktury Danych i Złożoność Obliczeniowa Struktury Danych i Złożoność Obliczeniowa Zajęcia 1 Podstawowe struktury danych Tablica Najprostsza metoda przechowywania serii danych, zalety: prostota, wady: musimy wiedzieć, ile elementów chcemy przechowywać

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

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom

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

Struktury danych (I): kolejka, stos itp.

Struktury danych (I): kolejka, stos itp. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Struktury danych (I): kolejka, stos itp. Struktury danych (I): kolejka, stos itp. Struktura danych stanowi sposób uporządkowania

Bardziej szczegółowo

Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Niestacjonarne (stacjonarne / niestacjonarne)

Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Niestacjonarne (stacjonarne / niestacjonarne) Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Informatyka 2 Nazwa modułu w języku angielskim Computer science 2 Obowiązuje

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 5b: Model danych oparty na listach http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Słowem wstępu Listy należą do najbardziej

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

Struktury danych: stos, kolejka, lista, drzewo

Struktury danych: stos, kolejka, lista, drzewo Struktury danych: stos, kolejka, lista, drzewo Wykład: dane w strukturze, funkcje i rodzaje struktur, LIFO, last in first out, kolejka FIFO, first in first out, push, pop, size, empty, głowa, ogon, implementacja

Bardziej szczegółowo

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego Pascal 1. Pliki tekstowe Przykład 1.1. Zapis do pliku tekstowego {deklaracja zmiennej tekstowej 'plik'} plik: text; {skojarzenie zmiennej plikowej 'plik' z plikiem na dysku (podajemy lokalizacje)} {tworzenie

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania dr Elżbieta Gawrońska gawronska@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 14 1 / 9 Plan wykładu 1 Sesja egzaminacyjna

Bardziej szczegółowo

Algorytmika i pseudoprogramowanie

Algorytmika i pseudoprogramowanie Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry

Bardziej szczegółowo

Przydział pamięci. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Przydział pamięci. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki Przydział pamięci Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Terminologia Program s(input,output) {SORT} program główny można traktować także jako procedurę var a: array[0..10] of integer;

Bardziej szczegółowo

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie

Bardziej szczegółowo

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady

Bardziej szczegółowo

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis} 1 WIADOMOŚCI WSTĘPNE Programowanie komputerów najogólniej mówiąc polega na zapisaniu pewniej listy poleceń do wykonania przez komputer w pewnym umownym języku Taką listę poleceń nazywamy programem Program

Bardziej szczegółowo

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej. Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk PROLOG www.agh.edu.pl Pewnego dnia przyszedł na świat komputer Komputery

Bardziej szczegółowo

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak

Bardziej szczegółowo

Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych

Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych Algorytmy i Struktury Danych Wykład IV Sortowania cd. Elementarne struktury danych 1 Co dziś? Dolna granica sortowań Mediany i statystyki pozycyjne Warstwa implementacji Warstwa abstrakcji #tablice #listy

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

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

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

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: Sortowanie Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: podać strukturę danych dla elementów dynamicznego skończonego multi-zbioru S, względem którego są wykonywane następujące

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Tablice Wskaźniki Adresy pamięci Operator adresu

Bardziej szczegółowo

Abstrakcyjne struktury danych - stos, lista, drzewo

Abstrakcyjne struktury danych - stos, lista, drzewo Sprawozdanie Podstawy Informatyki Laboratoria Abstrakcyjne struktury danych - stos, lista, drzewo Maciej Tarkowski maciek@akom.pl grupa VII 1/8 1. Stos Stos (ang. Stack) jest podstawową liniową strukturą

Bardziej szczegółowo

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3 KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:

Bardziej szczegółowo

Metodyka i Technika Programowania 1

Metodyka i Technika Programowania 1 Metodyka i Technika Programowania 1 Pytania zaliczeniowe z wykładu mgr inż. Leszek Ciopiński Wykład I 1. Wprowadzenie 1.1. Programowanie imperatywne polega na: 1.2. Czy w programowaniu imperatywnym programista

Bardziej szczegółowo