Programowanie Python Lab2 KEiPI
Programowanie Python Lab2 KEiPI
Instrukcje i operatory: if, else, elif, while, for, in, Zad. 2.0.1. Napisać program obliczania modułu (wartości
pass, break, continue, and, or, not bezwzględnej) liczby x, czyli |x|. Liczbę x należy wczytać z
klawiatury. Rozważyć dwa oddzielne przypadki: 1. x jest
Celem tego laboratorium jest opanowanie prawidłowego liczbą całkowitą, 2. x jest liczbą rzeczywistą.
używania prostych i złożonych instrukcji warunkowych
Zad. 2.0.2. Napisać program sprawdzania parzystości
oraz pętli. Przed przystąpieniem do rozwiązywania zadań
liczby całkowitej x, którą należy wczytać z klawiatury.
należy zapoznać się z wiedzą na te tematy podaną na wy-
kładach oraz warto poczytać poradniki w Internecie. Zad. 2.0.3. Napisać program realizujący funkcję wyzna-
czania znaku liczby rzeczywistej, czyli funkcję signum,
Linki do informacji na temat instrukcji warunkowych: zdefiniowaną następująco: sgn(x) = { -1 dla x<0, 0 dla
https://www.w3schools.com/python/python_conditions.asp x=0, 1 dla x>0 }.
https://www.learnpython.org/pl/Instrukcje_warunkowe Zad. 2.0.4. Napisać program, który zwróci: x+1 dla x<0,
x dla x<0,1>, x2-1 dla x>1.
https://www.flynerd.pl/2018/03/python-6-logika-pythona-
instrukcje-warunkowe.html Zad. 2.0.5. Napisać program, który napisze słownie, z
jakiej grupy został odczytany znak z klawiatury (cyfry, małe
https://www.pythontutorial.net/python-basics/python-if/ litery, duże litery, inne znaki).
https://www.pythontutorial.net/python-basics/python- Zad. 2.0.6. Napisać program zamiany oceny numerycznej
ternary-operator/ ze zbioru { 2; 2,5; 3; 3,5; 4; 4,5; 5 } na postać słowną (np.
„dwa” zamiast 2; „trzy i pół” zamiast 3,5 itd.).
Linki do informacji na temat pętli: Zad. 2.0.7. Napisać program, który dla liczb całkowitych a,
b i c sprawdzi, czy są one bokami trójkąta. Wskazówka:
https://www.w3schools.com/python/python_while_loops.a
liczby a, b, i c są bokami trójkąta wtedy i tylko wtedy, gdy
sp wszystkie są dodatnie oraz gdy równocześnie suma do-
https://www.w3schools.com/python/python_for_loops.asp wolnych dwóch z nich jest większa od trzeciej.
Linki do całych tutoriali na temat Pythona: Zad. 2.0.11. Napisać prosty kalkulator. Ma on pobierać
https://www.w3schools.com/python/ dwie liczby rzeczywiste od użytkownika oraz znak operacji
https://www.learnpython.org/pl/ (+ dla dodawania, - dla odejmowania, * dla mnożenia, : dla
https://www.pythontutorial.net/ dzielenia, ^ dla potęgowania) i następnie zwrócić wynik.
Uwzględnić sytuacje wyjątkowe, tzn. dzielenie przez zero
https://www.javatpoint.com/python-tutorial
oraz podnoszenie zera do potęgi zerowej - wtedy napisać
https://www.tutorialspoint.com/python/index.htm tekst, że wynik jest nieokreślony.
https://www.programiz.com/python-programming
Zad. 2.0.12. Napisać program, który będzie pobierał tekst
https://realpython.com/ od użytkownika i następnie, wykorzystując instrukcję wa-
https://www.mygreatlearning.com/blog/python-tutorial- runkową, sprawdzić, czy chociaż jedna litera w tekście jest
for-beginners-a-complete-guide/
Instrukcja do laboratorium komputerowego z przedmiotu Programowanie w języku Python, dla EM0-DI
Katedra Elektrotechniki i Podstaw Informatyki WEiI, dr inż. Grzegorz Drałus, dr inż. Antoni Szczepański
-2-
wielka. Jeśli tak, to zamienić cały tekst na wielkie litery. przez 3, „//5”, gdy liczba będzie podzielna przez 5, „//3i5”,
Jeżeli nie, to zamienić tylko pierwszą literę na wielką. gdy liczba będzie równocześnie podzielna przez 3 oraz 5.
Zad. 2.0.13. Napisać program, który będzie pobierał od Zad. 2.1.7. Narysować algorytm i napisać program a) obli-
użytkownika sekwencję znaków oraz pojedynczy znak („m” czania silni n, b) obliczania wyrażania n!/m! (n>m).
albo „d”). W chwili, gdy użytkownik wpisze swój łańcuch,
Zad. 2.1.8. `Napisać program, który pobierze od użytkow-
zostanie poproszony o wprowadzenie znaku. Jeżeli wpro-
nika liczbę całkowitą dodatnią, a następnie wypisze scho-
wadzi „d”, wypisać wcześniej wprowadzony łańcuch ze
dy, w których ostatnim stopniem będzie pobrana liczba
zmienionymi wszystkimi literami na duże, jeżeli wprowadzi
wypisana tyle razy, ile wynosi jej wartość.
„m”, wypisać łańcuch ze zmienionymi literami na małe.
Zad. 2.1.9. Napisać program który znajdzie wszystkie licz-
Zad. 2.0.14. Napisać program, który wczyta liczbę zespo-
by podzielne przez 7 i jednocześnie będące wielokrotno-
loną z od użytkownika i wypisze jeden z komunikatów:
ścią liczby 5. Jako zakres liczb ustawić 2000-3000.
liczba z leży w I. (II., III. albo IV.) ćwiartce płaszczyzny
zespolonej; liczba leży na osi rzeczywistej; liczba leży na
Zad. 2.1.10. Napisać program, który wypisze wszystkie
osi urojonej; liczba leży w początku płaszczyzny zespolo-
liczby z zakresu 0-40 z wyjątkiem liczb podzielnych przez
nej (tylko liczba 0 + 0j). Aby wydobyć z liczby zespolonej
4, w tym celu można skorzystać z instrukcji continue.
jej część rzeczywistą i zespoloną, użyć z.real oraz z.imag.
Zad. 2.1.11. Narysować algorytm i napisać program obli-
Zad. 2.0.15. Rok jest przestępny, jeżeli liczba go określa-
czania Największego Wspólnego Dzielnika NWD(a,b) wg
jąca jest podzielna przez 4 i równocześnie nie jest podziel-
alg. Euklidesa – odejmowanie liczby mniejszej od większej.
na przez 100 lub gdy jest podzielna przez 400. Napisać
program, który poprosi użytkownika o wprowadzenie roku Zad. 2.1.12. Napisać program obliczania NWD(a,b) wg
z przedziału od 1600 do 2100 i odpowie mu, czy rok jest algorytmu z dzieleniami: NWD(a, b) = NWD(b, a mod b).
przestępny czy nie.
Zad. 2.1.13. Napisać program obliczania Największej
Zad. 2.0.16. Użytkownik wprowadza dzień (liczba z prze- Wspólnej Wielokrotności liczb a i b jako a*b/NWD(a,b).
działu od 1 do 31), a następnie miesiąc (liczba z przedziału
od 1 do 12). Napisać program, który najpierw sprawdzi, Zad. 2.1.14. Napisać program obliczania potęgi całkowitej
czy podana data jest prawidłowa (miesiące różnią się licz- n liczby rzeczywistej x, czyli xn (z użyciem pętli - będzie to
bą dni!) i następnie napisze, do której z czterech pór roku potrzebne w niektórych zadaniach).
należy podana data. Założyć, że luty ma 28 dni. Ponadto Zad. 2.1.15. Napisać program generowania liczb pierw-
założyć, że: wiosna zaczyna się 20 marca, lato zaczyna szych, stosując algorytmy podane na stronie:
się 21 czerwca, jesień zaczyna się 23 września i zima za- https://eduinf.waw.pl/inf/utils/010_2010/0209.php .
czyna się 22 grudnia. Nie wolno używać żadnej biblioteki
Pythona związanej z kalendarzem. Zad. 2.1.16.
1 1 1
4 1 ... .
Iteracje, pętle while, for - część 1. 3 5 7
Zad. 2.1.1. Narysować algorytm i napisać program wypi- Wyznaczyć przybliżoną wartość wykorzystując N skład-
sywania kolejnych liczb parzystych w podanym zakresie. ników szeregu (N jest daną wejściową algorytmu).
Podczas testowania wyniku posłużyć się stałą pi.
Zad. 2.1.2. Napisać program, który będzie sprawdzał pa-
rzystość liczb całkowitych w pętli. Jeżeli podany łańcuch
nie jest liczbą całkowitą, wtedy program kończy działanie. Zad. 2.1.17.
Napisać program (algorytm), który wyznaczy rząd liczby
Zad. 2.1.3. Napisać program, który w pętli pobiera oceny całkowitej (cyfrowo / słownie).
od użytkownika (1, 2, 3, 4, 5 lub 6) i na bieżąco zwraca ich
średnią arytmetyczną. W przypadku wpisania liczby więk- Zad. 2.1.18. Narysować algorytm i napisać program obli-
szej od 6 bądź równej 0, program przerywa działanie. czania średniej z wprowadzonych liczb. Wprowadzamy
liczby w pętli. Jeżeli wprowadzimy 0 to przerywamy pętle i
Zad. 2.1.4. Napisać program, który wypisze kolejno każdą obliczamy średnią.
literę z ciągu „Python ver 3.8.6”. Zad. 2.1.19. Narysować algorytm i napisać program, który
zwróci ilość kolejnych liczb naturalnych, zaczynając od 1,
Zad. 2.1.5. Napisać program wyświetlania a) znaków na które trzeba dodać do siebie, aby suma była większa od
podstawie kodu ASCII, b) dużych liter c) wszystkich liter. podanej liczby M.
Zad. 2.1.6. Napisać program, który przejdzie po liczbach
od 1 do 125 i wypisze: „//3”, gdy liczba będzie podzielna
Zad. 2.1.20. x2 x4 x6 x 2n
Do obliczenia pierwiastka kwadratowego z liczby dodatniej cos( x) 1 ...(1) n
A można posłużyć się zależnością: 2! 4! 6! (2n)!
1 A
xi xi 1 Zad. 2.2.6.
2 xi 1 Napisać program na obliczanie wartości funkcji cosh(x) dla
gdzie xi jest kolejnym przybliżeniem pierwiastka poczyna- n=10 (n – wartość najwyższej potęgi). Obliczenia wykonaj
wg poniższego wzoru:
jąc od dowolnej wartości dodatniej x0, np. x0=1. Wyznaczyć
przybliżenie pierwiastka spełniające zależność: x 2 x4 x6
cosh( x) 1
xi2 A 2! 4! 6!
5 10 12 . W ilu krokach obliczany jest pierwiastek
A Zad. 2.2.7.
z 10000? Wskazówka: 5e-12 jest zapisem naukowym licz- Napisać program na obliczanie sumy szeregu wg poniż-
by 5•10-12, natomiast |x| to funkcja abs(x). szego wzoru:
2 2 4 4 6 6
Zad. 2.1.21. Napisz program, aby uzyskać ciąg Fibonac-
2 1 3 3 5 5
ciego z zakresu liczb 0-100.
Zad. 2.2.8.
Iteracje, pętle while, for – część 2. Napisać program na obliczanie sumy szeregu wg poniż-
szego wzoru:
Zad. 2.2.1.
2 2 2 2 2 2 2
Napisać algorytm i program obliczający sumę szeregu
2 2 2
e n
1
uwzględniając M początkowych składników.
n 0 2 n!
Zad. 2.2.9.
W rozwiązaniu obliczanie silni n! oraz potęgi liczby nie jest
Napisać program na obliczanie wartości wielomianu dla
konieczne.
podanej liczby x i stopnia wielomianu n według wzoru:
Zad. 2.2.2
2
s 1 2x 3x 2 4x3 ... nx n1
1
1
e n lub e
n
n 0 2 n! n 0 ! Zad. 2.2.10.
Napisać algorytm i program obliczający liczbę „e” jako Napisać program na obliczanie wartości wielomianu dla
podanej liczby x i stopnia wielomianu n według wzoru:
sumę częściową szeregu uwzględniając M składników.
𝑠 = 0.5 + 𝑥 + 2𝑥 2 + ⋯ + 𝑛𝑥 𝑛
Zad. 2.2.3. Zad. 2.2.11.
Napisać algorytm i program obliczający wartość funkcji ex, Napisać program na obliczanie sumy szeregu wg poniż-
uwzględniając M początkowych składników szeregu: szego wzoru ( dowolne k, l, m ≠ i ):
xn x x2 x3 100
i2
ex
n!
1
1 2!
3!
(k i)(l i)(m i)
n 0 i 1
W rozwiązaniu obliczanie silni n! oraz potęgi liczby nie jest
Zad. 2.2.12.
konieczne.
Napisać program na obliczanie sumy szeregu wg poniż-
szego wzoru (oraz 1 < k < 50):
Zad. 2.2.4. k 1
ik 50
ik
Napisać program na obliczanie wartości funkcji arctg(x) dla
n=10 (n – wartość najwyższej potęgi). Obliczenia wykonać
(i k ) i k 1 (k i )
i 1
wg poniższego wzoru:
x3 x5 x 7 Zad. 2.2.13.
arctg ( x) x Napisać program na obliczanie sumy szeregu wg poniż-
3 5 7
szego wzoru (x R).
Zad. 2.2.5. 100
ix
Napisać program na obliczanie wartości funkcji cos(x) (n –
wartość najwyższej potęgi). Obliczenia wykonać wg poniż- i2 1
i 1
szego wzoru: