0972 - Pozitii
Cerința
Se dă un șir de caractere. Să se determine câte vocale din șir sunt cuprinse între două consoane.
Date de intrare
Programul citește de la tastatură un sir de caractere.
Date de ieșire
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
- șirul va avea cel mult 255 caractere
- șirul nu va conține litere mari
Explicație
Vocalele care respectă regula sunt:
oasele sunt fragile
Exemplu 1
- Intrare
- oasele sunt fragile
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 4
Exemplu 2
- Intrare
- Ana aRe MERE
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
<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>