Instrukcja warunkowa if... else

Podobne dokumenty
Instrukcje sterujące

Pętla for. Wynik działania programu:

1 Podstawy c++ w pigułce.

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

Wstęp do informatyki- wykład 7

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

Wstęp do programowania

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

3. Instrukcje warunkowe

Programowanie - wykład 4

1 Podstawy c++ w pigułce.

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

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

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

WHILE (wyrażenie) instrukcja;

WHILE (wyrażenie) instrukcja;

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

Część XV C++ Ćwiczenie 1

Wstęp do programowania

Programowanie proceduralne w języku C++ Pętle, tablice

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

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Struktura pliku projektu Console Application

Konstrukcje warunkowe Pętle

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

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

do instrukcja while (wyrażenie);

Wstęp do informatyki- wykład 6

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

Programowanie i techniki algorytmiczne

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

Wstęp do programowania

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

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

Programowanie - instrukcje sterujące

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

Temat 20. Techniki algorytmiczne

Programowanie w Baltie klasa VII

1 Wielokrotne powtarzanie tych samych operacji

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

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

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

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

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

Programowanie komputerowe. Zajęcia 1

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

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Programowanie w języku Python. Grażyna Koba

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

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

Język C zajęcia nr 5

Proste programy w C++ zadania

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

4. Funkcje. Przykłady

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

7. Pętle for. Przykłady

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

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

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

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

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

Wstęp do programowania

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Instrukcje sterujące. Programowanie Proceduralne 1

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

6. Pętle while. Przykłady

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

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

Lekcja : Tablice + pętle

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

Podstawy Programowania Algorytmy i programowanie

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

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

Pytania sprawdzające wiedzę z programowania C++

Zapisywanie algorytmów w języku programowania

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

Wprowadzenie do programowania w języku C

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Podstawy Programowania C++

Podstawy programowania w C++

Podstawy Programowania

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

lekcja 8a Gry komputerowe MasterMind

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

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

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

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

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

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?

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.

Wstęp do Informatyki

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

2.8. Algorytmy, schematy, programy

Programowanie strukturalne i obiektowe. Funkcje

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

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Warsztaty dla nauczycieli

Transkrypt:

2. Wstęp do programowania w języku C + + #include <iostream> #include <cstdio> using namespace std; Gdy już wskaza eś zmienne, których wartości chcesz śledzić, uruchom wykonywanie programu w trybie krokowym - wystarczy z menu Run wybrać funkcję Step Over lub po prostu nacisnąć klawisz skrótu F8. Każda linia programu będzie teraz interpretowana i wykonywana, a w celu wykonania następnej linii należy ponownie nacisnąć klawisz F8. Wartości obserwowanych zmiennych są aktualizowane po każdym wykonaniu kolejnej linii. Narzędzia debugera są szczególnie przydatne w skomplikowanych programach zawierających pętle (o pętlach dowiesz się w dalszej części tego rozdzia u). 2.5. Instrukcje sterujące Instrukcje sterujące kierują przebiegiem wykonywania programu. Pozwalają one na zmianę kolejności wykonywania innych instrukcji zależnie od otrzymywanych wyników. Bez instrukcji sterujących moglibyśmy pisać tylko programy liniowe, czyli realizujące algorytmy liniowe. Dzięki instrukcjom sterującym możemy pisać programy realizujące algorytmy rozga ęzione i iteracyjne. 2.5.1. Instrukcja warunkowa if... else Same operacje wejścia i wyjścia to jeszcze zbyt ma o, aby napisać program wykonujący z ożone zadanie. Zapoznajmy się z zapisem w języku C + + instrukcji, które poznaliśmy przy omawianiu algorytmów. Zanim przedstawimy formalną sk adnię instrukcji, omówimy przyk adowe programy i ich poszczególne elementy. Zacznijmy od instrukcji warunkowej: int main() { int liczba; cout «"Podaj liczbę "; cin» liczba; if (liczba>0) cout «"Liczba jest dodatnia"; else cout «"Liczba nie jest dodatnia"; cin.ignore(); getchar(); return 0; } // deklaracja zmiennej // przypisanie wartości z klawiatury // instrukcja warunkowa Program ten sprawdza, czy liczba jest dodatnia (algorytm tego problemu zamieściliśmy w poprzednim rozdziale). Znajduje się w nim instruk- 50 www.operon.pll

