ALGORYTMY ITERACYJNE

Wielkość: px
Rozpocząć pokaz od strony:

Download "ALGORYTMY ITERACYJNE"

Transkrypt

1 ALGORYTMY ITERACYJNE Jarosław Henke Tytuł niniejszego opracowania złożony jest z dwóch tajemniczo brzmiących słów, które niczym tantum verde w reklamie leków sprawiają, iż zagadnienie wydaje się być magicznym i skomplikowanym. Świat współczesnej techniki, szczególnie świat IT wytworzył specyficzny język, którego trudno by szukać w literaturze pięknej. Nowe słowa podobnie jak podstawowa wiedza z zakresu nowych technologii stanowią nowe elementy tego, co zwykłem nazywać pakietem inteligenta. W tym przypadku inteligenta technicznego. Spróbujmy zatem wejść do owego świata, no może nie całego lecz do fragmentu zawartego w tytule i zgłębić jego przestrzeń. Poznajmy nie tylko znaczenie tytułowych pojęć ale także to, co się pod nimi kryje. Tekst dedykuję Karolowi, z którym odbyliśmy spacer po wspomnianej przestrzeni kiedy zdobywał swoje pierwsze zawodowe szlify technika informatyka. Algorytm Pochodzenia słowa algorytm trudno doszukiwać się w powiązaniu ze słowami, które dziś z tym słowem kojarzymy. Wiele słów pochodzi od słowa algorytm: np. Algol język programowania, algorytmiczny czyli zgodny ze schematem działania itd. Słowo algorytm jest zatem wyrażeniem pierwotnym. Pochodzi tak naprawdę od fragmentu nazwiska Muhammad ibn Musa al-chorezmi arabskiego matematyka i astronoma z przełomu VIII i IX wieku. Uważa się go za pierwszego, który stosował metody obliczeniowe w matematyce. Od fragmentu tytułu jego dzieła pochodzi też słowo algebra. Ten właśnie mędrzec upowszechnił dziesiętny system liczenia i stosowanie zera. Pojęcie algorytm oznacza przepis, instrukcję krok po kroku prowadząca do rozwiązania problemu, lub osiągnięcia jakiegoś celu. Algorytm pozwala na systematyczne podejście do rozwiązywania typowych problemów nie tylko matematycznych. Ktoś, kto raz prawidłowo rozwiązał problem, ustanowił przepis na wykonanie określonego zadania, czy dojście do określonego celu jest w stanie zapisać to w standardowy sposób i przechowywać w celu późniejszego ponownego użycia przez siebie lub innych. Takie podejście rozwinęło dyscyplinę naukową zwaną algorytmiką. Pojęcia algorytmika jako dziedziny zajmującej się algorytmami i ich właściwościami po raz pierwszy użył Dawid Harel w swojej książce zatytułowanej Rzecz o istocie informatyki algorytmika. Jednym z najstarszych historycznie algorytmów liczącym ponad 2000 lat jest Algorytm Euklidesa znajdujący największy wspólny dzielnik dwóch liczb, który do dziś znajduje zastosowanie w rozwiązywaniu wielu problemów matematycznych. 1

2 Sposoby reprezentowania algorytmów Opis słowny Opis słowny jest stosowany zwykle w przypadku ustnie wydawanych poleceń. Na przykład kiedy uczymy kogoś wykonywać jakąś czynność. W zapisie najczęściej jest przepisem na potrawę. (weź 1 kg mąki, wsyp do makutry, wbij 4 jaja, dodaj pół kostki masła, 1 łyżeczkę proszku do pieczenia i utrzyj na jednolitą masę itd.) Lista kroków Wyobraźmy sobie funkcję sgn(x) (signum - znak), która działa tak: 1; dla x < 0 sign(x)= 0; dla x = 0 1; dla x > 0 Dziedziną tej funkcji jest zbiór liczb rzeczywistych, zaś wynik określony powyższym wzorem standardowy zapis listy kroków wygląda w sposób następujący 1 : Algorytm obliczania wartości funkcji f(x)=sign(x) Dane: dowolna liczba rzeczywista. Wynik: wartość funkcji f(x)=sign(x). Krok 0: Wczytaj wartość danej x. Krok 1: Jeśli x>0, to f(x) = 1. Zakończ algorytm. Krok 2: (W tym przypadku x 0) Jeśli x=0, to f(x)=1. Zakończ algorytm. Krok 3: (W tym przypadku x < 0)f(x)=-1. Zakończ algorytm. Schemat blokowy Schemat blokowy algorytmu, to specyficzny, graficzny język zapisu kroków. Składa się z następujących typów tzw. skrzynek (bloków, boxów, pudełek): Skrzynka ograniczenia (terminator). W jej wnętrzu wpisujemy słowa START (begin) lub STOP (end). Skrzynka wejścia/wyjścia. W jej wnętrzu wpisujemy polecenia typu: wprowadź x, Drukuj f(x) Skrzynka operacyjna. W jej wnętrzu wpisujemy formułę operacji do przeprowadzenia. Np. f(x):=1. Skrzynka decyzyjna. W jej wnętrzu wpisujemy warunek logiczny przyjmujący wartość TRUE lub FALSE (np. x>0). Ta skrzynka pozwala na rozgałęzienie algorytmu. Z jednego z narożników rombu wychodzi strzałka gdy warunek logiczny przyjmuje wartość True, z innego zaś gdy przyjmuje wartość False. Strzałka. Łączy poszczególne skrzynki algorytmu wytyczając ścieżkę działania. 1 Przykład pochodzi z książki Maciej M. Sysło Algorytmy, WSiP

