Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012



Podobne dokumenty
Konstrukcje warunkowe Pętle

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

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

1 Podstawy c++ w pigułce.

do instrukcja while (wyrażenie);

Proste programy w C++ zadania

Wstęp do programowania

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

PROGRAMOWANIE W C++ ZADANIA

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

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

Programowanie - instrukcje sterujące

1 Podstawy c++ w pigułce.

INSTRUKCJE REPETYCYJNE PĘTLE

WHILE (wyrażenie) instrukcja;

Podstawy programowania w języku C i C++

Programowanie w języku Python. Grażyna Koba

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Instrukcje sterujące

Programowanie strukturalne i obiektowe

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }

Część 4 życie programu

Cw.12 JAVAScript w dokumentach HTML

3. Instrukcje warunkowe

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

lekcja 8a Gry komputerowe MasterMind

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

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

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }

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

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

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

WHILE (wyrażenie) instrukcja;

6. Pętle while. Przykłady

1 Wielokrotne powtarzanie tych samych operacji

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

Programowanie komputerowe. Zajęcia 1

Struktura pliku projektu Console Application

7. Pętle for. Przykłady

Warunki logiczne instrukcja if

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

Wstęp do Informatyki

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Języki programowania obiektowego Nieobiektowe elementy języka C++

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Programowanie obiektowe - zadania

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

Programowanie w Turbo Pascal

Klasy: String, Random, Math. Korzystanie z dokumentacji.

Wstęp do informatyki- wykład 7

Podstawy i języki programowania

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Język C zajęcia nr 5

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

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

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

Podstawy programowania w języku C

I - Microsoft Visual Studio C++

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

4. Funkcje. Przykłady

Wstęp do Programowania Lista 1

Instrukcje sterujące. Programowanie Proceduralne 1

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

Kilka prostych programów

Metody Metody, parametry, zwracanie wartości

Wprowadzenie do programowania w języku C

Laboratorium 2: Pętle i instrukcje warunkowe. mgr inż. Leszek Ciopiński dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

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

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

Warunek wielokrotnego wyboru switch... case

Podstawy Programowania C++

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

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

Spis treści JĘZYK C - INSTRUKCJA SWITCH, OPERATORY BITOWE. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF05

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

Spis treści JĘZYK C - INSTRUKCJE ITERACYJNE FOR, WHILE I DO WHILE, ZAGNIEŻDŻANIE PĘTLI FOR, INSTRUKCJE CONTINUE, BREAK, I GOTO.

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Wstęp do programowania

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

C++ wprowadzanie zmiennych

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Pytania sprawdzające wiedzę z programowania C++

2 Przygotował: mgr inż. Maciej Lasota

while(wyrażenie) instrukcja

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

3 Przygotował: mgr inż. Maciej Lasota

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

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Podstawowe elementy programowania strukturalnego. Wbudowane typy danych w C++

Operatory, wyrażenia i typy proste

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

XII. Warunek wielokrotnego wyboru switch... case

ForPascal Interpreter języka Pascal

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Transkrypt:

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012

if (warunek) instrukcja1; if (warunek) instrukcja1; else instrukcja2; if (warunek) instrukcja1; else if (warunek2) instrukcja2; else instrukcja3; Gdzie jest haczyk? int zarobek= -10; if (zarobek >= 0) if (zarobek > 0) cout << Dochód ; else cout << Strata ; Złe wcięcia mogą namieszać: int zarobek= -10; if (zarobek >= 0) if (zarobek > 0) cout << Dochód ; else cout << Strata ; Instrukcja warunkowa analizuje tylko JEDNĄ instrukcję następującą bezpośrednio po niej.

Jeśli ciąg instrukcji zostanie ujęty w nawiasy klamrowe { } to zostanie on potraktowany jako jedna (złożona) instrukcja. Wykonanie instrukcji złożonej polega na wykonaniu wszystkich jej instrukcji wewnętrznych (znajdujących się między { i }). Dobra praktyka w przypadku instrukcji sterujących na początku zawsze używać nawiasów klamrowych. int zarobek= -10; if (zarobek >= 0) { if (zarobek > 0) cout << Dochód ; } else cout << Strata ;

switch (wyrażenie) { case przypadek1: instrukcja1; break; case przypadek2: instrukcja2; break; default: instrukcja3; break; } Bo czasem if ów jest za dużo wygodniej jest wtedy stosować switch. Słowo kluczowe break powoduje zaprzestanie wykonywania dalszych instrukcji i wyjście z instrukcji switch. Nawiasy klamrowe i znaki dwukropka są tu niezwykle istotne! Instrukcje switch można zastosować tylko do danych liczbowych lub pojedynczych znaków. Nie można jako przypadek do rozpatrzenia dać łańcuchów znaków.

