PROGRAMOWANIE STRUKTURALNE

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Katarzyna Szafrańska kl. II ti
STRUKTURY DANYCH.
Sortowanie przez scalanie
C++ wykład 2 ( ) Klasy i obiekty.
C++ wykład 4 ( ) Przeciążanie operatorów.
Algorytmy – c.d. złożoność algorytmów struktury danych
Algorytmy – c.d. struktury danych złożoność algorytmów
Standardowa biblioteka języka C++
Wzorce.
Dynamiczne struktury danych Listy, Kolejki, Stosy
typy całkowite (całkowitoliczbowe)
PROGRAMOWANIE STRUKTURALNE
Elementarne struktury danych Piotr Prokopowicz
OBJECT PASCAL Marzena Szałas.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Kurs Pascala – spis treści
Model danych oparty na listach
Tablice.
INFORMATYKA Wykładowca: mgr Tadeusz Ziębakowski p. 126 I piętro (naprzeciw dziekanatu)
Dynamiczne struktury danych 1
Typy wskaźnikowe ogólne 1 Typy wskaźnikowe ogólne (general access types) umożliwiają pośredni dostęp (indirect access), czyli przez wskaźniki, do zadeklarowanych.
Wykład 1: Wskaźniki Podstawy programowania Programowanie w C
Wykład 2 struktura programu elementy języka typy zmienne
Wprowadzenie do programowania w języku Turbo Pascal
Typy wyrażenia, schematy blokowe, writeln, readln, if, pętle
Typy wskaźnikowe, dynamiczne struktury danych
Podprogramy.
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
Podstawy programowania II
Wskaźnik może wskazywać na obiekt dowolnego typu. int * w; char * Wsk_Znak; float * Wskaz_Float; Przykład: Wskaźnik przechowuje adres obiektu wskazanego.
Podstawy programowania
Podstawy programowania II
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Operacje na strukturach listowych
Andrzej Jędryczkowski Nie da się napisać większego programu bez podziału go na części zwane podprogramami. Podprogram to wyróżniona część programu.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
TABLICE C++.
Procedury i funkcje.
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Podstawy programowania
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Listy, stosy i kolejki..
Złożone typy danych Listy Tworzenie elastycznych baz danych
Podstawy programowania w języku C i C++
Zbiory i rekordy mgr inż. Agata Pacek. Deklaracja typu zbiorowego (określa ilość elementów w zbiorze) type biegi=set of 0..6; Definiowanie zmiennej typu.
Tablice. Tablica struktura danych, służy do przechowywania danych tego samego typu, zapisana w pamięci w sposób ciągły. Deklaracja tablicy PascalC++,
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Informatyka PDF Wykład 12.
Wykład 10 typ zbiorowy rekurencja.
Dynamiczne struktury danych
PL/SQL – dalsza wędrówka
Modele pamięci Tiny - mikroskopijny do 64 K zmienne inicjalizowane kod programu zmienne nie inicjalizowane HEAP (sterta) obszar wolny STACK (stos) Model.
Algorytmy i Struktury Danych Struktury Danych
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Wykład 11 Informatyka MPDI Podprogramy Zmienne typu zbiorowego Rekurencja Typ obiektowy Zmienne dynamiczne.
Zbiory dynamiczne.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
ALGORYTMY I STRUKTURY DANYCH
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Wykład 1 Informatyka II MPZI2 sem.letni. Tablice Tablice deklarujemy array [ lista typów indeksów ] of typ bazowy (składowych) np. var t1,t2:array [1..5,
Temat: Tworzenie bazy danych
Indeksy drzewiaste. ISAM ISAM - INDEXED SEQUENTIAL ACCESS METHOD Problem: –Dany jest plik uporządkowany – w jaki sposób zrealizować efektywnie zapytanie.
Typy wyliczeniowe, kolekcje
Listy.
Programowanie Obiektowe – Wykład 5
Zbiory rozłączne.
Wskaźniki Elżbieta Labocha.
Zapis prezentacji:

PROGRAMOWANIE STRUKTURALNE Wprowadzenie do programowania w TP. część 3

Temat: Tablice.

Tablica Tablica to struktura będąca uporządkowanym zbiorem elementów. Każdy element posiada własny niepowtarzalny numer pozwalający go szybko odnaleźć. Tablicę można porównać do ponumerowanych wieszaków w szatni: każdemu numerowi odpowiada dokładnie jedna zawieszona kurtka lub płaszcz - okrycie, aby odnaleźć kurtkę wystarczy znać przypisany jej numer.

Tablica jednowymiarowa Deklaracja tablicy var tablica = array[1..N] of typ; gdzie tablica – nazwa tablicy [1..N] - rozmiar tablicy od 1 do N typ - typ tablicy (np. integer)

Temat Zbiory

Zbiory (sets) Zbiory wykorzystuje się do przechowywania kolekcji elementów porządkowych. TYPE zbior = SET OF typ_podstawowy; (w Pascalu liczba elementów do 256)

Przykłady TYPE tydzien = (po, wt, sr, cz, pi, so, ni); zbiorliczb = SET OF 0..47; zbiorliter = SET OF 'A'..'Z'; dni_wolne = SET OF pi..ni; Tznakow = SET OF char; Tliczb = SET OF byte;

Przykłady var zbiorA, zbiorB, zbiorC: SET OF byte; begin zbiorA := [1,2,5,7]; zbiorB := [3,4,5,6]; zbiorC := zbiorA + zbiorB - [5]; if 5 in zbiorC then writeln (‘OK’); if 1 in zbiorC then writeln (‘Jest 1’); end.

Temat Rekordy

Rekordy – własne typy danych Czasami zachodzi potrzeba utworzenia własnego typu - rekordu, który będzie przechowywał wymyślone przez nas dane. Przypuśćmy że chciałbyś zbudować prostą bazę danych zawierającą imiona, nazwiska i inne dane swoich klientów. Zamiast przechowywać wszelkie dane w różnych osobnych tablicach, to tworzymy rekord.

Przykład type ksiazka=record autor:string[40]; nazwa:string[80]; rokwyd:integer; end; var biblioteka:array[1..50] of ksiazka; // … odwołanie do zawartości rekordu writeln(‘Autor: ’,biblioteka[2].autor);

Temat Wskaźniki

Wskaźniki Wskaźniki to adresy pamięci, które pokazują komputerowi miejsce gdzie znajdują się jakieś dane. Pamięć do której odnoszą się wskaźniki można w każdej chwili zwalniać, deklarować i zmieniać.

Wskaźniki – uwagi praktyczne Bez wskaźników nie byłoby możliwe nieograniczone tworzenie nowych danych, np. w słowniku. Gdyby nie wskaźniki mielibyśmy z góry określoną liczbę słów, które słownik byłby w stanie zapamiętać, oraz nie moglibyśmy w systemie uruchomić większej liczby programów niż w nim zaplanowano.

Przykład var wsk_na_liczbe:^integer; begin clrscr; new(wsk_na_liczbe); writeln('liczba=',wsk_na_liczbe^); dispose(wsk_na_liczbe); end.

Typ pointer Typ wskaźników nazywa się pointer. Gdy jakąś zmienną zadeklarujesz jako poiner, będzie ona wskaźnikiem. Wskaźniki mogą adresować różne typy zmiennych. Mogą adresować liczby, napisy, tablice, itd. Znacznik @ oznacza pobranie adresu zmiennej. Typ pointer należy rzutować (unikniemy błędu kompilacji) w określony typ.

Przykład var wskaznik:pointer; //tworzenie wskaźnika tekst:string; begin clrscr; tekst:=‘Zwykły tekst'; wskaznik:=@tekst; //pobranie adresu writeln(string(wskaznik^)); //rzutowanie end.

Posługiwanie się wskaźnikami i zmiennymi dynamicznymi Temat Posługiwanie się wskaźnikami i zmiennymi dynamicznymi

Ćwiczenia praktyczne

Funkcje i procedury dynamicznego przydziału pamięci Temat Funkcje i procedury dynamicznego przydziału pamięci

Wprowadzenie Dynamiczne struktury danych to takie, w których pamięć może być przydzielana w trakcie wykonywania programu, do tej operacji służą zmienne typu wskaźnikowego i zmienne wskazywane.

Wprowadzenie Struktury te mogą być proste i złożone. Za ich pomocą można tworzyć np. dynamiczne struktury listowe, tj. uporządkowane zbiory składników, niekoniecznie o jednakowych typach. Składniki te mogą być elementami prostymi (liczbami, czy pojedynczymi znakami) lub elementami złożonymi (tabliczmi, rkordami, obiektami, listami).

Typy struktur listowych stosy kolejki listy jednokierunkowe dwukierunkowe cykliczne drzewa

Tworzenie i przetwarzanie dynamicznych struktur danych- stos Temat Tworzenie i przetwarzanie dynamicznych struktur danych- stos

Stos Stos (stack) jest to struktura danych składająca się z liniowo uporządkowanych zbiorów składników, z których tylko „najwyższy” jest niejako dostępny. Miejsce dostępu to wierzchołek stosu. Jest to jedyne miejsce, do którego można dołączyć lub z którego można usunąć elementy.

wierzchołek Stos DANE wskaźnik Każdy składnik stosu posiada wyróżniony element (wskaźnik), który wskazuje na następujący po nim (aders) składnik Wskaźnik ostatniego składnika stosu wskazuje na pusty adres nil. Wierzchołek stosu to miejsce wstawiania i usuwania danych. DANE wskaźnik DANE wskaźnik DANE wskaźnik nil

Tworzenie i przetwarzanie dynamicznych struktur danych- kolejka Temat Tworzenie i przetwarzanie dynamicznych struktur danych- kolejka

Kolejki Kolejka (queue) jest strukturą składającą się z liniowo uporządkowanych zbiorów składników, do której można dołączyć składnik tylko w jednym końcu (na końcu kolejki), a usunąć tylko na drugim końcu (na początku).

Kolejki Powiązanie między składnikami kolejki jest podobne do powiązań między składnikami stosu. Natomiast usuwamy składniki tylko na początku kolejki, zaś dodajemy na końcu kolejki. wierzchołek DANE wskaźnik DANE wskaźnik DANE wskaźnik DANE wskaźnik początek kolejki koniec kolejki nil

Tworzenie i przetwarzanie dynamicznych struktur danych- listy Temat Tworzenie i przetwarzanie dynamicznych struktur danych- listy

Listy Listą (liniową) nazywamy liniowo uporządkowany zbiór składników, z którego w dowolnym miejscu można usunąć składnik, jak również dodać. Wyróżniamy: listy jednokierunkowe, listy dwukierunkowe, listy cykliczne.

Listy jednokierunkowe Organizacja listy jednokierunkowej jest podobna do organizacji stosu bądź kolejki.

Listy dwukierunkowe Listą dwukierunkową nazywamy liniowo uporządkowany zbiór składników, w którym dla każdego składnika, poza pierwszym i ostatnim, jest określony składnik poprzedni i następny. wierzchołek wskaźnik 1 DANE wskaźnik 2 wskaźnik 1 DANE wskaźnik 2 wskaźnik 1 DANE wskaźnik 2 wskaźnik 1 DANE wskaźnik 2 nil

Listy cykliczne Lista cykliczna powstaje z listy jedno- lub dwukierunkowej przez powiązanie ostatniego składnika listy z jej pierwszym składnikiem. W wyniku takiego powiązania wyróżnione składniki (pierwszy i ostatni) przestają pełnić swoje funkcje. W liście cyklicznej żaden ze składników nie jest wyróżniony.

Listy cykliczne wskaźnik 1 DANE wskaźnik 2 wskaźnik 1 DANE wskaźnik 2

Tworzenie i przetwarzanie dynamicznych struktur danych- drzewa Temat Tworzenie i przetwarzanie dynamicznych struktur danych- drzewa

Drzewo binarne korzeń DANE wskaźnik 0 wskaźnik 1 DANE wskaźnik 0 liść nil DANE wskaźnik 0 wskaźnik 1 DANE wskaźnik 0 wskaźnik 1 DANE wskaźnik 0 wskaźnik 1 nil nil nil nil DANE wskaźnik 0 wskaźnik 1 DANE wskaźnik 0 wskaźnik 1