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