2.5. Instrukcje sterujące Zapamiętaj Skończoną liczbę instrukcji pojedynczych ujętych w klamry { i } nazywamy instrukcją z ożoną lub inaczej blokiem instrukcji. *. ) Zobaczmy, jak bardzo różnić się będą efekty dzia ania dwóch programów, których kody różnią się tylko jedną parą nawiasów klamrowych. w w w. o p e r o n. p l 51

2. Wstęp do programowania w języku C+ + #include <iostream> #include <cstdio> using namespace std; Jako pierwszy rozważmy program zawierający nawiasy klamrowe: int main() { int dlugosc; cout «"Podaj liczbę ca kowita "; cin» dlugosc; if (dlugosoo) { cout «endl; cout «"Poda eś dodatnia liczbę" «endl; cout «"Dobrze, bo to ma byc dlugosc odcinka" «endl; cout «"Narysuje wiec odcinek o d ugości " «dlugosc; } cout «"\n\ndziekuje, koncze dzia anie..."; cin.ignore( ) ; getchar(); return 0; } Program prosi użytkownika o podanie liczby ca kowitej. Jeśli podana liczba jest dodatnia, to wykonają się wszystkie instrukcje bloku otwartego w linii oznaczonej (4), a zamkniętego w linii (9). Klamry są jakby spoiwem ca ości instrukcji z ożonej, która ma zostać wykonana, jeśli jest spe niony warunek z linii (3). Przyk adowo, jeśli podamy liczbę dodatnią, na ekranie monitora po zakończeniu dzia ania programu będzie wyświetlony napis: Podaj liczbę ca kowita 9 Poda eś dodatnia licabe Dobrze, bo to ma byc dlugosc odcinka Narysuje wiec odcinek o d ugości 9 Dziękuje, koncze dzia anie... O to w aśnie nam chodzi o. Program ma nas poinformować, że podana liczba będzie mu przydatna, bo narysuje odcinek o takiej d ugości. W wypadku wpisania liczby, która nie jest dodatnia, na ekranie możemy zobaczyć: Podaj liczbę ca kowita -8 Dziękuje, koncze dzia anie... Gdy podaliśmy liczbę ujemną, dzia anie programu kończy się tylko podziękowaniem, nic ponadto nie zostanie wykonane w programie - wszak d ugość odcinka nie może być liczbą ujemną. 52 w w w. o p e r o n. p l

2.5. Instrukcje sterujące Co się zmieni, jeśli usuniemy klamry wiążące kilka instrukcji w jeden blok instrukcji? Sprawdźmy dzia anie programu po wykonaniu tej modyfikacji: #include <iostream> #include <cstdio> using namespace std; int main() { int dlugosc; cout «"Podaj liczbę ca kowita "; // (1) cin» dlugosc; // (2) if (dlugosoo) // (3) // tu usunęliśmy klamrę otwierającą! (4) cout «endl; // (5) cout «"Poda eś dodatnia liczbę" «endl; // (6) cout «"Dobrze, bo to ma byc dlugosc odcinka" «endl; // (7) cout «"Narysuje wiec odcinek o d ugości " «dlugosc; // (8) // tu usunęliśmy klamrę zamykającą! (9) cout «"\n\ndziekuje, koncze dzia anie..."; cin.ignore(); getchar(); return 0; } Uruchomimy teraz program dla tych samych wartości. Najpierw podamy tak samo jak poprzednio liczbę dodatnią: Podaj liczbę ca kowita 9 Poda eś dodatnia liczbę Dobrze, bo to na byc dlugosc odcinka Narysuje wiec odcinek o d ugości 9 Dziękuje, koncze dzia anie... Nic się nie zmieni o. Podajmy więc liczbę -8: Podaj liczbę ca kowita -8 Poda eś dodatnia liczbę Dobrze, bo to na byc dlugosc odcinka Narysuje wiec odcinek o d ugości 8 Dziękuje, koncze dzia anie... Skoro ciąg instrukcji nie by ujęty w klamry, instrukcja, która ma się wykonać w wypadku spe nienia warunku z linii (3), jest instrukcją pojedynczą, czyli wyprowadzeniem na ekran monitora nowej linii określonej w linii (5), pozosta e zaś nie dotyczą już instrukcji warunkowej. Dlatego też pozosta e instrukcje zostaną wykonane za każdym razem, jako nieodnoszące się do instrukcji warunkowej. W przyk adach prostych, jak nasz powyżej, szybko zauważysz pomy kę, ale b ąd tego samego ro-

2. Wstęp do programowania w języku C+ + dzaju w programach bardziej z ożonych może być czasem trudny do znalezienia. W unikaniu tego typu b ędów bardzo pomocne jest stosowanie wcięć w pisanym kodzie. Przejrzystość zapisu i grupowanie instrukcji pomaga w analizie kodu, a w razie nieprawid owego dzia ania programu - w znalezieniu b ędu. Zasady robienia wcięć atwo poznasz, śledząc sposób formatowania tekstów w programach, które zamieściliśmy w podręczniku. Możesz również wypracować w asny sposób formatowania treści programu, ważne jest, aby konsekwentnie się go trzymać. Zagnieżdżanie : Instrukcje warunkowe mogą być zagnieżdżane wewnątrz siebie. Przenstrukcji warunkowej analizuj przyk ad wzięty z życia: Jeśli do jutra wyzdrowieję, to #include <iostream> #include <cstdio> using namespace std; jeśli będzie adna pogoda, pójdę na spacer, w przeciwnym wypadku będę czyta książkę; w przeciwnym wypadku // czyli jeśli nie wyzdrowieję jeśli będę się czu bardzo źle, będę leża w óżku, w przeciwnym wypadku zaproszę kolegę do domu Oczywiście, moglibyśmy tę wypowiedź jeszcze bardziej rozbudować (np.: Jeśli będzie adna pogoda, to jeśli kolega pożyczy mi rower, pojadę nad nekę, w przeciwnym wypadku pójdę na spacer), tworząc kolejne poziomy zagnieżdżenia instrukcji warunkowych. Liczba zagnieżdżeń powinna być jednak niezbyt duża, gdyż wraz z kolejnymi zagnieżdżeniami kod źród owy robi się coraz mniej czytelny. Jeśli już je stosujesz, nie zapomnij o wcięciach w zapisie i komentarzach, które pomogą ci później analizować kod w asnego programu. Napiszemy teraz program, który wykorzystuje zagnieżdżoną instrukcję warunkową. Przyk ad Program wyprowadza na ekran monitora najmniejszą z trzech podanych przez użytkownika wartości ca kowitych. W programie za ożyliśmy, że podawane przez użytkownika liczby będą ca kowite, a zmienne nazwiemy a, b, c. int main() { int a,b,c; cout «"Podaj pierwsza liczbę "; cin» a; cout «"Podaj druga liczbę "; 5 4 www.operon.pl

2.5. Instrukcje sterujące.analiza kodu programu nie powinna ci sprawić trudności; dla u atwienia przedstawiamy schemat blokowy algorytmu (ryc. 2.2), który jest realizowany w programie. Wskaż na nim warunki, które są zagnieżdżone, i warunek zewnętrzny. Ryc. 2.2. Schemat blokowy algorytmu wyświetlającego na ekranie najmniejszą liczbę z trzech podanych na wejściu * w w. o p e r o n. p l 55

