Rekurencja. Przygotowała: Agnieszka Reiter
|
|
- Aniela Stankiewicz
- 8 lat temu
- Przeglądów:
Transkrypt
1 Rekurencja Przygotowała: Agnieszka Reiter
2 Definicja Charakterystyczną cechą funkcji (procedury) rekurencyjnej jest to, że wywołuje ona samą siebie. Drugą cechą rekursji jest jej dziedzina, którą mogą być tylko liczby naturalne. Rekurencja jest sposobem programowania, w którym stosuje się procedury wywołujące same siebie. Ilość tych wywołań nie ma znaczenia, fakt wywołania jest podstawą do określenia algorytmu jako rekurencyjnego.
3 Po co nam jest rekurencja? Przede wszystkim dzięki niej łatwo jest wykonać wiele zadań, w których potrzeba jest wyników cząstkowych do obliczenia całości. Sztandarowym przykładem w zagadnieniu rekurencji jest liczenie silni (n!), lub nieco bardziej zaawansowany przykład liczenia n-tej wartości w ciągu Fibonacciego. Dla przypomnienia, ciąg Fibonacciego jest ciągiem, w którym każda następna wartość jest równa sumie dwóch poprzednich.
4 Algorytm silnia
5 ALGORYTM SILNI W J. PASCAL Function silnia(n:byte):word; Begin If n<1 then silnia:=1 else silnia:=silnia(n-1)*n; End;
6 Algorytm silni Często przytaczanym przykładem jest definicja funkcji obliczającej wartość silni long int SILNIA(int n) { if(n<1) return 1; } else return n * SILNIA(n-1);
7 Analiza Odwołanie się do funkcji wewnątrz tej samej funkcji następuje z parametrem o 1 mniejszym, niż oryginalnie podano. Dlatego kolejna wersja funkcji będzie liczyła wartość silni już tylko dla np. 5, podczas gdy początkowe wywołanie było dla 6. Kolejne poziomy wywołań funkcji SILNIA będą liczyły silnię dla coraz mniejszych wartości, aż do 0, a wtedy zwrócone zostanie 1. Potem, zwracane są kolejne wartości podczas wychodzenia z kolejnych poziomów wywołań, i wtedy właśnie będzie obliczana rzeczywista wartość (będą mnożone przez siebie kolejne liczby).
8 Przykład - silnia(6)
9 Uwaga Cechą charakterystyczną jest to, że funkcja wchodzi w kolejny poziom, aby obliczyć iloczyn podanego jej parametru oraz wartość (parametr-1). Dopiero w momencie powrotu z wywołań obliczane są rzeczywiste iloczyny, i wtedy też przeliczana jest wartość silni.
10 Ciąg fibonacciego Liczby naturalne tworzące ciąg o takiej własności, że kolejny wyraz (z wyjątkiem dwóch pierwszych) jest sumą dwóch poprzednich nazywa się liczbami Fibonacciego i pojawiają się w tak wielu sytuacjach, że wydaje się to niemożliwe. Podstawowy ciąg liczb Fibonacciego to: 1, 1, 2, 3, 5, 8,... Każda liczba w ciągu jest sumą dwóch poprzednich (poza pierwszą i drugą). Mamy więc do czynienia z ciągiem rekurencyjnym.
11 Występowanie Ciąg Fibonacciego można odnaleźć w wielu aspektach przyrody, ciąg taki opisuje np. liczbę pędów rośliny jednostajnie przyrastającej w latach. W słoneczniku możemy zaobserwować dwa układy linii spiralnych, wychodzących ze środka. Takie same spirale można zaobserwować na wielu innych roślinach ( np. kalafior, ananas). Liczby spiral występujących w tych roślinach są kolejnymi liczbami Fibonacciego.
12 Ciąg fibonacciego w j. Pascal Function fibonacci(n:byte):word; Begin If ((n=1) or (n=2)) then fibonacci:=1 Else fibonacci := fibonacci(n-1)+fibonacci(n-2); End;
13 Ciąg Fibonacciego C++ #include <iostream> using namespace std; int Fibonacci(int n) { if (n==1 n==2) return 1; else return Fibonacci(n-1) + Fibonacci(n-2); } int main() { int n; cout << "Podaj n= "; cin >> n; cout << n << " wyraz ciagu Fibonacciego to: " << Fibonacci(n) <<endl; system("pause>null"); return 0; }
14 Wieże HANOI Wieże Hanoi problem polegający na odbudowaniu, z zachowaniem kształtu, wieży z krążków o różnych średnicach (popularna dziecięca zabawka), przy czym podczas przekładania wolno się posługiwać buforem (reprezentowanym w tym przypadku przez dodatkowy słupek), jednak przy ogólnym założeniu, że nie wolno kłaść krążka o większej średnicy na mniejszy ani przekładać kilku krążków jednocześnie. Jest to przykład zadania, którego złożoność obliczeniowa wzrasta niezwykle szybko w miarę zwiększania parametru wejściowego, tj. liczby elementów wieży.
15 Dla 2 krążków: Rozwiązania Dla 3 krążków: rozwiązanie dla 3 krążków składa się z 7 ruchów: kolejne etapy to: przenieś krążek o najmniejszej średnicy na palik docelowy, krążek o średnicy większej przenieś na palik pomocniczy, krążek najmniejszy przenieś na palik pomocniczy, następnie krążek największy przenieś na palik docelowy a najmniejszy na źródłowy, na największym połóżśredni i potem najmniejszy, koniec
16 Wieża Hanoi Ułóż stos na trzecim patyku przestrzegając następujących reguł: - przesuwaj jeden krążek z wierzchu stosu, - nie kładź większego krążka na mniejszym. bufora Od lewej: słupek A z całą wieżą, pusty słupek B pełniący rolę i pusty słupek docelowy C
17 Wieża Hanoi Wynik końcowy Ruchy pośrednie
18 Algorytm Rozwiązanie rekurencyjne: 1. Zidentyfikuj największy krążek na nie swoim miejscu (=krążek N) 2. If daje się go przenieść na docelowy słupek Then przenieś Else 3. Podzadanie: ustaw (N 1)-krążkową wieżę na nie-docelowym słupku. 4. Skocz do punktu 1....
19 Rozwiązanie rekurencyjne Algorytm rekurencyjny składa się z następujących kroków: przenieś (rekurencyjnie) n-1 krążków ze słupka A na słupek B posługując się słupkiem C, przenieś jeden krążek ze słupka A na słupek C, przenieś (rekurencyjnie) n-1 krążków ze słupka B na słupek C posługując się słupkiem A
20 Implementacja w C++ #include <iostream> using namespace std; void hanoi(int n, char A, char B, char C) { // przekłada n krążków z A korzystając z B na C if (n > 0) { hanoi(n-1, A, C, B); cout << A << " -> " << C << endl; hanoi(n-1, B, A, C); } } int main(int argc, char *argv[]) { hanoi(3, 'A', 'B', 'C'); return 0; }
12. 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ół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ółowoWykład 8. Rekurencja. Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. L. Peter Deutsch
Wykład 8 Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. Smok podsuszony zmok (patrz: Zmok). Zmok zmoczony smok (patrz: Smok). L. Peter Deutsch Stanisław Lem Wizja lokalna J. Cichoń, P. Kobylański
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ół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ół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ółowo5. 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ń.
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ółowoRaport z projektu. Przedmiot: Algorytmy i struktury danych 1 Projekt: Wieża Hanoi Autor: Wojciech Topolski
Raport z projektu Przedmiot: Algorytmy i struktury danych 1 Projekt: Wieża Hanoi Autor: Wojciech Topolski Problem wieży Hanoi W wielkiej świątyni Benares w Hanoi, pod kopułą, która zaznacza środek świata,
Bardziej szczegółowofunkcje rekurencyjne Wykład 12. Podstawy programowania (język C) Funkcje rekurencyjne (1) Funkcje rekurencyjne (2)
Podstawy programowania (język C) funkcje rekurencyjne Wykład 12. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Funkcje rekurencyjne (1) W języku C funkcja moŝe wywoływać samą siebie.
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ół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ółowoWstęp do programowania
Wstęp do programowania Rekurencja, metoda dziel i zwyciężaj Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. VIII Jesień 2014 1 / 27 Rekurencja Recursion See Recursion. P. Daniluk(Wydział
Bardziej szczegółowoAlgorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Rekurencja dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 2 1
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoProgramowanie obiektowe i C++ dla matematyków
Programowanie obiektowe i C++ dla matematyków Bartosz Szreder szreder (at) mimuw... 04 X 2011 Wszelkie uwagi, poprawki, braki czy sugestie najlepiej wysyłać na maila. 1. wprowadzenie do Linuksa: kompilacja
Bardziej szczegółowoPodstawy Informatyki
Podstawy Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 14 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 14 1 / 1 Rekurencja Rekurencja albo rekursja
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ół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ółowoWykład 3. Metoda dziel i zwyciężaj
Wykład 3 Metoda dziel i zwyciężaj 1 Wprowadzenie Technika konstrukcji algorytmów dziel i zwyciężaj. przykładowe problemy: Wypełnianie planszy Poszukiwanie (binarne) Sortowanie (sortowanie przez łączenie
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ół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ół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ół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ół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ół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ół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ół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ół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ółowoPodstawy 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
Bardziej szczegółowoPodstawy algorytmiki i programowania - wykład 3 Funkcje rekurencyjne Wyszukiwanie liniowe i binarne w tablicy
1 Podstawy algorytmiki i programowania - wykład 3 Funkcje rekurencyjne Wyszukiwanie liniowe i binarne w tablicy Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.
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ółowoRekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!
Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Pseudokod: silnia(n): jeżeli n == 0 silnia = 1 w przeciwnym
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ółowotyp_zwracanej_wartości nazwa_funkcji(lista deklaracji argumentów) { ciało(treść) funkcji return Val; //zwracana wartość }
Języki i paradygmaty programowania studia stacjonarne 208/9 Lab 3. Funkcje, argumenty funkcji, wskaźniki, adresy.. Podstawowe pojęcia: Funkcja w C (czasami nazywana podprogramem, rzadziej procedurą) to
Bardziej szczegółowowykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy
i obiekty Programowanie i obiekty uzupełnienie notatek: dr Jerzy Białkowski i obiekty 1 2 3 4 i obiekty Obiektowość języka C++ Na tym wykładzie poznamy: ˆ Klasa (w języku C++ rozszerzenie struktury, typ
Bardziej szczegółowoWyszukiwanie największej spośród czterech liczb. Przykładowe rozwiązanie
Wyszukiwanie największej spośród czterech liczb Użytkownik podaje cztery liczby rzeczywiste. Podaj algorytm znajdowania największej spośród nich. (Np.: po wprowadzeniu liczb: 12 7 18.5 9 program powinien
Bardziej szczegółowoFUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;
Rekurencja Wykład: rekursja, funkcje rekurencyjne, wywołanie samej siebie, wyznaczanie poszczególnych liczb Fibonacciego, potęgowanie, algorytm Euklidesa REKURENCJA Rekurencja (z łac. recurrere), zwana
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ółowoWstęp do programowania
wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych
Bardziej szczegółowoPodstawy algorytmiki i programowania - wykład 6 Sortowanie- algorytmy
1 Podstawy algorytmiki i programowania - wykład 6 Sortowanie- algorytmy Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com
Bardziej szczegółowo1. Rekurencje. Grzegorz Kosiorowski. Uniwersytet Ekonomiczny w Krakowie. zima 2016/2017
1. Rekurencje Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie)1. Rekurencje zima 2016/2017 1 / 41 1 Definicje rekurencyjne
Bardziej szczegółowoMACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata
MACIERZE Sobiesiak Łukasz Wilczyńska Małgorzata Podstawowe pojęcia dotyczące macierzy Nie bez przyczyny zaczynamy od pojęcia macierzy, które jest niezwykle przydatne we wszystkich zastosowaniach, obliczeniach
Bardziej szczegółowo5 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 5 1/6 Język C Instrukcja laboratoryjna Temat: Funkcje, parametry linii poleceń, typ wyliczeniowy. 5 Przygotował: mgr inż. Maciej Lasota 1) Parametry linii poleceń. Język C oprócz wprowadzania
Bardziej szczegółowoRekurencja/rekursja. Iluzja istnienia wielu kopii tego samego algorytmu (aktywacji) Tylko jedna aktywacja jest aktywna w danej chwili
rekurencja 1 Rekurencja/rekursja Alternatywny dla pętli sposób powtarzania pewnych czynności; kolejny etap podzadanie poprzedniego Rekursja może być zamieniona na iteracje Cechy rekurencji Rozłożenie problemu
Bardziej szczegółowoAlgorytmy i struktury danych
Algorytmy i struktury danych Funkcje i procedury Zasięg zmiennych Rekurencja Witold Marańda maranda@dmcs.p.lodz.pl 1 Modularyzacja programu Algorytmy strukturalne moŝna redukować, zastępując złoŝone fragmenty
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ółowoWyjątki (exceptions)
Instrukcja laboratoryjna nr 6 Programowanie w języku C 2 (C++ poziom zaawansowany) Wyjątki (exceptions) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp Wyjątki (ang.
Bardziej szczegółowowykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis
i cz. 2 Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 i cz. 2 2 i cz. 2 3 Funkcje i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje instrukcje } i cz. 2 typ nazwa ( lista-parametrów ) { deklaracje
Bardziej szczegółowoProgramowanie Obiektowe i C++
Programowanie Obiektowe i C++ Marcin Benke Instytut Informatyki UW 2.10.2006 Marcin Benke (IIUW) Programowanie Obiektowe i C++ 2.10.2006 1 / 38 Podstawowe elementy proceduralne w C++ Program i wyjście
Bardziej szczegółowoWstęp do informatyki- wykład 11 Funkcje
1 Wstęp do informatyki- wykład 11 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum
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ół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ółowoStruktura 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
Bardziej szczegółowoWykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest
Bardziej szczegółowoAlgorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA WYDZIAŁ INŻYNIERII ELEKTRYCZNEJ i KOMPUTEROWEJ Katedra Automatyki i Technik Informacyjnych Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew
Bardziej szczegółowoWstęp do informatyki- wykład 9 Funkcje
1 Wstęp do informatyki- wykład 9 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum
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ółowo// Potrzebne do memset oraz memcpy, czyli kopiowania bloków
ZAWARTOŚCI 3 PLIKOW W WORDZIE: MAIN.CPP: #include #include #include pamięci // Potrzebne do memset oraz memcpy, czyli kopiowania bloków #include "Rysowanie_BMP.h" using
Bardziej szczegółowoCiągi liczbowe. - oznacza, że a(1) = a 1, a(2) = a 2, a(n) = a n a 1, a 2, a 3, a 4,... a n a(n) a n
Ciągi liczbowe Spis treści Ciąg liczbowy Ciąg liczbowy skończony Ciąg liczbowy nieskończony Przykłady i sposoby określania ciągu, suma n początkowych wyrazów ciągu Suma n początkowych, kolejnych wyrazów
Bardziej szczegółowoFunkcje i tablice. Elwira Wachowicz. 23 maja 2013
Funkcje i tablice Elwira Wachowicz elwira@ifd.uni.wroc.pl 23 maja 2013 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Funkcje i tablice 23 maja 2013 1 / 22 Największy wspólny dzielnik: algorytm Euklidesa Problem:
Bardziej szczegółowoProf. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com
Programowanie wykład dla I roku bioinformatyki semestr letni 2013 Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel. 58 523 2466 e-mail: danuta.makowiec at gmail.com Cel bloku
Bardziej szczegółowoAlgorytmy. wer Wojciech Myszka 30 listopada 2008
Algorytmy Część IV wer. 1.2 Wojciech Myszka 30 listopada 2008 Spis treści I Spis treści Jak się tworzy algorytmy? Poszukiwania i wędrówki Dziel i zwyciężaj Rekurencja Definicje Przykład Schemat blokowy
Bardziej szczegółowoZłożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
Bardziej szczegółowoAnaliza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą
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ółowoAlgorytmy, reprezentacja algorytmów.
Algorytmy, reprezentacja algorytmów. Wprowadzenie do algorytmów Najważniejszym pojęciem algorytmiki jest algorytm (ang. algorithm). Nazwa pochodzi od nazwiska perskiego astronoma, astrologa, matematyka
Bardziej szczegółowoProgramowanie Proceduralne
Programowanie Proceduralne Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Programowanie Proceduralne Wykład 1 1 / 59 Cel wykładów z programowania
Bardziej szczegółowoMetody algortmiczne (Algorytmy Część IV)
Metody algortmiczne (Algorytmy Część IV) wer. 9 z drobnymi modyfikacjami! Wojciech Myszka 2018-10-02 17:27:45 +0200 Jak się tworzy algorytmy? Moja odpowiedź jest krótka: Jak się tworzy algorytmy? Moja
Bardziej szczegółowoWstę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
Bardziej szczegółowoAlgorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Rekurencja dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 3 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 3 1
Bardziej szczegółowoWskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:
Wskaźniki są nieodłącznym elementem języka C. W języku C++ także są przydatne i korzystanie z nich ułatwia pracę, jednak w odróżnieniu do C wiele rzeczy da się osiągnąć bez ich użycia. Poprawne operowanie
Bardziej szczegółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoTechniki Programowania wskaźniki 2
Techniki Programowania wskaźniki 2 Łukasz Madej Katedra Informatyki Stosowanej i Modelowania Wykłady opracowane we współpracy z Danutą Szeligą, Łukaszem Sztangretem Jeżeli wskaźnik pokazuje na element
Bardziej szczegółowoAlgorytm selekcji Hoare a. Łukasz Miemus
Algorytm selekcji Hoare a Łukasz Miemus 1 lutego 2006 Rozdział 1 O algorytmie 1.1 Problem Mamy tablicę A[N] różnych elementów i zmienną int K, takie że 1 K N. Oczekiwane rozwiązanie to określenie K-tego
Bardziej szczegółowoWskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:
Wskaźniki nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny: typ nw; /* definicja zmiennej nw typu typ */ typ *w_nw; /* definicja
Bardziej szczegółowoW2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :
Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;
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ół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ół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ółowoSchematy blokowe. Algorytmy Marek Pudełko
Schematy blokowe Algorytmy Marek Pudełko Metody zapisu algorytmów Algorytmy można zapisywać w postaci słownej, listy kroków lub symbolicznej - używając metajęzyków. Metajęzyk to język bardzo ogólny - opisujący
Bardziej szczegółowoProste programy w C++ zadania
Proste programy w C++ zadania Zbiór zadao do samodzielnego rozwiązania stanowiący powtórzenie materiału. Podstawy C++ Budowa programu w C++ Dyrektywy preprocesora Usunięcie dublujących się nazw Częśd główna
Bardziej szczegółowoKontrola przebiegu programu
Kontrola przebiegu programu Wykład 9 Instrukcje sterujące: pętle rozgałęzienia skoki PRZYPOMINAJKA Zadanie : Zaprojektuj rekurencyjny przepis na wyznaczenie największej takiej liczby m, że 2 m jest podzielnikiem
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ółowoIlość cyfr liczby naturalnej
Ilość cyfr liczby naturalnej Użytkownik wprowadza liczbę naturalną n. Podaj algorytm znajdowania ilości cyfr liczby n. (Np.: po wprowadzeniu liczby 2453, jako wynik powinna zostać podana liczba 4). Specyfikacja
Bardziej szczegółowoTEMAT : KLASY POLIMORFIZM
TEMAT : KLASY POLIMORFIZM 1. Wprowadzenie do polimorfizmu i funkcji wirtualnych w języku C++ Język C++ zakłada, że w pewnych przypadkach uzasadnione jest tworzenie klas, których reprezentanci w programie
Bardziej szczegółowoProjektowanie algorytmów rekurencyjnych
C9 Projektowanie algorytmów rekurencyjnych wiczenie 1. Przeanalizowa działanie poniszego algorytmu dla parametru wejciowego n = 4 (rysunek 9.1): n i i
Bardziej szczegółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoLaboratorium nr 1. i 2.
Laboratorium nr 1. i 2. Celem laboratorium jest zapoznanie się ze zintegrowanym środowiskiem programistycznym, na przykładzie podstawowych aplikacji z obsługą standardowego wejścia wyjścia, podstawowych
Bardziej szczegółowoTechnologie cyfrowe semestr letni 2018/2019
Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 7 (08.04.2019) Wikipedia Programowanie komputerów proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów
Bardziej szczegółowoPodstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 9 Rekurencja
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 9 Rekurencja Rekurencja z łacińskiego oznacza to przybiec z powrotem - osiągniesz rzecz wielką, jeśli zawrócisz po to, by osiągnąć rzeczy małe Przykład:
Bardziej szczegółowoAnaliza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe 15 stycznia 2019 Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r P Jaka wartość zostanie zwrócona
Bardziej szczegółowoISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
Bardziej szczegółowoPodstawy Programowania
Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl
Bardziej szczegółowoProgramowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Bardziej szczegółowoWprowadzenie do programowania i programowanie obiektowe
Wprowadzenie do programowania i programowanie obiektowe Wirtotechnologia Zajęcia nr 10 autor: Grzegorz Smyk Wydział Odlewnictwa Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza
Bardziej szczegółowoSCHEMAT OCENIANIA poziom rozszerzony arkusz I
SCHEMAT OCENIANIA poziom rozszerzony arkusz I Zadanie TEST Prawidłowa odpowiedź a 54 jeden klucz jest wykorzystywany do szyfrowania i deszyfrowania c 5 d (n 4)/ e licencja umożliwia twórcom programów zachowanie
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ółowoSkładnia C++ Programowanie Obiektowe Mateusz Cicheński
Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Konstruktory i destruktory
Bardziej szczegółowoCzęść 6. Funkcje, Rekurencja. Własne funkcje Ćwiczenia wykonane pisemnie (notatki w zeszycie)
1 Część 6 Funkcje, Rekurencja Własne funkcje Ćwiczenia wykonane pisemnie (notatki w zeszycie) Zapisz numer pytania ( przed pytaniem np. Pytanie 1) poniżej zapisz treść pytania. Treść pytania podkreśl na
Bardziej szczegółowo