2243 - Caracterul Mediu: Difference between revisions
Sinn Erich (talk | contribs) |
Sinn Erich (talk | contribs) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 11: | Line 11: | ||
Programul va afișa pe ecran caracterul mediu. | Programul va afișa pe ecran caracterul mediu. | ||
Dacă datele sunt introduse corect, | Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează caracterul mediu al mai multor numere. | ||
În | În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse." | ||
== Restricţii şi precizări == | == Restricţii şi precizări == | ||
Line 21: | Line 21: | ||
== Exemplul 1 == | == Exemplul 1 == | ||
; | ; Datele de intrare | ||
: | : Introduceti un caracter: F | ||
; | :Introduceti un caracter: Z | ||
: P | :Introduceti un caracter: . | ||
; Datele de ieșire | |||
: Datele sunt introduse corect. | |||
: Caracterul mediu este: P | |||
<br> | <br> | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# | #2243 | ||
def | def read_characters(): | ||
characters = [] | |||
character = input("Introduceti un caracter: ") | |||
while | while character != '.': | ||
characters.append(character) | |||
character = input("Introduceti un caracter: ") | |||
return characters | |||
return | |||
def find_character_median(characters): | |||
media = sum(ord(c) for c in characters) // len(characters) | |||
caracter_mediu = chr(media) | |||
return caracter_mediu | |||
def | def validate_input(characters): | ||
if len(characters) < 2 or '.' in characters: | |||
return False | return False | ||
return True | return True | ||
if __name__ == '__main__': | |||
characters = read_characters() | |||
if | if validate_input(characters): | ||
caracter_mediu = find_character_median(characters) | |||
print("Datele sunt introduse corect.") | |||
print(" | print(f"Caracterul mediu este: {caracter_mediu}") | ||
else: | else: | ||
print("Datele nu corespund restricțiilor impuse.") | |||
print("Datele | |||
</syntaxhighlight> | </syntaxhighlight> | ||
'''Explicatie cod:''' | |||
Acest cod are două funcții și o instrucțiune de validare care îi permite să respecte anumite restricții. | |||
Funcția read_characters() cere utilizatorului să introducă caractere până când este introdus caracterul punct (".") și returnează o listă cu toate caracterele introduse. | |||
Funcția find_character_median(characters) primește o listă de caractere și găsește caracterul mediu, adică caracterul care are codul ASCII egal cu partea întreagă a mediei aritmetice a codurilor ASCII ale caracterelor date. În acest scop, se calculează mai întâi media aritmetică a codurilor ASCII ale caracterelor din listă cu ajutorul funcției sum() și apoi se obține caracterul mediu cu ajutorul funcției chr(). | |||
Instrucțiunea if __name__ == '__main__': verifică dacă acest cod este rulat ca un script standalone (adică direct din linia de comandă) și, în caz afirmativ, începe procesul de citire a caracterelor și calcularea caracterului median. Înainte de a apela funcția find_character_median(), instrucțiunea de validare verifică dacă numărul de caractere introduse este mai mare sau egal cu 2 și elimină punctul din lista de caractere. Dacă lista conține caractere valide, caracterul median este calculat și afișat, altfel se afișează un mesaj de eroare. |
Latest revision as of 21:24, 27 April 2023
Sursa: [1]
Cerinţa[edit | edit source]
Caracterul mediu a două sau al mai multor caractere este caracterul care are codul ASCII egal cu partea întreagă a mediei aritmetice a codurilor ASCII ale caracterelor date.
Se citesc mai multe caractere, pană la apariția punctului (.). Să se determine caracterul mediu al lor .
Date de intrare[edit | edit source]
Programul citește de la tastatură mai multe caractere, pană la apariția punctului (.).
Date de ieșire[edit | edit source]
Programul va afișa pe ecran caracterul mediu.
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează caracterul mediu al mai multor numere.
În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse."
Restricţii şi precizări[edit | edit source]
Numărul de caractere citite este mai mare sau egal cu 2.
Punctul nu se ia în considerare la calcularea mediei.
Exemplul 1[edit | edit source]
- Datele de intrare
- Introduceti un caracter: F
- Introduceti un caracter: Z
- Introduceti un caracter: .
- Datele de ieșire
- Datele sunt introduse corect.
- Caracterul mediu este: P
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 2243
def read_characters():
characters = [] character = input("Introduceti un caracter: ") while character != '.': characters.append(character) character = input("Introduceti un caracter: ") return characters
def find_character_median(characters):
media = sum(ord(c) for c in characters) // len(characters) caracter_mediu = chr(media) return caracter_mediu
def validate_input(characters):
if len(characters) < 2 or '.' in characters: return False return True
if __name__ == '__main__':
characters = read_characters()
if validate_input(characters): caracter_mediu = find_character_median(characters) print("Datele sunt introduse corect.") print(f"Caracterul mediu este: {caracter_mediu}") else: print("Datele nu corespund restricțiilor impuse.")
</syntaxhighlight>
Explicatie cod:
Acest cod are două funcții și o instrucțiune de validare care îi permite să respecte anumite restricții.
Funcția read_characters() cere utilizatorului să introducă caractere până când este introdus caracterul punct (".") și returnează o listă cu toate caracterele introduse.
Funcția find_character_median(characters) primește o listă de caractere și găsește caracterul mediu, adică caracterul care are codul ASCII egal cu partea întreagă a mediei aritmetice a codurilor ASCII ale caracterelor date. În acest scop, se calculează mai întâi media aritmetică a codurilor ASCII ale caracterelor din listă cu ajutorul funcției sum() și apoi se obține caracterul mediu cu ajutorul funcției chr().
Instrucțiunea if __name__ == '__main__': verifică dacă acest cod este rulat ca un script standalone (adică direct din linia de comandă) și, în caz afirmativ, începe procesul de citire a caracterelor și calcularea caracterului median. Înainte de a apela funcția find_character_median(), instrucțiunea de validare verifică dacă numărul de caractere introduse este mai mare sau egal cu 2 și elimină punctul din lista de caractere. Dacă lista conține caractere valide, caracterul median este calculat și afișat, altfel se afișează un mesaj de eroare.