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

Podobne dokumenty
ZASADY PROGRAMOWANIA STRUKTURALNEGO (ZAP - zima 2014) Wyrażenia c.d. Pętle typu while.

ZASADY PROGRAMOWANIA STRUKTURALNEGO (ZAP - zima 2015) Liczby, znaki, napisy, wyrażenia. Pętle typu while.

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

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

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

Podstawy Programowania C++

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 Podstawowa składnia języka C++

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

Wstęp do informatyki- wykład 7

Struktura pliku projektu Console Application

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

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

1 Podstawy c++ w pigułce.

1. Wypisywanie danych

Cw.12 JAVAScript w dokumentach HTML

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Programowanie komputerowe. Zajęcia 1

ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP ) rok ak. 2012/2013. prof. nzw. dr hab. inż. Barbara Putz. Podstawowe pojęcia, najprostsze programy

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

I - Microsoft Visual Studio C++

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

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

1 Podstawy c++ w pigułce.

Wstęp do informatyki- wykład 6

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

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

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

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

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

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

Programowanie strukturalne i obiektowe

Podstawy programowania C. dr. Krystyna Łapin

Pętla for. Wynik działania programu:

Pascal - wprowadzenie

3. Instrukcje warunkowe

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

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

Programowanie - wykład 4

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

Podstawowe typy zmiennych

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Wyrażenia arytmetyczne

4. Funkcje. Przykłady

JAVAScript w dokumentach HTML (1)

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

JAVAScript w dokumentach HTML - przypomnienie

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

Stałe. Funkcje standardowe. Niektóre stałe i funkcje z pliku nagłówkowego math.h. M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2

Programowanie Delphi obliczenia, schematy blokowe

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

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

ZASADY PROGRAMOWANIA STRUKTURALNEGO ( ZAP - zima 2015 ) prof. nzw. dr hab. inż. Barbara Putz

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

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

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

Klasyfikacja typów w C++

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

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

lekcja 8a Gry komputerowe MasterMind

Wstęp do informatyki- wykład 9 Funkcje

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

WHILE (wyrażenie) instrukcja;

Wstęp do programowania

Wstęp do informatyki- wykład 2

Podstawy Programowania

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

2 Przygotował: mgr inż. Maciej Lasota

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

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

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

Wstęp do Programowania 2

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Programowanie w języku C++ Grażyna Koba

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

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

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Algorytmika i Programowanie VBA 1 - podstawy

Wstęp do informatyki- wykład 11 Funkcje

Wstęp do programowania

do instrukcja while (wyrażenie);

Podstawy programowania w języku C

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

dr inż. Jarosław Forenc

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

I. Podstawy języka C powtórka

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

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

C++ wprowadzanie zmiennych

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

KURS C/C++ WYKŁAD 1. Pierwszy program

Proste programy w C++ zadania

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Wstęp do programowania

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

Transkrypt:

POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA STRUKTURALNEGO (ZAP - zima 2016) dr hab. inż. Barbara Putz, prof. PW bputz@mchtr.pw.edu.pl godziny konsultacji: poniedz. 12:30-14:00, pok. 306 Język programowania: Środowisko programistyczne: C/C++ Qt Creator Wykład 2: Liczby, znaki, napisy, operatory logiczne, stałe. Pętle typu while.

Literatura uzupełniająca 2 1. P. Wnuk, B. Putz: Informatyka 2 - Programowanie. Wersja w języku C/C++. Multimedialny podręcznik internetowy, OKNO PW, 2004-2010, dostępny online w SKS: http://iair.mchtr.pw.edu.pl/studenci/witryna/login.php 2. B. Putz, A. Putz jr, P. Wnuk : Algorytmy i struktury danych. Multimedialny podręcznik internetowy, OKNO PW, 2006-2010, dostępny online w SKS (jak wyżej). 3. S. Prata: Język C++. Wydanie V, Helion 2006. 4. J. Grębosz: Symfonia C++ standard. Tom I. Edition 2000 Kraków, 2005-2008. 4. B. Eckel: Thinking in C++. Edycja polska. Helion 2002. 6. N. Wirth: Algorytmy+struktury danych=programy. WNT 2004. 7. P. Wróblewski: Algorytmy, struktury danych i techniki programowania. Wyd. IV, Helion 2010. 8. T.H.Cormen et al.: Wprowadzenie do algorytmów. WNT 2007, PWN 2012 (nowe wydanie).

