Metody Metody, parametry, zwracanie wartości



Podobne dokumenty
Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

Klasy i obiekty cz II

Podstawy i języki programowania

Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach

Wykład 4: Klasy i Metody

Programowanie, algorytmy i struktury danych

Programowanie - instrukcje sterujące

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Liczby pseudolosowe. Math. Różne sposoby generowania liczb pseudolosowych. Wybrane metody klasy Math

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

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

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

Java Programowanie Obiektowe Ćwiczenie 1- wprowadzenie

Akademia ETI. Wprowadzenie do programowania w Javie PG Java User Group Przemysław Kulesza

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

PARADYGMATY PROGRAMOWANIA Wykład 4

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.pl. Tablice cz. II. Kopiowanie tablic, tablice wielowymiarowe

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

4. Funkcje. Przykłady

11.6 Klasa do obsługi liczb wymiernych

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Operatory logiczne. Podstawowe operatory logiczne, składanie wyrażeń z użyciem operatorów logicznych

Podstawy i języki programowania

Microsoft IT Academy kurs programowania

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Aplikacje w środowisku Java

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Zaawansowane aplikacje WWW - laboratorium

Język C, tablice i funkcje (laboratorium, EE1-DI)

Programowanie obiektowe i zdarzeniowe

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Podstawy Java. Część II. mgr inż.marcin Borkowski

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Funkcje. Wprowadzenie. Mirosław Ochodek

Programowanie - wykład 4

