5. Rekurencja. Przykłady
|
|
- Rafał Chmiel
- 6 lat temu
- Przeglądów:
Transkrypt
1 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ń. Przed rozpoczęciem pracy nad tym rozdziałem upewnij się, że rozumiesz funkcje i instrukcje warunkowe. Bez tej wiedzy będziesz mieć problemy ze zrozumieniem materiału zawartego w tym rozdziale. Jeżeli potrzebujesz, rozwiąż więcej zadań z poprzedniego rozdziału. Przykłady 5.1. Napisz program, który będzie w nieskończoność wypisywać kolejne liczby naturalne, począwszy od 0, po jednej liczbie na linię. 1 #include <iostream> 2 using namespace std; 3 4 void wypisznaturalneod(int n) { 5 cout << n << endl; 6 wypisznaturalneod(n+1); 7 } 8 9 int main() { 10 wypisznaturalneod(0); return 0; 13 } Uwaga! Program ten nigdy sam nie zakończy swojego działania. Aby zakończyć jego działanie wciśnij kombinację klawiszy Ctrl+C. Rozwiązanie tego zadania może na pierwszy rzut oka wyglądać bardzo nietypowo. Wykorzystuje ono bardzo popularną technikę zwaną rekurencja. W celu wypisania wszystkich kolejnych liczb naturalnych tworzymy funkcję, która pozwoli wypisać nam wszystkie liczby naturalne począwszy od pewnej 31
2 danej liczby. Funkcja ta, wypisznaturalneod nie zwraca żadnej wartości (wypisuje jedynie liczby), a jako argument przyjmuje początkową liczbę, od której chcemy zacząć wypisywanie. W ciele tej funkcji znajdują się jedynie 2 linie kodu. Pierwsza z nich odpowiada za wypisanie pierwszej z liczb (czyli n, od którego mieliśmy zacząć). Druga linia wywołuje zaś tę samą funkcję, jednak z argumentem o jeden większym, co wypisze na ekran wszystkie pozostałe liczby naturalne, które mamy do wypisania. Rekurencja polega na wywoływaniu funkcji wewnątrz jej własnej definicji. Pozwala to na wielokrotne wykonanie tego samego fragmentu kodu. Funkcję, która wywołuje sama siebie nazywamy rekurencyjna. Funkcje rekurencyjne z reguły podążają za utartym schematem: jeżeli potrafię znaleźć rozwiązanie dla n, to jakie będzie rozwiązanie dla n + 1? 5.2. Napisz program, który będzie odliczać w dół do 0 od pewnej zadanej liczby. Program ma pobrać od użytkownika liczbę n, a następnie wypisać na ekran liczby od n do 0 włącznie, w kolejności malejącej, po jednej liczbie na linię. 1 #include <iostream> 2 using namespace std; 3 4 void odliczod(int n) { 5 if (n < 0) { 6 return; 7 } 8 9 cout << n << endl; 10 odliczod(n-1); 11 } int main() { 14 int n; 15 cin >> n; odliczod(n); return 0; 20 } Program z poprzedniego przykładu nie był zbyt przydatny, jako że nigdy nie kończył swojego działania. Nie posiadał on tzw. podstawy rekurencji, a jedynie krok rekurencyjny. 32
3 W tym przykładzie chcemy wypisywać kolejno coraz mniejsze liczby, stąd wywołanie w linii 10 zawiera n-1, a nie n+1 jak w poprzednim przykładzie. Tym razem jednak chcemy zakończyć wypisywanie liczb, jeżeli n przekroczy 0. Dlatego oprócz zmiany plusa na minus, do funkcji dodane zostały jeszcze dodatkowe linie kodu (5-7), które sprawdzają czy argument funkcji nie jest ujemny. Jeżeli jest, działanie funkcji jest przerywane, a co za tym idzie, kolejne liczby nie są wypisywane na ekran. Taki warunek nazywamy podstawą rekurencji i z reguły umieszczamy go na samym początku funkcji rekurencyjnej. Uwaga! Warunek w linii 5 moglibyśmy zastąpić przez n == -1 i program działałby wciąż poprawnie. Jednak gdyby ktoś poprosił cię o zmianę tego kodu tak, aby wypisywał co drugą liczbę, konieczna byłaby modyfikacja tego warunku na n == -1 n == -2. Unikaj używania warunków z == lub!= w podstawie rekurencji (a później także w pętlach). Czasem jest to niezbędne, jednak w większości przypadków lepiej jest taki warunek zastąpić przez jedną z nierówności. Całą resztę kodu funkcji rekurencyjnej nazywamy krokiem rekurencji Napisz program, który wypisze kolejne liczby naturalne od a do b włącznie, w kolejności rosnącej, gdzie a i b są dane przez użytkownika. 1 #include <iostream> 2 using namespace std; 3 4 void wypisznaturalne(int start, int koniec) { 5 if (start > koniec) { 6 return; 7 } 8 9 cout << start << endl; 10 wypisznaturalne(start+1, koniec); 11 } int main() { 14 int start, koniec; 15 cin >> start >> koniec; wypisznaturalne(start, koniec); return 0; 20 } 33
4 Tym razem nasza funkcja rekurencyjna przyjmuje dwa argumenty: granice przedziału, którego elementy mamy wypisać. Zacznijmy od omówienia kroku rekurencji (linie 9-10). Przypomina on rozwiązanie przykładu 5.1. Wypisujemy pierwszą liczbę przedziału, a potem rekurencyjnie wypisujemy całą resztę. Tym razem musimy jednak pamiętać o przekazaniu również drugiego argumentu koniec, który jednak nie zmienia się. Wypisywanie powinno zakończyć się w momencie, kiedy kolejna liczba do wypisania (tj. start) jest większa niż ostatnia liczba, która miała być wypisana (czyli koniec). Stąd podstawa rekurencji (linie 5-7) sprawdza czy start jest większe od koniec i jeżeli tak, to kończy działanie funkcji bez wypisywania żadnej wartości na ekran. Głowna funkcja programu sprowadza się do pobrania od użytkownika dwóch liczb, a następnie przekazania ich do zdefiniowanej już funkcji wypisznaturalne Dana jest plansza o wymiarach 2 n 2 n, gdzie n > 0, z wyciętym jednym z pól, oraz dowolna liczba klocków w kształcie litery L złożonej z 3 kwadratów. W jaki sposób dokładnie przykryć planszę klockami tak, aby żaden klocek nie zakrywał wyciętego pola ani nie wystawał poza planszę? Klocki nie mogą na siebie nachodzić, ale można dowolnie je obracać. Uwaga! Ten przykład nie zawiera kodu, jako że zadanie nie prosi o jego napisanie. Jeżeli czujesz się na siłach, możesz spróbować napisać program, który będzie konstruował i prezentował odpowiedni układ klocków dla danej planszy. Wymaga to jednak nieco wiedzy wykraczającej poza dotychczasowy materiał. Zaczniemy od rozwiązania najprostszego przypadku, gdzie n = 1, czyli plansza ma rozmiar 2 2. Następnie na podstawie prostszych rozwiązań będziemy konstruować rozwiązania dla coraz większych plansz. Przypadek bazowy jest trywialnie prosty. Mamy planszę 2 2 z jednym z pól wyciętym. Cała reszta planszy ma więc dokładnie taki sam kształt jak nasz klocek, a więc wystarczy go tam położyć. Następnie załóżmy, że mamy rozwiązanie dla n i spróbujmy znaleźć rozwiązanie dla n+1. Dzielimy planszę na 4 części: na pół w pionie i w poziomie, otrzymując cztery ćwiartki. 34
5 Dostajemy więc 4 plansze, każda o rozmiarach 2 n 2 n, a taką potrafimy zapełnić klockami tak, aby dowolne pole pozostało wolne. W jednej z ćwiartek znajduje się pole, które musi pozostać puste, więc zapełniamy ją odpowiednio. Na pozostałych 3 ćwiartkach nie mamy żadnych pól, które powinny pozostać puste. Możemy je sobie wybrać tak, aby w pozostałą lukę dało się umieścić jeszcze jeden klocek. W każdej z tych 3 ćwiartek zostawiamy wolne pole przy samym środku planszy, co da nam lukę w kształcie klocka, którą możemy w prosty sposób zapełnić. Wiemy, że dla dowolnego n da się wypełnić planszę, jeżeli da się to zrobić dla n 1. Wiemy także, że jest to możliwe dla n = 1. Stąd wiemy, że da się to zrobić dla n = 2 (bo da się dla 2 1 = 1), a więc także dla n = 3 (bo da się dla 3 1 = 2) itd. W ten sposób nie tylko udowodniliśmy (przez indukcję), że żądany układ istnieje dla każdego n > 0, ale także znaleźliśmy rekurencyjny sposób na jego skonstruowanie. 35
6 5.5. Napisz program, który obliczy wartość silni z danej liczby. 1 #include <iostream> 2 using namespace std; 3 4 int silnia(int n) { 5 if (n == 0) { 6 return 1; 7 } 8 9 return n * silnia(n-1); 10 } int main() { 13 int n; 14 cin >> n; 15 cout << silnia(n); return 0; 18 } Rekurencję spotykamy nie tylko w programowaniu, ale i w matematyce. Niektóre funkcje, jak silnia, zdefiniowane są rekurencyjnie. To znaczy że definicja takiej funkcji odwołuje się do tej właśnie funkcji. Uwaga! Silnia z n (zapisujemy n!) to iloczyn wszystkich kolejnych liczb naturalnych od 1 do n włącznie. Silnia zdefiniowana jest następująco: { 1 gdy n = 0 n! = n (n 1)! gdy n 0 Definicję tę możemy zapisać w C++ w niemal niezmienionej formie, jak widać na przykładzie powyżej. Sprawdzamy najpierw czy n == 0. Jeżeli tak, zwracamy 1, jeżeli nie, zwracamy iloczyn n i silni z n-1. Uwaga! Drugie z wyrażeń return moglibyśmy umieścić w bloku else, jednak nie jest to konieczne. Jeżeli warunek podstawy rekurencji jest spełniony, to i tak program nie dotrze nigdy do kodu kroku rekurencji. 36
7 5.6. Ile jest liczb naturalnych nie większych od n, które podzielne są przez 5, ale nie są podzielne przez 3? Napisz program, który obliczy wynik dla n danego przez użytkownika. 1 #include <iostream> 2 using namespace std; 3 4 int ileniewiekszych(int n) { 5 if (n < 0) { 6 return 0; 7 } 8 9 if (n % 5 == 0 && n % 3!= 0) { 10 return 1 + ileniewiekszych(n-1); 11 } else { 12 return ileniewiekszych(n-1); 13 } 14 } int main() { 17 int n; 18 cin >> n; cout << ileniewiekszych(n) << endl; return 0; 23 } Przy użyciu rekurencji możemy w łatwy sposób policzyć ile liczb w danym przedziale spełnia pewien warunek. Wystarczy rekurencyjnie przejść kolejno po wszystkich liczbach w przedziale (jak w przykładach 5.1, 5.2 i 5.3) i dla każdej z nich sprawdzić, czy warunek jest spełniony. Jeżeli tak, do ostatecznego wyniku dodajemy 1. Jeżeli nie, nie dodajemy nic. Dokładnie w ten sposób działa krok rekurencyjny funkcji w tym rozwiązaniu. Sprawdzamy czy obecnie rozpatrywana liczba spełnia warunek (linia 9) i dodajemy 1 do wyniku dla liczby o jeden mniejszej (linia 10) lub po prostu zwracamy wynik dla n 1 (linia 12). W podstawie rekurencji sprawdzamy, czy dana liczba jest mniejsza zero. Jeżeli tak, to nie musimy szukać już dalej, jako że interesują nas wyłącznie liczby naturalne, a poniżej 0 ich nie ma, stąd wynik wynosi 0. 37
8 Pytania 5.1. Co stanie się, jeżeli wywołamy odliczod(-1)? 5.2. Co stanie się, jeżeli wywołamy silnia(-1)? 5.3. Z czego wynika różnica w odpowiedziach na poprzednie dwa pytania? 5.4. Co wypisze na ekran wywołanie silnia(20)? Czy jest to prawidłowy wynik? Jaka jest największa wartość n dla której funkcja z przykładu 5.5 zwróci prawidłowy wynik? Dlaczego dla wartości większych otrzymujemy błędny wynik? 5.5. Czy zmiana typu zwracanego z int na double w funkcji silnia jest dobrym rozwiązaniem problemu z poprzedniego pytania? 5.6. Przeczytaj w internecie o wieżach Hanoi, na przykład na Wikipedii. Opisz własnymi słowami, ale zwięźle, w jaki sposób rekurencyjnie rozwiązać ten problem dla n krążków. Narysuj kolejne kroki dla n = 3. Zadania 5.1. (+50) Napisz program, który wypisze liczby od danego n do 1 włącznie, przy czym każda liczba podzielna przez 3 powinna zostać zastąpiona słowem fizz (+60) Napisz program, który rekurencyjnie obliczy sumę liczb naturalnych od 1 do danego n. Nie używaj wzoru Gaussa (tj. n(n+1) 2 ) (+60) Napisz program, który obliczy wartość k-tej potęgi 2, gdzie k jest liczbą naturalną daną jako argument funkcji. Nie używaj cmath (+70) Napisz program, który obliczy wartość k-tej potęgi n, gdzie k i n są danymi liczbami naturalnymi. Nie używaj cmath (+75) Napisz program, który obliczy wartość funkcji Ackermanna A(m, n) zdefiniowanej następująco: n + 1 gdy m = 0 A(m, n) = A(m 1, 1) gdy m > 0 i n = 0 A(m 1, A(m, n 1)) gdy m > 0 i n > (+70) Napisz program, który pobierze od użytkownika liczbę całkowitą, a następnie wypisze jej cyfry, zaczynając od jedności, po jednej cyfrze na linię. 38
9 5.7. (+70) Algorytm Euklidesa. Największy wspólny dzielnik (NWD) dwóch liczb to największa taka liczba naturalna, która dzieli bez reszty obie te liczby. Wiemy, że NWD(a, 0) = a oraz że NWD(a, b) = NWD(b, a mod b), gdzie a mod b to reszta z dzielenia a przez b. Napisz program, który znajdzie NWD dwóch danych liczb (+80) Ciąg Collatza zdefiniowany jest następująco: pierwsza liczba ciągu jest dowolną liczbą naturalną. Następnie każda kolejna wartość ciągu obliczana jest na podstawie poprzedniej wedle następującej reguły: jeżeli poprzednia wartość jest parzysta, nowa wartość stanowi jej połowę, w przeciwnym razie jej trzykrotność powiększoną o 1. Przykład. Jeżeli rozpoczniemy od 6 uzyskamy: 6, 3, 10, 5, 16, 8, 4, 2, 1. Napisz program, który dla danego pierwszego elementu ciągu wypisze kolejne elementy tego ciągu aż do napotkania pierwszej jedynki (+60) Napisz funkcję, która policzy wartość n-tej liczby Fibonacciego (F n ). Dla uściślenia: F 0 = 0, F 1 = 1, F n = F n 1 + F n (+60) Napisz program, który wypisze kolejne liczby naturalne od a do b włącznie, w kolejności malejącej, gdzie a i b to dane liczby naturalne (+80) Napisz program, który wypisze wszystkie dzielniki danej liczby naturalnej. Podpowiedź: konieczne może być napisanie dwóch funkcji. Jedna z nich przyjmuje dwa argumenty: wartość dzielnej i potencjalnego dzielnika, która rekurencyjnie sprawdza kolejne dzielniki. Druga funkcja przyjmuje tylko jeden argument i wywołuje pierwszą funkcję z danym argumentem i wartością pierwszego potencjalnego dzielnika (+100) Potęgę o wykładniku naturalnym możemy zdefiniować następująco: 1 gdy k = 0 n k = n k 2 n k 2 gdy 2 k n k 1 2 n k 1 2 n gdy 2 k Napisz funkcję, która obliczać będzie potęgi o wykładnikach naturalnych używając tej definicji. Upewnij się, że w każdym przypadku wykonujesz tylko jedno wywołanie rekurencyjne (np. przez zapisanie wyniku w zmiennej). Nie używaj cmath (+60) Ile jest liczb naturalnych mniejszych od n, które podzielne są przez 5, ale nie są podzielne przez 3? Napisz program, który obliczy wynik dla n danego przez użytkownika. 39
10 5.14. (+80) Jeżeli wypiszemy wszystkie liczby naturalne mniejsze od 10, które są wielokrotnościami 3 lub 5, otrzymamy 3, 5, 6 i 9. Suma tych liczb wynosi 23. Napisz program, który znajdzie sumę wszystkich wielokrotności 3 i 5 poniżej (Project Euler, zadanie 1) (+100) Suma kwadratów pierwszych 10 liczb naturalnych wynosi = 385 Natomiast kwadrat sumy pierwszych 10 liczb naturalnych wynosi ( ) 2 = 3025 Stąd różnica między sumą kwadratów pierwszych 10 liczb naturalnych a kwadratem ich sumy wynosi = Znajdź różnicę między sumą kwadratów a kwadratem sumy dla pierwszych 100 liczb naturalnych. Podpowiedź: przydatne będzie tu napisanie więcej niż jednej funkcji. (Project Euler, zadanie 6) (+120) Mamy do dyspozycji monety o nominałach 5zł i 2zł. Napisz program, który obliczy minimalną liczbę monet jaka jest niezbędna do wydania reszty w kwocie danej przez użytkownika. Program powinien wypisać słowa nie da się, jeżeli danej kwoty nie da się wydać przy użyciu danych nominałów. Upewnij się, że twój program zwraca prawidłowy wynik dla kwot takich jak 6zł (3 monety) czy 21zł (6 monet) (+120) Napisz program, który wypisze na ekran tabliczkę mnożenia do 100. Rozszerzenie 5.1. (+210) Napisz funkcję, która przybliży wartość liczby π ze wzoru Leibniza: π 4 = ( 1) n n=0 2n (+340) Napisz funkcję, która obliczy przybliżoną wartość logarytmu naturalnego z danej liczby zmiennoprzecinkowej (double) (+550) Zaimplementuj algorytm sortowania przez scalanie. 40
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
Bardziej szczegółowo6. Pętle while. Przykłady
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!
Bardziej szczegółowo3. 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
Bardziej szczegółowoProgramowanie - 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
Bardziej szczegółowo7. 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
Bardziej szczegółowoAlgorytmy 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
Bardziej szczegółowoRekurencja (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)
Bardziej szczegółowoALGORYTMY 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
Bardziej szczegółowo8. 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
Bardziej szczegółowoWykł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
Bardziej szczegółowo2. 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
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoRekurencja. Przygotowała: Agnieszka Reiter
Rekurencja Przygotowała: Agnieszka Reiter Definicja Charakterystyczną cechą funkcji (procedury) rekurencyjnej jest to, że wywołuje ona samą siebie. Drugą cechą rekursji jest jej dziedzina, którą mogą być
Bardziej szczegółowoWstę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ść
Bardziej szczegółowo1. 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
Bardziej szczegółowo1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)
1. Liczby wymierne. - wartość bezwzględna liczby. dla 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba) - dla < 0 ( wartością bezwzględną liczby ujemnej jest liczba do niej przeciwna) W interpretacji
Bardziej szczegółowoAlgorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie
Algorytmika i programowanie Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie Tablice Tablica jest zbiorem elementów tego samego typu. Każdy element jest identyfikowany (numer
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowoProgramowanie 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!!!.
Bardziej szczegółowoProgram 14. #include <iostream> #include <ctime> using namespace std;
Program 14 Napisać: * funkcję słuŝącą do losowego wypełniania tablicy liczbami całkowitymi z podanego zakresu (*). Parametrami funkcji mają być tablica, jej długość oraz dwie liczby stanowiące krańce przedziału
Bardziej szczegółowoPrzykładowe zadania z teorii liczb
Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę
Bardziej szczegółowoWarunki 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
Bardziej szczegółowoInformacje 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
Bardziej szczegółowoProgram 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 =
Bardziej szczegółowo1. 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
Bardziej szczegółowodo 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
Bardziej szczegółowoRekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.
Rekurencja Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów. Zgodnie ze znaczeniem informatycznym algorytm rekurencyjny to taki który korzysta z samego
Bardziej szczegółowofor (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
Bardziej szczegółowoCzęść 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ęść
Bardziej szczegółowoWstę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
Bardziej szczegółowoWstę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,
Bardziej szczegółowoZaję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 ()
Bardziej szczegółowoLiczby całkowite i rzeczywiste
Wykład 4(20 marzec 2014r.) Liczby całkowite i rzeczywiste Paulina Rogowiecka Klaudia Kamińska Adrianna Znyk 1 Spis treści: Czynniki pierwsze metoda próbnych dzieleń Pierwszość liczby naturalnej algorytmy
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowoALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:
ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu: Rys1 Ćwiczenie 2 Podaj jaki ciąg znaków zostanie wypisany po wykonaniu
Bardziej szczegółowoINFORMATYKA 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
Bardziej szczegółowoPodstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.
ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw przypomnieć sobie jak są tworzone liczby w ww systemach
Bardziej szczegółowoRozwiązanie. #include <cstdlib> #include <iostream> using namespace std;
Programowanie C++ Zadanie 1 Napisz program do obliczenia sumy i iloczynu ciągu liczb zakooczonego liczbą zero. Zakładamy, że ciąg zawiera co najmniej jedną liczbę (założenie to jest konieczne przy obliczeniu
Bardziej szczegółowoI. Podstawy języka C powtórka
I. Podstawy języka C powtórka Zadanie 1. Utwórz zmienne a = 730 (typu int), b = 106 (typu long long), c = 123.45 (typu double) Wypisz następujące komunikaty: Dane sa liczby: a = 730, b = 106 i c = 123.45.
Bardziej szczegółowoZadanie 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
Bardziej szczegółowoInstrukcje 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ł:
Bardziej szczegółowo1. Liczby naturalne, podzielność, silnie, reszty z dzielenia
1. Liczby naturalne, podzielność, silnie, reszty z dzielenia kwadratów i sześcianów przez małe liczby, cechy podzielności przez 2, 4, 8, 5, 25, 125, 3, 9. 26 września 2009 r. Uwaga: Przyjmujemy, że 0 nie
Bardziej szczegółowoWHILE (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
Bardziej szczegółowoAlgorytmy w teorii liczb
Łukasz Kowalik, ASD 2004: Algorytmy w teorii liczb 1 Algorytmy w teorii liczb Teoria liczb jest działem matemtyki dotyczącym własności liczb naturalnych. Rozważa się zagadnienia związane z liczbami pierwszymi,
Bardziej szczegółowoZadania do samodzielnego rozwiązania
Zadania do samodzielnego rozwiązania I. Podzielność liczb całkowitych 1. Pewna liczba sześciocyfrowa a kończy się cyfrą 5. Jeśli tę cyfrę przestawimy na miejsce pierwsze ze strony lewej, to otrzymamy nową
Bardziej szczegółowoPytania sprawdzające wiedzę z programowania C++
Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?
Bardziej szczegółowoProgramowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw
Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej
Bardziej szczegółowoProgramowanie 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.
Bardziej szczegółowoJarosław Wróblewski Matematyka Elementarna, lato 2012/13. W dniu 21 lutego 2013 r. omawiamy test kwalifikacyjny.
W dniu 21 lutego 2013 r. omawiamy test kwalifikacyjny. Uwaga: Przyjmujemy, że 0 nie jest liczbą naturalną, tzn. liczby naturalne są to liczby całkowite dodatnie. 1. Dane są liczby naturalne m, n. Wówczas
Bardziej szczegółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Bardziej szczegółowoWHILE (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
Bardziej szczegółowoI - Microsoft Visual Studio C++
I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i
Bardziej szczegółowoWYRAŻENIA ALGEBRAICZNE
WYRAŻENIA ALGEBRAICZNE Wyrażeniem algebraicznym nazywamy wyrażenie zbudowane z liczb, liter, nawiasów oraz znaków działań, na przykład: Symbole literowe występujące w wyrażeniu algebraicznym nazywamy zmiennymi.
Bardziej szczegółowoProgramowanie - 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
Bardziej szczegółowoPodstawy 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)
Bardziej szczegółowoPROGRAMOWANIE 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
Bardziej szczegółowoZADANIE 1. Ważenie (14 pkt)
ZADANIE 1. Ważenie (14 pkt) Danych jest n przedmiotów o niewielkich gabarytach i różnych wagach. Jest też do dyspozycji waga z dwiema szalkami, ale nie ma odważników. Kładąc na wadze przedmioty a i b,
Bardziej szczegółowoFunkcje. 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
Bardziej szczegółowovoid Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);
Program 19 Zadeklarować strukturę Student o polach: Imie, Nazwisko (ciągi znaków), Oceny (pięcioelementowa tablica wartości rzeczywistych reprezentujących oceny studenta) i Semestr_zaliczony (wartość logiczna
Bardziej szczegółowofor (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
Bardziej szczegółowoWstęp do programowania
wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.
Bardziej szczegółowoJarosław Wróblewski Matematyka Elementarna, zima 2012/13
Poniedziałek 12 listopada 2012 - zaczynamy od omówienia zadań z kolokwium nr 1. Wtorek 13 listopada 2012 - odbywają się zajęcia czwartkowe. 79. Uprościć wyrażenia a) 4 2+log 27 b) log 3 2 log 59 c) log
Bardziej szczegółowo1 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,
Bardziej szczegółowo1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:
Program 20 Napisać następujące funkcje: funkcję pobierającą (z klawiatury) zawartość tablicy liczb całkowitych podanej jako parametr, o długości podanej jako parametr; funkcję wypisującą zawartość tablicy
Bardziej szczegółowoWstę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.
Bardziej szczegółowoALGORYTMY 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
Bardziej szczegółowoIteracje. 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
Bardziej szczegółowoWieczorowe 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
Bardziej szczegółowoMatematyka dyskretna. Andrzej Łachwa, UJ, a/15
Matematyka dyskretna Andrzej Łachwa, UJ, 2017 andrzej.lachwa@uj.edu.pl 3a/15 Indukcja matematyczna Zasada Minimum Dowolny niepusty podzbiór S zbioru liczb naturalnych ma w sobie liczbę najmniejszą. Zasada
Bardziej szczegółowoC++ w przykładach. Mariusz Różycki Cezary Obczyński
C++ w przykładach Mariusz Różycki Cezary Obczyński Wersja aktualna na dzień 29 listopada 2015 Spis treści 1 Wypisywanie danych 4 2 Zmienne i stałe 10 3 Instrukcje warunkowe 16 4 Funkcje 24 5 Rekurencja
Bardziej szczegółowoznajdował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
Bardziej szczegółowoPodstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne
1 Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,
Bardziej szczegółowo12. Rekurencja. UWAGA Trzeba bardzo dokładnie ustalić <warunek>, żeby mieć pewność, że ciąg wywołań się zakończy.
12. Rekurencja. Funkcja rekurencyjna funkcja, która wywołuje samą siebie. Naturalne postępowanie: np. zbierając rozsypane pionki do gry podnosi się zwykle pierwszy, a potem zbiera się resztę w ten sam
Bardziej szczegółowoMoneta 1 Moneta 2 Kostka O, R O,R 1,2,3,4,5, Moneta 1 Moneta 2 Kostka O O ( )
Nowa matura kombinatoryka i rachunek prawdopodobieństwa Zadania zamknięte (0 1 pkt) 1. Doświadczenie losowe polega na rzucie dwiema symetrycznymi monetami i sześcienną kostką do gry. Prawdopodobieństwo
Bardziej szczegółowoSchematy 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:
Bardziej szczegółowoLiczby 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ć
Bardziej szczegółowoPDF stworzony przez wersję demonstracyjną pdffactory Pro Program 15
Program 15 Program zawierający następujące funkcje: funkcję wczytującą elementy do tablicy liczb całkowitych podanej jako parametr (długość tablicy również ma być podana jako parametr); funkcję wypisującą
Bardziej szczegółowo2.8. Algorytmy, schematy, programy
https://app.wsipnet.pl/podreczniki/strona/38766 2.8. Algorytmy, schematy, programy DOWIESZ SIĘ co oznaczają pojęcia: algorytm, schemat blokowy, język programowania, jakie są sposoby obliczania największego
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowoPodstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.
Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using
Bardziej szczegółowoZadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.
Zadania język C++ Zad. 1 Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy. (Być moŝe są w tym samym wieku. Zrób w programie warunek,
Bardziej szczegółowoWstęp do Informatyki
Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 11 1 / 52 Pętla for # i n c l u d e
Bardziej szczegółowoAlgorytm Euklidesa. Największy wspólny dzielnik dla danych dwóch liczb całkowitych to największa liczba naturalna dzieląca każdą z nich bez reszty.
Algorytm Euklidesa Algorytm ten, jak wskazuje jego nazwa, został zaprezentowany przez greckiego matematyka - Euklidesa, żyjącego w w latach około 300r. p.n.e., w jego podstawowym dziele pt. Elementy. Algorytm
Bardziej szczegółowoMechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
Bardziej szczegółowoPodzielność liczb przez liczby od 2 do 10 WSTĘP CO TO ZNACZY, ŻE LICZBA JEST PODZIELNA PRZEZ INNĄ LICZBĘ? ZASADY PODZIELNOŚCI
Podzielność liczb przez liczby od 2 do 10 WSTĘP W lekcji zajmiemy się podzielnością liczb. Na pewno wiesz, że cyfra 4 dzieli się przez 2, cyfra 6 dzieli się przez 3, liczba 12 dzieli się przez 4, ale co
Bardziej szczegółowoBukiety matematyczne dla gimnazjum
Bukiety matematyczne dla gimnazjum http://www.mat.uni.torun.pl/~kolka/ 1 X 2002 Bukiet I Dany jest prostokąt o bokach wymiernych a, b, którego obwód O i pole P są całkowite. 1. Sprawdź, że zachodzi równość
Bardziej szczegółowoWstę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ć
Bardziej szczegółowoC++ wprowadzanie zmiennych
C++ wprowadzanie zmiennych Każda zmienna musi być zadeklarowana, należy określić jej nazwę (identyfikator) oraz typ. Opis_typu lista zmiennych Dla każdej zmiennej rezerwowany jest fragment pamięci o określonym
Bardziej szczegółowoRekurencja. Przykład. Rozważmy ciąg
Rekurencja Definicje rekurencyjne Definicja: Mówimy, iż ciąg jest zdefiniowany rekurencyjnie, jeżeli: (P) Określony jest pewien skończony zbiór wyrazów tego ciągu, zwykle jest to pierwszy wyraz tego ciągu
Bardziej szczegółowoAlgorytm Euklidesa. Dwie monety - jeden problem. Trochę matematyki 180=36*5 180=60*3
Algorytm Euklidesa Dwie monety - jeden problem Czym jest Algorytm Euklidesa i jak taki algorytm można zapisać? Do czego służy? Jeżeli chcesz poznać odpowiedź na te pytania, zapraszamy do lektury! Ten algorytm
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowo2.1. Duszek w labiryncie
https://app.wsipnet.pl/podreczniki/strona/38741 2.1. Duszek w labiryncie DOWIESZ SIĘ, JAK sterować duszkiem, stosować pętlę zawsze, wykorzystywać blok warunkowy jeżeli. Sterowanie żółwiem, duszkiem lub
Bardziej szczegółowoLISTA 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
Bardziej szczegółowoWstę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++.
Bardziej szczegółowoWYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński
WYKŁAD 8 Funkcje i algorytmy rekurencyjne Proste przykłady Programy: c3_1.c..., c3_6.c Tomasz Zieliński METODY REKURENCYJNE (1) - program c3_1 ======================================================================================================
Bardziej szczegółowoListy powiązane zorientowane obiektowo
Listy powiązane zorientowane obiektowo Aby zilustrować potęgę polimorfizmu, przeanalizujmy zorientowaną obiektowo listę powiązaną. Jak zapewne wiesz, lista powiązana jest strukturą danych, zaprojektowaną
Bardziej szczegółowoWykorzystanie rozkładu liczby na czynniki pierwsze
Kto lekceważy osiągnięcia matematyki, przynosi szkodę całej nauce. Roger Bacon Wykorzystanie rozkładu liczby na czynniki pierwsze Uczestnik Konkursu: Opiekun uczestnika: Piotr Pena Szkoła Podstawowa Nr
Bardziej szczegółowoOpis 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
Bardziej szczegółowo