<style type="text/css"> p { text-align: left;} .reveal pre code { height: 100%; max-height: 100%; box-sizing: border-box; } </style>

modyfikator_dostępu typ_zwracany nazwa_metody ( lista_parametrów )
{
instrukcje
return wartość;
}

modyfikator_dostępu - np. public, private, dostęp z innych klas, ważny w programowaniu obiektowym

typ_zwracany - dowolny typ, klasa, lub void

nazwa_metody - identycznie jak nazwa zmiennej

lista_parametrów - definiuje typy i nazwy argumentów metody

instrukcja return przerywa działanie metody i zwraca podaną wartość

public class Program { public static void Main() { // definicja funkcji int Suma(int a, int b) { return a+b; } // uruchomienie funkcji int x = Suma(3, 5); }

Dostępna tylko wewnątrz metody Main - nie potrzba modyfikatora dostepu

Metoda - to „funkcja” związana z klasą

public class Program { static int Suma(int a, int b) { return a+b; } public static void Main() { int a = 42; int b = 3; int x = Suma(a, b); x = Program.Suma(a, b); } }

modyfikator dostępu w tym przypadku pomijamy, bo nie używamy innych klas

modyfikator static - metoda statyczna, nie wymaga utworzenia obiektu klasy, działa jak globalna funkcja

uruchomienie metody klasa.metoda(argumenty) lub z zakresu klasy Metoda(argumenty)

Zmienne zadeklarowane wewnątrz metody są lokalnie dostępne wyłącznie w jej wnętrzu.

static void X(int a) { int b; // zmienna lokalna a++; b = a; Console.WriteLine($"W metodzie X: a={a} b={b}"); } public static void Main() { int a = 42; int b = 13; X(a); Console.WriteLine($"W metodzie Main: a={a} b={b}"); }

Wyjście

W metodzie X: a=43 b=43
W metodzie Main: a=42 b=13

Napisz metodę o nazwie Silnia, która wyznaczy wartość silni z podanej liczby całkowitej.

Argumenty metody:

liczba całkowita większa od zera

Wartość zwracana:

liczba całkowita równa

Napisz program, który korzystając z metody Silnia wyznaczy silnie dowolnej liczby całkowitej podanej przez użytkownika.

Ile wynosi silnia z 13?

Metoda rekurencyjna - wywołuje sama siebie

Przykład - silnia:

static int Silnia(int n) { if ( n < 2) return 1; return Silnia(n-1) * n; }

wartośc argumentu jest kopiowana do zmiennej zdefiniowanej na liście parametrów

metoda nie ma możliwości modyfikacji wartości zmiennej z argumnetu (działamy na kopii)

static void Zwiększ(int x) { x++; } public static void Main() { int x = 42; Zwiększ(x); Console.WriteLine($"x={x}"); }

Wynik

x=42

argument możemy przekazać w postaci referencji, wówczas metoda może modyfikować jej wartość

static void Zwiększ(ref int x) { x++; } public static void Main() { int x = 42; Zwiększ(ref x); Console.WriteLine($"x={x}"); }

Wynik

x=43

do zmiennej lokalnej kopiowana jest referencja wskazująca na ten sam obszar pamięci

modyfikator ref musi pojawić się w definicji parametrów metody oraz przy wywołaniu

Tablice są typem referencyjnym, więc metoda ma dostęp do elementów tablicy z argumentu

static void Zwiększ(int [] tablica) { tablica[0]++; } public static void Main() { int [] tablica = { 1, 2, 3}; Zwiększ(tablica); foreach(var x in tablica) Console.WriteLine(x); }

Wynik

2
2
3

modyfikator out pozwala określić parametr wyjściowy, dzięki temu można zwrócić dodatkowe wartości z metody

static void WczytajLiczbę(out int x) { x = Convert.ToInt32(Console.ReadLine()); } public static void Main() { int x; WczytajLiczbę(out x); Console.WriteLine($"x={x}"); }

metoda musi przypisać wartość do zmiennej typu wyjściowego

modyfikator out musi pojawić się w definicji parametrów metody oraz przy jej wywołaniu

Zaimplementuj metodę o nazwie Sortuj(), która posortuje liczby w tablicy. Spróbuj samodzielnie wymyslic algorytm sortowania.

Parametry metody:

tablica jednowymiarowa liczb

Wartość zwracana:

tablica z posortowanymi liczbami

Napisz program, który poprosi użytkonika o wprowadzenie liczb a nastepnie wykorzysta metodę Sortuj() do posortowania tych liczb i wypisze wynik na ekranie.

Zaimplementuj metodę o nazwie Fibonacci, która dla podanej liczby całkowitej n zwraca wartość n-tego elementu ciągu Fibonacciego, który wyznaczamy ze wzoru:

Metoda realizuje następującą specyfikację:
Parametry: liczba całkowita n
Wartość zwracana: wartość elementu n ciągu Fibonacciego. W przypadku, gdy argument n<0 to wynikiem jest 0.

Uwaga: metoda powinna realizować wyłącznie obliczenie matematyczne, tzn. uruchomienie metody nie powinno generować żadnych komunikatów na konsoli.

Napisz program, który wykorzysta metodę Fibonacci() do wypełnienia tablicy jednowymiarowej sekwencją pierwszych elementów ciągu Fibonacciego a następnie wyświetli zawartość tej tablicy na ekranie. Wartość (ilość elementów ciągu) podaje użytkownik na początku działania programu.

Przykład

Ile elementów wypisać? 10
0 1 1 2 3 5 8 13 21 34 55