Kompilacja i konsolidacja programu (linkowanie) 3

Biblioteki i pliki nagłówkowe 4 Biblioteki dołączamy do programu poprzez dołączanie tzw. plików nagłówkowych. Plik nagłówkowy - plik zawierający deklaracje zmiennych i funkcji tworzących bibliotekę. Standardowy format dołączania plików nagłówkowych typowych dla C++: #include <iostream> // iostream jest nazwą dołączanej biblioteki języka C++ Starszy format dołączania takich plików nagłówkowych: #include <iostream.h> Biblioteki odziedziczone z języka C można dołączać dwojako: w sposób tradycyjny dla języka C: #include <stdlib.h> // stdlib.h jest plikiem nagłówkowym #include <math.h> lub w stylu C++, poprzedzając nazwę biblioteki literą c : #include <cstdlib> #include <cmath> nie należy łączyć w jednym programie obu tych stylów, bo odpowiednie biblioteki nie są równoważne (te w stylu C++ zawierają tzw. szablony)

Zakończenie pracy programu 3 Instrukcja return 0; w funkcji main ( ) oznacza zakończenie działania tej funkcji (a więc i całego programu) i może wystąpić w dowolnych, różnych miejscach. Przykład // program drukuje resztę z dzielenia a przez b int main ( ) { int a, b; cout << "napisz 2 liczby całkowite" << endl; cin >> a >> b; if (b == 0) { cout << "nie mogę dzielić przez zero "; return 0; // dalsza część programu nie jest już wykonywana } cout << " reszta z dzielenia " << a << " przez " << b << " równa się " << a % b; return 0; }

Typy 6 TYP jest zdefiniowany przez zbiór przyporządkowanych mu wartości TYPY predefiniowane (najważniejsze) int - podzbiór liczb całkowitych: -2147483648.. 2147483647 (32 bity, czyli od -2 31 do 2 31-1) double - podzbiór liczb rzeczywistych: 2.23*10-308.. 1.79 *10 308 (co do modułu) (64 bity, 15-16 cyfr znaczących) bool char - dwie wartości: true (lub 1 liczbowo) oraz false (lub 0 liczbowo) - zbiór znaków w kodzie ASCII (8 bitów) Oprócz konwersji (rzutowania) z typu bool na int (jak wyżej) możliwa jest konwersja z typu int na typ bool: wartość równa 0 traktowana jest jako fałsz (false) dowolna wartość całkowita różna od 0 traktowana jest jako prawda (true). Dodatkowo: string - umowny w C++ typ napisowy

Mantysa i cecha mogą być poprzedzone znakiem + lub, np. +1.23e-5 (czytaj: 1,23 razy 10 do potęgi 5) -543e3 543E-003 0.16437e+12 Liczby 7 LICZBY CAŁKOWITE ciąg cyfr poprzedzony znakiem + lub zapis dziesiętny: 66 +123-543 zapis ósemkowy: 0 przed liczbą: 0107 (7*8 0 +0*8 1 + 1*8 2 czyli 71 dziesiętnie) zapis szestnastkowy: 0x przed liczbą: 0x47 (7*16 0 +4*16 1 czyli 71 dziesiętnie) 0xFF (15*16 0 +15*16 1 czyli 255 dziesiętnie) 0xDA (10*16 0 +13*16 1 czyli 218 dziesiętnie) Zatem 107 i 0107 to zupełnie różne liczby! LICZBY RZECZYWISTE - zapisuje się: w postaci dziesiętnej, z kropką zamiast przecinka, np.: 1.128-12.3 +0.03 w postaci wykładniczej; wówczas składają się z: mantysy - liczba dziesiętna, gdzie w zapisie użyto kropki, a nie przecinka litery e lub E - która oznacza podstawę wykładnika równą 10 cechy - jest liczbą całkowitą, oznacza wykładnik potęgi cecha zawsze jest liczbą dziesiętną (nawet jeśli zaczyna się zerem)

