Typy wyliczeniowe, kolekcje

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

C++ wykład 9 ( ) Szablony.
C++ wykład 2 ( ) Klasy i obiekty.
C++ wykład 4 ( ) Przeciążanie operatorów.
Programowanie obiektowe
Standardowa biblioteka języka C++
Wzorce.
Dynamiczne struktury danych Listy, Kolejki, Stosy
Prowadzący: mgr inż. Elżbieta Majka
Generics w .NET 2.0 Łukasz Rzeszot.
typy całkowite (całkowitoliczbowe)
PROGRAMOWANIE STRUKTURALNE
formatowanie kodu źródłowego
Implementacja ekstensji klasy
Implementacja asocjacji
Elementarne struktury danych Piotr Prokopowicz
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
1 Dygresja: cztery płyty główne…. 2 Dygresja: osobliwości C /* cos o nieistniejacym typie Boolean */ /* oraz o operatorze przecinkowym */ #include int.
C++ wykład 2 ( ) Klasy i obiekty.
Zasady zaliczenia Warunki uzyskania zaliczenia:
INFORMATYKA Wykładowca: mgr Tadeusz Ziębakowski p. 126 I piętro (naprzeciw dziekanatu)
Podstawy programowania PP – LAB5 Wojciech Pieprzyca.
Modele baz danych - spojrzenie na poziom fizyczny
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Klasy w C++. Deklaracja klasy class NazwaTwojejKlasy { //w tym miejscu piszemy definicje typów, //zmienne i funkcje jakie mają należeć do klasy. }; //tutaj.
Podstawy informatyki Struktury, operatory, wyjątki
TABLICE C++.
Podstawy programowania
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Andrzej Repak Nr albumu
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Farseer Physics Engine. Farseer Physics Engine jest silnikiem fizycznym napisanym dla platformy.NET. Został on zainspirowany przez silnik Box2D znany.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Zawansowane techniki programistyczne
Wzorce slajdów programu microsoft powerpoint
Programowanie strukturalne i obiektowe C++
Kurs języka C++ – wykład 4 ( )
Krakowski Piotr, Woliński Radosław, Kowalski Piotr, Machowski Michał.
Komendy SQL do pracy z danymi
Wykład 2 Programowanie obiektowe. Programowanie obiektowe wymaga dobrego zrozumienia działania funkcji definiowanych przez użytkownika, w ten sposób będziemy.
Mapa STL – C++. Problem polega na tym, że najczęściej chcielibyśmy przechowywać w zbiorze elementy jakiegoś bardziej złożonego typu, których on nie będzie.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
„Filtry i funkcje bazodanowe w EXCELU”
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
Zarządzanie stanem w aplikacjach ASP.NET Elżbieta Mrówka-Matejewska
Asocjacja,Kompozycja,Agregacja
STOS. STL (ang. Standard Template Library) jest to biblioteka zawierająca algorytmy, pojemniki, iteratory oraz inne konstrukcje w formie szablonów, gotowe.
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Excel 2007 dla średniozaawansowanych Zajęcia z Prowadzący: Artur Kołos.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Programowanie Obiektowe – Wykład 8
Przypomnienie wiadomości – kilka zadań
Programowanie Obiektowe – Wykład 5
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
Programowanie Obiektowe – Wykład 2
Wskaźniki Elżbieta Labocha.
Styczeń 2010 PONIEDZIAŁEK WTOREK ŚRODA CZWARTEK PIĄTEK SOBOTA
Haskell Składnia funkcji.
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
PGO - Projektowanie i implementacja pierwszych klas
PGO Dziedziczenie Michail Mokkas.
PGO Przeciążanie metod i konstruktorów
PGO Porównywanie obiektów
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Typy wyliczeniowe, kolekcje Akademia C# Lab 5 Typy wyliczeniowe, kolekcje

Typy wyliczeniowe enum DzienTygodnia { class Spotkanie { Poniedziałek, Wtorek, Środa, Czwartek, Piątek, Sobota, Niedziela } class Spotkanie { public DzienTygodnia dzien; }

Używanie enum w programie Po deklaracji enum wypadało go użyć. Używa się dokładnie tak samo jak inne typy. Tworzymy sobie zmienne typu enum np. DzienTygodnia zmienna; Przypisujemy wartość do naszej zmiennej (z tych „dostępnych” w enum). DzienTygodnia spotkanie = DzienTygodnia.Wtorek; Jak nie przypiszemy wartości to domyślna będzie pierwsza wartość. (czyli np. Poniedziałek dla dni tygodnia). Typ wyliczeniowy może być przerobiony na napis za pomocą metody “ToString()”, można porównywać Wartości za pomocą operatorów == i !=

Wartości typów wyliczeniowych Wartości typów enum są liczbami całkowitymi.  Domyślnie: Numerowanie od 0, dla dni tygodnia 0-6. Gdy zrzutujemy na inta to mamy wyświetlane wartości liczbowe a nie nazwy. Możesz sam przypisać wartości do swojego typu wyliczeniowego enum MojTyp { Typek = 10; InnyTypek=5; }

Po co używać typu wyliczeniowego?  Bo bez sensu jest pisanie instrukcji gdzie liczba int będzie odpowiadać numerom miesiąca, czy coś w tym stylu. Bo są wygodne. Typy wyliczeniowe przydatne są także przy kontrolkach, jak ComboBox ponieważ z góry wiemy, jakie pola może użytkownik wybrać.  Jednym słowem zamiana niektórych zmiennych z string na typ wyliczeniowy może bardzo usprawnić aplikacje.

Kolekcje

Listy Znajdują się w przestrzeni nazw System.Collections.Generics Zalety: - liczba elementów może być zmienna już po utworzeniu listy Można dodawać na koniec, wstawiać do środka i usuwać dowolnie wybrany element Możliwy dostęp do dowolnego elementu (tak jak w tablicach)

Listy

Dodawanie elementów do listy

Kolejka – zaimplementowana w klasie Queue Do kolejki można dodać tylko element na końcu a zdjąć na początku

Stos czyli klasa Stack Zbiór z którego można zdjąć tylko element ostatnio dołożony

Porównanie stos i kolejka

SortedList Również przestrzeń nazw System.Collections.Generics Lista „dwukolumnowa”. Każdy element przechowuje klucz i wartość (właściwości Key i Value). Pozwala to m.in. na sortowanie obu wartości według klucza. Podobnie kolekcje Dictionary i SortedDictionary. Wszystkie implementują Interfejs IDictionary, dlatego często są nazywane słownikami

SortedList - implementacja

Zadania Stworzymy bardzo prosta klasę Person. Przechowywać ona będzie następujące dane: Id osoby Imię Nazwisko Wiek

Zadanie Utworz liste przechowującą obiekty typu Person. Dodaj kilka obiektów Person. Użyj właściowości Count do policzenia liczby elementów listy i wypisz na ekran.

Zadanie Użyj instrukcji foreach do wypisania elementów listy na ekran Wybierz osobę, która ma 20 lat Podpowiedź : Skorzystaj z predykatów (element) i metody Find Person FoundPerson = personsList.Find(element => element.Age == 26); Znajdź wszystkie osoby o imieniu Jan (najpierw ich stwórz ) Wykorzystaj metodę FindAll, która zwraca listę List<Person> foundPersonsList = fersonsList.FindAll (element => element.FirstName.Equals(„imie"));

Zadanie Dodaj osobnika Person na 2 miejscu listy. Skorzystaj z metody nazwaListy.Insert(index, referencjaDoOobiektu); Odwróc porządek kolekcji – metoda Reverse(); Wyczyść listę – metoda Clear();

Zadanie Stwórz słownik Dictionary<T,T> Niech jako klucz przyjmuje numer porządkowy, jako wartość obiekt typu Person. Dodaj klika elementów do słownika Wykorzystaj petle foreach do wypisania elementów. Uwaga: Tutaj musimy skorzystać ze specjalnej struktury zawierającej pary klucz i wartość: foreach (KeyValuePair<int, Person> pair in personsDictionary) Wyczyść kolekcję – metoda Clear();

Zadanie Stwórz kolejkę „Personów”  (Queue<T>) Dodaj kilka elementów (tutaj metoda Enqueue zamiast Add) Zdejmij element z kolejki metoda Dequeue(); Upewnij się czy kolejka nie jest pusta! Np. Właściwość Count Pobierz element z kolejki ale nie zdejmuj go (metoda Peek(); ) Użyj foreach do wypisania elementów kolejki