WYKŁAD 3 (13 MARZEC 2014) LICZBY CAŁKOWITE I RZECZYWISTE. Bartosz Łakomy i Dariusz Dobiesz

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

Download "WYKŁAD 3 (13 MARZEC 2014) LICZBY CAŁKOWITE I RZECZYWISTE. Bartosz Łakomy i Dariusz Dobiesz"

Transkrypt

1 WYKŁAD 3 (13 MARZEC 2014) LICZBY CAŁKOWITE I RZECZYWISTE Bartosz Łakomy i Dariusz Dobiesz

2 SPIS TREŚCI: Liczby parzyste i nieparzyste Liczby podzielne lub niepodzielne przez zadane podzielniki NWD algorytm Euklidesa Liczby względnie pierwsze Najmniejsza wspólna wielokrotność Liczby pierwsze generacja przez sprawdzanie podzielności Liczby pierwsze generacja sitem Eratostenesa

3 LICZBY PARZYSTE I NIEPARZYSTE Problem: W przedziale całkowitym <a,b> wyszukaj wszystkie liczby parzyste. Liczby parzyste: W wielu algorytmach musimy wygenerować liczby parzyste z zadanego przedziału <a,b> liczb całkowitych. Aby rozwiązać to zadanie wyznaczymy pierwszą liczbę w przedziale <a,b>, która spełnia kryterium. Następnie w pętli sprawdzamy, czy wyznaczona liczba mieści się w przedziale <a,b>. Pętlę kontynuujemy, aż wygenerowana liczba wyjdzie poza przedział <a,b>. Ponieważ granice przedziału a i b mogą być dowolnymi liczbami całkowitymi, musimy najpierw znaleźć najmniejszą liczbę parzystą z przedziału <a,b>. 1. Jeśli a jest parzyste, to najmniejszą liczbą parzystą w tym przedziale będzie właśnie a. 2. Jeśli a nie jest parzyste, to najmniejszą liczbą parzystą będzie a + 1.

4 Parzystość a sprawdzimy badając resztę z dzielenia a przez 2. Jeśli reszta jest zerowa, to a jest liczbą parzystą. Jeśli a nie jest liczbą parzystą, to: 1. Reszta wynosi 1 dla a > 0 2. Reszta wynosi -1 dla a < 0 Z powyższego wnioskujemy, iż pierwszą liczbę parzystą w przedziale całkowitym <a,b> otrzymamy następująco: i = a Jeśli reszta z dzielenia a przez 2 jest różna od 0, to zwiększ i o 1. Następna liczba parzysta jest zawsze o 2 większa. Podsumowując otrzymujemy algorytm generacji liczb parzystych w przedziale całkowitym <a,b>:

5 ALGORYTM GENERACJI LICZB PARZYSTYCH -Wejście a początek przedziału, a Z b koniec przedziału, b Z, a < b -Wyjście: Kolejne liczby parzyste zawarte w przedziale <a,b> -Zmienna pomocnicza i przebiega przez kolejne liczby parzyste w przedziale <a,b>, i Z -Lista kroków K01: i a ;obliczamy pierwszą liczbę parzystą K02: Jeśli a mod 2 0, to i i + 1 K03: Dopóki i b, wykonuj kroki K03...K04 ;generujemy liczby parzyste w przedziale <a,b> K04: Pisz i ;wyprowadzamy liczbę parzystą K05: i i + 2 ;następna liczba parzysta K06: Zakończ

6 #include <iostream> using namespace std; int main() int a,b,i; PROGRAM Program spodziewa się w pierwszym wierszu liczb a i b. W kolejnych wierszach wyświetla liczby parzyste zawarte w przedziale <a,b>. cin >> a >> b; i = a; if(a % 2) i++; while(i <= b) cout << i << " "; i += 2; cout << endl; return 0;

7 Liczby nieparzyste: Liczby nieparzyste generujemy w identyczny sposób: wyznaczamy pierwszą liczbę nieparzystą w przedziale <a,b>, a kolejne są o 2 większe. Jeśli a jest nieparzyste, to pierwsza liczba nieparzysta jest równa a, w przeciwnym razie jest o 1 większa. Poniższy program czyta krańce przedziału a, b i wyświetla wszystkie kolejne liczby nieparzyste zawarte w tym przedziale.

8 ZADANIE Napisz program który spodziewa się w pierwszym wierszu liczb a i b. W kolejnych wierszach wyświetla liczby nieparzyste zawarte w przedziale <a,b>. Analogicznie do poprzedniego zadania.

9 #include <iostream> using namespace std; int main() int a,b,i; PROGRAM cin >> a >> b; i = a; if(a % 2 == 0) i++; while(i <= b) cout << i << " "; i += 2; cout << endl; return 0;

10 LICZBY PODZIELNE LUB NIEPODZIELNE PRZEZ ZADANE PODZIELNIKI Problem nr 1: W przedziale <a,b> liczb całkowitych wyszukać wszystkie liczby podzielne przez liczby z zadanego zbioru P. Generujemy wszystkie kolejne liczby z przedziału <a,b> i sprawdzamy, czy dzielą się bez reszty przez liczby z zadanego zbioru. Jeśli tak, wyprowadzamy je na wyjście.

