6. Pętle while. Przykłady
|
|
- Arkadiusz Filipiak
- 6 lat temu
- Przeglądów:
Transkrypt
1 6. Pętle while Przykłady 6.1. Napisz program, który, bez użycia rekurencji, wypisze na ekran liczby naturalne od pewnego danego n do 0 włącznie, w kolejności malejącej, po jednej liczbie na linię. Uwaga! Kod rozwiązania znajduje się niżej. Funkcje rekurencyjne w językach takich jak C++, Java czy Python, zajmują bardzo dużo pamięci. Dodatkowo ich zapotrzebowanie na pamięć często rośnie wraz ze wzrostem wartości przekazywanych argumentów. Na przykład funkcja odliczod zdefiniowana w poprzednim rozdziale, gdy wywołana z argumentem 1000, wywoła samą siebie z argumentem 999, następnie 998, 99 itd. aż do 0. Oznacza to 1001 wywołań tej samej funkcji, a każde wywołanie zajmuje pewną ilość miejsca w pamięci (zależnie od liczby i typów argumentów). Uwaga! Używanie rekurencji wymaga pewnego stopnia ostrożności. Wywołanie funkcji rekurencyjnej z wieloma argumentami może prowadzić do tzw. przepełnienia stosu. Nie oznacza to jednak, że rekurencja nie jest przydatna. Istnieją programy, które o wiele łatwiej napisać jest rekurencyjnie niż iteracyjnie (tj. przy użyciu pętli). Istnieją wręcz obliczenia, których bez rekurencji wykonać się nie da (np. funkcja Ackermanna). Dlatego zamiast mnożyć wywołania, z których każde posiada swój zestaw argumentów, możemy użyć zmiennej, której wartość będziemy wielokrotnie zmieniać i za każdym razem wykorzystywać jej wartość do naszych obliczeń. Do takiego wielokrotnego wykonywania tego samego fragmentu kodu służą pętle. W programie powyżej wykorzystana jest pętla while, która powtarza wykonywanie danego jej fragmentu kodu tak długo, jak długo spełniony jest pewien dany warunek. Pętla while wyglądem przypomina wyrażenie if. Najpierw umieszczamy słowo kluczowe while, następnie w nawiasach okrągłych warunek, a na końcu w nawiasach klamrowych fragment kodu do powtarzania. 41
2 Uwaga! Pętla while przypomina wyrażenie if nie tylko wyglądem, ale i zachowaniem. Wyrażenie if sprawdza warunek, po czym wykonuje fragment kodu, jeżeli warunek był spełniony lub omija go w przeciwnym wypadku. Podobnie pętla while sprawdza warunek, po czym albo wykonuje kod (warunek jest spełniony) albo go pomija. Różnica polega na tym, że po wykonaniu przypisanego fragmentu kodu, pętla while ponownie sprawdza warunek i decyduje, czy wykonać kod itd. aż warunek nie będzie spełniony. Spójrzmy teraz na rozwiązanie przykładu: 5 int n; 6 cin >> n; 8 while (n >= 0) { 9 cout << n << endl; 10 n = n-1; 11 } 12 1 return 0; 14 } W liniach 5-6 pobieramy od użytkownika wartość liczby n i przechowujemy ją w zmiennej n. Mimo, że kod ten znajduje się poza pętlą, to dokonuje on inicjalizacji pętli, czyli ustawia wartości zmiennych, którymi pętla będzie się posiłkować. Następnie w linii 8 znajduje się warunek. Pętla będzie wykonywana tak długo, jak warunek jest spełniony. Chcemy wypisywać kolejne liczby aż zejdziemy poniżej 0, stąd warunek n >= 0. Następnie w linii 9 wypisujemy obecną wartość n, a w linii 10 zmniejszamy tę wartość o 1. W ten sposób następna iteracja (powtórzenie pętli) wykonywana będzie dla liczby o jeden mniejszej. Nazywamy to krokiem pętli. Kod przy pętli wykonywany będzie po kolei dla coraz mniejszych wartości n, aż dojdzie do 1, dla którego warunek nie będzie spełniony i wykonywanie pętli zakończy się. 42
3 6.2. Napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n, bez użycia rekurencji. 5 int n; 6 cin >> n; 8 int i = 0; 9 while (i <= n) { 10 cout << i << endl; 11 i = i+1; 12 } 1 14 return 0; 15 } Jeżeli chcemy wypisać liczby w przeciwnym kierunku, tj. od 0 do n, nie wystarczy nam już tylko jedna zmienna n. Musimy dołożyć do niej kolejną zmienną i, która zapamiętuje jaka następna liczba powinna zostać wypisana. Zmienna ta pełni rolę tzw. iteratora, czyli zmiennej opisującej obecne położenie w pewnym zestawie liczb (tutaj kolejne liczby naturalne od 0 do n). Pozwala to zrobić bez wprowadzania zmian do tego zestawu (tutaj n pozostaje bez zmian, w odróżnieniu od poprzedniego zadania). 6.. Napisz program, który obliczy sumę liczb od 1 do n włącznie, bez użycia rekurencji ani wzoru Gaussa (tj. n(n+1) 2 ). 5 int n; 6 cin >> n; 8 int i = 1; 9 int suma = 0; 10 while (i <= n) { 11 suma = suma + i; 12 i = i+1; 1 } 4
4 14 15 cout << suma << endl; 16 return 0; 1 } Program ten jest bardzo podobny do programu z poprzedniego przykładu. Dodana została tu zmienna suma, która przechowuje dotychczasową sumę liczb. Zmienną, która zapamiętuje dotychczasowy wynik działań nazywamy akumulatorem. Początkowa wartość tej zmiennej (linia 9) wynosi 0, jako że nie zsumowaliśmy jeszcze żadnych liczb, a suma niczego wynosi 0. Następnie w pętli (linie 10-1) kolejno przechodzimy po wszystkich liczbach od 1 do n włącznie. Robimy to tak, jak w poprzednim zadaniu, z tą różnicą, że tym razem zamiast wypisywać każdą kolejną liczbę, to dodajemy jej wartość do zmiennej suma (linia 11). Stąd po zakończeniu działania pętli, zmienna suma zawierać będzie sumę wszystkich liczb od 1 do n włącznie. Jej początkowa wartość, zero, powiększona została kolejno o wartość każdej kolejnej liczby naturalnej. To daje nam końcową wartość (n 1) + n, czyli wymaganą sumę. Zostaje nam tylko wypisać wynik (linia 15) Napisz program, który będzie pobierał od użytkownika liczby aż do napotkania zera, a następnie wypisze na ekran ile liczb pobrał (wliczając końcowe zero). 5 int ile = 0; 6 int n = 1; 8 while (n!= 0) { 9 cin >> n; 10 ile = ile + 1; 11 } 12 1 cout << ile << endl; return 0; 16 } W tym programie wewnątrz pętli pobieramy kolejne wartości do zmiennej n i zwiększamy wartość zmiennej ile. 44
5 Ta druga wartość jest naszym akumulatorem, jako że zapamiętuje ile liczb pobraliśmy do tej pory. Początkowo jest to 0 (linia 5). Następnie z każdym pobraniem kolejnej liczby wartość ta zwiększa się o 1 (linia 10), jako że pobraliśmy o jedną liczbę więcej niż dotychczas (linia 9). Początkowa wartość n wynosi 1. Dokładna wartość nie ma znaczenia, jako że i tak zostanie nadpisana. Ważne jest jedynie to, żeby była różna od 0, aby warunek pętli przy pierwszej iteracji był spełniony. Wewnątrz pętli pobieramy kolejne wartości i zwiększamy wartość akumulatora. Uwaga! Warunek pętli NIE jest magicznym strażnikiem, który przerwie działanie pętli w momencie, w którym warunek nie będzie dłużej spełniony. Warunek pętli jest sprawdzany tylko i wyłącznie na początku iteracji! Stąd po pobraniu 0 w linii 9, linia 10 wciąż zostanie wykonana. Dopiero wtedy zakończy się obecna iteracja, a na początku kolejnej sprawdzony zostanie warunek Napisz program, który wypisze k pierwszych potęg 2, zaczynając od 2 0, gdzie k jest dane przez użytkownika. Uwaga! Są dwa sposoby na wykonanie tego zadania. Pierwszy z nich, z użyciem cmath (pętlą przechodząc po wykładnikach i obliczając potęgi przy użyciu pow) spróbuj napisać samodzielnie. Drugi sposób pokazany jest poniżej. 5 int k; 6 cin >> k; 8 int potega = 1; 9 while (k > 0) { 10 cout << potega << endl; 11 potega = potega*2; 12 k = k-1; 1 } return 0; 16 } 45
6 Akumulator nie musi być za każdym razem obliczany przez sumowanie, możemy używać również mnożenia. W przypadku tego programu, akumulatorem jest zmienna potega, która zapamiętuje wartość kolejnej potęgi do wypisania. Za każdą iteracją zwiększana jest dwukrotnie, co daje nam wartość kolejnej potęgi. Z kolei zmienna k opisuje ile jeszcze potęg pozostało nam do wypisania. Jeżeli osiągnie ona 0, oznacza to, że nie zostało nam już nic i możemy zakończyć działanie pętli, a następnie programu. Zwróć też uwagę, że zmienna ta jest za każdą iteracją zmniejszana, a nie zwiększana, jako że liczba potęg pozostałych do wypisania zmniejsza się za każdym razem Napisz program, który obliczy sumę n danych liczb. Program powinien najpierw pobrać liczbę n, a następnie n liczb, po czym wypisać ich sumę. 5 int n; 6 cin >> n; 8 int i = 0; 9 int suma = 0; 10 while (i < n) { 11 int k; 12 cin >> k; 1 14 suma = suma + k; 15 i = i + 1; 16 } 1 18 cout << suma; 19 return 0; 20 } Często zdarzać się będzie, że będziemy potrzebowali pobrać od użytkownika pewien ciąg liczb o określonej przez użytkownika długości. Co prawda w następnym rozdziale poznamy krótszy sposób zapisania programu powyżej, jednak warto już teraz zrozumieć i zapamiętać ogólny schemat pobierania n liczb. Najpierw musimy oczywiście wiedzieć, ile liczb musimy pobrać. Stąd zaczynamy od stworzenia zmiennej n i pobrania jej wartości od użytkownika (linie 5-6). Następnie tworzymy zmienną i pełniącą funkcję iteratora, która zapamiętuje ile liczb zostało już pobranych (linia 8). Początkowo jest to oczywiście 0. W tym przypadku tworzymy 46
7 również akumulator suma do przechowywania sumy pobranych już liczb, ale nie jest on częścią ogólnego wzorca. Pętla będzie działać tak długo, jak liczba pobranych liczb (i) jest mniejsza od liczby wszystkich liczb, jakie mieliśmy pobrać (n), stąd warunkiem pętli (linia 10) jest i < n. Wewnątrz pętli, za każdą iteracją tworzymy zmienną i pobieramy do niej liczbę (linie 11-12). Uwaga! Zmienną do której pobieramy liczbę w pętli możemy stworzyć przed rozpoczęciem pętli, a nie w środku. W ten sposób tworzymy tylko jedną zmienną, a nie n zmiennych, z których każda istnieje tylko w czasie swojej iteracji. Łamie to jednak zasadę zmienne tworzymy tak późno jak tylko możliwe. Teoretycznie stworzenie zmiennej przed pętlą prowadzi do zmniejszonego zużycia pamięci. W praktyce nowoczesne kompilatory i tak potrafią wykryć przypadek taki jak w kodzie wyżej i użyć dla każdej z tych n zmiennych tego samego miejsca w pamięci. W końcu musimy wykonać jakieś działanie na pobranej liczbie, tutaj dodać ją do dotychczasowej sumy (linia 14), a następnie zwiększyć wartość iteratora (linia 15). Po zakończeniu działania pętli, zmienna suma zawierać będzie wartość sumy n pobranych od użytkownika liczb, dlatego wypisujemy ją (linia 18) i kończymy działanie programu. Pytania 6.1. Porównaj kod z przykładu 6.1 z funkcją rekurencyjną odliczod z poprzedniego rozdziału, wykonującą to samo zadanie. Zwróć uwagę na podobieństwa i różnice między nimi Skąd bierze się różnica w warunkach znajdujących się w obu tych programach (n < 0 w funkcji rekurencyjnej, n >= 0 w pętli)? 6.. Dlaczego zmienna n w przykładzie 6.4 ma przypisaną początkową wartość, jeżeli jest ona niemal natychmiast nadpisywana w pętli? Czy możemy tę wartość dowolnie zmienić? 6.4. W poprzednim rozdziale zwrócona była uwaga, aby unikać == i!= w warunkach pętli, a w zamian używać nierówności tam, gdzie tylko jest to możliwe. Dlaczego więc w przykładzie 6.4 warunek to n!= 0? Czy możemy go zamienić na jakąś nierówność? Jeżeli tak, jaką? Jeżeli nie, dlaczego? 4
8 6.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 = 5; int i = 0; 4 int k; 5 while (i < n) { 6 cin >> k; i = i + 1; 8 } 9 cout << k; // Fragment 2 12 int n = 5; 1 int i = 0; 14 while (i < n) { 15 int k; 16 cin >> k; 1 i = i + 1; 18 } 19 cout << k; Zadania Uwaga! W rozwiązaniach zadań poniżej, o ile nie zaznaczono inaczej, nie używaj cmath ani rekurencji Napisz program, który wypisze na ekran liczby nieparzyste od danego n do 1 włącznie, w kolejności malejącej. Zwróć uwagę, że n może być parzyste musisz to sprawdzić przed wykonaniem pętli i odpowiednio zmienić wartość n, aby było nieparzyste Napisz program, który wypisze k pierwszych wielokrotności 10, gdzie k jest dane przez użytkownika. Za pierwszą wielokrotność 10 uznajemy Napisz program, który wypisze reszty z dzielenia liczby n danej przez użytkownika, przez wszystkie kolejne liczby naturalne od 1 do n włącznie. 48
9 6.4. Napisz funkcję, który znajdzie liczbę dzielników danej liczby całkowitej (jeżeli jest to dla ciebie zbyt trudne, rozwiąż najpierw poprzednie zadanie). Następnie napisz program, który przy użyciu tej funkcji będzie w nieskończoność wypisywał kolejne liczby pierwsze, zaczynając od Napisz program, który obliczy wartość silni z danej przez użytkownika liczby n. Dla przypomnienia: silnia to iloczyn kolejnych liczb naturalnych od 1 do n włącznie Zmodyfikuj program z przykładu 6.5 tak, aby obliczał i wypisywał wyłącznie wartość k-tej potęgi 2. Wymaga to wyłącznie zmiany położenia jednej linii kodu. 6.. Napisz program, który obliczy n k, gdzie n i k są dane przez użytkownika Napisz program, który policzy sumę n pierwszych liczb trójkątnych. Liczba trójkątna to liczba kul, które potrzebne są do zbudowania trójkąta równobocznego o danej podstawie. Kolejne liczby trójkątne to 1,, 6, 10, 15, 21, 28 itd Napisz program, który pobierze od użytkownika n liczb (gdzie n jest dane), a następnie wypisze na ekran ich średnią arytmetyczną Napisz program, który pobierze od użytkownika n liczb, a natępnie wypisze na ekran najmniejszą z nich. Podpowiedź: potrzebujesz zmiennej, która zapamiętywać będzie wartość najmniejszej z dotychczas pobranych liczb. Jej wartość powinna być zmieniana tylko wtedy, gdy nowo pobrana liczba jest mniejsza od dotychczasowego minimum. Rozszerzenie 6.1. Napisz program, który będzie znajdował i wypisywał na ekran rozkład danej liczby na czynniki pierwsze. Postaraj się, aby twój program działał jak najszybciej. Na przykład rozkład na czynniki pierwsze liczby (która jest pierwsza) powinien pojawiać się na ekranie niemal natychmiast (kilka sekund to za długo) Regresja liniowa. Napisz program, który dla danego zestawu punktów na płaszczyznie, znajdzie linię prostą, której sumaryczna odległość od każdego z punktów jest jak najmniejsza. 6.. Klastrowanie algorytmem k-średnich. Napisz program, który dany zestaw punktów na płaszczyznie podzieli na dwa zestawy takie, że sumaryczna odległość wszystkich punktów od środka ich zestawu jest jak najmniejsza. 49
7. Pętle for. Przykłady
. 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
5. Rekurencja. Przykłady
5. Rekurencja Uwaga! W tym rozdziale nie są omówione żadne nowe konstrukcje języka C++. Omówiona jest za to technika wykorzystująca funkcje, która pozwala na rozwiązanie pewnych nowych rodzajów zadań.
4. Funkcje. Przykłady
4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni
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.
8. Wektory Przykłady 8.1. Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana. Uwaga! Kod poniżej. To zadanie można rozwiązać przy użyciu wiedzy
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).
2. Zmienne i stałe Przykłady 2.1. Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117). 5 int a = 281; int b = 117; 7 8 cout
do instrukcja while (wyrażenie);
Instrukcje pętli -ćwiczenia Instrukcja while Pętla while (póki) powoduje powtarzanie zawartej w niej sekwencji instrukcji tak długo, jak długo zaczynające pętlę wyrażenie pozostaje prawdziwe. while ( wyrażenie
Programowanie - wykład 4
Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include
3. Instrukcje warunkowe
. Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include
for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }
Pętle Pętle (ang. loops), zwane też instrukcjami iteracyjnymi, stanowią podstawę prawie wszystkich algorytmów. Lwia część zadań wykonywanych przez programy komputerowe opiera się w całości lub częściowo
for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }
Pętle Pętle (ang. loops), zwane też instrukcjami iteracyjnymi, stanowią podstawę prawie wszystkich algorytmów. Lwia część zadań wykonywanych przez programy komputerowe opiera się w całości lub częściowo
Rekurencja (rekursja)
Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)
Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.
Iteracje Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony. Iteracja inaczej zwana jest pętlą i oznacza wielokrotne wykonywanie instrukcji. Iteracje
WHILE (wyrażenie) instrukcja;
INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while
znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
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.
Część XXII C++ w 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. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
1. Wypisywanie danych
1. Wypisywanie danych Przykłady 1.1. Napisz program, który wypisze na ekran słowa Hello, world!. 1 // Przyklad 1: Hello, world! 3 using namespace std; 5 int main() { 6 cout
WHILE (wyrażenie) instrukcja;
INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while
Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.
Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:
Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini
Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady
Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy
Programowanie strukturalne i obiektowe. Funkcje
Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy
Warunki logiczne instrukcja if
Warunki logiczne instrukcja if Prowadzący: Łukasz Dunaj, strona kółka: atinea.pl/kolko 1. Wejdź na stronę kółka, uruchom edytor i wpisz: use console; def test::main() { var y; y = 1; while (y
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?
Część XVIII C++ Funkcje 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? Umiemy już podzielić nasz
Algorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Pzetestuj działanie pętli while i do...while na poniższym przykładzie:
Pzetestuj działanie pętli while i do...while na poniższym przykładzie: Zadania pętla while i do...while: 1. Napisz program, który wczytuje od użytkownika liczbę całkowitą, dopóki podana liczba jest mniejsza
Lekcja : Tablice + pętle
Lekcja : Tablice + pętle Wprowadzenie Oczywiście wiesz już jak dużo można osiągnąć za pomocą tablic oraz jak dużo można osiągnąć za pomocą pętli, jednak tak naprawdę prawdziwe możliwości daje połączenie
REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał
REKURENCJA W JĘZYKU HASKELL Autor: Walczak Michał CZYM JEST REKURENCJA? Rekurencja zwana rekursją, polega na wywołaniu przez funkcję samej siebie. Algorytmy rekurencyjne zastępują w pewnym sensie iteracje.
Paradygmaty programowania
Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów
INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki
INFORMATYKA Z MERMIDONEM Programowanie Moduł 5 / Notatki Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego. Realizator projektu: Opracowano w ramach projektu
Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()
Programowanie komputerowe. Zajęcia 2
Programowanie komputerowe Zajęcia 2 Funkcje Funkcje są podstawowym składnikiem programów w C++. Każda funkcja jest fragmentem programu, który można używać wielokrotnie i niezależnie od pozostałych funkcji.
Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 13 Rekurencja 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Rekurencja - pojęcie 2 Rekurencja - pojęcie Rekurencja (rekursja) wywołanie
Programowanie komputerowe. Zajęcia 3
Programowanie komputerowe Zajęcia 3 Instrukcje przypisania Poza zwykłą instrukcją przypisania, powodującą ustawienie wartości zmiennej na podane wyrażenie, istnieje wiele innych, np. += dodaj, a+=b jest
Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest
Pętle Pętla to pewien fragment kodu, który jest wykonywany wielokrotnie. Wyobraź sobie taką sytuację. Piszesz program do szyfrowania danych. Dane są szyfrowane kolejno bajt po bajcie. Załóżmy, że plik
Język C, tablice i funkcje (laboratorium, EE1-DI)
Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.
Wieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa
Wieczorowe Studia Licencjackie Wrocław, 7.11.2006 Wstęp do programowania Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa Zaprezentujemy teraz algorytm na wyznaczanie wszystkich
ALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
ALGORYTMY I STRUKTURY DANYCH
KATEDRASYSTEMÓWOBLICZENIOWYCH ALGORYTMY I STRUKTURY DANYCH 1.Rekurencja Rekurencja inaczej rekursja (ang. recursion) to wywołanie z poziomu metody jej samej. Programowanie z wykorzytaniem rekurencji pozwala
Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek
Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for
ALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
ALGORYMY Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu
Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pętle for, while, do... while, foreach Jeszcze o operatorach... Skrócone operatory arytmetyczne przykład x +=
Programowanie i techniki algorytmiczne
Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej
wagi cyfry 7 5 8 2 pozycje 3 2 1 0
Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień
Wstęp do programowania
wykład 3 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Instrukcja wielokrotnego wyboru Instrukcja wielokrotnego wyboru switch umożliwia podejmowanie decyzji na podstawie wartości
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76
. p. 1 Algorytmem nazywa się poddający się interpretacji skończony zbiór instrukcji wykonania zadania mającego określony stan końcowy dla każdego zestawu danych wejściowych W algorytmach mogą występować
Zadeklarowanie tablicy przypomina analogiczną operację dla zwykłych (skalarnych) zmiennych. Może zatem wyglądać na przykład tak:
Tablice Tablice jednowymiarowe Jeżeli nasz zestaw danych składa się z wielu drobnych elementów tego samego rodzaju, jego najbardziej naturalnym ekwiwalentem w programowaniu będzie tablica. Tablica (ang.
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja
Opis zagadnieo 1-3 Iteracja, rekurencja i ich realizacja Iteracja Iteracja to czynnośd powtarzania (najczęściej wielokrotnego) tej samej instrukcji (albo wielu instrukcji) w pętli. Mianem iteracji określa
Podstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk
Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał
Programowanie komputerowe. Zajęcia 1
Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program
1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:
1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci: * Jan Kowalski * * ul. Zana 31 * 3. Zadeklaruj zmienne przechowujące
Wstęp do informatyki- wykład 7
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.
Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java
Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego
Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
Programowanie - instrukcje sterujące
Instytut Informatyki Uniwersytetu Śląskiego Laborki środowisko NetBeans, tworzenie nowego projektu; okno projekty; główne okno programu; package - budowanie paczek z klas; public class JavaApplication
1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Temat 20. Techniki algorytmiczne
Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły opis prostej sytuacji problemowej, analizuje
Każde wykonanie bloku instrukcji nazywamy pojedynczym przebiegiem lub iteracją pętli.
Część XIII C++ Czym jest pętla? Pętla jest blokiem instrukcji, które wykonywane są w kółko (czyli po wykonaniu ostatniej instrukcji z bloku komputer wykonuje ponownie pierwszą instrukcję, później drugą
Struktura pliku projektu Console Application
Struktura pliku projektu Console Application #include #include using namespace std; int main(int argc, char *argv[]) // to jest komentarz system("pause"); return EXIT_SUCCESS; Na początku
Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
Część 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.
Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania
Wstęp do informatyki- wykład 6
1 Wstęp do informatyki- wykład 6 Operatory przypisania, złożone operatory przypisania, operator przecinkowy Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++.
Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 6 Podstawy programowania 2 Temat: Funkcje i procedury rekurencyjne Przygotował: mgr inż. Tomasz Michno Wstęp teoretyczny Rekurencja (inaczej nazywana rekursją, ang. recursion)
Programowanie w Baltie klasa VII
Programowanie w Baltie klasa VII Zadania z podręcznika strona 127 i 128 Zadanie 1/127 Zadanie 2/127 Zadanie 3/127 Zadanie 4/127 Zadanie 5/127 Zadanie 6/127 Ten sposób pisania programu nie ma sensu!!!.
Instrukcje sterujące
Podstawy programowania w C++ Bibliografia: Instrukcje sterujące Nauka programowania dla początkujących; A. Struzińska-Walczak / K. Walczak CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com Opracował:
Część XV C++ Ćwiczenie 1
Część XV C++ Instrukcja break przerywa działanie tylko tej pętli, w ciele której została wywołana. Jeśli więc wywołamy break w pętli zagnieżdżonej w innej pętli, zostanie przerwane działanie tylko tej
Podstawy programowania funkcjonalnego
Podstawy programowania funkcjonalnego haskell.mariuszrozycki.pl Mariusz Różycki Churchill College, University of Cambridge rev. 2014.03.27.1 Wprowadzenie Materiały haskell.mariuszrozycki.pl Slajdy (w tym
Konstrukcje warunkowe Pętle
* Konstrukcje warunkowe Pętle *Instrukcja if sposób na sprawdzanie warunków *Konstrukcja: if(warunek) else { instrukcje gdy warunek spełniony} {instrukcje gdy warunek NIE spełniony} * 1. Wylicz całkowity
1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.
Temat: Technologia informacyjna a informatyka 1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji. Technologia informacyjna (ang.) Information Technology, IT jedna
Zapisywanie algorytmów w języku programowania
Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym
Algorytmy i struktury danych
Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Mariusz Różycki University of Cambridge Zajęcia będą mieć formę wykładową. Slajdy można znaleźć na stronie kursu: http://lw.mi.edu.pl/informatyka/algorytmy.
Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy dopóki nam sie nie znudzi.
Program 3 Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy póki nam sie nie znudzi. #include using namespace std; int main() int odp,a,m; bool pierwsze_podanie =
Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.
Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą
Materiały dla finalistów
Materiały dla finalistów Malachoviacus Informaticus 2016 11 kwietnia 2016 Wprowadzenie Poniższy dokument zawiera opisy zagadnień, które będą niezbędne do rozwiązania zadań w drugim etapie konkursu. Polecamy
Wskazówki dotyczące zmiennych, tablic i procedur 1
Wskazówki dotyczące zmiennych, tablic i procedur 1 Spis treści 1. Tworzenie zmiennych i tablic 1 2. Procedury i zmienne, przekazywanie zmiennych do procedur 5 3. Zakończenie działania procedury 9 1. Tworzenie
Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal
Instrukcja wyboru, pętle 2 wykład. Podstawy programowania - Paskal Tematy Instrukcja wyboru jeden z wielu wariantów: case Pętle while repeat for Instrukcje sterowania pętli break continue goto Instrukcja
Metody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Lekcja 3: Pierwsze kroki z Pythonem. Pętle
#SuperKoderzy www.superkoderzy.pl Mikrobitowcy Autorzy: Filip Kłębczyk Lekcja 3: Pierwsze kroki z Pythonem. Pętle Podczas lekcji uczniowie zapoznają się z dwoma rodzajami pętli - for i while - analizując
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:
Program 6 Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje: Funkcja pobierz_osobe wczytuje dane osoby podanej jako argument. Funkcja wypisz_osobe
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Załóżmy, że uprawiamy jogging i chcemy monitorować swoje postępy. W tym celu napiszemy program, który zlicza, ile czasu
LISTA 5. C++ PETLE for, while, do while
WSTEP DO INFORMATYKI I PROGRAMOWANIA LISTA 5. C++ PETLE for, while, do while Zadanie. Przeanalizuj działanie poniższego programu. cout
Zaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.
Funkcje Deklaracja funkcji typ funkcji identyfikator_funkcji(lista parametrów formalnych); Typ funkcji określa typ wartości zwracanej przez funkcję (typ zdefiniowany pierwotnie jak int, typ zdefiniowany
Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.
Część XVII C++ Funkcje Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. 2 3 Tworzymy deklarację i definicję funkcji o nazwie pobierzln() Funkcja
Wstęp do programowania
wykład 4 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Pętle wykonujące się podaną liczbę razy Jeśli chcemy wykonać pewien fragment programu określoną liczbę razy, możemy użyć
PROGRAMOWANIE W C++ ZADANIA
PROGRAMOWANIE W C++ ZADANIA Włodzimierz Gajda Rozdział 7 PĘTLE 7.1 PĘTLA FOR: rysowanie wzorków. ZADANIE 7.1.1 Napisz program drukujący na ekranie 19 gwiazdek: ******************* ZADANIE 7.1.2 Napisz
Liczby rzeczywiste. Działania w zbiorze liczb rzeczywistych. Robert Malenkowski 1
Robert Malenkowski 1 Liczby rzeczywiste. 1 Liczby naturalne. N {0, 1,, 3, 4, 5, 6, 7, 8...} Liczby naturalne to liczby używane powszechnie do liczenia i ustalania kolejności. Liczby naturalne można ustawić
Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)
1 Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną) Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,
Wstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.
Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Schemat Hornera. Wyjaśnienie: Zadanie 1. Pozycyjne reprezentacje
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Jak napisać program obliczający pola powierzchni różnych figur płaskich?
Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy
Wykład 4. Określimy teraz pewną ważną klasę pierścieni.
Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia