Wstęp do programowania

Podobne dokumenty
Wstęp do programowania

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

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

1 Podstawy c++ w pigułce.

Część 4 życie programu

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

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

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

JAVAScript w dokumentach HTML (1)

3. Instrukcje warunkowe

1 Podstawy c++ w pigułce.

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

Wstęp do programowania

Cw.12 JAVAScript w dokumentach HTML

1. Wypisywanie danych

Wstęp do programowania

Wstęp do programowania

Podstawy programowania w C++

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

I - Microsoft Visual Studio C++

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

Spis treści OPERACJE WEJŚCIA-WYJŚCIA W JĘZYKU C++. STEROWANIE FORMATEM, MANIPULATORY. Informatyka 2

Wstęp do informatyki- wykład 7

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

dr inż. Jarosław Forenc

Wstęp do programowania

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

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

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

#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 ); }

4. Funkcje. Przykłady

do instrukcja while (wyrażenie);

Programowanie strukturalne. dr inż. Tadeusz Jeleniewski

2 Przygotował: mgr inż. Maciej Lasota

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

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

Klasyfikacja typów w C++

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 4

dr inż. Paweł Myszkowski Wykład nr 8 ( )

Proste programy w C++ zadania

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

Programowanie Delphi obliczenia, schematy blokowe

Programowanie komputerowe. Zajęcia 1

C++ wprowadzanie zmiennych

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

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

Wstęp do programowania

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

Podstawy i języki programowania

Język C++ zajęcia nr 1

3 Przygotował: mgr inż. Maciej Lasota

Wstęp do programowania

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

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

Struktura pliku projektu Console Application

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

Wyrażenia arytmetyczne

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

Wstęp do Informatyki

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Wstęp do informatyki- wykład 6

Laboratorium 1: Podstawy języka c. dr inż. Arkadiusz Chrobot dr inż. Grzegorz Łukawski

Programowanie - wykład 4

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Podstawy programowania w języku C i C++

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Zmienne, stałe i operatory

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

Wstęp do programowania

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

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

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Języki programowania wysokiego poziomu. PHP cz.2.

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

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Podstawy programowania C. dr. Krystyna Łapin

Języki i metodyka programowania. Wprowadzenie do języka C

operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania

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

Algorytmika i Programowanie VBA 1 - podstawy

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

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

Mikrokontroler ATmega32. Język symboliczny

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.

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

JAVAScript w dokumentach HTML - przypomnienie

ZASADY PROGRAMOWANIA STRUKTURALNEGO (ZAP - zima 2016) Liczby, znaki, napisy, operatory logiczne, stałe. Pętle typu while.

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

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

Funkcje matematyczne w C. Programowanie w C Marek Pudełko

Wstęp do programowania. Wykład 1

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Transkrypt:

wykład 2 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018

Inicjalizacja zmiennych Zmiennej możemy nadać wartość już w momencie jej definiowania (inicjalizacja zmiennej). Przypisywana wartość powinna mieścic się w zakresie typu. Postać: typ zmiennej nazwa zmiennej = wyrażenie; Przykłady int i = 0; float s= 2.5234 + 3.234; int k, l=100, m; tylko jedna zmienna ma nadaną wartość początkową 100

Inicjalizacja zmiennych Zmiennej możemy nadać wartość już w momencie jej definiowania (inicjalizacja zmiennej). Przypisywana wartość powinna mieścic się w zakresie typu. Postać: typ zmiennej nazwa zmiennej = wyrażenie; Przykłady int i = 0; float s= 2.5234 + 3.234; int k, l=100, m; tylko jedna zmienna ma nadaną wartość początkową 100 powyższe wartości początkowe mogą być oczywiście zmienione w trakcie działania programu

Przykład (inicjalizacja zmiennych,oraz C++ to nie Excel ;-) ) # include < iostream > using namespace std ; int main () { int a = 3; int x, b =10; int c = a* b; } cout << " niezainicjalizowany x = " << x << endl ; a = 6; cout << " a = " << a << " b = " << b << " c = " << c << endl ; /* wartosc zmiennej a zmieniona, wartosc c bez zmiany ( nadal 30) */ return 0;

Stałe Oprócz zmiennych możemy wprogramie używać także stałych. Stałe nie mogą zmieniać swojej wartości. Wartość nadajemy im w momencie ich definiowania: definicja stałej: const nazwa typu nazwa stałej = wyrażenie;

Stałe Oprócz zmiennych możemy wprogramie używać także stałych. Stałe nie mogą zmieniać swojej wartości. Wartość nadajemy im w momencie ich definiowania: definicja stałej: const nazwa typu nazwa stałej = wyrażenie; Przykłady const int procent podatku = 18; const float przyspieszenie ziemskie = 9.80665;