11 ALGORYTM WYZNACZANIA LICZB PODZIELNYCH PRZEZ ZADANE CZYNNIKI Wejście a początek przedziału, a Z b koniec przedziału, b Z, a < b n liczba podzielników, n N P tablica, której kolejne elementy są podzielnikami. Elementy Z. Numeracja elementów od zera. Wyjście: Kolejne liczby z przedziału <a,b> podzielne przez podzielniki w P Zmienne pomocnicze: i przebiega przez kolejne liczby w przedziale <a,b>, i Z j przebiega przez numery kolejnych podzielników w P, j N Lista kroków: K01: Dla i = a,a+1,...,b wykonuj K02...K03 ;przechodzimy przez kolejne liczby z przedziału <a,b> K02: Dla j = 0,1,...,n-1 wykonuj K03 ;sprawdzamy, czy liczba i dzieli się przez podzielniki. K03: Jeśli i mod P[j] = 0, to: pisz i następny obieg pętli K01 i, przerywamy pętlę K02 K04: Zakończ ;z tablicy P[]. Jeśli tak, wyprowadzamy

12 #include <iostream> using namespace std; const int MAXP = 1000; int main() int a,b,i,j,n,p[maxp]; cin >> a >> b >> n; for(i = 0; i < n; i++) cin >> P[i]; PROGRAM Program spodziewa się w pierwszym wierszu liczb a i b. W drugim wierszu należy podać n = , a następnie w n wierszach kolejne podzielniki. Przykładowe dane: for(i = a; i <= b; i++) for(j = 0; j < n; j++) if(i % P[j] == 0) cout << i << " "; break; cout << endl; return 0;

13 LICZBY PODZIELNE LUB NIEPODZIELNE PRZEZ ZADANE PODZIELNIKI Problem nr 2: W przedziale <a,b> liczb całkowitych wyszukać wszystkie liczby niepodzielne przez żadną z liczb z zadanego zbioru P. Każdą liczbę sprawdzamy na podzielność przez podzielniki z P. Jeśli któryś z nich dzieli liczbę, to przechodzimy do następnej liczby w <a,b>. Jeśli żaden nie dzieli liczby, liczbę wyprowadzamy na wyjście.

14 ALGORYTM WYZNACZANIA LICZB NIEPODZIELNYCH PRZEZ ZADANE LICZBY Wejście a początek przedziału, a Z b koniec przedziału, b Z, a < b n liczba podzielników, n N P tablica, której kolejne elementy są podzielnikami. Elementy Z. Numeracja elementów od zera. Wyjście: Kolejne liczby z przedziału <a,b> niepodzielne przez podzielniki w P. Zmienne pomocnicze: i przebiega przez kolejne liczby w przedziale <a,b>, i Z j przebiega przez indeksy podzielników w P, j N Lista kroków: K01: Dla i = a,a+1,...,b wykonuj kroki K02...K04 ;pętla przebiegająca przez kolejne liczby z <a,b> K02: Dla j = 0,1,...,n-1 wykonuj krok K03 ;pętla sprawdzająca podzielność przez dzielniki z P K03: Jeśli i mod P[j] = 0, to następny obieg pętli K01 ;jeśli jakiś dzielnik dzieli i, przechodzimy do następnej liczby K04: Pisz i ;jeśli żaden dzielnik nie dzieli i, wyprowadzamy je K05: Zakończ

15 #include <iostream> using namespace std; const int MAXP = 1000; int main() int a,b,i,j,n,p[maxp]; bool t; cin >> a >> b >> n; for(i = 0; i < n; i++) cin >> P[i]; for(i = a; i <= b; i++) t = true; for(j = 0; j < n; j++) if(i % P[j] == 0) t = false; break; if(t) cout << i << " "; cout << endl; return 0; PROGRAM Program spodziewa się w pierwszym wierszu liczb a i b. W drugim wierszu należy podać n = , a następnie w n wierszach kolejne podzielniki. Przykładowe dane:

16 NWD ALGORYTM EUKLIDESA Problem: Dla danych dwóch liczb naturalnych a i b znaleźć największą liczbę naturalną c, która dzieli bez reszty liczbę a i dzieli bez reszty liczbę b. Liczba c o powyższej własności nosi nazwę NWD największego wspólnego dzielnika a i b (ang. GCD greatest common divisor). NWD znajdujemy za pomocą znanego algorytmu Euklidesa, będącego jednym z najstarszych algorytmów, ponieważ pojawił się on w dziele Elementy napisanym przez Euklidesa około 300 p.n.e. Właściwie Euklides nie podał algorytmu dla liczb, lecz dla dwóch odcinków. Chodziło w nim o znalezienie wspólnej miary (czyli odcinka jednostkowego), która mogłaby posłużyć do zmierzenia obu danych odcinków wspólna miara odkłada się w każdym z odcinków całkowitą liczbę razy.