3 Nasz algorytm przyjmie zatem następujący schemat logiczny: START We: x X > 0 tak f(x) := 1 X = 0 tak f(x) := 0 f(x) := -1 Wy: f(x) STOP Drzewo algorytmu Drzewo algorytmu, to schemat blokowy przyjmujący postać drzewa obliczeń. Drzewo rozpoczyna się od wspólnego korzenia, a następnie drogi obliczeń rozgałęziają się tak, by się więcej nie spotkać. W drzewie obliczeń z reguły pomija się operacje wejścia/wyjścia. 3

4 tak x>0 nie f(x) = 1 x=0 tak nie f(x) = 0 f(x)=-1 Pseudokod Częstym i chętnie stosowanym szczególnie przez teoretyków jest zapis algorytmu w tzw. pseudokodzie. Jest to coś pośredniego miedzy listą kroków, a tabulogramem w konkretnym języku programowania. Nie istnieje jakiś ściśle określony standard. Pisanie w pseudokodzie polega na formułowaniu reguł postepowania za pomocą składni zbliżonej do języka programowania bez szczegółów implementacyjnych i często bez zachowania właściwej składni. Najczęściej składnia przypomina Basic, Pascal czy C++ lub wręcz stosuje się określenia spoza języków programowania w rodzaju jeśli, to, w przeciwnym wypadku, wykonaj itd. Algorytm obliczania wartości funkcji f(x)=sign(x) Dane: dowolna liczba rzeczywista. Wynik: wartość funkcji f(x)=sign(x). 1. BEGIN 2. Input x. 3. If x>0 then f(x):=1 else begin 4. If x=0 then f(x):=0 else f(x):=-1 end 5. Output f(x) 6. END. Kod w konkretnym języku programowania Pełna implementacja algorytmu najczęściej w formie modułu lub funkcji bibliotecznej. Oto nasz przykład w języku Pascal, a po nim w C++: program Signum; Program wczytuje liczbe x i drukuje na ekranie wartość funkcji f=signum(x). var x: real; begin read(x); if x>0 then write(1) else if x=0 then write(0) else write(-1) end. Signum 4

5 #include <stdio.h> main() float x; printf( Podaj liczbę x: ); scanf( %f,&x); if(x>0) printf( sgn(x)=1 ); else if(x==0) printf( sgn(x)=0 ); else printf( sgn(x)=-1 ); Iteracja Słowo iteracja pochodzi z języka łacińskiego. Iteratio oznacza powtarzanie. Pojęcie iteracja w sensie informatycznym będzie miało zatem związek z powtarzaniem fragmentu programu w kółko, mówimy - w pętli iteracyjnej. Iteracją nazywamy tu pojedynczy cykl w zapętlonej części programu. Ilość iteracji można zadać poprzez ustawienie tzw. licznika iteracji lub kazać wykonywać program w kółko aż do osiągnięcia warunku wyjścia z pętli. Warunkiem może być zarówno wartość zmiennej obliczanej wewnątrz pętli jak i dowolny czynnik sprawdzany programowo. Np. wduszenie klawisza, zmiana ustawienia semafora itd. Sprawdzenie warunku może następować zarówno na początku iteracji jak i po jej wykonaniu. W zależności od potrzeb popularne języki programowania dostarczają kilku standardowych metod iteracyjnych różniących się jednak składnią i funkcjonalnością. Do omówienia ich posłużymy się składnią języka C++. Pętla iteracyjna for Pętla for składa się ze słowa kluczowego for, i przypisanych do niej trzech definicji. for(zmiennasterująca; waruneklogiczny; zmianazmiennejsterujacej) instrukcja; lub lista instrukcji ujęta w nawiasy klamrowe zmiennasterująca - zmienna typu całkowitoliczbowego zadeklarowana i zainicjowana globalnie bądź wewnątrz instrukcji for. W tym drugim przypadku nie ma do niej dostępu na zewnątrz pętli. waruneklogiczny wyrażenie logiczne będące funkcją zmiennej sterującej. W pierwszym kroku iteracji zostaje sprawdzony warunek logiczny. Jeśli ma wartość TRUE wykonują się instrukcje należące do pętli po czym następuje wykonanie zmiany zmiennej sterującej i powrót do sprawdzenia warunku. 5

