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

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

Metody Metody, parametry, zwracanie wartości

Wstęp do programowania

Programowanie - wykład 4

Programowanie komputerowe. Zajęcia 3

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

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

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

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

Pętla for. Wynik działania programu:

Programowanie Obiektowe i C++

Kontrola przebiegu programu

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

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

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

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

1 Podstawy c++ w pigułce.

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Wstęp do programowania

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

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Rekurencja. Przygotowała: Agnieszka Reiter

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

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

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

Podstawy programowania obiektowego

Technologie cyfrowe semestr letni 2018/2019

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

Języki programowania - podstawy

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Wstęp do programowania

Język C część 2. Podejmowanie decyzji w programie. if else. switch

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

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

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

12. Rekurencja. UWAGA Trzeba bardzo dokładnie ustalić <warunek>, żeby mieć pewność, że ciąg wywołań się zakończy.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

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

Wstęp do programowania

Projektowanie algorytmów rekurencyjnych

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

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

Część 4 życie programu

Programowanie komputerowe. Zajęcia 1

ALGORYTMY I STRUKTURY DANYCH

1 Podstawy c++ w pigułce.

Programowanie komputerowe. Zajęcia 2

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

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

Wstęp do informatyki- wykład 6

Liczby całkowite i rzeczywiste

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

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

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

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

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Struktura pliku projektu Console Application

Microsoft IT Academy kurs programowania

Wstęp do informatyki- wykład 9 Funkcje

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

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

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wstęp do programowania

Wykład 5: Więcej o Klasach i Metodach

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

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

I - Microsoft Visual Studio C++

wykł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

Instrukcje sterujące. Programowanie Proceduralne 1

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:

Język C zajęcia nr 5

Podstawy Programowania C++

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Wstęp do informatyki- wykład 11 Funkcje

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

Wstęp do Informatyki

Materiały pomocnicze do wykładu 3 - Elementy języka Java

Wstęp do informatyki- wykład 7

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

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

6. Pętle while. Przykłady

Podstawy programowania w języku C

Podstawy algorytmiki i programowania - wykład 3 Funkcje rekurencyjne Wyszukiwanie liniowe i binarne w tablicy

Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy dopóki nam sie nie znudzi.

Wykład 4: Klasy i Metody

Ćwiczenie nr 3. Temat: Definicje i wykorzystanie funkcji, parametry funkcji

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

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

Szablon klasy std::vector

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

Program 14. #include <iostream> #include <ctime> using namespace std;

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Wprowadzenie do języka Java

Pytania sprawdzające wiedzę z programowania C++

Instrukcje sterujące

PDF stworzony przez wersję demonstracyjną pdffactory Pro Program 15

Transkrypt:

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 się także operacje wykonywane wewnątrz takiej pętli