17 Rozwiązanie 1: Euklides wykorzystał prosty fakt, iż NWD liczb a i b dzieli również ich różnicę. Zatem od większej liczby odejmujemy w pętli mniejszą dotąd, aż obie liczby się zrównają. Wynik to NWD dwóch wyjściowych liczb. Algorytm Euklidesa Wejście: a, b liczby naturalne, których NWD poszukujemy, a, b N Wyjście: NWD liczb a i b Lista kroków: K01: Dopóki a b wykonuj krok K02 K02: Jeśli a < b, to b b - a inaczej a a - b ;od większej liczby odejmujemy mniejszą aż się zrównają K03: Pisz a ;wtedy dowolna z nich jest NWD K04: Zakończ

18 Start Wczytaj a,b nie a<b tak a -= b b -= a Wypisz wynik koniec

19 PROGRAM #include <iostream> using namespace std; int main() unsigned int a,b; Program odczytuje z pierwszego wiersza dwie liczby a i b, a następnie wypisuje w następnym wierszu ich NWD. Żadna z liczb a i b nie może wynosić 0 wtedy różnica nie zmienia większej z nich i program działa w nieskończoność. cin >> a >> b; while(a!= b) if(a < b) b -= a; else a -= b; cout << a << endl; return 0; Zadanie: Popraw kod z lewej strony tak żeby 0 nie stanowiło problemu

20 #include <iostream> using namespace std; int main() unsigned int a,b; cin >> a >> b; if ((a==0) (b==0)) cout << "NWD = 0" << endl; while(a!= b) if(a < b) b -= a; else a -= b; cout << a << endl; return 0;

21 Rozwiązanie 2: Pierwsze rozwiązanie problemu znajdowania NWD jest złe z punktu widzenia efektywności. Wyobraźmy sobie, iż a jest równe 4 miliardy, a b jest równe 2. Pętla odejmująca będzie wykonywana dotąd, aż zmienna a zrówna się ze zmienną b, czyli w tym przypadku 2 miliardy razy trochę dużo. Tymczasem można wykorzystać operację reszty z dzielenia. Mniejszą liczbę można odjąć od większej liczby tyle razy, ile wynosi iloraz całkowity tych liczb. Po odejmowaniu pozostaje reszta z dzielenia a Euklides właśnie zauważył, iż NWD dzieli również różnicę danych liczb, czyli: NWD(a,b) = NWD(a mod b,b) Ponieważ reszta zawsze jest mniejsza od dzielnika, wymieniamy a z b, a b z a mod b. Jeśli otrzymamy wynik b = 0, to w a jest ostatni dzielnik dzielący bez reszty różnicę.

22 Algorytm Euklidesa Wejście a, b liczby naturalne, których NWD poszukujemy, a, b N Wyjście: NWD liczb a i b Zmienne pomocnicze t tymczasowo przechowuje dzielnik, t N Lista kroków: K01: Dopóki b 0 wykonuj kroki K02...K04 K02: t b ;zapamiętujemy dzielnik K03: b a mod b ;wyznaczamy resztę z dzielenia, która staje się dzielnikiem K04: a t ;poprzedni dzielnik staje teraz się dzielną K05: Pisz a ;NWD jest ostatnią dzielną K06: Zakończ

23 #include <iostream> using namespace std; int main() unsigned int a,b,t; cin >> a >> b; while(b) t = b; b = a % b; a = t; cout << a << endl; return 0; PROGRAM Program odczytuje z pierwszego wiersza dwie liczby a i b, a następnie wypisuje w następnym wierszu ich NWD.

24 LICZBY WZGLĘDNIE PIERWSZE Liczba naturalna m jest względnie pierwsza (ang. coprime) z liczbą naturalną n wtedy i tylko wtedy, gdy NWD(m,n) = 1. Definicja ta oznacza, iż liczby n i m nie posiadają wspólnych podzielników za wyjątkiem 1. Problem: W przedziale <a,b> liczb naturalnych wyszukać wszystkie liczby względnie pierwsze (ang. relatively prime integers) z zadaną liczbą p. Rozwiązanie: Przechodzimy przez kolejne liczby w przedziale <a,b>. Dla każdej liczby obliczamy algorytmem Euklidesa jej NWD z liczbą p. Jeśli wynikiem będzie 1, to obie liczby są względnie pierwsze, zatem wyprowadzamy liczbę z przedziału na wyjście.

25 Algorytm wyznaczania liczb względnie pierwszych Wejście a początek przedziału, a N b koniec przedziału, b N p liczba służąca do wyznaczenia w przedziale <a,b> liczb z nią względnie pierwszych, p N Wyjście: liczby z przedziału <a,b>, które są względnie pierwsze z liczbą p Zmienne pomocnicze: i przebiega przez kolejne liczby w przedziale <a,b>. i N t tymczasowo przechowuje dzielnik w algorytmie Euklidesa, t N ax zmienna dla algorytmu Euklidesa. ax N bx zmienna dla algorytmu Euklidesa. bx N Lista kroków: K01: Dla i = a,a+1,...,b wykonuj kroki K02...K08 ;przechodzimy przez kolejne liczby z przedziału <a,b> K02: ax i ;zmienne dla algorytmu Euklidesa K03: bx p K04: Dopóki bx 0 wykonuj kroki K05...K07 ;wyznaczamynwd(i,p) K05: t bx K06: bx ax mod bx K07: ax t K08: Jeśli ax = 1, to pisz i ;NWD(i,p) = 1, zatem i jest względnie pierwsze z p K09: Zakończ

