0972 - Pozitii
Cerința[edit | edit source]
Se dă un șir de caractere. Să se determine câte vocale din șir sunt cuprinse între două consoane.
Date de intrare[edit | edit source]
Programul citește de la tastatură un sir de caractere.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa valoarea cerută. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse".
Restricții și precizări[edit | edit source]
- șirul va avea cel mult 255 caractere
- șirul nu va conține litere mari
Explicație[edit | edit source]
Vocalele care respectă regula sunt:
oasele sunt fragile
Exemplu 1[edit | edit source]
- Intrare
- oasele sunt fragile
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 4
Exemplu 2[edit | edit source]
- Intrare
- Ana aRe MERE
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 972 Pozitii
def validare(propozitie): # functia de verificare a datelor de intrare
if len(propozitie) > 255: raise ValueError
for caracter in propozitie: # caracterul nu poate fi decat litera mica sau spatiu if (ord(caracter) < ord('a') or ord(caracter) > ord('z')) and caracter != ' ': raise ValueError
print("Datele de intrare corespund restrictiilor impuse") return True
def vocala(litera): # functie de verificare daca litera e vocala
vocale = "aeiou" if litera in vocale: return True else: return False
def pozitii(propozitie):
numar = 0 for iterator in range(1, len(propozitie)-1): # parcurgem sirul if vocala(propozitie[iterator]) is True and vocala(propozitie[iterator-1]) is False and \ vocala(propozitie[iterator+1]) is False and propozitie[iterator-1] != ' ' \ and propozitie[iterator+1] != ' ': # verificam daca litera e vocala si cele de langa is consoane numar += 1 # daca da, le numaram
print(numar)
if __name__ == '__main__':
# din cauza datelor de intrare pot aparea 2 tipuri de erori, valueError sau IndexError pe care le tratam
try: sir = input(f"Introduceti sirul ") # citirea sirului validare(sir) # apelul functiei de verificare pozitii(sir) # apelul functiei de rezolvare
except ValueError: print("Datele de intrare nu corespund restrictiilor impuse") except IndexError: print("Datele de intrare nu corespund restrictiilor impuse")
</syntaxhighlight>