2. Wstęp do programowania w języku C+ + #include <iostream> #include <cstdio> using namespace std; 2.5.2. Instrukcja wyboru switch W programie może się zdarzyć, że należy wybrać jeden z wielu sposobów postępowania, zależnie od wartości zmiennej. Spytajmy na przyk ad ucznia, która godzina lekcyjna w aśnie się zaczę a, i na podstawie odpowiedzi wypiszmy informację o aktualnie odbywającym się przedmiocie (używać tu będziemy operatora relacji ==, który zosta zasygnalizowany w rozdziale pierwszym). Oto stosowny program: int main() { int lekcja; cout «"Która godzina lekcyjna sie zaczę a? cin» lekcja; if (lekcja == 1) cout «"Masz teraz matematykę"; if (lekcja == 2) cout «"Masz teraz fizykę"; if (lekcja == 3) cout «"Masz teraz j. polski"; if (lekcja == 4) cout «"Masz teraz historie"; if (lekcja == 5) cout «"Masz teraz geografie"; if (lekcja == 6) cout «"Masz teraz informatykę"; if (lekcja > 6) cout «"Jesteś juz po lekcjach"; cin.ignore(); getchar() ; return 0; Program prosty i czytelny, ale jego dzia anie jest nieoptymalne. Za óżmy, iż użytkownik poda, że w aśnie zaczę a się pierwsza lekcja. Już przy pierwszej instrukcji warunkowej zachodzi prawdziwość określonego warunku, zostanie więc wypisany komunikat, że jest to lekcja matematyki. Teraz wykona się kolejna instrukq'a programu, a zatem będzie sprawdzany warunek, czy zmienna lekcja ma wartość 2. Oczywiście nie ma tej wartości, a więc wykona się sprawdzanie kolejnego warunku, czyjej wartość wynosi 3, aż do sprawdzenia, czy jest większa od 6. Można teraz zapytać, po co sprawdzać kolejne warunki, skoro już pierwszy z nich jest prawdziwy. Ponieważ warunki określone w kolejnych instrukcjach wykluczają się wzajemnie, to spe nienie jednego z nich powinno zablokować sprawdzanie kolejnych, których zajście jest już i tak niemożliwe. Masz raq'ę, ale do zadań procesora należy wykonywanie wszystkich instrukcji po kolei. Jak zatem skonstruować kod, aby uniknąć badania warunków, które i tak nie zajdą, jeśli jeden z wcześniejszych zosta spe niony? Problem ten rozwiązuje dodanie po każdym warunku if instrukcji e l s e - możesz samodzielnie zapisać taki kod programu. Z pewnością zauważysz, że takie postępowanie wymaga wiele pisania i jest ma o czytelne. Zawi ą konstrukcję warunków zagnieżdżonych możemy zastąpić instrukcją switch. 56 www.operon.pl

2.5. Instrukcje sterujące ww.operon.pl 57

2. Wstęp do programowania w języku C+ + Ryc. 2.3. Schemat blokowy instrukcji switch Jeśli skonstruujesz swój program w ten sposób, zmniejszysz liczbę porównań zmiennej z wartościami, które mog a przyjąć, a przy tym twój kod źród owy stanie się bardziej czytelny. Instrukcję s w i t c h można również wykorzystać bez używania instrukcji break. Robimy tak w sytuacjach, gdy chcemy, aby wykona y się instrukcje zarówno występujące po etykiecie znalezionej wartości, jak i wszystkie występujące po kolejnych etykietach. Dla przyk adu popatrz na efekt dzia ania programu, umieszczony bezpośrednio po jego kodzie: 58 w w w. o p e r o n. p l

2.5. Instrukcje sterujące

2. Wstęp do programowania w języku C+ + która ma być powtarzana w pętli. Można w tym miejscu umieścić blok instrukcji, wtedy wszystkie one będą się wykonywa y w pętli. Chociaż w naszym przyk adzie w pętli wykonuje się tylko jedna instrukcja, ujęliśmy ją w klamry, nie jest to jednak konieczne. Sk adnia pętli for for (instrukcja początkowa; warunek sterujący; instrukcja kroku) instrukcja; gdzie: instrukcja początkowa - instrukcja wykonana przed pierwszym obiegiem pętli, zwana również inicjującą warunek sterujący - wyrażenie, którego logiczna wartość jest badana przed każdym obiegiem pętli -jeśli jego wartość jest t r u e (czyli jest różna od zera), to pętla wykona się kolejny raz, w przeciwnym wypadku następuje wyjście z pętli instrukcja kroku - instrukcja wykonana po każdym przebiegu pętli, najczęściej modyfikuje tak zwany licznik pętli Rozważmy teraz prosty przyk ad wyświetlający w kolumnie liczby od 0 do 20. Przy liczbach niepodzielnych przez 3 znajduje się odpowiedni komentarz. Oto program: Instrukcja kroku postaci i++ jest instrukcją inkrementacji zmiennej i odpowiada wyrażeniu i = i + 1. Ten bardzo wygodny skrót bywa używany nie tylko w pętlach. instrukcja inkrementacji w c++ i++ odpowiada i = i+1 instrukcja dekrementacji w c++ i - - odpowiada i = i-1 60 www.operon.pl

2.5. Instrukcje sterujące Pętla for w C+ + jest bardzo elastyczna. Możemy na przyk ad w tej retli pominąć dowolną instrukcję występującą w nawiasie, musimy jednak zachować średnik. Pętla ta może wyglądać tak: for ( ; ; ), co oznacza pętlę nieskończoną. Brak warunku sterującego oznacza, że jest on zawsze prawdziwy. Pętla ta nie wymaga żadnego licznika, dzięki czemu można ją upodobnić w dzia aniu do pętli, które omawiamy w dalszej części rozdzia u. Kolejną pętlą w C++ jest pętla while. Pętla ta wykonuje się kolejny raz, gdy wyrażenie jest prawdziwe (czyli ma wartość różną od zera). Sk adnia pętli while while (wyrażenie) instrukcja; gdzie: wyrażenie -wyrażenie przyjmujące wartość logiczną prawda" albo fa sz" instrukcja - istrukcja wykonywana w pętli Napiszmy prosty program wyświetlający na ekranie znaki podane z klawiatury do momentu, aż podamy znak k". Jeśli w tym programie użytkownik poda na początku znak k", pętla w h i l e nie wykona się nawet jeden raz. Przedstawimy teraz nieco bardziej skomplikowany przyk ad z zastosowaniem pętli while: Program oblicza wynik dzielenia ca kowitego dwóch liczb podanych z klawiatury. Algorytm polega na wielokrotnym odejmowaniu dzielnika od dzielnej i liczeniu wykonanych powtórzeń w pętli while.»w.operon.pr 61

2. Wstęp do programowania w języku C+ + Pętla while sprawdza warunek przed wykonaniem instrukcji wewnątrz pętli, instrukcja ta zatem może nie wykonać się wcale. 2.5.5. Instrukcja pętli do... while Poznasz teraz pętlę do... while. Pętla ta wykonuje się kolejny raz, gdy wyrażenie jest prawdziwe (czyli ma wartość różną od zera). Sk adnia pętli do... while do instrukcja while (wyrażenie); gdzie: instrukcja - instrukcja wykonywana w pętli wyrażenie - wyrażenie przyjmujące jedną z dwóch wartości logicznych: prawda albo fa sz Zacznijmy od prostego programu rysującego na ekranie 4 gwiazdki: 62 www.operon.pl

2.5. Instrukcje sterujące Program będzie dzia a tak samo, jeśli zamiast warunku, którego prawdziwość jest sprawdzana, umieścimy w ostatniej linii wyrażenie, którego wartość będzie sprawdzana. Zgodnie z semantyką pętli, czyli opisem jej dzia ania, dopóki wyrażenie nie ma wartości 0, będzie się wykonywa kolejny przebieg tej pętli. Zadanie, które zostanie wykonane (narysowanie 4 gwiazdek), pokazuje mechanizm dzia ania pętli do... while, ale równie dobrze modo być zrealizowane za pomocą pętli for. Z góry za ożyliśmy, że chcemy otrzymać 4 gwiazdki na ekranie monitora. Przyjrzyjmy się następnemu przyk adowi, który ilustruje bardzo częsty sposób użycia pętli do... while: www.operon.p! 63