26 #include <iostream> using namespace std; int main() unsigned int a,b,p,ax,bx,i,t; cin >> a >> b >> p; for(i = a; i <= b; i++) ax = i; bx = p; while(bx) t = bx; bx = ax % bx; ax = t; if(ax == 1) cout << i << " "; cout << endl; return 0; PROGRAM Program odczytuje z pierwszego wiersza trzy liczby a, b i p a następnie wypisuje wszystkie liczby w przedziale <a,b> względnie pierwsze z p.

27 LICZBY PIERWSZE GENERACJA PRZEZ SPRAWDZANIE PODZIELNOŚCI Problem: Znaleźć n kolejnych liczb pierwszych Liczba naturalna p jest liczbą pierwszą - posiadającą dokładnie dwa różne podzielniki: 1 i siebie samą. Bierzemy kolejne liczby naturalne poczynając od 2. Wybraną liczbę naturalną p próbujemy dzielić przez liczby od 2 do p-1. Jeśli żadna z tych liczb nie jest podzielnikiem p, to liczba p jest pierwsza.

28 ALGORYTM WYZNACZANIA LICZB PIERWSZYCH PRZEZ SPRAWDZANIE PODZIELNOŚCI Wejście n- liczba określająca ile liczb pierwszych należy wygenerować, n N Wyjście n kolejnych liczb pierwszych Zmienne pomocnicze lp- zlicza kolejno wygenerowane liczby pierwsze. lp N p- kolejno testowane liczby naturalne. p N d- kolejne dzielniki. d N Lista kroków: K01:lp 0 ;zerujemy licznik liczb pierwszych K02: p 2 ;generację rozpoczynamy od 2 K03: Dopóki lp<n, wykonuj kroki K04 K08 ;pętla generacji liczb pierwszych K04: Dla d=2,3,p-1, wykonuj krok K05 ;pętla sprawdzania podzielności przez p i d K05: Jeśli p mod d=0,idś do K08 ;jeśli p dzieli się przez d, to nie jest pierwsza K06: Pisz p ;p jest pierwsze K07: lp lp+1 ;zwiększamy licznik wygenerowanych liczb pierwszych K08:p p+1 ;przechodzimy do kolejnej liczby, kandydata K09: Zakończ

29 PROGRAM #include <iostream> using namespace std; int main() unsigned int n,lp,p,d; bool t; cin >> n; lp = 0; p = 2; while(lp < n) t = true; for(d = 2; d < p; d++) if(p % d == 0) t = false; break; if(t) cout << p << " "; lp++; p++; cout << endl; return 0; Program w pierwszym wierszu czyta liczbę n i w następnych wierszach wypisuje n kolejnych liczb pierwszych.

30 LICZBY PIERWSZE SITO ERATOSTENESA Sito Eratostenesa jest algorytmem dwuprzebiegowym. Najpierw dokonuje on eliminacji liczb złożonych ze zbioru zaznaczając je w określony sposób, a w drugim obiegu przegląda zbiór ponownie wyprowadzając na wyjście liczby, które nie zostały zaznaczone. Na tym polu można dokonywać różnych optymalizacji. W pierwszym podejściu zastosujemy tablicę wartości logicznych S. Element S[i] będzie odpowiadał liczbie o wartości i. Zawartość S[i] będzie z kolei informowała o tym, czy liczba i pozostała w zbiorze (S[i] = true) lub została usunięta (S[i] = false).

31 Rozwiązanie : Najpierw przygotowujemy tablicę reprezentującą zbiór liczbowy wypełniając ją wartościami logicznymi true. Odpowiada to umieszczeniu w zbiorze wszystkich liczb wchodzących w zakres od 2 do n. Następnie z tablicy będziemy usuwali kolejne wielokrotności początkowych liczb od 2 do pierwiastka całkowitego z n w pisując do odpowiednich elementów wartość logiczną false. Na koniec przeglądniemy zbiór i wypiszemy indeksy elementów zawierających wartość logiczną true odpowiadają one liczbom, które w zbiorze pozostały. Za pierwszą wielokrotność do wyrzucenia ze zbioru przyjmiemy kwadrat liczby i. Przyjrzyj się naszemu przykładowi. Gdy wyrzucamy wielokrotności liczby 2, to pierwszą z nich jest 4 = 22. Następnie dla wielokrotności liczby 3 pierwszą do wyrzucenia jest 9 = 32, gdyż 6 zostało wyrzucone wcześniej jako wielokrotność 2. Dla 5 będzie to 25 = 52, gdyż 10 i 20 to wielokrotności 2, a 15 jest wielokrotnością 3, itd. Pozwoli to wyeliminować zbędne obiegi pętli usuwającej wielokrotności.

