PODSTAWY INFORMATYKI wykład 4.
|
|
- Czesław Kowalczyk
- 5 lat temu
- Przeglądów:
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. 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ółowoPODSTAWY 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ółowoprowadzą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ółowoPODSTAWY 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ółowoWSTĘ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ółowoProgramowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Bardziej szczegółowoDynamiczny 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ółowoINSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};
INSTRUKCJA PUSTA Nie składa się z żadnych znaków i symboli, niczego nie robi Przykłady: for i := 1 to 10 do {tu nic nie ma}; while a>0 do {tu nic nie ma}; if a = 0 then {tu nic nie ma}; INSTRUKCJA CASE
Bardziej szczegółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Bardziej szczegółowoPODSTAWY 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ółowoPoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj
Bardziej szczegółowoPascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:
Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym
Bardziej szczegółowoWstęp do programowania. Różne różności
Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste
Bardziej szczegółowoJęzyk programowania PASCAL
Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO
Bardziej szczegółowoWykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe
Podstawy programowania Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe 1 I. Składnia Składnia programu Program nazwa; Uses biblioteki; Var deklaracje zmiennych;
Bardziej szczegółowoWykł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ółowoAlgorytmy 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ółowoAlgorytmy 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ółowoPodstawy 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ółowoZł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ółowo1. 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ółowoPodstawy 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ółowoPodstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.
Podstawy programowania Wykład PASCAL Zmienne wskaźnikowe i dynamiczne 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje zmiennych Zmienne dzielą się na statyczne i dynamiczne. Zmienna
Bardziej szczegółowoInformatyka 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ółowoWykł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ółowoWstę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ółowoMetody 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ółowoPascal - wprowadzenie
Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego
Bardziej szczegółowoDIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0
Uwaga: DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 1. Zostały pominięte diagramy: CYFRA, CYFRA SZESNASTKOWA, ZNAK i LITERA. Nie została uwzględniona możliwość posługiwania się komentarzami. 2. Brakuje
Bardziej szczegółowoInstrukcje 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ółowoAlgorytmy 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ółowoDynamiczne 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ółowoPodstawy 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ółowoAlgorytmy 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ółowoElżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki
Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,
Bardziej szczegółowoPodstawy 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ółowoTemat: 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ółowoProgramowanie 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ółowoPliki. 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ółowoWykł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ółowoOPERACJE 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ółowoPrzykł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ółowoAlgorytmy 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ółowoWstęp do programowania
Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje
Bardziej szczegółowoWSTĘ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ółowoDynamiczne 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ółowoInformatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa
Informatyka 1 Wykład III Wyrażenia i instrukcje, złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: składnia wyrażeń, drzewa rozbioru gramatycznego i wyliczenia wartości wyrażeń, operatory
Bardziej szczegółowoWstę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ółowoPodstawy programowania
Podstawy programowania Część piąta Proste typy danych w języku Pascal Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura
Bardziej szczegółowoAlgorytmy 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ółowoTablice. 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ółowoPLIKI 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ółowoWykł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ółowo20. 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ółowoPodstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Bardziej szczegółowoWstę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ółowoang. 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ółowoProgramowanie 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ółowoLista 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ółowoZASADY 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ółowoWskaź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ółowoWykł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ółowoProgramowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Bardziej szczegółowoWszystkie 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ółowowykł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ółowoPodstawy 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ółowoTabela 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ółowoWstę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ółowoWykł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ółowoWYŻ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ółowoWykł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ółowoMateriał 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ółowoWykł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ółowoStruktury 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ółowoProgramowanie 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ółowoWykł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ółowoUwagi 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ółowoStruktury 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ółowoElektrotechnika 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ółowoTeoretyczne 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 1. Wczytywanie z plików tekstowych. Wczytywanie z pliku tekstowego wymaga: a) skojarzenia zmiennej plikowej z plikiem procedura assignfile b)
Bardziej szczegółowoStruktury 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ółowoPascal. 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ółowoPodstawy 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ółowoAlgorytmika 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ółowoPrzydział 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ółowoAlgorytmy 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ółowoKlasa 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ółowoWIADOMOŚ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ółowoPROLOG 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ółowoPodstawy 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ółowoAlgorytmy 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ółowoZasady 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ółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoWykł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ółowoSortowanie. 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ółowoWstę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ółowoAbstrakcyjne 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ółowoKARTA 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ółowoMetodyka 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