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