32 ALGORYTM SITA ERATOSTENESA Wejście n liczba określająca górny kraniec przedziału poszukiwania liczb pierwszych, n N, n > 1 Wyjście: Kolejne liczby pierwsze w przedziale od 2 do n. Zmienne pomocnicze S tablica wartości logicznych. S[i] false,true, dla i = 2,3,...,n. g zawiera granicę wyznaczania wielokrotności. g N i przebiega przez kolejne indeksy elementów S[i]. i N w wielokrotności wyrzucane ze zbioru S, w N Lista kroków: K01: Dla i = 2,3,...,n wykonuj S[i] true ; zbiór początkowo zawiera wszystkie liczby K02:g [ n] ; obliczamy granicę eliminowania wielokrotności K03:Dla i = 2,3,...,g wykonuj kroki K04...K08 ; w pętli wyrzucamy ze zbioru wielokrotności i K04:Jeśli S[i] = false, to następny obieg pętli K03 ; sprawdzamy, czy liczba i jest w zbiorze K05: w i2 ; jeśli tak, wyrzucamy jej wielokrotności K06: Dopóki w n wykonuj kroki K07...K08 ; ze zbioru K07: S[w] false K08:w w + i ; następna wielokrotność K09:Dla i = 2,3,...,n wykonuj krok K10 ; przeglądamy zbiór wynikowy K10:Jeśli S[i] = true, to pisz i ; wyprowadzając pozostałe w nim liczby K11:Zakończ

33 #include <iostream> #include <cmath> using namespace std; int main() unsigned int g,i,n,w; bool * S; cin >> n; S = new bool[n + 1]; for(i = 2; i <= n; i++) S[i] = true; g = (unsigned int)sqrt(n); for(i = 2; i <= g; i++) if(s[i]) w = i * i; while(w <= n) S[w] = false; w += i; for(i = 2; i <= n; i++) if(s[i]) cout << i << " "; cout << endl; delete [] S; return 0; PROGRAM Program w pierwszym wierszu czyta liczbę n i w następnych wierszach wypisuje kolejne liczby pierwsze zawarte w przedziale od 2 do n.

34 NAJMNIEJSZA WSPÓLNA WIELOKROTNOŚĆ Problem: Dla danych liczb naturalnych a i b znaleźć najmniejszą liczbę naturalną c, która jest podzielna bez reszty przez a i przez b. Liczba naturalna c o takich własnościach nosi nazwę NWW najmniejszej wspólnej wielokrotności liczb a i b (ang. the least common multiple of a and b). Sposób obliczania NWW jest bardzo prosty: NWW(a,b) = a b NWD(a,b) Jeśli liczby a i b są względnie pierwsze, to NWD(a,b) = 1. Wtedy NWW(a,b) = a b.

35 Wejście ALGORYTM WYZNACZANIA NAJMNIEJSZEJ WSPÓLNEJ WIELOKROTNOŚCI a,b liczby, których NWW poszukujemy, a,b N Wyjście: NWW najmniejsza wspólna wielokrotność liczb a i b. Zmienne pomocnicze ab zapamiętuje iloczyn a i b. ab N t tymczasowo przechowuje dzielnik w algorytmie Euklidesa, t N Lista kroków: K01: ab a b ; zapamiętujemy iloczyn a i b K02: Dopóki b 0 wykonuj kroki K03...K05 znajdujemy NWD(a,b) ; algorytmem Euklidesa K03: t b K04: b a mod b K05: a t K06: ab ab div a ; obliczamy NWW K07: Pisz ab K08: Zakończ

36 PROGRAM #include <iostream> using namespace std; int main() unsigned long long a,b,t,ab; Program odczytuje z pierwszego wiersza liczby a i b. W następnym wierszu wypisuje NWW(a,b). cin >> a >> b; ab = a * b; while(b) t = b; b = a % b; a = t; ab /= a; cout << ab << endl << endl; return 0;

Problem W przedziale całkowitym <a,b> wyszukaj wszystkie liczby parzyste.

Problem W przedziale całkowitym <a,b> wyszukaj wszystkie liczby parzyste. Problem W przedziale całkowitym wyszukaj wszystkie liczby parzyste. Liczby parzyste W wielu algorytmach musimy wygenerować liczby parzyste z zadanego przedziału liczb całkowitych. Tego typu

Bardziej szczegółowo

Liczby całkowite i rzeczywiste

Liczby całkowite i rzeczywiste Wykład 4(20 marzec 2014r.) Liczby całkowite i rzeczywiste Paulina Rogowiecka Klaudia Kamińska Adrianna Znyk 1 Spis treści: Czynniki pierwsze metoda próbnych dzieleń Pierwszość liczby naturalnej algorytmy

Bardziej szczegół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

(3 kwiecień 2014) Marika Pankowska Kamila Pietrzak