Znaki 8 Pojedynczy znak można zapisać następująco: w apostrofach, np. 'A' '@' '0' za pomocą kodu ASCII: każdemu znakowi przyporządkowany jest kod dziesiętny z przedziału <0, 255>; Znaki w kodzie ASCII uporządkowane są następująco:... 0.. 9... A.. Z... a.. z... UWAGA: Nie ma w tym kodzie polskich znaków diakrytycznych (tzw. ogonkowych) Zależność między typami char i int określa rzutowanie (konwersja), np. char (225) oznacza znak o kodzie 225, czyli, zaś int ('A') jest równe 65. Ale - UWAGA, UWAGA: Przejście ze znaków ASCII na ich kody (i odwrotnie) nie wymaga konwersji: int kod = ' A' ; // zmienna całkowita kod przyjmie wartość 65; char zn= 65; zn=zn+1; // zmienna zn to litera 'A' // teraz zn to znak następny w kodzie ASCII, czyli litera ' B'

Znaki c.d. 9 W zapisie znaku można też podać kod ósemkowy lub szestnastkowy: np.: '\33' oznacza znak o kodzie ósemkowym 33, czyli Esc '\xe1' oznacza znak o kodzie szestnastkowym e1, czyli Uwaga: jak widać, wpisując kod ósemkowy lub szestnastkowy, po znaku \ nie należy pisać 0 Znaki specjalne (niektóre): \n - przejście do nowej linii \t - tabulacja \b - Backspace \\ - Backslash \' - apostrof \" - cudzysłów \a - sygnał dźwiękowy (alarm) Znaki te można je umieścić wewnątrz napisów lub zapisać w osobno w postaci z pojedynczymi lub podwójnymi apostrofami, np.: znak tabulacji zapisujemy jako '\t' lub "\t" (to ostatnie bardziej czytelne)

Wczytywanie znaków 10 Znaki można wczytywać dwojako: tylko znaki widoczne za pomocą instrukcji: cin >> znak; gdzie znak jest zmienną typu char (wczytuje pod zmienną pierwszy widoczny znak) wszystkie znaki widoczne oraz tzw. znaki białe (spacja, Enter, Tab) za pomocą instrukcji: cin.get (znak); gdzie znak jest zmienną typu char Natomiast instrukcja bezargumentowa: cin.get ( ); oznacza: poczekaj na wczytanie jakiegoś znaku; ta instrukcja zatrzymuje więc działanie programu, dopóki nie wciśniemy jakiegoś znaku i nie wyślemy go Enterem (najlepiej od razu wcisnąć Enter). Ponadto: cin.ignore ( ); ignoruje jeden znak w strumieniu wejściowym, co pozwala pominąć np. Enter z wcześniejszego wczytywania znaków.

Napisy 11 W języku C++ (ale nie w C) istnieje tzw. umowny typ string: string - określa napis (inaczej: łańcuch, tekst, string) - dowolny ciąg znaków ujęty w cudzysłowy (uwaga: string nie jest słowem kluczowym, traktujemy go umownie jako typ) Napis może zawierać znaki specjalne, np. "napis \" Podaj liczbe \" zacheca do pisania " // napis zawierający w środku cudzysłowy "Podaj promien kola \n" // napis zawierający znak przejścia do nowej linii Napisy można ze sobą porównywać. Wynik jest zgodny z uporządkowaniem w kodzie ASCII, np. "Jan" < "Jon", "Jan" < "Janina" oraz "Jan" < "jan". Niepoprawnie działa jednak porównywanie napisów zawierających polskie znaki diakrytyczne. UWAGA: W niektórych kompilatorach, aby można było korzystać z umownego typu string, trzeba dołączyć bibliotekę <string> - jednak w Qt nie jest to potrzebne. Ale: czym innym jest biblioteka <cstring>, która obsługuje funkcje obsługi napisów typowe dla języka C i nie jest tu używana.

Wczytywanie napisów 12 Napisy można wczytywać dwojako: od pierwszego widocznego znaku do pierwszego niewidocznego, białego znaku (odstępu, Entera itp.) za pomocą instrukcji: cin >> napis; linia po linii - za pomocą instrukcji: getline (cin, napis); gdzie napis jest zmienną typu string; gdzie napis jest zmienną typu string; Funkcja getline wczytuje do zmiennej typu string wszystkie znaki w danym wierszu aż do napotkania Entera (ale Entera nie dopisuje do tej zmiennej). string dane; cout << "napisz imie i nazwisko i wcisnij Enter \n"; cin >> dane; cout << " Witaj, " << dane; // wydrukuje się tylko imię cout << "napisz imie i nazwisko i wcisnij Enter \n"; getline (cin, dane); cout << " Witaj, " << dane << endl; // wydrukuje się imię i nazwisko

Definiowanie stałych 13 STAŁE definiujemy, jeśli chcemy je nazwać i używać ich nazw w programie. Definicja stałych const typ nazwa = wyrażenie,, nazwa = wyrażenie ; Definicja stałej musi zawierać jej inicjalizację, bo stałych nie można już potem zmieniać. zalecany styl Przykłady definicji stałych: nazwy stałych - tylko wielkie litery i znaki _ const int N = 5; const int W = 5, K = 7; const int M = 2*(K+1); const double XMIN = 0.001; const string PYTANIE = "Czy wykonac ponownie - t/n"; zalecany styl Należy definiować jako stałe wszystkie liczby w programie różne od 0 i 1

Wybrane standardowe funkcje matematyczne Wymagają dołączenia biblioteki cmath: #include <cmath> Wyniki działania wszystkich funkcji są typu double 14 M_PI - stała M_E - stała e Nazwa Argumenty Opis acos X arcus cosinus z X (wynik w radianach) asin X arcus sinus z X (wynik w radianach) atan X arcus tangens z X (wynik w radianach) atan2 Y, X kąt (od -pi do pi), którego tangens = Y/X ceil cos X X - wartość kąta w radianach cosinus kąta X wartość X zaokrąglona w górę, czyli do najbliższej liczby całkowitej nie mniejszej niż wartość X exp X wartość e podniesiona do potęgi X fabs X wartość bezwzględna liczby X log X - wartość dodatnia logarytm naturalny z X log10 X - wartość dodatnia logarytm o podstawie 10 z X pow X - podstawa, Y - wykładnik X podniesione do potęgi Y floor sin X X - wartość kąta w radianach sinus kąta X wartość X zaokrąglona w dół, czyli do najbliższej liczby całkowitej nie większej niż X sqrt X - wartość nieujemna pierwiastek kwadratowy z X tan X - wartość kąta w radianach tangens kąta X ceil (-4.3) = -4.0 pow (27, 1.0/3)=3.0 floor (-4.3) = -5.0 UWAGA: Funkcje matematyczne mogą też pochodzić z innych bibliotek, np. w cstdlib mamy m. in. funkcję abs (dla argumentu całkowitego) oraz div (dzielenie całkowite).

Wyrażenia logiczne 15 Służą do zapisywania warunków w rozgałęzieniach. Oprócz operatorów arytmetycznych i operatorów relacji mogą zawierać operatory logiczne. OPERATORY LOGICZNE: && (iloczyn logiczny) (suma logiczna)! (negacja) W C++ można je zapisywać również jako alternatywne słowa kluczowe and or not PRIORYTET OPERATORÓW - wewnątrz jednej pary nawiasów okrągłych 1.! (negacja) 2. operatory arytmetyczne : najpierw * / % potem + - 3. operatory relacji nierównościowych: > >= < <= 4. operatory relacji równy nierówny: ==!= 5. && (iloczyn logiczny) 6. (suma logiczna) UWAGA: W sytuacjach wątpliwych najpewniejszym sposobem jest używanie nawiasów okrągłych.

Operatory logiczne i wyrażenie warunkowe 16 Przykłady zapisu warunków z operatorami logicznymi x >= a && x <= b // x leży w przedziale <a, b> x < a x > b // x nie leży w przedziale <a, b> // nawiasy powyżej są niekonieczne, bo operatory relacji są silniejsze niż && i zn >= 'a' && zn <= 'z' zn >= 'A' && zn <= 'Z albo: (zn >= 'a' && zn <= 'z') (zn >= 'A' && zn <= 'Z ) // zn jest małą lub dużą literą Wyrażenie warunkowe (warunek)? wyrażenie1 : wyrażenie2 Zamiast: if (a>0) s=5; else s=3; można napisać: s= (a>0)? 5 : 3; // można dodać nawiasy, ale nie są konieczne: (zn < 'a' zn > 'z' ) && (zn < 'A' zn > 'Z ) // tu nawiasy są konieczne, bo && jest silniejsze niż // zn nie jest małą i nie jest też dużą literą

