PODSTAWY INFORMATYKI wykład 4.
|
|
- Czesław Kowalczyk
- 6 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,
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,
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
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,
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
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
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
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
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
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,
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
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
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
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
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;
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
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ż
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
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ą
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
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
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ą
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
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
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
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
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/
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
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
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
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
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
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
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,
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,
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
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,
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
Pliki. Operacje na plikach w Pascalu
Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie
Wykład 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++)
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
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
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
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
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
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
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
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:
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
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
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
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
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
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
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:
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
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
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
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
ZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
Wskaźniki 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
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;
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
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;
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
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
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
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
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
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
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ą,
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
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
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ć
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
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
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
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
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
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
Ć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)
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
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
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
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
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;
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
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
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
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
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
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
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,
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,
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
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
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
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ą
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:
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