(3 kwiecień 2014) Marika Pankowska Kamila Pietrzak (3 kwiecień 2014) Marika Pankowska Kamila Pietrzak Wyszukiwanie liniowe (ang. linear search), zwane również sekwencyjnym (ang. sequential search) polega na przeglądaniu kolejnych elementów zbioru Z. Jeśli

Bardziej szczegółowo

Anna Sobocińska Sylwia Piwońska

Anna Sobocińska Sylwia Piwońska Anna Sobocińska Sylwia Piwońska Problem Wyszukiwanie liniowe W n-elementowym zbiorze Z wyszukać element posiadający pożądane własności. Wyszukiwanie liniowe (ang. linear search), zwane również sekwencyjnym

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

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

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

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

8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.

8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana. 8. Wektory Przykłady 8.1. Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana. Uwaga! Kod poniżej. To zadanie można rozwiązać przy użyciu wiedzy

Bardziej szczegół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

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

Wstęp do programowania

Wstęp do programowania wykład 6 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Losowanie liczb całkowitych Dostępne biblioteki Najprostsze losowanie liczb całkowitych można wykonać za pomocą funkcji

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

PROBLEM. Znaleźć rozkład liczby p > 1. na iloczyn czynników pierwszych.

PROBLEM. Znaleźć rozkład liczby p > 1. na iloczyn czynników pierwszych. PROBLEM Znaleźć rozkład liczby p > 1. na iloczyn czynników pierwszych. Postawiony problem posiada bardzo duże znaczenie w wielu dziedzinach informatyki szczególnie w kryptografii. Na dzień dzisiejszy nie

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

WHILE (wyrażenie) instrukcja;

WHILE (wyrażenie) instrukcja; INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while

Bardziej szczegół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

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

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

WHILE (wyrażenie) instrukcja;

WHILE (wyrażenie) instrukcja; INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while

Bardziej szczegółowo

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych Teoria liczb Zajmuje się własnościami liczb, przede wszystkim całkowitych Niepraktyczna? - kryptografia Dzielenie liczb całkowitych z resztą Niech b>0, wtedy dla każdej liczby całkowitej a istnieją jednoznacznie

Bardziej szczegółowo

Algorytm Euklidesa. Największy wspólny dzielnik dla danych dwóch liczb całkowitych to największa liczba naturalna dzieląca każdą z nich bez reszty.

Algorytm Euklidesa. Największy wspólny dzielnik dla danych dwóch liczb całkowitych to największa liczba naturalna dzieląca każdą z nich bez reszty. Algorytm Euklidesa Algorytm ten, jak wskazuje jego nazwa, został zaprezentowany przez greckiego matematyka - Euklidesa, żyjącego w w latach około 300r. p.n.e., w jego podstawowym dziele pt. Elementy. Algorytm

Bardziej szczegółowo

Wstęp do Informatyki

Wstęp do Informatyki Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 11 1 / 52 Pętla for # i n c l u d e

Bardziej szczegółowo

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska, Teoria liczb Magdalena Lemańska Literatura Matematyka Dyskretna Andrzej Szepietowski http://wazniak.mimuw.edu.pl/ Discrete Mathematics Seymour Lipschutz, Marc Lipson Wstęp Teoria liczb jest dziedziną matematyki,

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

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

Przykładowe zadania z teorii liczb

Przykładowe zadania z teorii liczb Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę

Bardziej szczegół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

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

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

Wstęp do programowania

Wstęp do programowania wykład 7 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Losowanie liczb całkowitych Dostępne biblioteki Najprostsze losowanie liczb całkowitych można wykonać za pomocą funkcji

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego

Bardziej szczegółowo

Proste programy w C++ zadania

Proste programy w C++ zadania Proste programy w C++ zadania Zbiór zadao do samodzielnego rozwiązania stanowiący powtórzenie materiału. Podstawy C++ Budowa programu w C++ Dyrektywy preprocesora Usunięcie dublujących się nazw Częśd główna

Bardziej szczegółowo

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

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()

Bardziej szczegół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

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania Zofia Kruczkiewicz Zakres Podstawowe algorytmy przetwarzania tablic (wypełnianie, porównywanie elementów,

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

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki INFORMATYKA Z MERMIDONEM Programowanie Moduł 5 / Notatki Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego. Realizator projektu: Opracowano w ramach projektu

Bardziej szczegółowo

Poszukiwanie liniowe wśród liczb naturalnych

Poszukiwanie liniowe wśród liczb naturalnych Poszukiwanie liniowe wśród liczb naturalnych Wiele problemów, dotyczących liczb naturalnych, można rozwiązać idąc w góręodzera(lubczasemodinnejliczby)isprawdzając,czyjuż. Przykład: (zadane reszty z dzielenia)

Bardziej szczegółowo

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba) 1. Liczby wymierne. - wartość bezwzględna liczby. dla 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba) - dla < 0 ( wartością bezwzględną liczby ujemnej jest liczba do niej przeciwna) W interpretacji