2. Wstęp do programowania w języku C+ + Przyk ad Napiszmy program obliczający pole kwadratu o podanej d ugości boku W wypadku podania przez użytkownika niew aściwej wartości, to jest: ujemnej lub zero, program powinien prosić o podanie w aściwej wartości Przeanalizuj poniższy kod programu: Warunek pętli do... while jest sprawdzany po jej wykonaniu, a więc bez względu na to, jaką wartość podamy, pętla wykona się chociaż raz. Pętla wykona się jednokrotnie, gdy za pierwszym razem podamy wartość dodatnią. W wypadku podania wartości, która nie może być bokien kwadratu, pojawi się komunikat o b ędnej wartości i ponownie wykona się pętla. Tak będzie aż do momentu, gdy podamy dodatnią d ugość boku. Pętla do... while wykonuje się co najmniej jeden raz w programie, ponieważ warunek wyjścia jest sprawdzany na końcu. Warto wiedzieć, że w C+ + każdą pętlę można zastąpić inną. Twórcy języka przewidzieli trzy rodzaje pętli, ponieważ pewne zagadnienia atwiej i przejrzyściej można zapisać jednym rodzajem pętli, natomiast w innych wypadkach bardziej użyteczne mogą być pozosta e pętle. 2.5.6. Instrukcje break i continue sterujące wykonaniem pętli Instrukcje wymienione w tym rozdziale nie powinny się pojawić w twoich programach. Używanie tych instrukcji nie jest zgodne z kanonem dc 64 www.operon.i

2.5. Instrukcje sterujące brego programisty i sprawia, że program staje się ma o czytelny. Podajemy je jednak dla lepszego zrozumienia innych programów napisanych z ich użyciem. Przy okazji instrukcji s w i t c h przedstawiliśmy typowe użycie instrukcji break. Teoretycznie, instrukcja ta może być zastosowana we wszystkich wymienionych wcześniej pętlach w celu ich natychmiastowego przerwania, jednak odradzamy takie jej użycie. Spójrz na przyk ad programu, który wyświetla liczby parzyste, dopóki ich suma nie przekroczy 20: =include <iostream> =include <cstdio> using namespace std; W pierwszej linii znajdującej się wewnątrz pętli for wyprowadzana jest na ekran monitora podwojona wartość zmiennej i. Drugą instrukcją w pętli jest obliczanie sumy liczb już wyprowadzonych na ekran monitora. Następnie sprawdzany jest warunek, czy suma ta przekroczy a wartość 20. Jeśli tak, występuje wyjście z pętli, realizowane za pomocą instrukcji break, czyli przerwana zostaje instrukcja iteracji. Na ekran monitora zostaną wyprowadzone liczby: 0, 2, 4, 6, 8, 10. Przy szóstym przebiegu pętli warunek określający wyjście z pętli zosta spe niony, a więc nie będzie już kolejnej iteracji. Wyświetlony zostanie napis: Jestem poza p ę t l a i wykonywać się będą pozosta e instrukcje, których już w przyk adzie nie ujęliśmy. Liczbę instrukcji wykonanych w pojedynczym przebiegu pętli można modyfikować za pomocą instrukcji c o n t i n u e - po jej napotkaniu nie zostaje przerwane dzia anie ca ej pętli, a jedynie tego konkretnego przebiegu, który jest realizowany, i następuje przejście do kolejnego. Zatem w przebiegu pętli część instrukcji zostaje pominiętych. Instrukcje sterujące pętlą: break i continue www.operon.pl

2. Wstęp do programowania w języku C+ + Oto przyk ad programu: Dla liczb O i 3 spe niony by warunek zerowania się reszty z dzielenia liczb przez 3 (% jest operatorem reszty z dzielenia), a więc wykona a się instrukcja c o n t i n u e - ignorujemy dalsze instrukcje określone w pętli (czyli wyprowadzenie na ekran monitora napisu: n i e j e s t p o d z i e l - ne przez 3) i przechodzimy do jej następnego obiegu. Dlatego dla tych w aśnie liczb nie zosta wyświetlony tekst. Pamiętaj, że to jest tylko przyk ad na zastosowanie instrukcji c o n t i n u e. Gdybyśmy jednak rzeczywiście chcieli programowo rozwiązać to zadanie, czytelniej wygląda aby implementacja w sposób przedstawiony poniżej: 66 www.operon.pl