Programowanie obiektowe

Podobne dokumenty
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Programowanie obiektowe

Programowanie obiektowe

Programowanie obiektowe

Programowanie obiektowe

Programowanie obiektowe


Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)

Struktury danych: stos, kolejka, lista, drzewo

Podstawowe struktury danych

Programowanie obiektowe - zadania

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

Materiał uzupełniający do ćwiczen z przedmiotu: Programowanie w C ++ - ćwiczenia na wskaźnikach

Dynamiczne struktury danych

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Programowanie obiektowe

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

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja

Lista 5 Typy dynamiczne kolejka

Listy, kolejki, stosy

Lista, Stos, Kolejka, Tablica Asocjacyjna

KOLEJKA (QUEUE) (lista fifo first in, first out)

Podstawy Programowania 2 Jednokierunkowa lista liniowa. Plan. Jednokierunkowa lista liniowa. Jednokierunkowa lista liniowa. Notatki. Notatki.

Abstrakcyjne struktury danych - stos, lista, drzewo

Przychodnia 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę Osoba.

Struktury. Przykład W8_1

. Podstawy Programowania 2. Jednokierunkowa lista liniowa. Arkadiusz Chrobot. 28 marca 2017

Struktura danych. Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych:

TEMAT : KLASY DZIEDZICZENIE

Lista dwukierunkowa - przykład implementacji destruktorów

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

Programowanie i struktury danych 1 / 44

Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java:

Struktury danych (I): kolejka, stos itp.

Dynamiczne struktury danych

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

Technologie i usługi internetowe cz. 2

Wstęp do programowania

WSTĘP DO INFORMATYKI. Struktury liniowe

Algorytmy i. Wykład 3: Stosy, kolejki i listy. Dr inż. Paweł Kasprowski. FIFO First In First Out (kolejka) LIFO Last In First Out (stos)

Aplikacje w środowisku Java

Podstawy Programowania 2 Dwukierunkowa lista liniowa. Plan. Wstęp. Implementacja. Notatki. Notatki. Notatki. Notatki.

dr inż. Paweł Myszkowski Wykład nr 11 ( )

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Podstawy Programowania Obiektowego

Jak napisać listę jednokierunkową?

. Podstawy Programowania 2. Dwukierunkowa lista liniowa. Arkadiusz Chrobot. 7 kwietnia 2019

Programowanie obiektowe

E S - uniwersum struktury stosu

INFORMATYKA. Podstawy programowania w języku C. (Wykład) Copyright (C) 2005 by Sergiusz Sienkowski IME Zielona Góra

Wstęp do programowania

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Wykład 4. Klasa List Kolejki Stosy Słowniki

Struktury Danych i Złożoność Obliczeniowa

Notacja RPN. 28 kwietnia wyliczanie i transformacja wyrażeń. Opis został przygotowany przez: Bogdana Kreczmera.

Kurs programowania - kolekcje

Informatyka I stopień (I stopień / II stopień) ogólno akademicki (ogólno akademicki / praktyczny) niestacjonarne (stacjonarne / niestacjonarne)

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Struktura danych. Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych:

E-2IZ1-03-s3. Informatyka I stopień (I stopień / II stopień) ogólno akademicki (ogólno akademicki / praktyczny)

GUI - projektowanie interfejsów cz. II

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Programowanie i struktury danych

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

Podstawy Programowania 2 Jednokierunkowa lista liniowa i rekurencja. Plan. Wstęp. Założenia. Notatki. Notatki. Notatki. Notatki.

Algorytmy i Struktury Danych

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Dynamiczne struktury danych: listy

Algorytmy i Struktury Danych. Anna Paszyńska

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Programowanie w języku Java. Kolekcje

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Struktury dynamiczne

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Scenariusz lekcji. wymienić podstawowe dynamiczne struktury danych (stos, kolejka, lista, graf, drzewo); opisać sposób dostępu do danych w kolejce;

Teoretyczne podstawy informatyki

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury

1. Kalkulator czterech działań. 2. Konwersja ciągu znaków do tablicy.

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Algorytmy i Struktury Danych.

INFORMATYKA DANE.

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

Instrukcja ewidencji i sprawozdawania informacji o pierwszym wolnym terminie.

LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8

Podstawy i języki programowania

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

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

PRZEWODNIK PO PRZEDMIOCIE

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

