Wykład 3 Składnia języka C# (cz. 2)

Podobne dokumenty
Wykład 2 Składnia języka C# (cz. 1)

Podstawy programowania. Podstawy C# Tablice

Wykład 8: klasy cz. 4

Wykład 5: Klasy cz. 3

Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 6. Tablice statyczne. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład 1: Wskaźniki i zmienne dynamiczne

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Wykład 4: Klasy i Metody

Podstawy programowania skrót z wykładów:

Laboratorium nr 10. Temat: Funkcje cz.2.

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Języki i techniki programowania Ćwiczenia 2

Programowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Wykład 9: Polimorfizm i klasy wirtualne

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

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

Podstawy Programowania Obiektowego

Programowanie Komputerów

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Definiowanie własnych klas

Podstawy Programowania C++

Programowanie komputerowe. Zajęcia 5

Wstęp do programowania

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.

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

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

Wykład 7 Okna dialogowe, menu, pasek stanu itp.

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Język C++ zajęcia nr 2

ZASADY PROGRAMOWANIA KOMPUTERÓW

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

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

Język C zajęcia nr 11. Funkcje

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Wstęp do programowania Laboratorium - wytyczne

Rozdział 4 KLASY, OBIEKTY, METODY

Programowanie obiektowe

Wykład nr 3. Temat: Wskaźniki i referencje. Edward Morgan Forster

Aplikacje w środowisku Java

Rozdzia l 3. Laboratorium 3. danych zawierajac

Języki i metodyka programowania. Wskaźniki i tablice.

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Lab 9 Podstawy Programowania

Definiowanie własnych klas

Podstawowe części projektu w Javie

Zaawansowane programowanie w języku C++ Klasy w C++

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg

Tablice i funkcje. Marcin Makowski. 26 listopada Zak lad Chemii Teoretycznej UJ

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Zmienne, stałe i operatory

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

PARADYGMATY PROGRAMOWANIA Wykład 4

Język C++ Różnice między C a C++

Języki programowania obiektowego Nieobiektowe elementy języka C++

Definicje klas i obiektów. Tomasz Borzyszkowski

Programowanie obiektowe

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

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Narzędzia 2. dr inż. Tadeusz Jeleniewski

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Informatyka I. Wykład 4. Tablice. Dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Functionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ

Programowanie w Javie - wykład 4

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Szablony funkcji i szablony klas

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

Java Podstawy. Michał Bereta

Szablony klas, zastosowanie szablonów w programach

Klasy i obiekty cz I Klasy, obiekty, podstawy używania obiektów

KURS C/C++ WYKŁAD 6. Wskaźniki

Transkrypt:

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 możliwe definiowanie funkcji niebędących metodami jakiejś klasy. Funkcja może być statyczną składową klasy, ale zawsze jest metodą (tj. właśnie funkcją składową zdefiniowaną w obrębie klasy). Metody statyczne, to takie, które można wywołać bez tworzenia instancji klasy, w której są zdefiniowane. Do ich definicji dodamy modyfikator static Metody definiować możemy w obrębie istniejącej klasy (klasy Program). Będą to metody statyczne, bo metoda main( ) z której będą one wywoływane jest statyczna. 3

Metody 4

Przeciążanie metod Język C# umożliwia definiowanie wielu metod o tych samych nazwach, pod warunkiem że różnią się parametrami (dzięki temu mają również inne sygnatury). Nazywa się to przeciążaniem metody (ang. overload). Niemożliwe jest natomiast definiowanie dwóch metod różniących się jedynie zwracanymi wartościami. 5

Domyślne wartości metod Możliwe jest ustalanie domyślnych wartości parametrów metod. Dzięki temu przy wywołaniu metody argument jest opcjonalny jeżeli nie wystąpi w liście argumentów w instrukcji wywołania metody przyjmie wartość domyślną 6

Domyślne wartości metod 7

Argumenty nazwane Możliwa jest identyfikacja parametrów nie za pomocą ich kolejności, a przy użyciu ich nazw, np.: Dla metody: static void Metoda(string tekst, ConsoleColor kolor = ConsoleColor.White) {..} Poprawne są oba wywołania Metoda(kolor: ConsoleColor.Green, tekst: "Witaj, świecie!"); Metoda(tekst: "Witaj, świecie!", kolor: ConsoleColor.Green); Zaletą tego rozwiązania jest czytelność kodu. 8

Przekazywanie argumentów do metody przez wartości i referencje 9

Wizualne systemy programowania Zmienne wskaźnikowe i dynamiczne 10

Wskaźniki Zmienne wskaźnikowe przechowują adresy do zmiennych prostych i złożonych (struktur, tablic, obiektów itp.) Przykład int* p int** p int*[ ] p char* p void* p Opis p to wskaźnik do liczby całkowitej. p to wskaźnik do wskaźnika do liczby całkowitej. p to tablica wskaźników do liczb całkowitych. p jest wskaźnik do znaku. p to wskaźnik do nieznanego typu. 11

Wskaźniki Operacje na wskaźnikach Operator Zastosowanie * wykonuje operację wskaźnika pośredniego. -> dostęp do elementu struktury za pomocą wskaźnika. [ ] indeksuje wskaźnik. & uzyskuje adres zmiennej. ++ oraz -- zwiększa i zmniejsza wartość wskaźnika. + oraz - wykonuje operacje arytmetyczne na wskaźniku. 12

Zmienne dynamiczne Zmienne proste możemy deklarować jako statyczne lub dynamiczne ( na stosie lub stercie) w C# nie ma to jednak tak dużego znaczenia jak w C++ int liczba1; int liczba2 = new int( ); char znak1; char znak2 = new char( ); int32 liczba = new Int32(); int liczba = new int(); int liczba = 1; 13

Wizualne systemy programowania Kolekcje 14

Pojęcie kolekcji Struktury danych: tablice, listy, kolejki, drzewa itp. zostały w C# nazwane kolekcjami. Typowe kolekcje zostały zaimplementowane w platformie.net i są gotowe do użycia. Kolekcje zawarte są przestrzeni nazw System.Collections.Generic oraz System.Collections.Specialized zawierającej wyspecjalizowane wersje kolekcji. 15

Tablice Tablica jest w instancją klasy System.Array Składnia deklaracji referencji (wskaźnika) do tablicy elementów typu int: int[ ] tab; Deklaracji referencji wraz z utworzeniem obiektu tablicy (rezerwowana jest pamięć na stercie): int[ ] tab = new int[100]; Po utworzeniu obiektu tablicy jest ona automatycznie inicjowana wartościami domyślnymi dla danego typu czyli w przypadku typu int zerami. Inicjalizacja elementów tablicy: int[ ] tab = new int[ 3 ] { 1, 2, 4 }; Int[ ] tab = new int[ ] {0,1,2,3,4,5,6,7,8,9}; //tablica 10-cio elementowa 16

Tablice wielowymiarowe Deklaracji referencji wraz z utworzeniem obiektu tablicy dwuwymiarowej int[, ] tab2d = new int[2, 3] { { 0, 1, 2 }, { 3, 4, 5 } }; Przykład: 17

Pętla foreach Instrukcja foteach wykonuje instrukcję lub blok instrukcji dla każdego elementu w określonym wystąpieniu typu, który implementuje (np. tablicy) Instrukcja foteach działa także na tablicach wielowymiarowych 18

Tablice metody klasy System.Array Niezwykle przydatną operacją na tablicach jest sortowania 19

Tablice metody klasy System.Array Inne przydatne matody klasy System.Array Właściwość Length zwraca długość tablicy. tab.length Właściwość Rank zwraca liczbę wymiarów tablicy tab.rank Metoda Initialize( ) inicjuje table wartościociami 0, null, false (zależnie od typu elementów) tab.initialize() 20

Tablice metody klasy System.Array Metoda Sort( ) sortuje tablicę Array.Sort(tablica); Metoda Resize( ) zmienia rozmiar tablicy Array.Resize( ref tablica, tablica.lenght + 5) Metoda Clear( ) zeruje określoną liczbę elementów tablicy (parametry: tablica, indeks początkowy, indeks końcowy) Array.Clear (tablica, 0, tabliaca.length -1) Metoda Clone( ) tworzy kopię tablicy Int[ ] kopia = (int[ ]) tablica.clone( ); Metoda Copy( ) Kopiuje elementy do wskazanej tablicy (parametry: tablica źródłowa, tablica docelowa, liczba elementów) Array.Copy (tablica, tablica_docelowa, tabliaca.length) 21

Tablice metody klasy System.Array Metoda IndexOf( ) zwraca index elementu spełniającego podane kryteria int pozycja = Array.IndexOf(tablica, szukan_wartosc); Metoda BinarySearch() wyszukiwanie binarne w tablicy zwraca numer indeksu na którym występuje szukana wartość, lub -1 w przypadku braku dopasowań (Uwaga stosujemy do tablic posortowanych) int pozycja = Array.BinarySearch(tablica, szukan_wartosc); 22

Tablice metody klasy System.Array Metoda Find( ) wyszukuje pierwszy element spełniający podane kryteria int pozycja = Array.Find(tablica, funkcja_testująca); Metoda FindAll( ) wyszukuje wszystkie elementy spełniający podane kryteria. Wynik zwraca w postaci tablicy int[ ] pozycje = Array.FindAll(tablica, funkcja_testująca); Obie powyższe metody wymagają zdefiniowania funkcji testującej, która otrzymuje w parametrze wartość z tablicy i zwraca wartość prawda/fałsz 23

Literatura: Użyte w tej prezentacji tabelki pochodzą z książki: Visual Studio 2013. Podręcznik programowania w C# z zadaniami Autor: Matulewski Jacek, Helion 24 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I - WYKŁAD