6 zmianazmiennejsterujacej wyrażenie zmieniające wartość zmiennej sterującej. Najczęściej jest to zwykła inkrementacja typu ++X lub dekrementacja --X 2 przy czym w tym zastosowaniu nie ma znaczenia czy piszemy plusy lub minusy przed czy za zmienną. Choć ++X działa nieco szybciej niż x++. Oczywiście w tym miejscu może stać dowolne wyrażenie zmieniające zmienną np. x+=2. Ciekawostką i w sumie fajną cechą pętli for w C++ jest możliwość użycia kilku zmiennych sterujących i odpowiadających im wyrażeń zmieniających. Należy je wówczas oddzielać od siebie przecinkami. Oczywiście warunek logiczny musi być jeden ale może być funkcją wielu zmiennych. Pętla for może się nie wykonać ani razu jeśli wartości zmiennych sterujących inicjowane na zewnątrz nie spełnią warunku logicznego. Pętle można zagnieżdżać jedna w drugiej. Pętla iteracyjna do while Z tej pętli korzystamy kiedy nie jesteśmy w stanie określić liczby iteracji (powtórzeń). do instrukcja;... instrukcja; while(warunek logiczny); Jak widać nie ma tu zmiennej sterującej, więc o prawidłowo działający warunek logiczny programista musi zadbać sam. Iteracje będą się powtarzać jeśli warunek logiczny będzie spełniony przy czym pierwsza iteracja wykona się zawsze, bo warunek sprawdzany jest na końcu. Cechy tej nie posiada kolejna pętla iteracyjna opisana poniżej. Pętla iteracyjna while Działanie tej pętli przebiega podobnie jak w poprzednim przypadku. Brak wbudowanego jako parametr licznika iteracji, stwarza konieczność samodzielnego zaimplementowania prawidłowego warunku wyjścia z pętli. W tym przypadku warunek sprawdzany jest zanim zaczną być wykonywane instrukcje. Zatem podobnie jak to miało miejsce w przypadku for, pętla może się nie wykonać ani razu. while(warunek logiczny) instrukcja;.. 2 Inkrementacja i dekrementacja to odpowiednio zwiększenie lub zmniejszenie wartości zmiennej o 1. Przy czym ++X najpierw zwiększy a potem odczyta wartość zmiennej, zaś X++ najpierw odczyta, a potem zwiększy wartość zmiennej. Podobnie przy dekrementacji 6

7 . instrukcja; Instrukcje break i continue Jeśli chcemy zakończyć dowolną z pętli iteracyjnych z powodu wystąpienia jakiegoś innego warunku zdefiniowanego wewnątrz pętli np. przy pomocy instrukcji if, to z pomocą przychodzi nam słowo kluczowe break. Powoduje ono zakończenie działania pętli iteracyjnej i przejście do kolejnych kroków programu. nieco inaczej działa continue. powoduje pominięcie występujących po tym słowie instrukcji wewnątrz pętli i przejście do kolejnej iteracji. działanie tych instrukcji wyjaśnią zamieszczone poniżej przykłady. 3 #include <iostream> int main() for( int x = 0; x < 10; x++ ) if( x == 7 ) std::cout << "Teraz 'x' wynosi " << x << "." << std::endl; std::cout << "Przerywam petle!" << std::endl; break; std::cout << "x = " << x << std::endl; std::cout << "Teraz jestem tu :)" << std::endl; return 0; x = 0 x = 1 x = 2 x = 3 x = 4 x = 5 x = 6 Teraz 'x' wynosi 7. Przerywam petle! Teraz jestem tu :) 3 przykłady zaczerpnięte z 7

