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

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

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

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Język ludzki kod maszynowy

Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Obliczenia, zmienne. Proste działania, zmienne, rodzaje zmiennych, proste operacje i działania na zmiennych.

Metody Metody, parametry, zwracanie wartości

Programowanie, algorytmy i struktury danych

Klasy i obiekty cz II

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

1 Podstawy c++ w pigułce.

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Podstawy Programowania C++

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

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

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

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Podstawy i języki programowania

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

Programowanie - instrukcje sterujące

Podstawy Programowania Podstawowa składnia języka C++

Zapis algorytmów: schematy blokowe i pseudokod 1

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

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

ZMIENNE. Podstawy PHP

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

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

lekcja 8a Gry komputerowe MasterMind

Warunki logiczne instrukcja if

Odczyt danych z klawiatury Operatory w Javie

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Instrukcja warunkowa i złoŝona.

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

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

Konstrukcje warunkowe Pętle

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Umieszczanie kodu. kod skryptu

Instrukcje sterujące. Programowanie Proceduralne 1

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania).

JAVA?? to proste!! Autor: wojtekb111111

4. Funkcje. Przykłady

Pętla for. Wynik działania programu:

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

Zasady programowania Dokumentacja

3. Instrukcje warunkowe

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Język C część 2. Podejmowanie decyzji w programie. if else. switch

Instrukcje sterujące

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Podstawy i języki programowania

Powtórka algorytmów. Wprowadzenie do języka Java.

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

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

Podstawy programowania w języku C

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

Podstawy i języki programowania

ALGORYTMY I STRUKTURY DANYCH

Schematy blokowe. Algorytmy Marek Pudełko

Język C, instrukcje sterujące (laboratorium)

Wstęp do informatyki- wykład 2

Podstawy programowania skrót z wykładów:

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

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Instrukcje sterujące. Programowanie komputerowe

Wykresy i interfejsy użytkownika

Cw.12 JAVAScript w dokumentach HTML

Zadanie nr 3: Sprawdzanie testu z arytmetyki

Programowanie komputerowe. Zajęcia 1

Operacje logiczne i struktury sterujące.

do instrukcja while(wyrażenie);

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

1 Wielokrotne powtarzanie tych samych operacji

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

1 Podstawy c++ w pigułce.

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Projektowanie algorytmów z blokami decyzyjnymi

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

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

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Blockly Kodowanie pomoc.

Kontrola przebiegu programu

Warunki i pętle. Instrukcja warunkowa if. Przykład zastosowania.

LibreOffice Calc VBA

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Pętle. Dodał Administrator niedziela, 14 marzec :27

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Podstawy programowania C. dr. Krystyna Łapin

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Wstęp do informatyki- wykład 7

Transkrypt:

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Instrukcje wyboru Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne

Być, czy nie być? Chłopczyk, czy dziewczynka? Zwykle przebieg programu nie jest wytyczony przez jedną, jedynie słuszną drogę. Na przykład w zależności od dostarczonych danych powinien odpowiedzieć w różny sposób. Przykład: dostarczamy informację na temat chromosomów płciowych - program ma zinterpretować płeć.

Jak to powinno działać? Najpierw zastanówmy się jak program powinien działać: 1. Pobierz kariotyp 2. Sprawdź czy kariotyp to XY 3. Jeśli odpowiedź brzmi TAK to wydrukuj samiec 4. Jeśli odpowiedź brzmi NIE to wydrukuj samica 5. Zakończ program

Schemat blokowy Start Pobierz kariotyp Drukuj samica NIE Czy kariotyp to XY? TAK Drukuj samiec Koniec

Schematy blokowe (wybrane symbole) KIERUNEK BIEGU PROGRAMU POCZĄTEK/KONIEC PROGRAMU ODCZYT/ZAPIS/WYDRUK DANYCH DECYZJA - wpisujemy tu warunek, wychodzą dwie strzałki określające bieg programu gdy warunek jest i nie jest spełniony PROCES - tu wpisujemy różnego operacje które wykonuje program, nie podpadające pod powyższe.

Piszemy program Spróbujmy teraz zrealizować plan 1. Pobierz kariotyp Na razie uprościmy sytuację i wpiszemy w programie wartość: 2. Sprawdź czy kariotyp to XY Jak to zrobić? String kariotyp = "XX"; Czas poznać instrukcje sterujące.

if - czyli jeśli Opcjonalne if (warunek) {... else {... Jeśli warunek jest spełniony to program wykonuje kod umieszczony po warunku, Jeśli nie jest spełniony, to program pomija komendy po warunku i wykonuje kod po komendzie else (o ile jest). Ale jak zapisać warunek i co to znaczy, że jest prawdziwy?

Operatory warunkowe operator przykład wynikiem jest prawda (true) jeśli: == x == y x jest równe y!= x!= y x nie jest równe y > x > y x jest większe niż y < x < y x jest mniejsze niż y >= x >= y x jest większe lub równe y <= x <= y x jest mniejsze lub równe y UWAGA - jeśli porównujemy dwa elementy używamy operatora == Pojedynczy znak = oznacza przypisanie wartości (np. x = 1)

Porównanie tekstu metoda/przykład wynik String tekst = "kot"; tekst.equals("kot"); tekst.equals("pies") tekst.equals("kot") tekst.equalsignorecase("kot") tekst.equalsignorecase("pies") tekst.equalsignorecase("kot") true false false true false true UWAGA: Znak wykrzyknika (!), oznacza zaprzeczenie wyrażenia. Na przykład :!tekst.equals("kot") zwraca false!tekst.equals("pies") a zwraca true

Piszemy program Uzupełniamy nasz kod: 1. Pobierz kariotyp 2. Sprawdź czy kariotyp to XY 3. Jeśli odpowiedź brzmi TAK to wydrukuj samiec 4. Jeśli odpowiedź brzmi NIE to wydrukuj samica 5. Zakończ program String kariotyp = "XX"; if (kariotyp.equalsignorecase("xy")) { System.out.println("Samiec"); else { System.out.println("Samica"); System.out.println("KONIEC");

Ulepszamy program Wpisywanie na sztywno danych wejściowych, nie jest najlepszym pomysłem. Zmiana danych wejściowych wymaga każdorazowo kompilacji. Umożliwmy więc wpisanie przez użytkownika danych wejściowych. Zamieńmy linię String kariotyp = "XX"; na kod: Scanner skaner = new Scanner(System.in); System.out.print("Podaj kariotyp: "); String kariotyp = skaner.nextline(); Eclipse sygnalizuje błąd w pierwszej z tych linii, należy więc uzupełnić kod wpisując: import java.util.scanner; zaraz po linii z nazwą pakietu (o ile jest); Tworzymy obiekt typu Scanner o nazwie skaner skaner pobiera linię tekstu Dodajemy do programu dodatkowy zewnętrzny kod (będzie o tym później)

Ulepszamy program Teraz program wyświetla zapytanie: Podaj kariotyp: W zależności od tego, czy wpisujemy XY (xy) czy XX (xx) otrzymujemy odpowiedź Samiec lub Samica Wpiszmy teraz dla odmiany: AB Otrzymujemy odpowiedź: Samica Otrzymaliśmy więc odpowiedź bezsensowną. Jak to zmienić? Jak można zmienić algorytm?

Start Pobierz kariotyp Drukuj??? NIE Czy kariotyp to XX? NIE Czy kariotyp to XY? TAK TAK Drukuj samica Drukuj samiec Koniec

Ulepszamy program Modyfikowany fragment kodu można napisać tak: if (kariotyp.equalsignorecase("xy")) { System.out.println("Samiec"); else { if (kariotyp.equalsignorecase("xx")) { System.out.println("Samica"); else { System.out.println("???");

Ulepszamy program Ale bardziej przejrzyście będzie tak: if (kariotyp.equalsignorecase("xy")) { System.out.println("Samiec"); else if (kariotyp.equalsignorecase("xx")) { System.out.println("Samica"); else { System.out.println("???");

switch - przełącz to! Instrukcja switch umożliwia dokonywanie wyboru jeszcze inaczej:... System.out.print("Podaj ocenę: "); String ocena = skaner.nextline(); int ocenaliczba = Integer.parseInt(ocena); switch (ocenaliczba) { case 5 : System.out.println("Bardzo dobry"); break; case 4 : System.out.println("Dobry"); break; case 3 : System.out.println("Dostateczny"); break; case 2 : System.out.println("Niedostateczny"); break; default : System.out.println("Jakaś dziwna ocena!"); break oznacza, że następne testy już nie będą wykonywane i program przeskakuje na koniec bloku.

switch - przełącz to! Instrukcja switch dla łańcuchów znaków:... System.out.print("Podaj kariotyp: "); String kariotyp = skaner.nextline(); // zmieniamy wszystkie znaki na wielkie kariotyp = kariotyp.touppercase(); switch (kariotyp) { case "XX": System.out.println("Kariotyp "+kariotyp+" nalezy do samicy."); break; case "XY": System.out.println("Kariotyp "+kariotyp+" nalezy do samca."); break; default: System.out.println("???");

operator warunkowy (? :) - albo, albo... test logiczny zwracający prawdę lub fałsz wartość zwracana jeśli warunek zwrócił prawdę wartość zwracana jeśli warunek zwrócił fałsz warunek? wartośćp : wartośćf Przykład: x < 0? "ujemna" : "nieujemna" Operator warunkowy działa podobnie jak konstrukcja if... else... Główna zaleta: jest krótszy Główna wada: pozwala tylko na wybór dwu możliwości (nie ma odpowiednika else if...).

operator warunkowy (? :) - albo, albo... Przykład: krótki program do rozpoznawania czy podana liczba jest parzysta czy nieparzysta:... String rodzajliczby; String liczba = skaner.nextline(); int liczbaint = Integer.parseInt(liczba); if... else... if (liczbaint%2 == 0) rodzajliczby="parzysta"; else rodzajliczby="nieparzysta"; System.out.println("Podana liczba jest "+rodzajliczby); Operator warunkowy (? :): Jeśli warunek zwrócił true rodzajliczby = (liczbaint%2 == 0? "parzysta" : "nieparzysta"); System.out.println("Podana liczba jest "+rodzajliczby); Można też zmieścić to w jednej linijce (? :): System.out.println("Podana liczba jest "+ (liczbaint%2 == 0? "parzysta" : "nieparzysta")); sprawdzamy czy liczba jest parzysta (jeśli %2 wynosi 0 to jest zwracane true) Jeśli warunek zwrócił false

Rozszerzamy aplikację Jak wiadomo, świat istot żywych nie ogranicza się do ludzi ani nawet ssaków. Model XX- samica, XY- samiec, nie jest uniwersalny. Uproszczona tabela determinacji płci przez chromosomy płciowe u wybranych organizmów: organizm samica samiec ssaki (większość) XX XY ryby XY XX ptaki XY XX motyle (niektóre) XY XX szczaw XX XYY

Zadanie: Napisz aplikację która uwzględni zamieszczone w tabeli przypadki.

Można to zrobić na przykład tak: Scanner skaner = new Scanner(System.in); System.out.print("Podaj kariotyp: "); String kariotyp = skaner.nextline(); System.out.println("Jaki to organizm? (podaj numer)"); System.out.println("1 - ssak, 2 - ryba, 3 - ptak, 4 - motyl, 5 - szczaw "); int organizm = Integer.parseInt(skaner.nextLine()); System.out.println("Organizm: "+organizm+", kariotyp: "+kariotyp); if (kariotyp.equalsignorecase("xx")) { if (organizm == 1) System.out.println("Samica"); else if (organizm == 2) System.out.println("Samiec"); else if (organizm == 3) System.out.println("Samiec"); else if (organizm == 4) System.out.println("Samiec"); else if (organizm == 5) System.out.println("Samica"); else System.out.println("Zły numer organizmu!"); else if (kariotyp.equalsignorecase("xy")) { if (organizm == 1) System.out.println("Samiec"); else if (organizm == 2) System.out.println("Samica"); else if (organizm == 3) System.out.println("Samica"); else if (organizm == 4) System.out.println("Samica"); else System.out.println("Zły numer organizmu lub kariotyp!"); else if (kariotyp.equalsignorecase("xyy")) { if (organizm == 5) System.out.println("Samiec"); else System.out.println("Zły numer organizmu lub kariotyp!"); else System.out.println("Zły numer organizmu lub kariotyp!");