2348 - Caracterul mediu 1: Difference between revisions
Pagină nouă: ==Cerința== 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. Un caracter se numeste ''bun'' daca nu este spatiu, nu este litera mare si nu este vocala . Se citeste un sir de caractere (care poate contine si spatii). Să se determine caracterul mediu al caracterelor bune din sir . ==Date de intrare== Programul citește de la tastatură un sir de c... |
No edit summary |
||
(5 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
Programul citește de la tastatură un sir de caractere. | Programul citește de la tastatură un sir de caractere. | ||
==Date de ieșire== | ==Date de ieșire== | ||
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse." | |||
Pe următorul rând se va afișa caracterul mediu al caracterelor bune din sir. | |||
În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse." | |||
==Restricții și precizări== | ==Restricții și precizări== | ||
Line 21: | Line 25: | ||
:fz | :fz | ||
;Ieșire | ;Ieșire | ||
:Datele de intrare corespund restricțiilor impuse. | |||
:p | :p | ||
Line 27: | Line 32: | ||
:FaZ QWaaP | :FaZ QWaaP | ||
;Ieșire | ;Ieșire | ||
: | :Datele de intrare nu corespund restricțiilor impuse. | ||
==Rezolvare== | ==Rezolvare== | ||
Line 39: | Line 44: | ||
for caracter in sir: | for caracter in sir: | ||
# Regex care acceptă doar literele din alfabetul englez și spațiu | |||
if not re.match(r"([aeiouA-Z ])", caracter): | if not re.match(r"([aeiouA-Z ])", caracter): | ||
bune.append(caracter) | bune.append(caracter) | ||
Line 52: | Line 58: | ||
def | def caracterul_mediu(sir): | ||
# ord() este o funcție built-in care returnează codul ASCII al unui caracter | |||
caractere = [ord(c) for c in caractere_bune(sir)] | caractere = [ord(c) for c in caractere_bune(sir)] | ||
medie = sum(caractere) // len(caractere) | medie = sum(caractere) // len(caractere) | ||
# chr() este o funcție built-in care returnează caracterul corespunzător unui cod ASCII | |||
print(chr(medie)) | print(chr(medie)) | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
sir = input() | |||
if not conditii(sir): | |||
print("Datele de intrare nu corespund restricțiilor impuse.") | |||
else: | |||
print("Datele de intrare corespund restricțiilor impuse.") | |||
caracterul_mediu(sir) | |||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 08:55, 5 May 2023
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.
Un caracter se numeste bun daca nu este spatiu, nu este litera mare si nu este vocala .
Se citeste un sir de caractere (care poate contine si spatii). Să se determine caracterul mediu al caracterelor bune din sir .
Date de intrare[edit | edit source]
Programul citește de la tastatură un sir de caractere.
Date de ieșire[edit | edit source]
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."
Pe următorul rând se va afișa caracterul mediu al caracterelor bune din sir.
În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse."
Restricții și precizări[edit | edit source]
2 ≤ numărul de caractere citite ≤ 200
- Caracterul mediu poate fi spatiu, litera mare sau vocala.
- Cel putin un caracter va fi bun
Exemplu 1[edit | edit source]
- Intrare
- fz
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- p
Exemplu 2[edit | edit source]
- Intrare
- FaZ QWaaP
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 2348 Caracterul Mediu 1
import re
def caractere_bune(sir):
bune = []
for caracter in sir: # Regex care acceptă doar literele din alfabetul englez și spațiu if not re.match(r"([aeiouA-Z ])", caracter): bune.append(caracter)
return bune
def conditii(sir):
return all(( 2 <= len(sir) <= 200, len(caractere_bune(sir)) > 0 ))
def caracterul_mediu(sir):
# ord() este o funcție built-in care returnează codul ASCII al unui caracter caractere = [ord(c) for c in caractere_bune(sir)] medie = sum(caractere) // len(caractere) # chr() este o funcție built-in care returnează caracterul corespunzător unui cod ASCII print(chr(medie))
if __name__ == "__main__":
sir = input()
if not conditii(sir): print("Datele de intrare nu corespund restricțiilor impuse.") else: print("Datele de intrare corespund restricțiilor impuse.") caracterul_mediu(sir)
</syntaxhighlight>