import java.util.locale; import java.util.scanner; public class Plecak {

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne

Wykład 5: Więcej o Klasach i Metodach

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

Podstawy Programowania C++

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Wykład 8: Obsługa Wyjątków

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Projektowanie aplikacji internetowych laboratorium

Sposoby przekazywania parametrów w metodach.

Programowanie komputerowe. Zajęcia 2

import java.util.*; public class ListExample { public static void main(string args[]) { List<String> lista1= new ArrayList<String> ();

Instrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne

Programowanie obiektowe

Języki i metody programowania Java INF302W Wykład 2 (część 1)

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Typy sparametryzowane

Ćwiczenie 1. Przygotowanie środowiska JAVA

Projektowanie obiektowe. dr Jarosław Skaruz

Programowanie w C++ z użyciem kontenerów - parę przykładów programów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ

Programowanie i projektowanie obiektowe

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Podstawy obiektowości

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

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

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

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Języki i metody programowania Java Lab2 podejście obiektowe

Git, Bitbucket, IntelliJ IDEA

Warunki logiczne instrukcja if

Polimorfizm, metody wirtualne i klasy abstrakcyjne

1 Podstawy c++ w pigułce.

Wstęp do programowania

Projektowanie algorytmów rekurencyjnych

Język C, tablice i funkcje (laboratorium)

Podstawy programowania obiektowego

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Lab 9 Podstawy Programowania

Technologie i usługi internetowe cz. 2

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Podejście obiektowe. Tablice (1) obiektów

Kiedy potrzebne. Struktura (rekord) Struktura w języku C# Tablice struktur. struktura, kolekcja

Rozdział 4 KLASY, OBIEKTY, METODY

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Programowanie obiektowe

Java Platform Micro Edition

Transkrypt:

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości

Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca za zadanie wykonanie określonych operacji. Program musi posiadać przynajmniej jedna metodę: main. Inne metody tworzy się w celu wydzielenia fragmentów kodu, które wykonują jakieś konkretne operacje Dzielenie kodu na wiele metod niesie liczne korzyści, takie jak: podzielenie klasy na pewne logiczne części zwiększa przejrzystość i czytelność kodu pozwala znacznie ograniczyć powtarzanie takich samych (lub bardzo podobnych) fragmentów kodu umożliwia łatwy dostęp do poszczególnych funkcjonalności obiektów (będzie na ten temat mowa w dalszej części kursu)

Dwie podstawowe kategorie metod: Metody które zwracają wartości Metody które nie zwracają wartości

Tworzenie i wywołanie metody Będzie o tym później Rodzaj zwracanej wartości, jeśli metoda nie zwraca wartości to: void private static int podajsumeliczb(int[] liczby) {... Elementy które przekazujemy do metody (parametry, argumenty) jeśli jest ich więcej niż 1, oddzielamy je przecinkami, Przykład: int[] tablicaliczb = {1,2,3,4,5; int suma = podajsumeliczb(tablicaliczb);

Przykład WywoĿujemy metodę, której przekazujemy dwa parametry typu String i odbieramy jeden String public class Slowa { public static void main(string[] args) { String imie = "Adam"; String nazwisko = "Słodowy"; String imieoraznazwisko = podajimieoraznazwisko(imie, nazwisko); System.out.println(imieOrazNazwisko); private static String podajimieoraznazwisko(string imie, String nazwisko) { String polaczone = imie+" "+nazwisko; return polaczone; Definiujemy metodę, która przyjmuje dwa parametry typu String i zwraca jeden String

Przykład: Napisz program, który: pobiera od użytkownika określoną liczbę liczb - użytkownik podaje ile to liczb, może też podać nowy zestaw liczb dla podanych liczb użytkownik może uzyskać (menu): największą liczbę najmniejszą liczbę średnią arytmetyczną sumę liczb wariancję od razu wszystkie powyższe wartości program działa dopóki użytkownik nie wybierze z menu opcji zakończenia

Jak to zrobić? W programie wydzielimy metody które będą realizować poszczególne rodzaje obliczeń Program powinien posiadać główną pętle wykonującą się aż do decyzji użytkownika o zakończenia. Znajdzie się tam: wywołanie wydruku menu, pobranie decyzji od użytkownika zestaw instrukcji (if, else if) wywołujących odpowiednie metody Wartości, które są obliczane przez niektóre metody mogą być wykorzystane przez inne metody - np. przy obliczaniu wariancji potrzebujemy średniej arytmetycznej.

szkielet public class Statystyka { public static void main(string[] args) {... (deklaracje) Przekazujemy do metod while (...) {... wartości na których będą wykonywane obliczenia... wyswietlmenu() {...... wprowadznowedane() {...... podajnajwiekszaliczbe(double[] liczby) {...... podajnajmniejszaliczbe(double[] liczby) {...... podajsumeliczb(double[] liczby) {...... podajsredniaarytmetyczna(double[] liczby) {...... podajwariancje(double[] liczby) {...... podajwszystko(double[] liczby) {...

metoda main Komunikat można public static void main(string[] args) { String opcja =""; zaimplementować double[] liczby = null; w metodzie lub nie* Scanner skaner = new Scanner(System.in); while (opcja.equalsignorecase("k")) { wyswietlmenu(); opcja = skaner.nextline(); if (liczby==null && opcja.equalsignorecase("k")) liczby=wprowadznowedane(); else if (opcja.equalsignorecase("d")) liczby=wprowadznowedane(); else if (opcja.equalsignorecase("m")) podajnajmniejszaliczbe(liczby); else if (opcja.equalsignorecase("n")) podajnajwiekszaliczbe(liczby); else if (opcja.equalsignorecase("s")) System.out.println("Średnia arytmetyczna liczb to: "+ podajsredniaarytmetyczna(liczby)); else if (opcja.equalsignorecase("r")) System.out.println("Suma liczb to: "+podajsumeliczb(liczby)); else if (opcja.equalsignorecase("w")) System.out.println("Wariancja dla podanych liczb to: "+ podajwariancje(liczby)); else if (opcja.equalsignorecase("a")) podajwszystko(liczby); else if (opcja.equalsignorecase("k")) System.out.println("Koniec"); else System.out.println("Nie rozumiem, spróbuj ponownie"); * Zależy to np. od tego czy wartość obliczana w metodzie będzie jeszcze do czegoś wykorzystywana, jeśli tak to komunikat mógŀby być zbędny, a nawet niepożądany.

metoda wyswietlmenu Ta metoda niczego nie zwraca, ani nie potrzebuje danych wejściowych private static void wyswietlmenu() { System.out.println("Co chcesz zrobić?\n" + "d - wprowadź nowe dane \n" + "n - podaj największą liczbę \n" + "m - podaj najmniejszą liczbę \n" + "s - podaj średnią arytmetyczną \n" + "r - podaj sumę liczb \n" + "w - podaj wariancję \n" + "a - podaj wszystkie powyższe \n" + "k - koniec programu");

metoda wprowadznowedane zwraca tablicę wprowadzonych wartości nie potrzebuje danych wejściowych private static double[] wprowadznowedane() { Scanner skaner = new Scanner(System.in); System.out.println("Podaj ile liczb chcesz wpisać "); String liczbaliczb = skaner.nextline(); int dltabeli = Integer.parseInt(liczbaLiczb); double[] liczby = new double[dltabeli]; for (int i=0; i<liczby.length; i++) { System.out.println("Podaj "+ (i+1) +" liczbę z "+dltabeli); String liczba = skaner.nextline(); liczby[i] = Double.parseDouble(liczba); jeśli metoda coś zwraca, to instrukcja return liczby; return musi znaleźć się na końcu określa ona co metoda zwraca

metody podajnajwiekszaliczbe, podajnajmniejszaliczbe przekazujemy metodzie dane potrzebne do obliczeń private static void podajnajwiekszaliczbe(double[] liczby) { double max = liczby[0]; for (double l : liczby) { obliczana wartość nie będzie nam if (l > max) { potrzebna do innych obliczeń, metoda max = l; może nic nie zwracać, a komunikat możemy zaimplementować wewnątrz niej System.out.println("Największa liczba to: "+max); private static void podajnajmniejszaliczbe(double[] liczby) { double min = liczby[0]; for (double l : liczby) { if (l < min) { min = l; System.out.println("Najmniejsza liczba to: "+min);

metoda podajsredniaarytmetyczna zwraca średnią - będzie nam potrzebna np. do liczenia wariancji private static double podajsredniaarytmetyczna(double[] liczby) { double srednia = podajsumeliczb(liczby)/liczby.length; return srednia; do obliczenia średniej potrzebna nam suma liczb - uzyskamy ją z osobnej metody

metoda podajsumeliczb zwraca sumę - będzie nam potrzebna np. do liczenia wariancji private static double podajsumeliczb(double[] liczby) { double sum = 0; for (double l : liczby) { sum=sum+l; return sum;

Zadanie Dokończyć program

metoda podajwariancje private static double podajwariancje(double[] liczby) { double wariancja; double srednia = podajsredniaarytmetyczna(liczby); double sum=0.0; for (double l : liczby) { sum=sum+(l-srednia)*(l-srednia); wariancja = sum/(liczby.length-1); return wariancja;

metoda podajwszystko private static void podajwszystko(double[] liczby) { podajnajmniejszaliczbe(liczby); podajnajwiekszaliczbe(liczby); System.out.println("Średnia arytmetyczna liczb to: "+podajsredniaarytmetyczna(liczby)); System.out.println("Suma liczb to: "+podajsumeliczb(liczby)); System.out.println("Wariancja dla podanych liczb to: "+podajwariancje(liczby));