Laboratorium 7

Transkrypt

Laboratorium 7
Zadania z programowania w języku Python
do wykładu 6
dr Andrzej Zbrzezny
Instrukcja iteracyjna while
Uwaga: Poprawne rozwiązanie każdego zadania powinno zawierać definicję funkcji
obliczającej odpowiednią wartość oraz wywołanie tej funkcji w funkcji main (tak jak
w przykładowym rozwiązaniu zadania 1.5a).
1
Proste iteracje
1. Wczytać liczbę naturalną do zmiennej n. Do każdego z poniższych punktów napisać
program, który obliczy wartość podanego w tym punkcie wyrażenia:
(a) 2n
(b) n!
(c) (1 +
(d)
1
)
12
1
1 + sin 1
· (1 +
+
1
)
22
· . . . · (1 +
1
sin 1 + sin 2
+ ... +
1
)
n2
1
sin 1 + ... + sin n
2. Wczytać liczbę naturalną do zmiennej n oraz liczbę rzeczywistą do zmiennej a. Do
każdego z poniższych punktów napisać program, który obliczy wartość podanego
w tym punkcie wyrażenia:
(a) an
(b) a · (a + 1) · . . . · (a + n − 1)
(c)
1
a
+
1
a·(a+1)
(d)
1
a
+
1
a2
+
+ ... +
1
a4
1
a·(a+1)·...·(a+n)
+ ... +
1
a2n
(e) a · (a − n) · (a − 2n) · . . . · (a − n2 )
3. Wczytać liczbę rzeczywistą do zmiennej x. Do każdego z poniższych punktów napisać
program, który obliczy wartość podanego w tym punkcie wyrażenia:
5
7
9
11
x3
+ x5! − x7! + x9! − x11!
3!
(x − 2)·(x − 4)(x − 8)·...·(x − 64)
(x − 1)·(x − 3)·(x − 7)·...·(x − 63)
(a) x −
(b)
+
x13
13!
(c) sin x + sin2 x + . . . + sinn x
(d) sin x + sin x2 + . . . + sin xn
(e) sin x + sin sin x + . . . + sin sin . . . sin x
4. Wczytać liczbę rzeczywistą do zmiennej a. Do każdego z poniższych punktów napisać
program odpowiedni program:
(a) spośród liczb postaci 1, 1 + 12 , 1 + 12 + 31 , . . . znaleźć najmniejszą liczbę większą
od a
(b) znaleźć najmniejszą liczbę n, taką że 1 + 12 + 31 + . . . +
1
n
>a
5. Wczytać liczbę naturalną do zmiennej n. Do każdego z poniższych punktów napisać
odpowiedni program:
(a) Obliczyć ilość cyfr w liczbie n. (Przykład: dla liczby n = 1989 poprawną odpowiedzią jest liczba 4)
(b) Obliczyć sumę cyfr liczby n. (Przykład: dla liczby n = 1989 poprawną odpowiedzią jest liczba 27)
(c) Znaleźć najbardziej znaczącą cyfrę liczby n. (Przykład: dla liczby n = 1989
poprawną odpowiedzią jest liczba 1)
6. Wczytać dwie liczby naturalne do zmiennych m i n. Obliczyć sumę m najmniej znaczących cyfr liczby n. (Przykład: dla liczb m = 2 i n = 1989 poprawną odpowiedzią
jest liczba 17, a dla liczb m = 5 i n = 1989 komunikat Niepoprawne dane)
7. Wczytać liczbę naturalną do zmiennej n. Sprawdzić czy liczba n jest liczbą pierwszą.
8. Wczytać dwie liczby naturalne do zmiennych m i n. Wypisać wszystkie liczby pierwsze p, takie że m ≤ p ≤ n.
9. Wczytać dwie liczby naturalne do zmiennych m i n. Obliczyć ile jest liczb pierwszych
p, takich że m ≤ p ≤ n.
2
Iteracyjne wczytywanie danych
1. Do każdego z poniższych punktów napisać odpowiedni program. W każdym z tych
programów wczytać liczbę naturalną n, a następnie wczytując kolejno n liczb rzeczywistych obliczyć wartość odpowiednich wyrażeń:
(a) a1 + a2 + . . . + an
(b) a1 · a2 · . . . · an
(c) |a1 | + |a2 | + . . . + |an |
(d) |a1 | · |a2 | · . . . · |an |
(e) a21 + a22 + . . . + a2n
(f) a1 + a2 + . . . + an oraz a1 · a2 · . . . · an
(g) a1 − a2 + a3 − . . . + (−1)n+1 · an
(h) − a1!1 +
a2
2!
− ... +
(−1)n ·an
n!
Przykładowe rozwiązanie zadania 5a
#!/usr/bin/env python3
def main():
n = int(input("Podaj liczb˛
e naturalna˛ dodatnia:
˛ "))
if n > 0:
print("Ilość cyfr liczby", n, ":", ile_cyfr(n))
else:
print("Skup si˛
e! Powiedziałem \"Dodatnia\"!")
˛
def ile_cyfr(n):
ile = 0
while n > 0:
ile += 1
n //= 10
return ile
if __name__ == "__main__":
main()