7. Pętle for. Przykłady

Podobne dokumenty
6. Pętle while. Przykłady

4. Funkcje. Przykłady

3. Instrukcje warunkowe

Pętla for. Wynik działania programu:

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.

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

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

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

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).

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

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

Pytania sprawdzające wiedzę z programowania C++

Wstęp do programowania

Wstęp do informatyki- wykład 7

Programowanie komputerowe. Zajęcia 1

Programowanie strukturalne i obiektowe. Funkcje

Zadeklarowanie tablicy przypomina analogiczną operację dla zwykłych (skalarnych) zmiennych. Może zatem wyglądać na przykład tak:

do instrukcja while (wyrażenie);

Wstęp do programowania

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

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

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

Język C, tablice i funkcje (laboratorium, EE1-DI)

Wstęp do informatyki- wykład 6

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

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.

Wstęp do programowania

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

1. Wypisywanie danych

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.

Programowanie - wykład 4

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

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?

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

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

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

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

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Język C, tablice i funkcje (laboratorium)

Programowanie komputerowe. Zajęcia 3

Programowanie komputerowe. Zajęcia 2

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

1 Podstawy c++ w pigułce.

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

5. Rekurencja. Przykłady

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

Warunki logiczne instrukcja if

Podstawy Programowania

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

Wstęp do informatyki- wykład 11 Funkcje

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

Lekcja : Tablice + pętle

Język C++ zajęcia nr 2

Wstęp do informatyki- wykład 9 Funkcje

Konstrukcje warunkowe Pętle

1 Wielokrotne powtarzanie tych samych operacji

Wskazówki dotyczące zmiennych, tablic i procedur 1

Struktura pliku projektu Console Application

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

do instrukcja while(wyrażenie);

JAVAScript w dokumentach HTML - przypomnienie

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

REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał

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

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Programowanie Proceduralne

Pętla while. Prowadzący: Łukasz Dunaj, strona kółka: atinea.pl/kolko

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.

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

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

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

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

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

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

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

Przekazywanie argumentów wskaźniki

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

Wstęp do Programowania, laboratorium 02

Instrukcje sterujące

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

Algorytmy i język C++

XV. Wskaźniki Odczytywanie adresu pamięci istniejących zmiennych Wskaźniki pierwsze spojrzenie.

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

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

Rekurencja (rekursja)

Warunki i pętle. Instrukcja warunkowa if. Przykład zastosowania.

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

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

Java Podstawy. Michał Bereta

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

Programowanie w języku Python. Grażyna Koba

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

lekcja 8a Gry komputerowe MasterMind

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

for (i=0; i<10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;

Transkrypt:

. Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i <= n; i = i+1) { 9 cout << i << endl; 10 } 11 12 return 0; 1 } Wiele pętli, które będziemy chcieli napisać, zawiera w sobie trzy elementy: inicjalizację, warunek i krok pętli. Żaden z tych elementów nie jest wymagany, jednak z reguły w pętli pojawią się wszystkie. W poprzednim rozdziale nauczyliśmy się wykorzystywać pętle while, w których jedynie warunek jest elementem stałym. Inicjalizacja i krok pętli umieszczaliśmy poza właściwą konstrukcją pętli, w trzech różnych miejscach. Dotyczą one jednak tego samego: zachowania iteratora, dlaczego więc rozrzucać je po całym programie? Pętle for pozwalają nam zebrać te trzy elementy w jedno miejsce. Ich konstrukcja wygląda następująco: najpierw słowo kluczowe for, następnie w nawiasach okrągłych, oddzielone średnikami, kolejno: inicjalizacja, warunek i krok pętli. W końcu w nawiasach klamrowych, jak zwykle, umieszczamy fragment kodu, który chcemy wielokrotnie wykonać. W liniach 8-10 powyższego programu widzimy przykład takiej właśnie pętli. Najpierw słowo for, następnie definicja i przypisanie wartości zmiennej i, która pełni funkcję iteratora. Potem, po średniku, warunek, a następnie, po kolejnym średniku, zwiększamy wartość iteratora. 50

W porównaniu do przykładu 6.2, program ten nie zawiera niemal żadnego nowego kodu. Zmienia się jedynie położenie elementów pętli, a słowo while zastępujemy słowem for. Cały program zachowuje się przy tym identycznie do programu z przykładu 6.2. Uwaga! Wykonanie pętli for ma następujący przebieg: najpierw wykonywana jest inicjalizacja, następnie sprawdzany jest warunek. Jeżeli warunek jest spełniony, to wykonujemy najpierw ciało pętli (czyli fragment kodu w klamerkach), a następnie krok pętli i wracamy do sprawdzania warunku. A więc: inicjalizacja wykonywana jest tylko raz, przed pierwszym sprawdzeniem warunku. Warunek jest sprawdzany przed każdym wykonaniem pętli, a krok po każdym wykonaniu pętli..2. Napisz program, który pobierze od użytkownika n liczb, a następnie wypisze na ekran ich sumę. 5 int n; 6 cin >> n; 8 int suma = 0; 9 for (int i = 0; i < n; i = i+1) { 10 int k; 11 cin >> k; 12 1 suma = suma + k; 15 16 cout << suma << endl; 1 return 0; 18 } W tym zadaniu widzimy znany już schemat pobierz n liczb, jednak przy użyciu pętli for. Zaczynamy od pobrania liczby n w liniach 5-6. Następnie w pętli w liniach 9-14 n razy pobieramy liczbę i dodajemy jej wartość do akumulatora suma. Znów, w porównaniu do przykładu 6.6, powyższy program nie zawiera żadnego nowego kodu, a jedynie zmienia układ kodu już istniejącego (no i słowo while zastępuje słowem for). 51