Program używający stałych # include < iostream > using namespace std ; int main () { float netto_ price = 123.40; const float vat = 0.22; float brutto_ price ; } brutto_ price = netto_ price + netto_ price * vat ; cout << " cena netto to " << netto_ price << ", ale z podatkiem VAT zaplacisz " << brutto_ price << endl ; return 0;

Wyrażenia arytmetyczne Wyrażenia konstruuje się z literałów, nazw stałych i zmiennych oraz operatorów arytmetycznych, używając nawiasów ( ) w razie potrzeby. Wyrażenia służą do obliczania wartości które są następnie np. przypisywane stałym, zmiennym lub wypisywane na ekranie pojedyncza zmienna lub literał to także wyrażenia

Operatory używane w wyrażeniach arytmetycznych Podstawowe operatory to + - * / całkowitych) i % (modulo, dla wartości kolejnośc wykonywania działań (priorytet operatorów) odpowiada matematyce: wyrażenie w nawiasie obliczane jest w pierwszej kolejności; jeśli nawiasy są zagnieżdżone, pierwszy przetwarzany jest nawias najbardziej wewnętrzny, następnie wykonywane są działania mnożenia, dzielenia i modulo; jeśli jest ich kilka, wykonywane są od lewej do prawej, dodawanie i odejmowanie wykonywane jest na końcu; jeśli jest ich kilka, wykonywane są od lewej do prawej typ wyniku operacji arytmetycznej jest taki jak najdokładniejszy spośród typów wartości będących argumentami operacji; typ wyniku złożonego wyrażenia arytmetycznego można określić stosując powyższą zasadę w kolejnych krokach obliczania jego wartości

Operatory używane w wyrażeniach arytmetycznych Podstawowe operatory to + - * / całkowitych) i % (modulo, dla wartości kolejnośc wykonywania działań (priorytet operatorów) odpowiada matematyce: wyrażenie w nawiasie obliczane jest w pierwszej kolejności; jeśli nawiasy są zagnieżdżone, pierwszy przetwarzany jest nawias najbardziej wewnętrzny, następnie wykonywane są działania mnożenia, dzielenia i modulo; jeśli jest ich kilka, wykonywane są od lewej do prawej, dodawanie i odejmowanie wykonywane jest na końcu; jeśli jest ich kilka, wykonywane są od lewej do prawej typ wyniku operacji arytmetycznej jest taki jak najdokładniejszy spośród typów wartości będących argumentami operacji; typ wyniku złożonego wyrażenia arytmetycznego można określić stosując powyższą zasadę w kolejnych krokach obliczania jego wartości dzielenie dwóch liczb całkowitych daje wynik całkowity, nawet jeśli występuje np. w wyrażeniu zawierającym liczby rzeczywiste jak 12/5 + 7.2

Skompresowane (szybkie) przypisania a = a + x może być zapisane jako a += x podobnie: a = a - x może być zapisane jako a -= x a = a * x może być zapisane jako a *= x a = a / xmoże być zapisane jako a /= x gdzie a jest zmienną, a x dowolnym wyrażeniem (przykłady: a +=10, a-=3*x)

Inne operatory: inkrementacja i dekrementacja Dodawanie i odejmowanie jedynki są na tyle częstymi operacjami że doczekały się specjalnych operatorów: ++ - inkrementacja -- - dekrementacja Sposób użycia (a jest zmienną): a++; a--; (post-inkrementacja / post-dekrementacja) ++a; --a; (pre-inkrementacja. pre-dekrementacja) [szczegóły będa wyjaśnione później]

Przykład (Inkrementacja - przykłady) # include < iostream > using namespace std ; int main () { int i, x; i =2; x =4; i = x ++; cout << " i = " << i << " x = " << x << endl ; // i =4, x =5 (" x najpierw uzyty w przypisaniu, potem zwiekszony ") i =2; x =4; i = ++ x; cout << " i = " << i << " x = " << x << endl ; // i =5, x =5 (" x najpierw zwiekszony, potem uzyty w przypisaniu ") return 0; }

Konwersja typów (rzutowanie) Konwersja typów (rzutowanie typów, ang. type casting) zamienia wartość jednego typu na odpowiadającą jej wartość innego typu dozwolone są dwie formy zapisu: zapis funkcyjny: nazwa typu( obiekt do przekonwertowania) - np. y = int(x) ; zapis w stylu C : ( nazwa typu) obiekt do przekonwertowania - np. y =(int) x ;

Operacje wejścia i wyjścia dla wartości liczbowych Strumień wejściowy std::cin Aby przypisać zmiennej wartość wprowadzoną przez użytkownika możemy użyć strumienia wejściowego std::cin możemy uważać ten strumień za skojarzony z standardowym wejściem (zwykle klawiaturą) ( płynący od klawiatury ) polecenie std::cin >> zmienna; przekierowuje dane z klawiatury do zmiennej podanej po operatorze >>

# include < iostream > using namespace std ; int main (){ int eggs1, eggs2, totaleggs, people ; cout << " Give the number of eggs of the 1 st person : "; cin >> eggs1 ; cout << " Give the number of eggs of the 2 nd person : "; cin >> eggs2 ; totaleggs = eggs1 + eggs2 ; cout << " They have together " << totaleggs << " eggs " << endl ; cout << " How many people do you want to feed? "; cin >> people ; cout << " Eggs for person : " << totaleggs / float ( people ) << endl ; // conversion to float return 0; }

Formatowanie wyjścia: manipulatory Manipulatory to specjalne wartości które mogą być wstawione do strumienia wyjściowego, zmieniając sposób wyświetlania danych większość manipulatorów działa do odwołania (tj. do momentu zastąpienia ustawienia innym)

Manipulatory - cd Manipulatory bezparametrowe: hex, dec, oct - tylko dla wartości całkowitych, określają system w którym są one wypisywane / pobierane (wartość domyślna: dec) showpoint, noshowpoint - przełączniki wyświetlania części ułamkowej poprzedzonej kropką gdy ta część jest zerowa (domyślnie: showpoint) showpos, noshowpos - przełączniki wyświetlania znaku + dla liczby dodatniej (domyślnie: noshowpos) showbase, noshowbase - pzełączniki wyświetlania symbolu podstawy podczas wypisywania liczb w systemie innym niż dziesiętny (domyślnie: noshowbase) fixed, scientific - przełączniki wyświetlania liczb rzeczywistych w postaci dziesiętnej / wykładniczej endl- przejście do nowej linii

# include < iostream > using namespace std ; int main () { cout << " 12 osemkowo : " << oct << 12 << endl ; cout << " inna wersja " << showbase << oct << 12 << endl ; cout << noshowbase ; // powrot do ustawien domyslnych cout << " 12 szesnastkowo : " << hex << 12 << endl ; cout << 123 << endl ; // hex nadal obowiazuje cout << dec ; // przywrocenie domyslnego cout << 123 << endl ; // dziesiatkowo cout << showpoint << 12.00 << noshowpoint << " vs. " << 12.00 << endl ; cout << fixed << 12 e02 << " vs. " << scientific << 12 e02 << endl ; cout << 4.4 << endl ;// notacja wykladnicza cout << showpos << 4 << " vs. " << noshowpos << 4 << endl ; return 0; }

Manipulatory - cd Manipulatory z parametrami, wymagają dołączenia iomanip setw(n) gdzie n jest wartością całkowitą - określa szerokość wypisywania liczb na n, działa tylko dla najbliższej operacji wejścia/wyjścia setfill(n), gdzie n jest znakiem - określa znak wypełniający pusty obszar wypisywania (domyślnie spacja) setprecision(n), gdzie n jest wartością całkowitą - określa dokładność wypisywania wartości rzeczywistych (albo cakowitą liczbę cyfr znaczących, albo liczbę cyfr części ułamkowej jeśli występuje w połączeniu z fixed)

# include < iostream > # include < iomanip > using namespace std ; int main () { cout << std :: setprecision (5) << 100. 1234567899 << endl << " vs. " << endl ; cout << fixed << std :: setprecision (5) << 100. 1234567899 << endl ; cout << 12 << endl ; cout << setw (10) << 12 << endl ; cout << setw (10) << setfill (. ) << 12 << endl ; } return 0;

Funkcje matematyczne Biblioteka cmath Dołączenie biblioteki cmath umożliwia korzystanie z różnych funkcji matematycznych. Niektóre z nich: sin(x), cos(x), tan(x), gdzie x jest wartością rzeczywistą - obliczają sinus, cosinus, tangens kąta (w radianach) podanego jako argument; wynik jest typu takiego jak x exp(x), gdzie x jest wartością rzeczywistą - zwraca e x (wartość typu takiego jak x) log(x), log10(x), gdzie x jest wartością rzeczywistą - obliczają odpowiednio: logarytm naturalny i logarytm dziesiętny z liczby rzeczywistej x, wynik jest typu takiego jak x

Biblioteka cmath - cd ceil(x) - zwraca sufit - najmniejszą liczbę całkowitą nie mniejszą niż x floor(x) - zwraca podłogę - największą liczbę całkowitą nie większą niż x trunc(x) - zwraca zaokrąglenie x w stronę zera, do liczby całkowitej round(x) - zwraca zaokrąglenie x do najbliższej liczby całkowitej; wartości połówkowe są zaokrąglane do wartości dalszej od 0 abs(x) - zwraca x (wartość bezwzględną)

Biblioteka cmath - cd pow(a,b) - oblicza a b ; gdzie a - rzeczywiste, b - rzeczywiste (ale dla a < 0 musi być wartością całkowitą); wynik jest typu takiego jak a sqrt(x), cbrt(x) - obliczają odpowiednio: pierwiastek kwadratowy i pierwiastek trzeciego stopnia z x (x rzeczywiste, wynik ma typ jak x) [cbrt istnieje od standardu C++11]

Przykład (Użycie funkcji matematycznych) # include < iostream > # include <cmath > using namespace std ; int main () { float a = 5.1, b = 2; cout << a << " ^" << b << " to " << pow (a, b) << endl ; cout << " pierwiastek z " << a << " to " << sqrt ( a ) << endl ; cout << " pierwiastek trzeciego stopnia z " << a << " to " << cbrt ( a) << endl ; cout << " modul z " << a << " to " << abs ( a) << endl ; cout << " logarytm naturalny z " << a << " to " << log (a) << endl ; return 0; }

Biblioteka cmath - cd Możliwe jest uzyskanie dostępu do stałych matematycznych, m.in. M PI - stała π M E - stała e M PI 2, M PI 4, M 1 PI, M 2 PI, M 2 SQRTPI - π 2, π 4, 1 π, 2 π, 2 π M LOG2E M LOG10E, M LN2, M LN10 - log 2 e, log 10 e, ln 2, ln 10 M SQRT2, M SQRT1 2-1 2, 2 powyższe stałe nie są elementem standardu C++; uzyskanie dostępu do nich może wymagać zdefiniowania odpowiedniej stałej ( USE MATH DEFINES) przed dołączeniem biblioteki cmath, może też być potrzebne oddefiniowanie STRICT ANSI (lub uruchomienie kompilatora z odpowiednią opcją) #define to dyrektywa preprocesora definiująca tutaj tzw. stałą symboliczną; #undef ma działanie odwrotne

Przykład (Użycie stałych i funkcji matematycznych) # define _ USE_ MATH_ DEFINES // nie zawsze potrzebne # undef STRICT_ ANSI // potrzebne jeszcze rzadziej # include < iostream > # include <cmath > # include < iomanip > using namespace std ; int main () { cout << " Wartosc pi = " << fixed << setprecision (10) << M_PI << endl ; cout << " Wartosc pi /2 = " << M_PI_2 << endl ; cout << " Wartosc sin ( pi /2) = " << sin ( M_PI_2 ) << endl ; return 0; }

Instrukcja warunkowa W programie używamy instrukcji sterujących, umożliwiających warunkowe lub iteracyjne wykonanie pewnych fragmentów kodu Jedną z instrukcji sterujących jest instrukcja warunkowa

Instrukcja warunkowa Instrukcja warunkowa występuje zazwyczaj w trzech wersjach: jeżeli warunek to instrukcje_do_wykonania jeżeli warunek to instrukcje_do_wykonania_1 w_przeciwnym_razie instrukcje_do_wykonania_2 jeżeli warunek1 to instrukcje_do_wykonania1 jeżeli warunek2 to instrukcje_do_wykonania_2... w_pozostałych_przypadkach instrukcje_do_wykonania_n Instrukcja daje możliwość wyboru jednego z dostępnych wariantów, zależnie od wartości logicznej warunku

Instrukcja warunkowa w C++ if ( warunek ) instrukcja_do_wykonania //(może być złożona) ------------------------------------------------------------------------ if ( warunek ) instrukcja_do_wykonania_1 else instrukcja_do_wykonania_2 //(może być złożona) //(może być złożona) ---------------------------------------------------------------------- if ( warunek1 ) instrukcja_do_wykonania1 else if ( warunek2 ) instrukcja_do_wykonania_2... else instrukcje_do_wykonania_n //(może być złożona) //(może być złożona) //(może być złożona)

Pierwszy rodzaj i przykład if ( warunek ) instrukcja_do_wykonania na przykład:... int a; cout << " podaj liczbe : "; cin >> a; if ( a >0 ) cout << " podales liczbe dodatnia ";

Drugi rodzaj i przykład if ( warunek ) instrukcja_do_wykonania_1 else instrukcja_do_wykonania_2 na przykład:... int a; cout << " podaj liczbe : "; cin >> a; if ( a >0 ) cout << " podales liczbe dodatnia "; else cout << " podales liczbe niedodatnia ";

Trzeci rodzaj i przykład if ( warunek1 ) instrukcja_do_wykonania1 else if ( warunek2 ) instrukcja_do_wykonania_2... else instrukcje_do_wykonania_n na przykład:... int a; cout << " podaj liczbe : "; cin >> a; if ( a >0 ) cout << " podales liczbe dodatnia "; else if ( a <0 ) cout << " podales liczbe ujemna "; else cout << " podales zero ";

Co to jest instrukcja złożona Instrukcja złożona składa się z nawiasu klamrowego otwierającego, dowolnych instrukcji (mogą być również kolejne zagnieżdżone instrukcje złożone) i nawiasu klamrowego zamykającego. Za nawiasem zamykającym nie stawia się średnika. Konstrukcje taką stosuje się wszędzie tam, gdzie składnia języka przewiduje jedną instrukcję, a chcemy wykonać więcej niż jedną instrukcję.

Instrukcja złożona - przykład użycia... int a; cout << " podaj liczbe : "; cin >> a; if ( a >0 ) { cout << " podales liczbe dodatnia " << endl ; cout << " pierwiastek z tej liczby wynosi " << sqrt (a) << endl ; }

Jak skonstruować warunek Operatory porównywania Liczby (i nie tylko) możemy ze sobą porównywać. Operatory porównywania to < > <= >= ==!= gdzie == oznacza równe, a!= oznacza różne Wyrażenie zawierające operator porównywania jest wyrażeniem logicznym - ma wartość prawdy lub fałszu (true lub false)

Operatory logiczne Operatory logiczne pozwalają powiązać kilka wyrażeń logicznych w jedno wyrażenie. Dostępne operatory to: &&! && - koniunkcja. Wyrażenie w1 && w2 jest prawdziwe gdy w1 i w2 są prawdziwe. Przy obliczaniu wartości koniunkcji najpierw oblicza się wartość w1, jeśli jest fałszywe to w2 nie jest sprawdzane - alternatywa. Wyrażenie w1 w2 jest prawdziwe gdy przynajmniej jedno z wyrażeń w1, w2 jest prawdziwe. Przy obliczaniu wartości alternatywy najpierw oblicza się wartość w1, jeśli jest prawdziwe to w2 nie jest sprawdzane! - negacja. Wyrażenie!w1 jest prawdziwe gdy w1 jest fałszywe

Operatory logiczne - cd Kolejność wykonywania operacji logicznych: 1 negacja 2 operacje koniunkcji 3 operacje alternatywy Operacje o jednakowym priorytecie wykonywane są od lewej do prawej strony wyrażenia Kolejnością operacji w wyrażeniu można manipulować za pomocą nawiasów ( )

Typ logiczny W C++ dostępny jest typ logiczny bool. Zbiór wartości tego typu to false i true.

Typ logiczny W C++ dostępny jest typ logiczny bool. Zbiór wartości tego typu to false i true.... jak widać każde wyrażenie logiczne ma wartość tego typu.

Typ logiczny W C++ dostępny jest typ logiczny bool. Zbiór wartości tego typu to false i true.... jak widać każde wyrażenie logiczne ma wartość tego typu. Na wartościach typu logicznego można wykonywać omówione wcześniej operacje logiczne

... bool q = true ; bool p = false ; cout << " q = " << q << " p = " <<p << endl ; // wypisze 1 i 0 cout << boolalpha << q << " " << p; // wypisze true i false wartości logiczne mają odpowiedniki liczbowe (false - zero, true - jeden) przy czym dowolna wartość niezerowa skonwertowana do wartości typu bool daje true manipulatory boolalpha i noboolalpha przełączają między wypisywaniem wartości logicznych w postaci słownej i liczbowej

Pułapki ;-) int x =3; cout << ( x ==2) << endl ; // wypisze 0 ( falsz ) cout << ( x ==3) << endl ; // wypisze 1 ( prawda ) cout << ( x =2) << endl ; // wypisze 2 cout << ( x =0) << endl ; // wypisze 0 cout << ( x = -2) << endl ; // wypisze -2 bool a = (x ==2) ; bool b = (x =2) ; cout << a << endl ; // wypisze 0 ( falsz ) cout << b << endl ; // wypisze 1 ( prawda ) operacja przypisania zwraca wartość równą przypisywanej wartości przypisanie użyte jako warunek ma wartość logiczną będącą wynikiem konwersji w/w wartości do bool