8 #include <iostream> int main() for( int x = 0; x < 8; x++ ) std::cout << "x = " << x << std::endl; if( x == 2 x == 3 x == 5 ) std::cout << "Teraz 'x' wynosi " << x; std::cout << " - wywoluje continue!" << std::endl; continue; std::cout << "KONIEC kroku x = " << x << std::endl; return 0; x = 0 KONIEC kroku x = 0 x = 1 KONIEC kroku x = 1 x = 2 Teraz 'x' wynosi 2 - wywoluje continue! x = 3 Teraz 'x' wynosi 3 - wywoluje continue! x = 4 KONIEC kroku x = 4 x = 5 Teraz 'x' wynosi 5 - wywoluje continue! x = 6 KONIEC kroku x = 6 x = 7 KONIEC kroku x = 7 8

9 Wybrane zagadnienia iteracyjne i ich przykładowe rozwiązania algorytmiczne Wybór wartości najmniejszej spośród n liczb Algorytm wyboru najmniejszej liczby spośród n liczb. Dane: int n - ilość wprowadzanych liczb, x i x n n-liczb rzeczywistych, zapamiętywanych kolejno w zmiennej x. Wynik: wartość elementu najmniejszego: min. Lista kroków: 1. Zacznij algorytm. 2. Wprowadź liczbę danych n->n. 3. Wprowadź pierwszą liczbę x 1->x. 4. Zmiennej min przypisz wartość liczby x: min := x. 5. Wprowadź kolejną liczbę x i->x 6. Porównaj x z min: x < min. 7. Jeśli x mniejsza od min, zastąp nią wartość zmiennej min: min:=x. 8. Jeśli nie jest to ostatnia liczba, wróć do kroku Wyprowadź wynik: min. 10. Zakończ algorytm Poniżej implementacje tego algorytmu w języku Pascal i C++ z zastosowaniem zdefiniowanej w programie funkcji MinN(liczbaElementów). 4 program Minimum; var LiczbaElementow, MinWartosc: integer; function MinN(n: integer): integer; var i, x, minx: integer; begin for i := 1 to n do begin Write('Podaj liczbę ', i, ': '); Readln(x); if i = 1 then minx := x else if x < minx then minx := x; end; MinN := minx; end; begin Write('Podaj liczbę elementów: '); Readln(LiczbaElementow); Writeln('Podaj elementy:'); 4 Przykłady pochodzą z książki: Grażyna Koba Informatyka dla szkół ponadgimnazjalnych - zakres rozszerzony, MiGra. 9

10 end. MinWartosc := MinN (LiczbaElementow); Writeln('Minimum to ', MinWartosc); #include <iostream> using namespace std; int LiczbaElementow, MinWartosc; int MinN(int n) int i, x, minx; for(i=0; i<n; i++) cout << "Podaj liczbe " << i+1 << ": "; cin >> x; if(i==0) minx = x; else return minx; int main() if(x<minx) minx = x; cout << "Podaj liczbe elementow: "; cin >> LiczbaElementow; cout << "Podaj elementy:" << endl; MinWartosc = MinN(LiczbaElementow); cout << "Minimum to " << MinWartosc << endl; return 0; Obliczanie n! (silnia) Silnia z liczby całkowitej n, to iloczyn n-czynników różniących się o 1, począwszy od 1 do n. Przy czym 0!=1 Poniżej implementacja algorytmu silnia w C++ #include<iostream> using namespace std; int main() int n, silnia = 1; cout << "Podaj liczbe: "; cin >> n; cout << n << "! = "; if (n == 0) cout << "1\n"; else while (n > 0) 10

11 return 0; silnia *= n; n--; cout << silnia << endl; Algorytm Euklidesa Służy do znajdowania największego wspólnego dzielnika dwóch liczb naturalnych NWD(a,b). Oto algorytm w wersji z odejmowaniem: Algorytm Euklidesa NWD(a,b) - wersja z odejmowaniem. Dane: dwie liczby naturalne: a, b. Wynik: wartość największego wspólnego dzielnika liczb a i b: NWD. Lista kroków: 1. Zacznij algorytm. 2. Wprowadź wartości liczb a i b. 3. Sprawdź, czy a jest różne od b. 4. Dopóki a nie jest równe b, powtarzaj punkt 5; w przeciwnym razie przejdź do punktu Od liczby większej odejmij mniejszą i liczbę większą zastąp otrzymaną różnicą. 6. Wyprowadź wynik: NWD jest równe pierwszej liczbie. 7. Zakończ algorytm. 11

