ALGORYTMY ITERACYJNE
|
|
- Ludwik Niewiadomski
- 6 lat temu
- Przeglądów:
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.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ółowoAlgorytmika 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ół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ółowoWykł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ółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Bardziej szczegółowo2.8. Algorytmy, schematy, programy
https://app.wsipnet.pl/podreczniki/strona/38766 2.8. Algorytmy, schematy, programy DOWIESZ SIĘ co oznaczają pojęcia: algorytm, schemat blokowy, język programowania, jakie są sposoby obliczania największego
Bardziej szczegółowo1 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ółowoPę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ółowoPodstawy 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ółowoWstę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ółowoWstę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ółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoALGORYTMY. 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ółowoProgramowanie 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ółowoProgramowanie 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ółowoWstęp do informatyki- wykład 7
1 Wstęp do informatyki- wykład 7 Operatory przypisania, złożone operatory przypisania, Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.
Bardziej szczegółowo3. Instrukcje warunkowe
. Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include
Bardziej szczegółowoProgramowanie 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ółowoALGORYTMY. 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ółowoIteracyjna 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ółowoW 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ółowoWprowadzenie 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ółowoAlgorytmy. 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ół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ół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ółowoInstrukcja 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ółowo4. 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ółowoIteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.
Iteracje Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony. Iteracja inaczej zwana jest pętlą i oznacza wielokrotne wykonywanie instrukcji. Iteracje
Bardziej szczegółowoPODSTAWY 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ółowoKonstrukcje 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ół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ół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ółowoProgramowanie 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ółowoDefinicja 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ółowoAlgorytmy. 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ółowoINFORMATYKA 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ół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ółowoAlgorytm - 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ółowoAlgorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Bardziej szczegół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ółowoPę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ółowoPodstawy 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ółowoWstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
Bardziej szczegół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ółowoJę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ółowoJak 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ółowoElż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ółowoProgramowanie 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ółowoOpis 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ół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ółowoa[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ółowo7. Pętle for. Przykłady
. Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i
Bardziej szczegół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ółowoPoniŜ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ółowoDefinicje. 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ółowoWstę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ół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ół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ółowoINFORMATYKA. 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ółowoWykł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ółowodo instrukcja while (wyrażenie);
Instrukcje pętli -ćwiczenia Instrukcja while Pętla while (póki) powoduje powtarzanie zawartej w niej sekwencji instrukcji tak długo, jak długo zaczynające pętlę wyrażenie pozostaje prawdziwe. while ( wyrażenie
Bardziej szczegółowoPodstawy 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ółowoJę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ółowoLuty 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ółowoZapis 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ół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ółowoTEMAT: 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ółowofor (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }
Pętle Pętle (ang. loops), zwane też instrukcjami iteracyjnymi, stanowią podstawę prawie wszystkich algorytmów. Lwia część zadań wykonywanych przez programy komputerowe opiera się w całości lub częściowo
Bardziej szczegół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ółowoPę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ółowoWstę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ółowoRekurencja. Przygotowała: Agnieszka Reiter
Rekurencja Przygotowała: Agnieszka Reiter Definicja Charakterystyczną cechą funkcji (procedury) rekurencyjnej jest to, że wywołuje ona samą siebie. Drugą cechą rekursji jest jej dziedzina, którą mogą być
Bardziej szczegół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ółowoWykł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ółowoPascal - 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ółowoPoprawność 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ół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ółowoPę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ółowo6. Pętle while. Przykłady
6. Pętle while Przykłady 6.1. Napisz program, który, bez użycia rekurencji, wypisze na ekran liczby naturalne od pewnego danego n do 0 włącznie, w kolejności malejącej, po jednej liczbie na linię. Uwaga!
Bardziej szczegółowoProgramowanie 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ółowoZnajdowanie 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ółowoProgramowanie 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ół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ółowoALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:
ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu: Rys1 Ćwiczenie 2 Podaj jaki ciąg znaków zostanie wypisany po wykonaniu
Bardziej szczegółowoJę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ółowoJę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ół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ółowoJę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ół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ółowoAlgorytm 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ółowoPodstawy 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ół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ółowoInformatyka 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ółowoAlgorytmy 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ółowoAlgorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie
Algorytmika i programowanie Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie Tablice Tablica jest zbiorem elementów tego samego typu. Każdy element jest identyfikowany (numer
Bardziej szczegółowoProgramowanie 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ółowoWstęp do informatyki- wykład 6
1 Wstęp do informatyki- wykład 6 Operatory przypisania, złożone operatory przypisania, operator przecinkowy Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++.
Bardziej szczegółowoWstę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ółowotablica: 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