MEGOLDÁSOK
7. Alapvető algoritmusok
1.1 Feladat
Készíts egy programot, amely [1;10] intervallumon generál 5 darab véletlen egész számot, és ezeket tárolja el egy listában!
A program adja össze a lista elemeit, írja ki a képernyőre az összegüket és a lista elemeit!
import random
lista = []
index = 0
osszeg = 0
while index < 5:
velSzam = random.randint(1,10)
lista.append(velSzam)
index += 1
osszeg += velSzam
print(*lista, sep=", ")
print(osszeg)
Rövid megoldás:
import random
lista = [random.randint(1, 10) for _ in range(5)]
osszeg = sum(lista)
print(*lista, sep=", ")
print(osszeg)
1.2 Feladat
Módosítsd úgy a fenti programot, hogy a program csak a páros számokat adja össze!
import random
lista = []
osszeg = 0
for _ in range(5):
velSzam = random.randint(1, 10)
lista.append(velSzam)
if velSzam % 2 == 0:
osszeg += velSzam
print(*lista, sep=", ")
print(osszeg)
2. Feladat
Írj egy programot, amely a felhasználótól kér be egész számokat [-5;5] intervallumban.
A bekérés akkor fejeződjön be, amikor a felhasználó intervallumon kívüli értéket ad meg!
A program írja ki a megadott intervallumba eső számokat és az összegüket!
szamok = []
osszeg = 0
while True:
szam = int(input("Kérlek adj meg egy számot [-5, 5] intervallumban: "))
if szam <= 5 and szam >= -5:
szamok.append(szam)
osszeg += szam
else:
print("Nem számot adtál meg, próbáld újra!")
break
print("A megadott számok: ", end="")
print(*szamok, sep=", ")
print("A számok összege:", osszeg)
EXTRA - Készíts egy programot, amely kiszámítja a felhasználó által megadott szám faktoriálisát!
A program természetesen csak értelmezhető számokat fogadjon el bemenetként, és helyesen értelmezze 0 és 1 faktoriálisát is!
def faktorialis(n):
if n == 0 or n == 1:
return 1
eredmeny = 1
for i in range(2, n + 1):
eredmeny *= i
return eredmeny
while True:
szam = input("Kérlek adj meg egy egész számot, hogy kiszámolhassam a faktoriálisát: ")
if szam.lstrip('-').isdigit():
szam = int(szam)
if szam < 0:
print("A negatív számok faktoriálisát nem tudom kiszámolni. Próbálj egy nem negatív számot megadni!")
else:
eredmeny = faktorialis(szam)
print(f"A {szam} faktoriálisa: {eredmeny}")
break
else:
print("Kérlek, érvényes egész számot adj meg!")