WYKŁAD 10. Zmienne o złożonej budowie Statyczne i dynamiczne struktury danych: lista, kolejka, stos, drzewo. Programy: c5_1.c, c5_2, c5_3, c5_4, c5_5

E-1EZ1-03-s2. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Transkrypt:

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych zajęć tematyka jest ważna, gdyż kolekcje są powszechnie używane do przechowywania danych i efektywnego zarządzania danymi. Aby ze zrozumieniem zrealizować zadania przewidziane do wykonania w ramach zajęć laboratoryjnych, należy znać znaczenie pojęcia oraz cechy następujących : listy jednokierunkowej, listy dwukierunkowej, kolejki, stosu. 1. Kolekcja Jest to pojęcie stosowane w odniesieniu do klas, które umożliwiają przechowywanie oraz efektywne przetwarzanie obiektów danego typu. Jedną z największych zalet jest możliwość dynamicznej zmiany ich rozmiaru liczba przechowywanych przez kolekcje elementów nie jest ograniczona w momencie utworzenia danej, tak jak ma to miejsce w przypadku tablicy. 2. Lista Jest kolekcją składającą się z uporządkowanych liniowo elementów. Lista umożliwia wstawianie elementów w miejsce o dowolnym indeksie. Ta sama zasada dotyczy pobierania elementu z listy. Do prawidłowego manipulowania listą wymagane jest przechowywanie przez listę adresu jej pierwszego elementu. Lista jednokierunkowa to lista, w której każdy element wskazuje na element następny. Rys. 1 Lista jednokierunkowa Lista dwukierunkowa to lista, w której każdy element wskazuje na element następny i na element poprzedni. Listy dwukierunkowe umożliwiają łatwiejszy dostęp do danych, niż listy jednokierunkowe. Rys. 2 Lista dwukierunkowa 1

3. Kolejka Jest kolekcją składającą się z liniowo uporządkowanych elementów. Charakterystyczną cechą kolejki jest to, iż nowe elementy dodawane do kolejki są dodawane na jej końcu, natomiast elementy, które są pobierane z kolejki, są pobierane z jej początku. Oznacza to, że element, który pierwszy został umieszczony w kolejce, pierwszy ją opuści. Kolejki zwane są także kolekcjami FIFO (ang. First In First Out). Rys. 3 - Kolejka 4. Stos Jest kolekcją składającą się z liniowo uporządkowanych elementów. Charakterystyczną cechą stosu jest to, iż użytkownik posiada dostęp jedynie do elementu znajdującego się na wierzchołku stosu, a nowy element stosu można dodawać jedynie na jego wierzchołek. Oznacza to, że element, który został umieszczony na stosie jako ostatni, pierwszy opuści stos. Stosy zwane są również kolekcjami LIFO (ang. Last In First Out). Rys. 4 - Stos 2

Zadanie 1. Proszę zrealizować aplikację obiektową zgodnie z poniższymi założeniami: Należy zaimplementować własną kolekcję będącą kolejką. Elementy kolejki mają przechowywać dane typu object. Kolejka ma posiadać właściwość dostępową informującą o ilości elementów w kolejce. Kolejka ma udostępniać metodę Wypisz, wypisującą wszystkie wartości elementów kolejki. Sposób działania należy przetestować za pomocą zamieszczonego poniżej kodu testowego. Wskazówki dotyczące realizacji zadania: Należy zaimplementować klasę Element, zawierającą konstruktor oraz pola: wartość typu object nastepnyelement typu Element pole to stanowi referencję do kolejnego elementu Należy zaimplementować klasę Kolejka, zawierającą pola: pierwszyelement typu Element - pole to stanowi referencję do pierwszego elementu ostatnielement typu Element - pole to stanowi referencję do ostatniego elementu liczbaelementow typu int - pole to ma zawierać informację o liczbie elementów znajdujących się w liście W klasie Kolejka należy zaimplementować metodę Dodaj, która ma dodawać element na koniec kolejki. Metoda sprawdza, czy w kolejce znajdują się elementy, odczytując wartość pola pierwszyelement. Jeśli ta wynosi null, wstawiany element będzie pierwszym i zarazem ostatnim elementem kolejki. Jeśli w kolejce znajdują się elementy, wstawiany element musi być ostatnim elementem kolejki należy ustawić referencję nastepnyelement ostatniego elementu kolejki, aby odnosiła się do nowo dodawanego elementu, oraz należy zmienić referencję ostatnielement klasy typu Kolejka. 3

W klasie Kolejka należy zaimplementować metodę Pobierz, która ma usuwać pierwszy element kolejki i zwracać jego wartość. Metoda sprawdza, czy w kolejce znajdują się elementy, odczytując wartość pola pierwszyelement. Jeśli ta wynosi null, wyświetlony ma zostać odpowiedni komunikat i zwrócona ma zostać wartość null. Jeśli w kolejce znajdują się elementy, należy pobrać jej pierwszy element i na podstawie zawieranej przez niego referencji nastepnyelement ustawić nowy pierwszy element klasy Kolejka. Następnie należy zwrócić wartość pobranego elementu. Należy zwrócić uwagę, że wywołanie metod Dodaj i Pobierz może mieć wpływ na wartość pola liczbaelementow. W klasie Kolejka należy zaimplementować metodę Wypisz, wypisującą wartości elementów kolejki. Wypisanie wartości elementu kolejki ma zostać zrealizowane za pomocą konstrukcji Console.Write(wartosc.ToString()). Przy ocenie zadania główny nacisk będzie kładziony na: Prawidłową implementację kolejka. Wyniki testów. Zadanie 2. Proszę zrealizować aplikację obiektową zgodnie z poniższymi założeniami: Należy zaimplementować własną kolekcję będącą listą. Elementy kolejki mają przechowywać dane typu Osoba. Klasa Osoba ma posiadać dwa pola imie i nazwisko, konstruktor przyjmujący parametry, oraz metodę WypiszInfo wypisującą informacje na temat imienia i nazwiska danej osoby. Lista ma zawierać metody umożliwiające: dodanie elementu na koniec listy, pobranie elementu listy o danym indeksie, wstawienie elementu do listy w miejsce o podanym indeksie. Lista ma udostępniać metodę Wypisz, wypisującą wszystkie wartości elementów listy. Sposób działania należy przetestować za pomocą zamieszczonego poniżej kodu testowego. 4

Wskazówki dotyczące realizacji zadania: Należy zaimplementować klasę Osoba. Należy zaimplementować klasę Element, zawierającą konstruktor oraz pola: wartość typu Osoba nastepnyelement typu Element pole to stanowi referencję do kolejnego elementu Należy zaimplementować klasę Lista, zawierającą pola: pierwszyelement typu Element - pole to stanowi referencję do pierwszego elementu liczbaelementow typu int - pole to ma zawierać informację o liczbie elementów znajdujących się w liście W klasie Lista należy zaimplementować metodę Dodaj, która ma dodawać element na koniec listy. Metoda sprawdza, czy w liście znajdują się elementy, odczytując wartość pola pierwszyelement. Jeśli ta wynosi null, wstawiany element będzie pierwszym elementem listy. Jeśli w liście znajdują się elementy, wstawiany element musi być ostatnim elementem listy należy ustawić referencję nastepnyelement ostatniego elementu listy na nowo dodawany element. Ostatni element listy należy znaleźć za pomocą pętli while. W klasie Lista należy zaimplementować metodę Pobierz, przyjmującą jako parametr indeks, która ma usuwać z listy element o podanym indeksie i zwracać jego wartość. Metoda musi sprawdzać, czy podany indeks mieści się w wymaganym przedziale <0, liczbaelementowlisty). W klasie Lista należy zaimplementować metodę Dodaj, przyjmującą jako parametr indeks, która ma wstawiać do listy element w miejsce podanym indeksie. Metoda musi sprawdzać, czy podany indeks mieści się w wymaganym przedziale <0, liczbaelementowlisty>. W klasie Lista należy zaimplementować metodę Wypisz, wypisującą informacje na temat wartości elementów listy (imię i nazwisko osoby). Przy ocenie zadania główny nacisk będzie kładziony na: Prawidłową implementację lista. Wyniki testów. Zadanie do domu. 1. Proszę utworzyć własną kolekcję będącą stosem. 2. Proszę utworzyć własną kolekcję będącą listą dwukierunkową. 5

Zagadnienia, które należy uznać za przyswojone w trakcie zajęć. Po zajęciach będzie obowiązywać praktyczna znajomość: Pojęcie. Pojęcie listy, stosu, kolejki. Zasady działania poznanych. Zagadnienia do powtórzenia na następne zajęcia. Przed kolejnymi zajęciami należy powtórzyć następujące zagadnienia: Związki pomiędzy klasami w języku UML. 6