Porównanie a przypisanie - niebezpieczne pułapki 17 Nie wolno mylić operatorów porównania i przypisania: = operator przypisania (wykonaj podstawienie) == operator porównania (sprawdź warunek równości) Przykład: x = 10 ; // instrukcja - przypisz wartość 10 zmiennej x (podstaw 10 pod x ) x = 10 // wyrażenie - ma wartość wyrażenia po prawej stronie znaku =, // czyli 10 (albo true - zależnie od kontekstu) x = = 10 // wyrażenie - ma wartość true, jeśli x jest równe 10 Zatem UWAGA: załóżmy, że chcemy napisać instrukcję warunkową postaci: jeśli x jest równe 10, to zrób coś tam... if (x = =10)... if (x = 10)... // zapis poprawny - instrukcja za nawiasem wykona się tylko // wtedy, gdy x będzie równe 10 // tu jest błąd - instrukcja za nawiasem wykona się zawsze, // bo wyrażenie w nawiasie ma wartość true, // taki bląd NIE BĘDZIE jednak SYGNALIZOWANY!

Pętle - instrukcje cykliczne (iteracyjne) 18 Umożliwiają wielokrotne powtórzenie ciągu instrukcji Wymagają uzupełnienia o instrukcje organizujące samą pętlę Pętla o znanej liczbie cykli (iteracji): pętla for Pętle o nie znanej z góry liczbie cykli: pętla while tzw. pętle sterowane warunkiem pętla do-while

Instrukcja while 19 Instrukcja Dopóki spełniony warunek, wykonuj Sprawdza warunek przed wykonaniem instrukcji objętej jej zakresem. while (warunek) instrukcja Dopóki spełniony jest warunek, powtarzaj instrukcja, czyli: sprawdź warunek jeśli spełniony, wykonaj instrukcja sprawdź warunek jeśli spełniony, wykonaj instrukcja itd. Może nie wykonać się ani razu!

Instrukcja do-while 20 Instrukcja Wykonuj, dopóki spełniony warunek Sprawdza warunek po wykonaniu instrukcji. do instrukcja while (warunek) ; Powtarzaj instrukcja, dopóki jest spełniony warunek, czyli: wykonaj instrukcja sprawdź warunek jeśli spełniony, wykonaj instrukcja sprawdź warunek itd. Zawsze wykona się przynajmniej jeden raz!

Instrukcja złożona w pętlach while 21 W pętlach typu while może być tylko jedna instrukcja. Ale - może to być instrukcja złożona, czyli w postaci {...} while (warunek) {...... } zalecany styl lepiej użyć bardziej uniwersalnej pętli while niż do-while do {......... } while (warunek) ; UWAGA: warunek (w if-ach, pętlach) może być liczbą lub ogólnie wyrażeniem dającym się zamienić na liczbę, przy czym: wartość równa 0 traktowana jest jako fałsz (stała false) wartość różna od 0 traktowana jest jako prawda (stała true). Jednak to nie jest zalecany styl bo to mało czytelny zapis.

Pętle while i do-while: podsumowanie 22 Warunek w każdej pętli while jest warunkiem, przy którym pętla ma się kręcić w kółko. Jest on więc negacją warunku, przy którym należy wyjść z pętli. Wykonując negację warunku, w którym są operatory logiczne, należy pamiętać, że negacja sumy logicznej zamienia się w iloczyn negacji - i na odwrót. Przykład: - jeśli pętla ma się wykonywać aż do napotkania małej litery, to oznacza, że pętla ma się wykonywać, dopóki znak nie jest małą literą, czyli: while (znak< a znak > z ) Warunek ten można też zapisać bezpośrednio jako negację warunku zakończenia pętli: while (! (znak>= a && znak<= z )) Błędem natomiast jest zapis w postaci: while (znak< a && znak > z ) gdyż warunek w nawiasie nie jest nigdy prawdziwy!!! Przykład: // pętla wymusza na użytkowniku // napisanie małej litery: do { cout<< "Napisz mala litere \n"; cin>>znak; } while (znak< a znak > z ); // pętla do jest tu wygodniejsza w zapisie od while