Wstęp do informatyki- wykład 7

Podobne dokumenty
Wstęp do informatyki- wykład 6

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

Wstęp do informatyki- wykład 7

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do programowania

Wstęp do informatyki- wykład 11 Funkcje

Wstęp do informatyki- wykład 8 Pętla while, do while,for -pętla w pętli- przykłady Operator rzutowania Manipulatory

do instrukcja while (wyrażenie);

WHILE (wyrażenie) instrukcja;

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

Ijakis Taka warunek. petla programowa polega na tym, ze pewna instrukcja (lub ~ Instrukcja sterujaca while ma forme:

Wstęp do programowania

Wstęp do programowania

Programowanie - wykład 4

WHILE (wyrażenie) instrukcja;

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

Podstawy algorytmiki i programowania - wykład 5 C-struktury cd.

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne Wyrażenie warunkowe operator selekcji Instrukcja switch

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Wstęp do informatyki- wykład 9 Pętla while, do while,for -pętla w pętli- przykłady Funkcje

1 Podstawy c++ w pigułce.

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

Instrukcje sterujące

Programowanie komputerowe. Zajęcia 1

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Pętla for. Wynik działania programu:

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

7. Pętle for. Przykłady

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy

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

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

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

Podstawy Programowania

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

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

Podstawy algorytmiki i programowania - wykład 6 Sortowanie- algorytmy

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

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

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

Podstawy programowania w C++

Wstęp do informatyki- wykład 2

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Wstęp do informatyki- wykład 1

Struktura pliku projektu Console Application

Pytania sprawdzające wiedzę z programowania C++

3. Instrukcje warunkowe

PROGRAMOWANIE W C++ ZADANIA

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Część 4 życie programu

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

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy dopóki nam sie nie znudzi.

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Konstrukcje warunkowe Pętle

Podstawy algorytmiki i programowania - wykład 1 Tablice powtórzenie Tablice znaków Tablice dwuwymiarowe

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy Instrukcja selekcji if-else

C++ wprowadzanie zmiennych

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

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

1 Podstawy c++ w pigułce.

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

Podstawy Programowania C++

Wstęp do programowania

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Wstęp do informatyki- wykład 3 Pierwszy program w C++ Wyprowadzanie danych Deklaracja zmiennych

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

Liczby losowe i pętla while w języku Python

Wstęp do programowania

KURS C/C++ WYKŁAD 2. char znak; znak = a ; Program 2 #include<stdio.h> void main() { char znak; while( (znak = getchar() )!= t ) putchar(znak); }

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Wstęp do Informatyki

4. Funkcje. Przykłady

Podstawy algorytmiki i programowania - wykład 3 Funkcje rekurencyjne Wyszukiwanie liniowe i binarne w tablicy

Wstęp do programowania. Wykład 1

Kontrola przebiegu programu

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

6. Pętle while. Przykłady

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

Każde wykonanie bloku instrukcji nazywamy pojedynczym przebiegiem lub iteracją pętli.

Wstęp do informatyki- wykład 1 Systemy liczbowe

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Część XV C++ Ćwiczenie 1

I - Microsoft Visual Studio C++

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Ćwiczenia podstawowe, zestaw 5, część 1

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.

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

Transkrypt:

1 Wstęp do informatyki- wykład 7 Operatory przypisania, złożone operatory przypisania, Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum C++11, Helion, 2017 B. Stroustrup, Język C++. Kompendium wiedzy. Wydanie IV, Helion, 2014 S. B. Lippman, J. Lajoie, Podstawy języka C++, WNT, Warszawa 2003.

Instrukcje iteracyjne - pętla while 2 Iteracyjna instrukcja sterująca while pozwala na realizację tak zwanej pętli programowej (ang. iterative statement, loop), polegającej na tym, że pewna instrukcja lub blok instrukcji wykonywane są w kółko, dopóki spełniony jest pewien warunek logiczny (wyrażenie ma wartość true lub w przypadku wyrażeń całkowitoliczbowych wartość jest!=0). Instrukcja sterująca while ma formę: while( wyr ) instrukcja1; Oczywiście instrukcja1, może być instrukcją złożoną (grupującą, blokiem instrukcji), czyli kilka instrukcji ujętych w klamry { }.

Instrukcje iteracyjne - pętla while 3 Wykonanie instrukcji while: Najpierw obliczana jest wartość wyrażenia wyr Jeśli wyr ma wartość false, wówczas instrukcja1 nie jest wcale wykonywana. Jeśli jednak wyr ma wartość true, wówczas wykonywana jest instrukcja1, po czym ponownie sprawdzany jest warunek tj. obliczana wartość wyr. Jeśli tym razem wyr nadal jest true, wówczas ponownie wykonywana jest instrukcja1 i tak dalej, wielokrotnie, dopóki (while) wyr ma wartość true. Jeśli w końcu, za którymś obiegiem pętli, warunek stanie się false, wówczas dopiero praca pętli zostanie przerwana.

Instrukcje iteracyjne - pętla while Podsumowując: while(wyr) instrukcja1; dopóki prawdziwe jest wyr wykonuj instrukcja1 instrukcja jest powtarzana, dopóki wyr jest prawdziwe (true). Obliczenie wartości wyrażenia następuje przed każdym kolejnym wykonaniem instrukcji. Zwróćmy uwagę, że pierwsze obliczenie wartości wyr odbywa się przed wykonaniem instrukcji instrukcja1, czyli możliwa jest sytuacja, gdy instrukcja1 nie zostanie wykonana ani razu. Ponadto przed pętlą while należy dokonać przygotowania: inicjalizacji zmiennych występujących w wyrażeniu wyr. 4

Instrukcje iteracyjne - pętla while 5

Instrukcje iteracyjne - pętla while 6

Pętla while przykład 1 - gwiazdki Program pobiera od użytkownika liczbę i drukuje tyle gwiazdek int main() { int ile; cout << "Podaj ile gwiazdek chcesz wyswietlic : "; cin >> ile; cout << "Narysujmy "<< ile <<" gwiazdek: "; // petla while rysujaca gwiazdki while(ile!= 0) //lub: while(ile) { cout << '*'; //wyswietlamy gwiazdke ile--; //ile = ile 1; - zmniejszamy licznik } // sprawdzamy wartosc zmiennej ile cout << "\nteraz zmienna ile ma wartosc " << ile; return 0; } 7

Pętla while przykład 1 8 Podaj ile gwiazdek chcesz wyswietlic : 5 Narysujmy 5 gwiazdek: ***** Teraz zmienna ile ma wartosc 0 Zauważmy, że jeśli ktoś poda liczbę 0 to pętla nie wykona się, a jeśli liczbę ujemną to pętla będzie nieskończona: while(ile!=0)//wyrażenie będzie zawsze true { cout << '*';//wyswietlamy gwiazdke ile = ile 1;//jeszcze mniejsza ujemna } Program powinien zatem przyjmować jedynie liczbę dodatnią. Poprawmy nasz program: jeśli użytkownik poda liczbę ujemną, to powinien zostać poinformowany, że wymagana jest liczba dodatnia i poproszony o kolejną liczbę. Próbę wczytywania liczby powtarzamy dopóty, dopóki użytkownik nie poda liczby poprawnej (dodatniej). Taki sposób zapewnienia poprawności wczytywanych danych nazywać będziemy pętlą zaporową.

Pętla while przykład 1 cd pętla zaporowa int main() { int ile; //pobieramy 1 raz liczbe od uzytkownika cout << "Podaj ile gwiazdek chcesz narysowac : "; cin >> ile; //petla zaporowa: dopoki ile<=0 pobieramy ponownie while (ile <= 0) //while(!(ile>0)) { cout << "Podales liczbę ujemna lub 0!" << endl << "Podaj liczbe dodatnia "; cin >> ile; } cout << "Liczba dodatnia wynosi:" << ile << endl; //teraz mozemy już wyswietlac ile gwiazdek cout << "Narysujmy "<< ile <<" gwiazdek: "; //... 9

10 Pętla do...while... Pętla do...while... czyli: rób... dopóki... Instrukcja ta pozwala na realizację innego rodzaju pętli programowej: do instrukcja while( wyr ); czyli : rób instrukcja1 dopóki ( wyr ); Działanie jej jest takie: Najpierw wykonywana jest instrukcja1. Następnie sprawdzana jest wartość wyr. Jeśli wyr ma wartość true to wykonanie instrukcja1 zostanie powtórzone, po czym znowu sprawdzany jest warunek wyr... i tak w kółko, dopóki warunek będzie spełniony(prawdziwy).

Pętla do...while... 11

12 Pętla do...while... Jak widać, działanie tej pętli do...while przypomina działanie pętli while... Różnica polega tylko na tym, że wyrażenie logiczne wyr obliczane jest nie przed, ale po wykonaniu instrukcji1. Wynika stąd, że instrukcja1 zostanie wykonana co najmniej raz. Czyli nawet wtedy, gdy wyr nie będzie nigdy prawdziwe (warunek nie będzie nigdy spełniony). Przykład. Program wczytuje i wyświetla napisanie przez użytkownika litery, dopóki nie podamy litery K (wielkiej). Wtedy to wykonywanie pętli zakończy się. Zwróćmy uwagę, że pętla wczytująca znaki zostanie wykonana przynajmniej raz, zatem możemy wykorzystać pętle do..while.

Pętla do...while... #include <iostream> using namespace std; int main() { char litera; do { cout << "Napisz jakas litere: "; cin >> litera; cout << "Napisales: " << litera << " \n"; }while(litera!= 'K'); } cout << "Skoro napisales K to konczymy!"; return 0; 13

Pętla do...while 14 Przykładowe wykonanie: Napisz jakas litere: a Napisales: a Napisz jakas litere: A Napisales: A Napisz jakas litere: K Napisales: K Skoro napisales K to konczymy!

15 Pętla while i do...while -przykład petla zaporowa Napisz program wczytujący od użytkownika z klawiatury przy pomocy pętli zaporowej liczbę całkowitą dodatnią. //z użyciem pętli while int main() { int n; cout << "Podaj liczbe dodatnia"; cin >> n; //pierwsze pobranie przed pętlą while (n <= 0) //dopóki liczba <=0 pobieramy ponownie { cout <<"Podales liczbę ujemna lub 0!"<< <<"\npodaj liczbe dodatnia "; cin >> n; } cout << "Liczba dodatnia wynosi:" << n << endl; return 0; }

Pętla while i do...while -przykład petla zaporowa //z użyciem pętli do...while #include <iostream> using namespace std; int main() { int n; do { cout << "Podaj liczbe dodatnia"; cin >> n; }while (n <= 0); } cout << "Liczba dodatnia wynosi:" << n << endl; return 0; 16

Operator przypisania = (grupa 16, wiązanie prawe) 17 Operator przypisania = double m; m = 34.88; powoduje że do obiektu stojącego po jego lewej stronie przypisana (podstawiona) zostaje wartość wyrażenia stojącego po prawej. Zatem w zmiennej m znajdzie się liczba 34.88 Jest to operator dwuargumentowy o wiązaniu prawym. Ponadto, każde przypisanie samo w sobie jest także wyrażeniem mającym taką wartość, jaka jest przypisywana: int a, x = 4; cout << "Wart. wyrazenia przypisania: " << (a = x); W rezultacie na ekranie pojawi się napis: Wart. wyrazenia przypisania: 4

18 Operator przypisania = (grupa 16, wiązanie prawe) Dzięki temu, że wartością całego wyrażenia z przypisaniem jest wartość lewej strony po jego wykonaniu, przypisania można stosować kaskadowo: int k = 7, j, m; int n = m = j = k; ponieważ wiązanie operatora przypisania jest od prawej, wartością wyrażenia ' m = j = k', równoważnego ' m = (j = k)', jest wartość m po przypisaniu (czyli w naszym przypadku 7). Ta wartość zostanie użyta do zainicjowania definiowanej zmiennej n. Efektem ubocznym będzie nadanie wartości również zmiennym m i j. Instrukcja byłaby błędna, gdyby któraś ze zmiennych m, j, k nie była utworzona wcześniej.

19 Operator przypisania = (grupa 16, wiązanie prawe) Może się zdarzyć, że po obu stronach operatora przypisania stać będą argumenty różnego typu. Nastąpi wówczas próba niejawnej zamiany typu wartości przypisywanej na typ zgadzający się z typem tego, co stoi po lewej stronie: int a; a = 3.14; cout << a; //3 Nastąpi tu zamiana (mówimy konwersja) typu zmiennoprzecinkowego na typ int. Po prostu zostanie wzięta pod uwagę tylko część całkowita liczby 3.14 czyli 3 i to zobaczymy na ekranie. Konwersja taka nastąpi niejawnie.

Złożone operatory przypisania (grupa 16, wiązanie prawe) Poznaliśmy już wcześniej operator przypisania =. W zasadzie może on nam wystarczyć, jednak dla wygody mamy jeszcze do dyspozycji następujące operatory: += = *= /= %= Są to złożone operatory przypisania. Pozwalają na prostszy zapis niektórych przypisań: tych, w których ten sam obiekt występuje po lewej i prawej stronie przypisania. Zamiast instrukcji a = a @ b; gdzie symbol '@ ' oznacza któryś z operatorów :+, -, *, /, %, można użyć instrukcji a @= b; 20

21 Złożone operatory przypisania (grupa 16, wiązanie prawe) Zatem np. n += 2 oznacza n = n + 2 n = 2 oznacza n = n 2 n *= 2 oznacza n = n * 2 n /= 2 oznacza n = n / 2 n %= 2 oznacza n = n % 2 Drobna różnica, najczęściej bez znaczenia, pomiędzy tymi instrukcjami polega na tym, że w przypisaniu złożonym wartość a jest obliczana jednokrotnie, a w zwykłym dwukrotnie. Zwykle forma ' a @= b', jest efektywniejsza.