Bardziej szczegółowo

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

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std; Programowanie C++ Zadanie 1 Napisz program do obliczenia sumy i iloczynu ciągu liczb zakooczonego liczbą zero. Zakładamy, że ciąg zawiera co najmniej jedną liczbę (założenie to jest konieczne przy obliczeniu

Bardziej szczegół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

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

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Wykład 4. Określimy teraz pewną ważną klasę pierścieni. Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia

Bardziej szczegółowo

C++ wprowadzanie zmiennych

C++ wprowadzanie zmiennych C++ wprowadzanie zmiennych Każda zmienna musi być zadeklarowana, należy określić jej nazwę (identyfikator) oraz typ. Opis_typu lista zmiennych Dla każdej zmiennej rezerwowany jest fragment pamięci o określonym

Bardziej szczegół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

Wybrane zagadnienia teorii liczb

Wybrane zagadnienia teorii liczb Wybrane zagadnienia teorii liczb Podzielność liczb NWW, NWD, Algorytm Euklidesa Arytmetyka modularna Potęgowanie modularne Małe twierdzenie Fermata Liczby pierwsze Kryptosystem RSA Podzielność liczb Relacja

Bardziej szczegółowo

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

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny ALGORYMY Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu

Bardziej szczegółowo

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Podstawowe algorytmy i ich implementacje w C. Wykład 9 Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny

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

Programowanie komputerowe. Zajęcia 4

Programowanie komputerowe. Zajęcia 4 Programowanie komputerowe Zajęcia 4 Typ logiczny Wartości logiczne są reprezentowane przez typ bool. Typ bool posiada tylko dwie wartości: true i false. Zamiast wartości logicznych można używać wartości

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

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

Matematyka dyskretna

Matematyka dyskretna Matematyka dyskretna Wykład 4: Podzielność liczb całkowitych Gniewomir Sarbicki Dzielenie całkowitoliczbowe Twierdzenie: Dla każdej pary liczb całkowitych (a, b) istnieje dokładnie jedna para liczb całkowitych

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

Transponowanie macierzy Mnożenie macierzy Potęgowanie macierzy Wyznacznik macierzy

Transponowanie macierzy Mnożenie macierzy Potęgowanie macierzy Wyznacznik macierzy Transponowanie macierzy Mnożenie macierzy Potęgowanie macierzy Wyznacznik macierzy Problem Transponować macierz A m n na A T n m. Operacja transponowania macierzy polega na zamianie wierszy w kolumny i

Bardziej szczegółowo

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych Arytmetyka liczb całkowitych Wykład 1 Na początku zajmować się będziemy zbiorem liczb całkowitych Z = {0, ±1, ±2,...}. Zakładamy, że czytelnik zna relację

Bardziej szczegółowo

Instrukcje sterujące

Instrukcje sterujące Podstawy programowania w C++ Bibliografia: Instrukcje sterujące Nauka programowania dla początkujących; A. Struzińska-Walczak / K. Walczak CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com Opracował:

Bardziej szczegółowo

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

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 1 Podstawy programowania dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Ramowy program warsztatów 1. Pierwsze: Podstawy programowania 2. Drugie:

Bardziej szczegółowo

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne 1 Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,

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

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci: 1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci: * Jan Kowalski * * ul. Zana 31 * 3. Zadeklaruj zmienne przechowujące

Bardziej szczegół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

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

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

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

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

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły

Bardziej szczegółowo

ZADANIE 1. Ważenie (14 pkt)

ZADANIE 1. Ważenie (14 pkt) ZADANIE 1. Ważenie (14 pkt) Danych jest n przedmiotów o niewielkich gabarytach i różnych wagach. Jest też do dyspozycji waga z dwiema szalkami, ale nie ma odważników. Kładąc na wadze przedmioty a i b,

Bardziej szczegółowo

Zadania do samodzielnego rozwiązania

Zadania do samodzielnego rozwiązania Zadania do samodzielnego rozwiązania I. Podzielność liczb całkowitych 1. Pewna liczba sześciocyfrowa a kończy się cyfrą 5. Jeśli tę cyfrę przestawimy na miejsce pierwsze ze strony lewej, to otrzymamy nową

Bardziej szczegółowo

if (wyrażenie ) instrukcja

if (wyrażenie ) instrukcja if (wyrażenie ) instrukcja Jeśli wartość wyrażenia jest różna od zera, to jest wykonywana instrukcja, jeśli wartość wyrażenia jest równa 0, to dana instrukcja nie jest wykonywana Wyrażenie testowe podajemy

Bardziej szczegółowo

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata MACIERZE Sobiesiak Łukasz Wilczyńska Małgorzata Podstawowe pojęcia dotyczące macierzy Nie bez przyczyny zaczynamy od pojęcia macierzy, które jest niezwykle przydatne we wszystkich zastosowaniach, obliczeniach

Bardziej szczegół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

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

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

Jarosław Wróblewski Matematyka Elementarna, lato 2012/13. W dniu 21 lutego 2013 r. omawiamy test kwalifikacyjny.

Jarosław Wróblewski Matematyka Elementarna, lato 2012/13. W dniu 21 lutego 2013 r. omawiamy test kwalifikacyjny. W dniu 21 lutego 2013 r. omawiamy test kwalifikacyjny. Uwaga: Przyjmujemy, że 0 nie jest liczbą naturalną, tzn. liczby naturalne są to liczby całkowite dodatnie. 1. Dane są liczby naturalne m, n. Wówczas

Bardziej szczegółowo

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

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne 1 Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,

Bardziej szczegółowo

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for

Bardziej szczegółowo

Wieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa

Wieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa Wieczorowe Studia Licencjackie Wrocław, 7.11.2006 Wstęp do programowania Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa Zaprezentujemy teraz algorytm na wyznaczanie wszystkich

Bardziej szczegół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

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

Program 14. #include <iostream> #include <ctime> using namespace std; Program 14 Napisać: * funkcję słuŝącą do losowego wypełniania tablicy liczbami całkowitymi z podanego zakresu (*). Parametrami funkcji mają być tablica, jej długość oraz dwie liczby stanowiące krańce przedziału

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Programowanie Proceduralne Wykład 1 1 / 59 Cel wykładów z programowania

Bardziej szczegół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

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik

Bardziej szczegółowo

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

Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy dopóki nam sie nie znudzi. Program 3 Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy póki nam sie nie znudzi. #include using namespace std; int main() int odp,a,m; bool pierwsze_podanie =

Bardziej szczegółowo

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

Podstawy algorytmiki i programowania - wykład 3 Funkcje rekurencyjne Wyszukiwanie liniowe i binarne w tablicy 1 Podstawy algorytmiki i programowania - wykład 3 Funkcje rekurencyjne Wyszukiwanie liniowe i binarne w tablicy Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.

Bardziej szczegółowo

Luty 2001 Algorytmy (8) 2000/2001

Luty 2001 Algorytmy (8) 2000/2001 Algorytm Euklidesa Danymi są dwie nieujemne liczby całkowite m i n. Liczba k jest największym wspólnym dzielnikiem m i n, jeśli dzieli m oraz n i jest największą liczbą o tej własności - oznaczamy ją przez

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

Liczby pierwsze - generacja liczb pierwszych

Liczby pierwsze - generacja liczb pierwszych Artykuł pobrano ze strony eioba.pl Liczby pierwsze - generacja liczb pierwszych Do generacji liczb pierwszych wykorzystamy podaną w poprzednim rozdziale definicję liczby pierwszej. Algorytm będzie składał

Bardziej szczegółowo

Podstawy algorytmiki i programowania - wykład 6 Sortowanie- algorytmy

Podstawy algorytmiki i programowania - wykład 6 Sortowanie- algorytmy 1 Podstawy algorytmiki i programowania - wykład 6 Sortowanie- algorytmy Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com

Bardziej szczegółowo

Algorytm i złożoność obliczeniowa algorytmu

Algorytm i złożoność obliczeniowa algorytmu Algorytm i złożoność obliczeniowa algorytmu Algorytm - przepis postępowania, którego wykonanie prowadzi do rozwiązania określonego problemu określa czynności, jakie należy wykonać wyszczególnia wszystkie

Bardziej szczegółowo

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

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Historia C++ został zaprojektowany w 1979 przez Bjarne Stroustrupa jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych i

Bardziej szczegółowo

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych Ćwiczenie nr 3 Wyświetlanie i wczytywanie danych 3.1 Wstęp Współczesne komputery przetwarzają dane zakodowane za pomocą ciągów zerojedynkowych. W szczególności przetwarzane liczby kodowane są w systemie

Bardziej szczegółowo

ZBIÓR ZADAŃ Z INFORMATYKI

ZBIÓR ZADAŃ Z INFORMATYKI ZBIÓR ZADAŃ Z INFORMATYKI OPRACOWANY W RAMACH PROJEKTU KOMPETENCJE KLUCZOWE DROGĄ DO KARIERY WSPÓŁFINANSOWANEGO ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO opracowany przez

Bardziej szczegółowo

Algorytmy i język C++

Algorytmy i język C++ Wykład 6 Wskaźniki Wskaźnik nie przechowuje wartości zmiennej ale, podobnie jak tablica, wskazuje miejsce w pamięci, w którym znajduje się zmienna danego typu. W poniższym przykładzie symbol * pomiędzy

Bardziej szczegółowo

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

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną) 1 Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną) Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,

Bardziej szczegółowo

Piotr Chrząstowski-Wachtel Uniwersytet Warszawski. Al Chwarizmi i trzy algorytmy Euklidesa

Piotr Chrząstowski-Wachtel Uniwersytet Warszawski. Al Chwarizmi i trzy algorytmy Euklidesa Piotr Chrząstowski-Wachtel Uniwersytet Warszawski Al Chwarizmi i trzy algorytmy Euklidesa Algorytmika Najważniejsza część informatyki Opisuje jak rozwiązywać problemy algorytmiczne, jakie struktury danych

Bardziej szczegółowo