Przykład iteracji Czynnośd iteracji przedstawia pętla, zapisana w poniższym pseudokodzie: java: i=0 int i=0; dopóki i< 10 while(i<10) { inkrementuj i i++; przeskocz do góry W pierwszej iteracji otrzymamy wartośd i=1, w następnej i=2, potem i=3 i tak dalej, a iteracją jest powtarzana tu czynnośd, czyli zwiększanie zmiennej i o jeden.

Rekurencja Rekurencja (rekursja) jest podstawową techniką wykorzystywaną w językach programowania, dzięki której np. definicja lub funkcja może odwoład się do samej siebie. Programy rekurencyjne są często mniejsze i łatwiejsze do zrozumienia od ich iteracyjnych odpowiedników Nie wszystkie języki programowania mają możliwośd używania rekurencji. Przykładem jest np. COBOL

Silnia public int silnia(int x) { if(x==0) { return 1; return x*silnia(x-1); Przykład użycia silnia(3) Silnia(3) 3*Silnia(2) 2*silnia(1) 1*silnia(0) 1 1*1 2*1 3*2

Ciąg Fibonacciego F 0 = 1 ; F 1 = 1 ; F n = F n-1 + F n-2 public int fib(int x) { if(x<2) { return 1; return fib(x-1)+fib(x-2);

Ciąg Fibonacciego - iteracja package przyklad_1_fib; public class Przyklad_1_fib { public static void main(string[] args) { int liczba = 80; System.out.println( "Wynik dla liczby " + liczba + ": " + fib_i(liczba) ); public static long fib_i(int n) { long a = 0, b = 1; for(int i=0;i<n;i++) { b += a; //pod zmienną b przypisujemy wyraz następny czyli a+b a = b-a; //pod zmienną a przypisujemy wartośd zmiennej b return b;

Ciąg Fibonacciego - rekurencja package przyklad_1_fib; public class Przyklad_1_fib { public static void main(string[] args) { int liczba = 80; for(int i = 0; i <= 80 ; i++) { System.out.println( "Wynik dla liczby " + i + ": " + fib_r(i) ); public static long fib_r(int n) { if(n < 2) return 1; return fib_r(n-1) + fib_r(n-2);

Problemy rekurencji Najwięcej problemów związanych z rekurencją wiąże się z ograniczeniami stosu wywołao, a właściwie jego pojemności. Na stosie są odkładane kolejne wywołania danej metody i dopiero gdy dojdziemy do ostatniego elementu dane te są zbierane bardzo łatwo więc o sytuację, gdy po prostu stos przepełnimy.

Instrukcja warunkowa switch - case Instrukcja warunkowa wielokrotnego wyboru na podstawie tylko jednej zmiennej. Switch( zmienna ) { case 0: zmienna++; break; default: zmienna+=2; break;

Instrukcja warunkowa if if [else if] [else] Pozwala zmienid przebieg wykonywania kodu w zależności od wartości logicznej wyrażenia: if (warunek) { //instrukcje else if (warunek) { //instrukcje else { //instrukcje

Operator trójargumentowy Konstrukcja: wyrażenie? Prawda : fałsz ; Przykład: Person p = new Person(); int tmp = p.isemployed()? p.getsalary() : 0;

Pętla for Konstrukcja: for(i; warunek koncowy; operacje na i) Gdzie i to licznik petli, a operacje na i to zazwyczaj zwiększanie/zmniejszanie o 1. Dzięki swojej konstrukcji pozwala np na łatwe przechodzenie po tablicach/listach Pozwala na łatwe przejście po zakresie liczb np.: 10 50 lub 50 10 Warunek jest sprawdzany na początku pętli Pętla wykonuje się dopóki zachodzi dany warunek

For - przykład int suma = 0; for(int i=0;i<10;i++) { suma += i;

For - przykład package przyklad_1_fib; public class Przyklad_1_fib { public static void main(string[] args) { int suma = 0; for(int i=0; i<20 && i%5==0 ;i+=2) { if( i % 5 == 0) suma += i; System.out.println(suma);

Pętla foreach Odmiana pętli for, wykonująca się dla każdego elementu z pewnego zbioru/kolekji. Konstrukcja: for(element : zbior) W każdej iteracji element będzie kolejnym elementem zbioru.

Foreach przykład List<Person> persons = new ArrayList<Person>(); //wypełnianie tablicy persons Foreach(Person p : persons) { //instrukcje na p

Pętla while Konstrukcja: while(wyrazenie) { //instrukcje Wykonuje się dopóki dane wyrażenie zwraca true Warunek jest sprawdzany na początku pętli

Pętla while - przykład Int k = 100; while(k <= 1000000000) { //instrukcje k *= 10;

Pętla do-while Konstrukcja: do { //instrukcje while(wyrazenie); Wyrażenie sprawdzane jest po każdej iteracji Zatem pętla wykona się przynajmniej raz

Podprogram Podprogram (inaczej funkcja lub procedura) termin związany z programowaniem proceduralnym. Podprogram to wydzielona częśd programu wykonująca jakieś operacje. Podprogramy stosuje się, aby uprościd program główny i zwiększyd czytelnośd kodu

Sposoby przekazywania parametrów Przekazywanie przez wartośd. Przekazywanie przez wynik. Przekazywanie przez referencję. Przekazywanie przez nazwę.

Przykład przekazywania przez wartośd #include <iostream> using namespace std; void zmien_x(int x) { x *=2; cout << "X z procedury " << x << endl; int main() { int x = 4; zmien_x(x); cout << "X z main " << x << endl; return 0;

Przykład przekazywania przez #include <iostream> using namespace std; referencję void zmien_x_2(int & x) { x *= 2; cout << "X z procedury " << x << endl; int main() { int x = 4; zmien_x_2(x); cout << "X z main " << x << endl; return 0;