cout << "1. Zdobądź świat" << endl; cout << "2. Zniszcz świat" << endl; cout << "3. Nigdy tego nie naciskaj" << endl; cout << "4. Uzupełnij konto" << endl; cout << "Podaj opcje do wyboru: "; int menu = 0; cin >> menu; switch(menu) { case 1: cout << "Świat zdobyty" << endl; break; case 2: cout << "Rozpoczynam odliczanie..." << endl; break; case 3: cout << "Format c: in progress..." << endl; break; case 4: cout << "100 mln przelane na konto" << endl; break; }

Jak wszystkie pętle pozwala na wielokrotne wykonywanie pewnego fragmentu kodu. Pętla wykonuje się dopóki warunek jej kontynuacji jest prawdziwy. Instrukcja wewnątrz pętli do-while wykona się przynajmniej raz. do instrukcja; while (warunek_kontynuacji); LUB do { instrukcja1; instrukcja2; instrukcjan; } while (warunek);

int menu = 0; do { cout << "1. Zdobądź świat" << endl; cout << "2. Zniszcz świat" << endl; cout << "3. Nigdy tego nie naciskaj" << endl; cout << "4. Uzupełnij konto" << endl; cout << 5. Wyjście" << endl; cout << "Podaj opcje do wyboru: "; cin >> menu; switch(menu) { case 1: cout << "Świat zdobyty" << endl; break; case 2: cout << "Rozpoczynam odliczanie..." << endl; break; case 3: cout << "Format c: in progress..." << endl; break; case 4: cout << "100 mln przelane na konto" << endl; break; case 5: cout << "Do zobaczenia" << endl; break; default: cout << "Nie ma takiej opcji Franek. Tak wygląda menu:" << endl; break; } } while (menu!= 5);

char menu; do { cout << "a. Zdobądź świat" << endl; cout << "b. Zniszcz świat" << endl; cout << "c. Nigdy tego nie naciskaj" << endl; cout << "d. Uzupełnij konto" << endl; cout << "e. Wyjście" << endl; cout << "Podaj opcje do wyboru: "; cin >> menu; switch(menu) { case a : cout << "Świat zdobyty" << endl; break; case b : cout << "Rozpoczynam odliczanie..." << endl; break; case c : cout << "Format c: in progress..." << endl; break; case d : cout << "100 mln przelane na konto" << endl; break; case e : cout << "Do zobaczenia" << endl; break; default: cout << "Nie ma takiej opcji Franek. Tak wygląda menu:" << endl; break; } } while (menu!= e );

char typ znakowy, obejmujący zbiór znaków używanych do komunikacji z człowiekiem Zakres wartości przyjmowanych przez typ char zależy od konkretnej platformy sprzętowo-systemowej. C/C++ wykorzystuje kodowanie ASCII.

Literał wartość wpisana bezpośrednio w kod programu. literały znakowe: a 1 & A * ) literały łańcuchowe: a liczba suma c++ programowanie Nie można mylić literałów łańcuchowych ze znakowymi.

Sekwencje specjalnie pozwalają na reprezentowanie znaków nie posiadających odpowiednika graficznego, bądź takich których bezpośrednie wyświetlenie jest zabronione przez syntaktykę języka.

Warunek kontynuacji pętli sprawdzany jest na jej początku może się więc ona nie wykonać wcale! Pętla ta wykonuje się dopóki jej warunek jest prawdziwy. while (warunek_kontynuacji) instrukcja; LUB while (warunek_kontynuacji) { instrukcja1; instrukcja2; instrukcjan; }

Ukośnik \ jest znakiem specjalnym. By go wyświetlić trzeba go poprzedzić innym ukośnikiem. To da 3 ukośniki \\\. Pobierz jakikolwiek znak Ale go nie zapamiętujemy Zamiast tego można napisać: licznik++;

Jak taki program ulepszyć? Trzeba byłoby pozbyć się zdania Aby kontynuować, naciśnij dowolny klawisz ale zatrzymać program tak by użytkownik mógł zobaczyć efekt żartu. Jak? Dobrze byłoby spowolnić taki program by wolniej odliczał. Jak?

Instrukcja for z C/C++ nie ma nic wspólnego z instrukcją iteracyjną for z Pascal a! Pętla for jest świetna tam gdzie potrzebujemy jakiś licznik i stanowi uogólnienie pętli while. Pętla while Pętla for

Pętlą for krócej Czyścimy bufor strumienia bo został w nim znak enter. Czekamy na innego znaku i wciśnięcie klawisza ENTER.

const oznacza stałą Operatory logiczne: && AND koniunkcja OR alternatywa! NOT negacja

W celu wylosowania liczb przydatne są 2 funkcje: rand() <- losuje liczby całkowite z zakresu 0.. RAND_MAX. Aby ograniczyć zakres stosuje się operator % (modulo). Aby zatem wylosować liczbę z zakresu od 1 do 100 należy napisać: int liczba_losowana = rand() % 100 + 1; srand( zalążek ) <- inicjalizuje generator liczb pseudolosowych (określa jego stan początkowy). Przykładowo srand(300) spowoduje, że generator swoje przebiegi będzie zawsze zaczynał od 300 i dostaniemy co uruchomienie programu te same wartości.

Aby losowanie przebiegało poprawnie, należy zainicjalizować generator liczb pseudolosowych jakąś losową wartością. Najłatwiej skorzystać z funkcji time() podającą np. aktualny czas. W tym celu trzeba dodać plik nagłówkowy <ctime>.

1. Napisz program losujący 30 liczb z zakresu od -10 do 10, oraz wyświetlający na ekran tylko parzyste wylosowane liczby. 2. Napisz program, określający ile lat trzeba oszczędzać w banku na 5% lokacie, aby przy zarobkach rzędu 12000 zł rocznie netto mieć na koncie sumę co najmniej 200000 zł. Załóż, że od odsetek ani dochodu nie jest pobierany żaden podatek. 3. Napisz program, który wyznacza największą i najmniejszą wprowadzoną przez użytkownika liczbę. Zakończenie wprowadzania liczb określa liczba 0.

4. Napisz program kalkulator, który będzie realizował następujące operacje: Dodawanie dwóch liczb Odejmowanie dwóch liczb Dzielenie dwóch liczb Mnożenie dwóch liczb Wyznaczanie procent z liczby. Wyznaczanie reszty z dzielenia dwóch liczb. Wyznaczanie dowolnej potęgi danej liczby. 5. Napisz grę Zgadnij moją liczbę. Komputer losuje liczbę całkowitą z zakresu 0.. 90 a użytkownik próbuje ją wytypować. Po każdej próbie użytkownik dostaje komunikat za dużo, za mało lub trafiłeś.

6. Uzupełnij swój kalkulator tak, aby nie zamykał się po każdej operacji. Dołóż do niego funkcjonalności: Liczenie silni Obliczanie NWD dwóch liczb Obliczanie pierwiastka równania kwadratowego 7. Użytkownik podaje dwie liczby, program losuje 10 liczb z przedziału podanego przez użytkownika

8. Idą święta narysuj choinkę z gwiazdek (rozmiar podaje użytkownik): 9. Napisać program, który pobiera od użytkownika liczbę całkowitą dodatnią, a następnie wyświetla na ekranie kolejno wszystkie liczby nieparzyste nie większe od podanej liczby. Przykład, dla 15 program powinien wyświetlić 1, 3, 5, 7, 9, 11, 13, 15. 10. Napisać program, który pobiera od użytkownika ciąg liczb całkowitych. Pobieranie danych kończone jest podaniem wartości 0 (nie wliczana do danych). W następnej kolejności program powinien wyświetlić sumę największej oraz najmniejszej z podanych liczb oraz ich średnią arytmetyczną. Przykład: Użytkownik podał ciąg: 1, -4, 2, 17, 0. Wynik programu: 32 // suma min. i maks. 4.0 // średnia

11. Napisać program działający w trybie konsolowym (tekstowym) i rysujący na ekranie prostokąt. Użytkownik podaje znak wypełnienia prostokąta, pozycję lewego górnego rogu prostokąta (x, y) oraz długości boków prostokąta (ab). Przyjmujemy, że lewy górny narożnik konsoli ma współrzędne (x, y) = (1, 1). Przykład: x=6, y=3, a=4, b=6, zn= x 12. Napisać program, dla podanej liczby całkowitej wyświetla jej dzielniki. Przykładowo, dla liczby 21 dzielniki to: 1, 3, 7, 21. 13. Napisać program, który sprawdza, czy podana liczba całkowita n, n > 1, jest liczbą pierwszą.