.. Napisz program, który będzie pobierać od użytkownika liczby aż do napotkania 0, a następnie wypisze na ekran ile liczb pobrał. 5 int ile; 6 int n = 1; 8 for (ile = 0; n!= 0; ile = ile+1) { 9 cin >> n; 10 } 11 12 cout << ile << endl; 1 return 0; Znów mamy do czynienia z przepisaniem przykładu z poprzedniego rozdziału (tym razem przykład 6.4) przy użyciu pętli for. Nie wymaga on raczej większego komentarza, z wyjątkiem zmiennej ile, która tworzona jest przed pętlą (w linii 5), zamiast wewnątrz inicjalizacji (linia 8). Dzieje się tak dlatego, że zmienne tworzone wewnątrz pętli, w tym wewnątrz inicjalizacji, istnieją jedynie wewnątrz pętli. Po zakończeniu jej działania, zmienne te nie są już dla nas dostępne. W tym programie jednak interesuje nas wypisanie wartości zmiennej ile po zakończeniu działania pętli, stąd musimy stworzyć ją przed rozpoczęciem pętli. Uwaga! W tym przykładzie tworzymy zmienną poza pętlą, a w inicjalizacji przypisujemy jej jedynie początkową wartość. Jest jednak dopuszczalne całkowite pominięcie inicjalizacji, na przykład: 1 int ile = 0; 2 int n = 1; 4 for (; n!= 0; ile = ile+1) { 5 cin >> n; 6 } Jest to jedyna różnica w działaniu między pętlą while, a pętlą for. Jest to zdecydowanie pożądane zachowanie, jako że zmienne powinny istnieć wyłącznie 52

tak długo, jak są potrzebne. Stąd tworzymy je tak późno jak się da. Od teraz możemy również pozbywać się ich tak szybko, jak to tylko możliwe. Uwaga! Znamy teraz dwie, niemal równoważne, metody wielokrotnego wykonywania tego samego fragmentu kodu. Której z nich należy używać? W języku C++ najczęściej stosować będziemy pętlę for, chyba że istnieją powody, aby użyć pętli while. Takim powodem może być na przykład skomplikowana inicjalizacja i krok pętli, których nie chcemy (lub nie możemy) umieszczać w jednej linii..4. Napisz program, który wypisze na ekran k kolejnych potęg 2, zaczynając od 2 0, gdzie k jest dane przez użytkownika. 5 int k; 6 cin >> k; 8 for (int i = 0, n = 1; i < k; i = i+1) { 9 cout << n << endl; 10 n = n*2; 11 } 12 1 return 0; Ponownie, przykład ten jest kopią przykładu 6.5. Jedna rzecz warta uwagi to stworzenie więcej niż jednej zmiennej w inicjalizacji (linia 8). Możemy stworzyć wiele zmiennych jednego i każdej z nich przypisać inną wartość, oddzielając je przecinkami. Istotne jest to, że typ podajemy tylko raz, przed pierwszą ze zmiennych. Pytania.1. Porównaj programy z przykładów 6.2 i.1. Zwróć uwagę na podobieństwa i różnice między nimi. Czy w którymś z przykładów znajduje się kod, którego nie ma w drugim z nich?.2. Dokonaj podobnego porównania dla pozostałych programów z tego i odpowiednich przykładów z poprzedniego rozdziału. 5

.. Który z dwóch poniższych fragmentów kodu skompiluje się? Jeżeli któryś z nich spowoduje błąd kompilacji jaki i dlaczego? Jeżeli oba się kompilują, jaka jest różnica w ich działaniu? 1 // Fragment 1 2 int n = 10; int i = 0; 4 int suma = 0; 5 while (i < n) { 6 suma = suma + i; i = i + 1; 8 } 9 cout << i << " " << suma; 10 11 // Fragment 2 12 int n = 10; 1 int suma = 0; 14 for (int i = 0; i < 10; i = i+1) { 15 suma = suma + i; 16 } 1 cout << i << " " << suma;.4. Co wypisze poniższy fragment kodu? Dlaczego zmienna n tworzona jest tutaj przed pętlą, a nie w inicjalizacji? 1 int n; 2 for (n = 0; n < 10; n = n+1) { } cout << n << endl;.5. Co wypisze poniższy fragment kodu? 1 int n = 10; 2 for (n = 0; 1 < 0; n = n+1) { cout << n << endl; 4 } 5 cout << n << endl; Zadania Rozwiąż zadania z poprzedniego rozdziału, tym razem używając pętli for. 54