0030 - AfisareMultipli: Difference between revisions
Cuceu Andrei (talk | contribs) Pagină nouă: ==Cerință== Scrieți definiția completă a funcției Python '''sub''' care primește doi parametri '''n''' și '''k''' și determină afișarea pe ecran, în ordine descrescătoare, a primelor '''n''' numere naturale nenule divizibile cu '''k'''. ==Restricții de precizări== *numele funcției va fi sub *funcția va avea exact doi parametri, în ordinea: n, respectiv k *0 < n ≤ 50, 0 < k ≤ 20 *cele n numere vor fi afișate pe aceeași linie, separate prin câte un... |
Vardai Erwin (talk | contribs) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
Scrieți definiția completă a funcției Python '''sub''' care primește doi parametri '''n''' și '''k''' și determină afișarea pe ecran, în ordine descrescătoare, a primelor '''n''' numere naturale nenule divizibile cu '''k'''. | Scrieți definiția completă a funcției Python '''sub''' care primește doi parametri '''n''' și '''k''' și determină afișarea pe ecran, în ordine descrescătoare, a primelor '''n''' numere naturale nenule divizibile cu '''k'''. | ||
==Date de intrare== | |||
Se citește de la tastatură '''n '''(numărul de numere naturale nenule divizibile cu k ce urmează a fi afișate) și '''k''' (numărul cu care trebuie să fie divizibile numerele afișate). | |||
==Date de ieșire== | |||
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa primele n numere naturale nenule divizibile cu k, în ordine descrescătoare, separate prin câte un spațiu. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse.". | |||
==Restricții de precizări== | ==Restricții de precizări== | ||
Line 14: | Line 21: | ||
==Exemplu== | ==Exemplu== | ||
;Intrare | |||
:3 | |||
:5 | |||
;Ieșire | |||
:Datele de intrare sunt corecte. | |||
:15,10,5 | |||
==Important== | ==Important== | ||
Line 25: | Line 36: | ||
===Rezolvare ver. 1=== | ===Rezolvare ver. 1=== | ||
<syntaxhighlight lang="python" line="1" start="1"> | <syntaxhighlight lang="python" line="1" start="1"> | ||
def validare(n, k): | |||
if not isinstance(n, int) or n <= 0 or n > 50: | |||
print("Eroare: n trebuie să fie un număr întreg pozitiv între 1 și 50.") | |||
return False | |||
if not isinstance(k, int) or k <= 0 or k > 20: | |||
print("Eroare: k trebuie să fie un număr întreg pozitiv între 1 și 20.") | |||
return False | |||
return True | |||
# Definim funcția sub care primește doi parametri n și k | # Definim funcția sub care primește doi parametri n și k | ||
# și afișează primele n numere divizibile cu k în ordine descrescătoare. | # și afișează primele n numere divizibile cu k în ordine descrescătoare. | ||
Line 30: | Line 52: | ||
i = k * n | i = k * n | ||
while n > 0: | while n > 0: | ||
print(i, end=' ') | if n > 1: | ||
print(i, end=',') | |||
else: | |||
print(i) | |||
i -= k | i -= k | ||
n -= 1 | n -= 1 | ||
# Program principal | # Program principal | ||
Line 39: | Line 65: | ||
n = int(input("Introduceți numărul de elemente: ")) | n = int(input("Introduceți numărul de elemente: ")) | ||
k = int(input("Introduceți divizorul: ")) | k = int(input("Introduceți divizorul: ")) | ||
# Verificăm restricțiile impuse în cerință | # Verificăm restricțiile impuse în cerință | ||
if n <= 0 or n > 50: | if n <= 0 or n > 50: | ||
Line 47: | Line 73: | ||
else: | else: | ||
# Apelăm funcția sub și afișăm rezultatul | # Apelăm funcția sub și afișăm rezultatul | ||
sub(n, k) | print("Datele de intrare sunt corecte.") | ||
sub(n, k) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicatii== | |||
Acest cod definește o funcție sub(n, k) care primește doi parametri, n și k, și afișează primele n numere divizibile cu k în ordine descrescătoare. Programul citește valorile n și k de la tastatură și verifică dacă acestea respectă restricțiile impuse în cerință, folosind funcția de validare validare(n, k). | |||
Funcția validare(n, k) verifică dacă n și k sunt numere întregi pozitive și dacă se încadrează în intervalele impuse în cerință. Dacă valorile nu respectă aceste restricții, se afișează un mesaj de eroare corespunzător și se returnează False. În caz contrar, se returnează True. | |||
Dacă ambele valori de intrare sunt valide, programul afișează mesajul "Datele de intrare sunt corecte." și apelează funcția sub(n, k), care calculează primele n numere divizibile cu k în ordine descrescătoare și le afișează pe ecran, separate prin câte un spațiu. | |||
Notă: Acest cod nu utilizează funcția de validare validare(n, k). Pentru a utiliza această funcție, trebuie să înlocuiți blocul de cod care verifică restricțiile impuse în cerință cu apelul funcției validare. |
Latest revision as of 16:40, 6 May 2023
Cerință[edit | edit source]
Scrieți definiția completă a funcției Python sub care primește doi parametri n și k și determină afișarea pe ecran, în ordine descrescătoare, a primelor n numere naturale nenule divizibile cu k.
Date de intrare[edit | edit source]
Se citește de la tastatură n (numărul de numere naturale nenule divizibile cu k ce urmează a fi afișate) și k (numărul cu care trebuie să fie divizibile numerele afișate).
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." și programul va afișa primele n numere naturale nenule divizibile cu k, în ordine descrescătoare, separate prin câte un spațiu. Î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]
- numele funcției va fi sub
- funcția va avea exact doi parametri, în ordinea: n, respectiv k
- 0 < n ≤ 50, 0 < k ≤ 20
- cele n numere vor fi afișate pe aceeași linie, separate prin câte un spațiu
Exemplu[edit | edit source]
- Intrare
- 3
- 5
- Ieșire
- Datele de intrare sunt corecte.
- 15,10,5
Important[edit | edit source]
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line="1" start="1">
def validare(n, k):
if not isinstance(n, int) or n <= 0 or n > 50: print("Eroare: n trebuie să fie un număr întreg pozitiv între 1 și 50.") return False if not isinstance(k, int) or k <= 0 or k > 20: print("Eroare: k trebuie să fie un număr întreg pozitiv între 1 și 20.") return False return True
- Definim funcția sub care primește doi parametri n și k
- și afișează primele n numere divizibile cu k în ordine descrescătoare.
def sub(n, k):
i = k * n while n > 0: if n > 1: print(i, end=',') else: print(i) i -= k n -= 1
- Program principal
if __name__ == '__main__':
# Citim valorile n și k de la tastatură n = int(input("Introduceți numărul de elemente: ")) k = int(input("Introduceți divizorul: "))
# Verificăm restricțiile impuse în cerință if n <= 0 or n > 50: print("Eroare: n trebuie să fie între 1 și 50.") elif k <= 0 or k > 20: print("Eroare: k trebuie să fie între 1 și 20.") else: # Apelăm funcția sub și afișăm rezultatul print("Datele de intrare sunt corecte.") sub(n, k)
</syntaxhighlight>
Explicatii[edit | edit source]
Acest cod definește o funcție sub(n, k) care primește doi parametri, n și k, și afișează primele n numere divizibile cu k în ordine descrescătoare. Programul citește valorile n și k de la tastatură și verifică dacă acestea respectă restricțiile impuse în cerință, folosind funcția de validare validare(n, k).
Funcția validare(n, k) verifică dacă n și k sunt numere întregi pozitive și dacă se încadrează în intervalele impuse în cerință. Dacă valorile nu respectă aceste restricții, se afișează un mesaj de eroare corespunzător și se returnează False. În caz contrar, se returnează True.
Dacă ambele valori de intrare sunt valide, programul afișează mesajul "Datele de intrare sunt corecte." și apelează funcția sub(n, k), care calculează primele n numere divizibile cu k în ordine descrescătoare și le afișează pe ecran, separate prin câte un spațiu.
Notă: Acest cod nu utilizează funcția de validare validare(n, k). Pentru a utiliza această funcție, trebuie să înlocuiți blocul de cod care verifică restricțiile impuse în cerință cu apelul funcției validare.