więcej
Transkrypt
więcej
MATERIAŁY DO ZAJĘĆ V Spis treści I. Operacje na tablicach II. Funkcje III. Zadania Operacje na tablicach Ustawianie elementów na daną wartość for(int i = index; i < index + iloscElementow; i++) { tab[i] = wartosc; } Metoda Clear klasy Array int[] tab = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; Array.Clear(tab,1,5); foreach (int i in tab) { Console.Write("{0}, ",i); } 1, 0, 0, 0, 0, 0, 7, 8, 9, Kopiowanie tablic typ [] tab1; typ [] tab2; ... tab1 = tab2; tab2 tab1 . . Stos Zarządzana sterta Metoda Copy klasy Array int[] tab1 = { 1, 2, 3, 4, 5, 6, 7, 8 }; int[] tab2 = {11,12,13,14,15,16,17,18 }; Array.Copy(tab1,2,tab2,3,3); foreach (int i in tab2) { Console.Write("{0}, ",i); } 11, 12, 13, 3, 4, 5, 17, 18, 1 2 3 4 5 6 7 8 11 12 13 3 4 5 17 18 Metoda Reverse klasy Array int[] tab = { 1, 2, 3, 4, 5, 6, 7, 8, 9}; Array.Reverse(tab, 2, 5); foreach (int i in tab) { Console.Write("{0}, ", i); } 1, 2, 7, 6, 5, 4, 3, 8, 9, 1 2 3 4 5 6 7 8 9 1 2 7 6 5 4 3 8 9 Metoda Sort klasy Array int[] tab = { 5, 1, 34, 45, 67, 24, 27, 13, 45}; Array.Sort(tab1); foreach (int i in tab) { Console.Write("{0}, ", i); } 1, 5, 13, 24, 27, 34, 45, 45, 67, Wyszukiwanie elementu w tablicy Wyszukiwanie połówkowe - tylko tablice posortowane ◦ Metoda BinarySearch klasy Array Wyszukiwanie liniowe ◦ program Liniowe ◦ Metoda LastIndexOf lub IndexOf klasy Array int[] tab = { 4, 6, 3, 27, 14, 3, 3}; int i = Array.IndexOf(tab, 3); while(i != -1) { Console.Write("{0}, ", i); i = Array.IndexOf(tab, 3 , i+1); } 2,5,6 Zadania 1. Zaimplementuj algorytm sortowania bąbelkowego, omówiony szczegółowo na zajęciach. 2. Napisz fragment kodu pozwalającego na odwrócenie tablicy Funkcje Definicja metody w języku C# static typ_zwracany nazwa(argumenty) { //ciało metody } Metodę można utworzyć wewnątrz bloku klasy lub struktury Nie dozwolona jest definicja metody bezpośrednio w przestrzeni nazw Metody nie wolno definiować wewnątrz bloku innej metody class Program { static void Main() { //ciało metody Main } static void Metoda() { Console.WriteLine("Test"); } } Sposoby na wywołanie metody Wywołanie metody zdefiniowanej w tej samej klasie co metoda ją wywołująca nazwa(argumenty); Wywołanie metody zdefiniowanej w innej klasie nazwaKlasy.nazwaMetody(argumenty); metoda, która ma być wywołana przez metodę innej klasy musi być metodą publiczną - zdefiniowaną ze słowem public. Metoda zwracająca wartość 1. Słowo kluczowe return przerwanie działania metody przekazanie wartości z funkcji - metody zwracające typ inny niż void static void Main() { Console.WriteLine(zmiana()); Console.ReadKey(); } static int zmiana() { return 3; } 3 2. Metody, które zwracają typ void nie muszą zawierać instrukcji return za instrukcją return, jeśli wystąpi stawiamy bezpośrednio średnik 3. Metody zadeklarowane zwracające typ inny niż void muszą zawierać instrukcję return, dla każdego z możliwych punktów zakończenia metody Zmienne współdzielone i lokalne 1. Zmienne lokalne deklarowane wewnątrz ciała metody prywatne dla danej metody niszczone przy wyjściu z bloku w którym były zadeklarowane i niedostępne poza nim 2. Zmienne współdzielone definiowane bezpośrednio w bloku klasy (struktury) wspólne dla wszystkich metod w klasie class { ... static typ nazwa; } 3. Zmienna lokalna może przesłonić zmienną współdzieloną - mieć tą samą nazwę co zmienna współdzielona (wyjątek od reguły, że w bloku lub w zagnieżdżonym bloku kodu nie może pojawić się zmienna o takiej samej nazwie) Propagacja wyjątków w łańcuchu wywołania funkcji 1. Obsługa wyjątku poszukiwanie bloku catch obsługującego zgłoszony wyjątek rozpoczynamy od miejsca zgłoszenia wyjątku przez łańcuch funkcji wywołujących static void metoda() { ... int x= 7/0; ... } static void metoda1() { ... metoda (); ... } static void metoda2() { ... metoda1(); ... } static void Main(string []args) { ... metoda2 (); ... } Zadania 1. Program do obsługi kasy. Zaimplementuj metody jak poniżej: • metodę pobierająca od użytkownika cenę netto, kwotę wpłaconą przez klienta i obliczającą cenę brutto • metodę wypisująca cenę netto, kwotę podatku, cenę brutto, kwotę wpłaconą przez klienta • metodę wypisującą ile banknotów/monet o poszczególnych nominałach należy wydać jako resztę klientowi