12 W poprzedniej wersji odejmowanie posłużyło tak naprawdę znalezieniu reszty z dzielenia dwóch liczb. Zamiast odejmowania możemy zatem od razu zastosować dzielenie z resztą. Pisząc program w języku Pascal, należy wykorzystać operator mod w celu obliczania reszty z dzielenia, np. reszta := a mod b. W języku C++ należy zastosować operator %, np. reszta = a % b. Algorytm Euklidesa NWD(a,b) - wersja z dzieleniem. Dane: dwie liczby naturalne: a, b. Wynik: wartość największego wspólnego dzielnika liczb a i b: NWD. Lista kroków: 1. Zacznij algorytm. 2. Wprowadź wartości liczb a i b. 3. Zmiennej k przypisz wartość zmiennej b: k := b. 4. Zmiennej b przypisz wartość wyrażenia: a mod b: b:=a mod b. 5. Zmiennej a przypisz wartość zmiennej k: a := k. 6. Jeśli b<>0 przejdź do kroku Wyprowadź wynik: NWD jest równe a. 8. Zakończ algorytm. Jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze Znalezienie wartości najmniejszego i największego elementu zbioru pozwala na określenie parametru zwanego rozpiętością zbioru. Jest to różnica między tymi dwoma wartościami. Naiwna metoda polegałaby na zastosowaniu algorytmu opisywanego już wcześniej. Znajdujemy element minimalny, czyli Pół zadania już rozwiązaliśmy. Następnie wyrzucamy ten element z rozpatrywanego zbioru i ponownie wyszukujemy element minimalny. Czynność powtarzamy aż w zbiorze pozostanie ostatni element. z pewnością będzie on posiadał wartość największą. Już intuicyjnie jednak czujemy, że wykonujemy tu nadmiarową ilość operacji co z całą pewnością rzutuje na tzw. koszt operacji. Stąd potrzeba wynalezienia innej metody. Optymalnym rozwiązaniem będzie tu metoda dziel i zwyciężaj. Dziel - czyli podziel zadanie na kilka mniejszych. Zwyciężaj - znajdź rozwiązanie dla każdego z podzadań osobno, a następnie porównaj wyniki. potrzebny jest oczywiście algorytm iteracyjny na znajdowanie elementu największego ale łatwo przerobić ten który przytoczyliśmy dla przypadku elementu najmniejszego. W przypadku kiedy mamy zbiór złożony z n elementów i zastosujemy metodę naiwną wykonamy n-1 porównań liczb poszukując wartości najmniejszej oraz n-2 porównań poszukując wartości największej. Czyli w sumie 2n-3 porównania. Dzieląc parzysty zbiór na pół na zasadzie weź dwie kolejne liczby i mniejszą z nich zakwalifikuj do zbioru A zaś większą do zbioru B, a następnie poszukując elementów największych i najmniejszych metodą iteracyjna w każdym z podzbiorów osobno wykonamy: n/2 porównań podczas dzielenia zbioru 12

13 n/2-1 porównań szukając najmniejszego w zbiorze mniejszych n/2-1 porównań szukając największego w zbiorze większych Razem 3n/2-2 porównania. dla 100 elementowego zbioru w pierwszym przypadku (metoda naiwna) mamy 197 porównań, w drugim (dziel i zwyciężaj) 148. Jeśli ilość elementów zbioru jest nieparzysta, ostatni element zostaje i jest porównywany na końcu. Dochodzą zatem dwa dodatkowe porównania. Liczba porównań dla n nieparzystego wynosi zatem 3n/2. Liczby Fibonacciego Jedną z ciekawostek matematycznych jest zagadnienie rozmnażania się królików. Problemem tym zajął się włoski matematyk okresu średniowiecza (1202r) Leonardo Pisano zwany Fibonaccim. Założenia są następujące: Mamy parę królików, która po miesiącu osiąga dojrzałość płciową, zachodzi w ciążę i po następnym miesiącu rodzi się para (różnej płci) królików. Od tej pory już co miesiąc rodzi się taka para. ich potomstwo i potomstwo potomstwa itd. podlega tej samej regule. Należy policzyć ile królików będziemy mieli po n miesiącach od chwili początkowej. Ujmując sprawy w ramy matematyczne zagadnienie można zdefiniować następującym wzorem: 1, n 1,2 F n = F n 1 + F n 2, n 3 Iteracyjna metoda polega zatem na ręcznym wprowadzeniu pierwszych dwóch wyrazów (dla n = 1 i n = 2) a następnie sumowaniu. Czyli dla n 3 mamy n-2 iteracje. Schemat Hornera Schemat Hornera jest algorytmem służącym do szybkiego obliczania wartości wielomianu, a także przeliczania na postać dziesiętną liczb zapisanych w innym systemie liczbowym oraz szybkiego podnoszenia do potęgi. Weźmy wielomian n-tego stopnia postaci: W(x) = a0x n + a1x n-1 + a2x n an-1x + an dla n 0. Można go przekształcić do postaci hornerowskiej: W(x) = ( (a0x + a1)x + a2)x an-1)x + an. Taka postać nadaje się do implementacji za pomocą pętli iteracyjnej. Główne kroki algorytmu zgodnego ze schematem Hornera schematem Hornera, można napisać następująco: W(x) := a 0 (początkowa wartość wielomianu) W(x) := W(x)x + a i dla i = 1, 2, 3,..., n 13 (iteracja). Danymi początkowymi będzie stopień wielomianu n oraz n-wymiarowa tablica współczynników a i.

14 Wartość wielomianu zostanie obliczona w n - iteracjach. Wydawanie reszty (metoda zachłanna) Na zakończenie algorytm wydawania reszty. Chodzi o to, żeby wydając resztę użyć jak najmniejszej ilości walorów czyli tak dobierać nominały i ich ilości aby sztuk pieniędzy było możliwie najmniej. Algorytm zachłanny algorytm, który w celu wyznaczenia rozwiązania w każdym kroku dokonuje zachłannego, tj. najkorzystniejszego w danym kroku, rozwiązania częściowego. Przepis słowny: Używane walory definiujemy w tablicy walorów W z której będziemy je pobierać do porównań. Kwotę, z której mamy wydać resztę wpisujemy do zmiennej R. Sprawdzamy czy w tabeli nominałów jest nominał nie większy niż R. Bierzemy największy możliwy nominał i dzielimy przez niego zmienną R. Część całkowita z tego dzielenia, to ilość użytych nominałów, którą zapamiętujemy w odpowiedniej tablicy skorelowanej z nominałami. Resztę z tego dzielenia przypisujemy zmiennej R i wracamy na początek pętli. Iteracje kończą się, gdy reszta z dzielenia wyniesie 0, lub (kwestia umowy) nie istnieje nominał nie większy niż reszta). 14

15 Spis treści Algorytm... 1 Sposoby reprezentowania algorytmów... 2 Opis słowny... 2 Lista kroków... 2 Schemat blokowy... 2 Drzewo algorytmu... 3 Pseudokod... 4 Kod w konkretnym języku programowania... 4 Iteracja... 5 Pętla iteracyjna for... 5 Pętla iteracyjna do while... 6 Pętla iteracyjna while... 6 Instrukcje break i continue... 7 Wybrane zagadnienia iteracyjne i ich przykładowe rozwiązania algorytmiczne... 9 Wybór wartości najmniejszej spośród n liczb... 9 Obliczanie n! (silnia) Algorytm Euklidesa Jednoczesne znajdowanie największego i najmniejszego elementu w zbiorze Liczby Fibonacciego Schemat Hornera Wydawanie reszty (metoda zachłanna)

1 Podstawy c++ w pigułce.

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,

Bardziej szczegółowo

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

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie Algorytmika i programowanie dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie Algorytmy i sposoby ich przedstawiania Algorytm - informatyczny opis planu rozwiązania zadania Sposoby

Bardziej szczegółowo

Wstęp do programowania

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ć

Bardziej szczegółowo

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL 1 Część 1 Pojęcie algorytmu 2 I. Pojęcie algorytmu Trochę historii Pierwsze

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. 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ółowo

2.8. Algorytmy, schematy, programy

2.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ółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

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

Pętle. Dodał Administrator niedziela, 14 marzec :27 Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać

Bardziej szczegółowo

Podstawy Programowania Algorytmy i programowanie

Podstawy Programowania Algorytmy i programowanie Podstawy Programowania Algorytmy i programowanie Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Algorytm Algorytm w matematyce, informatyce, fizyce, itp. lub innej dziedzinie życia,

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan wykładów (1) Algorytmy i programy Proste typy danych Rozgałęzienia

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 5 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Zadanie o kotach z poprzedniego wykładu # include < iostream > using namespace std ; int main (){ int rozmiar_ rodzinki,

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

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,

Bardziej szczegółowo

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

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

Bardziej szczegółowo

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wstęp do informatyki- wykład 7

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.

Bardziej szczegółowo

3. Instrukcje warunkowe

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

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 1

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

Bardziej szczegółowo

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

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

Bardziej szczegółowo

Iteracyjna realizacja wybranych algorytmów

Iteracyjna realizacja wybranych algorytmów Temat 5. Iteracyjna realizacja wybranych algorytmów Warto powtórzyć 1. Przykłady algorytmów, w których liczba kroków iteracji nie jest z góry określona 1.1. Zastosowanie instrukcji iteracyjnej while 1.2.

Bardziej szczegółowo

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja Pętle W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. Instrukcja for ma następującą postać: for (w1;w2;w3) instrukcja w1, w2, w3 są wyrażeniami Schemat blokowy

Bardziej szczegółowo

Wprowadzenie do algorytmiki

Wprowadzenie do algorytmiki Wprowadzenie do algorytmiki Pojecie algorytmu Powszechnie przyjmuje się, że algorytm jest opisem krok po kroku rozwiązania postawionego problemu lub sposób osiągnięcia jakiegoś celu. Wywodzi się z matematyki

Bardziej szczegółowo

Algorytmy. Programowanie Proceduralne 1

Algorytmy. Programowanie Proceduralne 1 Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa

Bardziej szczegółowo

Programowanie - wykład 4

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

4. Funkcje. Przykłady

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ółowo

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. 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ółowo

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 TEMAT: Programowanie w języku C/C++: instrukcje iteracyjne for, while, do while Ogólna postać instrukcji for for (wyr1; wyr2; wyr3) Instrukcja for twory pętlę działającą

Bardziej szczegółowo

Konstrukcje warunkowe Pętle

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

Bardziej szczegółowo

Ilość cyfr liczby naturalnej

Ilość 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ółowo

Struktura pliku projektu Console Application

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

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Co to jest algorytm? Zapis algorytmów Algorytmy

Bardziej szczegółowo

Definicja algorytmu brzmi:

Definicja algorytmu brzmi: 1.1. Definicja algorytmu Często w życiu stajesz przed koniecznością rozwiązania jakiegoś zadania. Na lekcji matematyki musisz na przykład rozwiązać równanie i w tym celu wykonujesz szereg czynności: od

Bardziej szczegółowo

Algorytmy. Programowanie Proceduralne 1

Algorytmy. Programowanie Proceduralne 1 Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa

Bardziej szczegółowo

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn

Bardziej szczegółowo

Wstęp do programowania

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

Bardziej szczegółowo

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji. Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji. Maria Górska 9 stycznia 2010 1 Spis treści 1 Pojęcie algorytmu 3 2 Sposób

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4

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

Bardziej szczegółowo

Algorytmy, reprezentacja algorytmów.

Algorytmy, 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ółowo

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

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

Bardziej szczegółowo

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

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

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 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ółowo

Podstawy Programowania

Podstawy 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ółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while 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

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

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

Programowanie proceduralne w języku C++ Pętle, tablice Programowanie proceduralne w języku C++ Pętle, tablice Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki

Bardziej szczegółowo

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1 Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1 Etapy rozwiązywania problemu PROBLEM wybór metody rozwiązania ALGORYTM 1.

Bardziej szczegółowo

Kontrola przebiegu programu

Kontrola 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ółowo

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

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ć

Bardziej szczegółowo

7. Pętle for. Przykłady

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

Bardziej szczegółowo

Wyszukiwanie największej spośród czterech liczb. Przykładowe rozwiązanie

Wyszukiwanie 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ółowo

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Wstęp do Informatyki

Wstęp do Informatyki Wstęp do Informatyki dr hab. Bożena Woźna-Szcześniak, prof. AJD bwozna@gmail.com Jan Długosz University, Poland Wykład 8 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 8 1 / 32 Instrukcje iteracyjne

Bardziej szczegółowo

Rekurencja (rekursja)

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)

Bardziej szczegółowo

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

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

Bardziej szczegółowo

INFORMATYKA. Algorytmy.

INFORMATYKA. Algorytmy. INFORMATYKA Algorytmy http://www.infoceram.agh.edu.pl ALGORYTM ALGORYTM to skończony ciąg jasno zdefiniowanych czynności, wskazujący kolejność operacji koniecznych do rozwiązania zadanego problemu. Słowo

Bardziej szczegółowo

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu Tablice (wstęp) Rzut okiem na języki programowania

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu Tablice (wstęp) Rzut okiem na języki programowania Podstawy programowania Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu Tablice (wstęp) Rzut okiem na języki programowania 1 dr Artur Bartoszewski - Podstawy programowania,

