2999 - Trim: Difference between revisions
Vardai Erwin (talk | contribs) |
Vardai Erwin (talk | contribs) |
||
(3 intermediate revisions by one other user not shown) | |||
Line 30: | Line 30: | ||
:10 | :10 | ||
: | :3 | ||
:7 | :7 | ||
Line 37: | Line 37: | ||
:Datele introduse corespund restricțiilor impuse. | :Datele introduse corespund restricțiilor impuse. | ||
:1024 | |||
:5 | :5 | ||
: | :7 9 | ||
==Exemplul 2== | |||
;Intrare | |||
: | :12 | ||
:3 | |||
:4 | |||
;Ieșire | |||
; | |||
: Datele introduse corespund restricțiilor impuse. | |||
: 4096 | |||
: 3 | |||
: 4 6 8 10 12 | |||
== Rezolvare ver. 1 == | == Rezolvare ver. 1 == | ||
<syntaxhighlight lang="python" line="1" start="1"> | <syntaxhighlight lang="python" line="1" start="1"> | ||
def validare( | def validare(k, r, n): | ||
return | return 1 <= k <= r <= n <= 100 | ||
def numar_submultimi_pare(n): | |||
# Calculează numărul de submulțimi cu cardinalitatea pară | |||
return 2 ** n | |||
if len( | def medie_submultimi(submultimi, k, r): | ||
# Calculează media aritmetică a elementelor din submulțimile k și r | |||
# Dacă k și r sunt în afara intervalului corect, returnează None | |||
if k < 1 or r > len(submultimi) or k > r: | |||
return None | |||
else: | |||
submultimi_k_r = submultimi[k - 1:r:2] # obține submulțimile de la k la r, cu pași de 2 | |||
medie = sum(submultimi_k_r) / len(submultimi_k_r) | |||
return medie | |||
def submultime_specifica(submultimi, r): | |||
# Obține elementele submulțimii r sub forma specificată | |||
if r > len(submultimi): | |||
return None | |||
else: | |||
submultime_r = submultimi[r - 1::2] # obține elementele submulțimii r, cu pași de 2 | |||
return submultime_r | |||
if __name__ == "__main__": | if __name__ == "__main__": | ||
n = int(input("Introduceți numărul | # Citirea datelor de intrare de la tastatură | ||
k = int(input("Introduceți numărul k: ")) | n = int(input("Introduceți numărul total de elemente: ")) | ||
r = int(input("Introduceți numărul r: ") | k = int(input("Introduceți numărul de ordine k: ")) | ||
r = int(input("Introduceți numărul de ordine r: ")) | |||
# Verificare restricții | |||
if not validare(k, r, n): | |||
print("Datele de intrare nu corespund restricțiilor impuse.") | |||
else: | else: | ||
print("Datele | # Obținere număr de submulțimi cu cardinalitatea pară | ||
print("Datele de intrare corespund restricțiilor impuse.") | |||
numar_submultimi_pare = numar_submultimi_pare(n) | |||
print("Numărul de submulțimi cu cardinalitatea pară:", numar_submultimi_pare) | |||
# Generare submulțimi | |||
submultimi = list(range(1, n + 1)) | |||
# Obținere medie aritmetică | |||
medie = medie_submultimi(submultimi, k, r) | |||
if medie is not None: | |||
print("Media aritmetică a numerelor din submulțimile k și r:", medie) | |||
else: | |||
print("Nu se poate calcula media aritmetică pentru valorile introduse.") | |||
# Obținere submulțime specifică | |||
submultime_specifica = submultime_specifica(submultimi, r) | |||
if submultime_specifica is not None: | |||
print("Elementele submulțimii r sub forma specificată:", submultime_specifica) | |||
else: | |||
print("Nu se poate obține submulțimea specificată pentru valorile introduse.") | |||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 11:39, 30 April 2023
Cerință[edit | edit source]
Scrieți un program care citește de la tastatură trei numere naturale n, k și r și afișează:
- câte submulțimi sunt formate dintr-un număr de elemente pare (cardinalul submulțimilor este un număr par)
- media aritmetică a elementelor din submulțimile cu număr de ordine k și r (0 < k ≤ r ≤ 100)
- elementele submulțimii r sub forma: primul, al doilea, ultimul, al treilea, al patrulea, penultimul, etc.
Date de intrare[edit | edit source]
Programul va citi de la tastatură n, k și r numere naturale.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." Se afișează fiecare pe câte o linie:
- numărul de submulțimi cu număr de elemente pare
- media aritmetică a numerelor din submulțimile k și r
- elementele submulțimii r sub forma: primul, al doilea, ultimul, al treilea, al patrulea, penultimul, etc.
În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
Restricții de precizări[edit | edit source]
- 1 ⩽ k ⩽ r ⩽ n 100
Exemplul 1[edit | edit source]
- Intrare
- 10
- 3
- 7
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 1024
- 5
- 7 9
Exemplul 2[edit | edit source]
- Intrare
- 12
- 3
- 4
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 4096
- 3
- 4 6 8 10 12
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line="1" start="1"> def validare(k, r, n):
return 1 <= k <= r <= n <= 100
def numar_submultimi_pare(n):
# Calculează numărul de submulțimi cu cardinalitatea pară return 2 ** n
def medie_submultimi(submultimi, k, r):
# Calculează media aritmetică a elementelor din submulțimile k și r # Dacă k și r sunt în afara intervalului corect, returnează None if k < 1 or r > len(submultimi) or k > r: return None else: submultimi_k_r = submultimi[k - 1:r:2] # obține submulțimile de la k la r, cu pași de 2 medie = sum(submultimi_k_r) / len(submultimi_k_r) return medie
def submultime_specifica(submultimi, r):
# Obține elementele submulțimii r sub forma specificată if r > len(submultimi): return None else: submultime_r = submultimi[r - 1::2] # obține elementele submulțimii r, cu pași de 2 return submultime_r
if __name__ == "__main__":
# Citirea datelor de intrare de la tastatură n = int(input("Introduceți numărul total de elemente: ")) k = int(input("Introduceți numărul de ordine k: ")) r = int(input("Introduceți numărul de ordine r: "))
# Verificare restricții if not validare(k, r, n): print("Datele de intrare nu corespund restricțiilor impuse.") else: # Obținere număr de submulțimi cu cardinalitatea pară print("Datele de intrare corespund restricțiilor impuse.") numar_submultimi_pare = numar_submultimi_pare(n) print("Numărul de submulțimi cu cardinalitatea pară:", numar_submultimi_pare)
# Generare submulțimi submultimi = list(range(1, n + 1))
# Obținere medie aritmetică medie = medie_submultimi(submultimi, k, r) if medie is not None: print("Media aritmetică a numerelor din submulțimile k și r:", medie) else: print("Nu se poate calcula media aritmetică pentru valorile introduse.")
# Obținere submulțime specifică submultime_specifica = submultime_specifica(submultimi, r) if submultime_specifica is not None: print("Elementele submulțimii r sub forma specificată:", submultime_specifica) else: print("Nu se poate obține submulțimea specificată pentru valorile introduse.")
</syntaxhighlight>