Bardziej szczegółowo

do instrukcja while (wyrażenie);

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

Bardziej szczegółowo

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

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r. M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza

Bardziej szczegółowo

Język C zajęcia nr 5

Język C zajęcia nr 5 Język C zajęcia nr 5 Instrukcja wyboru switch switch ( wyr ) inst Głównym przeznaczeniem instrukcji switch jest rozgałęzianie wykonania programu na wiele różnych ścieżek w zależności od wartości pewnego

Bardziej szczegółowo

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy

Bardziej szczegółowo

Zapis algorytmów: schematy blokowe i pseudokod 1

Zapis algorytmów: schematy blokowe i pseudokod 1 Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu

Bardziej szczegółowo

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

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

Bardziej szczegółowo

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF). INFORMATYKA kl. II gimnazjum Krzysztof Gładkowski TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF). Czas: 2godz. Przygotowanie środowiska. Pomoce dydaktyczne. Oprogramowanie środowisko

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. 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ółowo

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

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 +=

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania wykład 4 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Instrukcje pętli Pętle służą do iteracyjnego wykonywania pewnych kroków Zazwyczaj

Bardziej szczegółowo

Rekurencja. Przygotowała: Agnieszka Reiter

Rekurencja. 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ółowo

5. Rekurencja. Przykłady

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

Bardziej szczegółowo

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu Podstawy programowania Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu 1 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD Część 1 Dlaczego system binarny?

Bardziej szczegółowo

Pascal - wprowadzenie

Pascal - wprowadzenie Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego

Bardziej szczegółowo

Poprawność semantyczna

Poprawność semantyczna Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych

Bardziej szczegółowo

Programowanie strukturalne i obiektowe. Funkcje

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

Bardziej szczegółowo

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2 Pętle wielokrotne wykonywanie ciągu instrukcji. Bardzo często w programowaniu wykorzystuje się wielokrotne powtarzanie określonego ciągu czynności (instrukcji). Rozróżniamy sytuacje, gdy liczba powtórzeń

Bardziej szczegółowo

6. Pętle while. Przykłady

6. 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ółowo

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba Programowanie od pierwszoklasisty do maturzysty Grażyna Koba Krąg trzydziestolecia nauki programowania C++, Java Scratch, Baltie, Logo, Python? 2017? Informatyka SP, GIMN, PG 1987 Elementy informatyki

Bardziej szczegółowo

Znajdowanie największego i najmniejszego elementu w zbiorze n liczb całkowitych

Znajdowanie największego i najmniejszego elementu w zbiorze n liczb całkowitych 1/12 Opracowała Kozłowska Ewa ekozbelferek@poczta.onet.pl nauczyciel przedmiotów informatycznych Zespół Szkół Technicznych Mielec, ul. Jagiellończyka 3 Znajdowanie największego i najmniejszego elementu

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

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

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

Bardziej szczegółowo

ALGORYTMY 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: 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ółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

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

Prof. 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ółowo

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

Język C część 2. Podejmowanie decyzji w programie. if else. switch Język C część 2 Podejmowanie decyzji w programie if else Instrukcja warunkowa umożliwia wykonanie pewnej instrukcji w zależności od wartości wyrażenia. Wszystkie wartości różne od 0, są w języku C traktowane

Bardziej szczegółowo

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

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)

Bardziej szczegółowo

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny 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 danych

Bardziej szczegółowo

Podstawy Programowania C++

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:

Bardziej szczegółowo

Część 4 życie programu

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ęść

Bardziej szczegółowo

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

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki Informatyka I Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Operacje relacji (porównania) A

Bardziej szczegółowo

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Algorytmy komputerowe. dr inŝ. Jarosław Forenc Rok akademicki 2009/2010, Wykład nr 8 2/24 Plan wykładu nr 8 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2009/2010

Bardziej szczegółowo

Algorytmika 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 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ółowo

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

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

Wstęp do informatyki- wykład 6

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

Bardziej szczegółowo

Wstęp do informatyki- wykład 2

Wstęp do informatyki- wykład 2 MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe 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

Bardziej szczegółowo

tablica: dane_liczbowe

tablica: dane_liczbowe TABLICE W JĘZYKU C/C++ tablica: dane_liczbowe float dane_liczbowe[5]; dane_liczbowe[0]=12.5; dane_liczbowe[1]=-0.2; dane_liczbowe[2]= 8.0;... 12.5-0.2 8.0...... 0 1 2 3 4 indeksy/numery elementów Tablica

Bardziej szczegółowo