Se considera date despre cartile dintr-o biblioteca (denumirea, autorul, numarul de pagini). Sa se scrie un program care va afisa
datele cartii cu numarul de pagini cel mai mare si deasemenea denumirea cartilor scrise de Eminescu.
In orice limbaj de programare de preferat in C.
Sa se foloseasca functia struct
Răspunsuri la întrebare
class Carte:
def __init__(self, denumire = None, autor = None, numar_de_pagini = None):
self.denumire = denumire
self.autor = autor
self.numar_de_pagini = numar_de_pagini
def __str__(self):
return f"\"{self.denumire.capitalize()}\" de {self.autor.capitalize()}"
carti = list()
# Asigurarea ca numarul de carti este un numar
while True:
try:
numar_de_carti = int( input( "Introduceti numarul de carti: " ) )
break
except ValueError:
print("Numar invalid.")
print()
# Eroare la numar invalid
if numar_de_carti < 1:
raise ValueError("Numar invalid de carti.")
# Citeste cartile, se asigura ca numarul de pagini este valid si memoreaza pozitia cartii cu cele mai multe pagini
numar_maxim_de_pagini = 0
for i in range(numar_de_carti):
denumire = input("Introduceti denumirea cartii: ")
autor = input("Introduceti numele autorului: ")
while True:
try:
numar_de_pagini = int(input("Introduceti numarul de pagini: "))
break
except ValueError:
print("Numar invalid.")
print()
if numar_de_pagini < 1:
raise ValueError("Numar invalid de pagini.")
if numar_de_pagini > numar_maxim_de_pagini:
numar_maxim_de_pagini = numar_de_pagini
pozitie = i
carte = Carte(denumire, autor, numar_de_pagini)
carti.append(carte)
# Scrie cartea cu cel mai mare numar de pagini
print(f"Cartea cu cele mai multe pagini este: {carti[pozitie]} ({carti[pozitie].numar_de_pagini} de pagini)")
# Scrie cartile scrise de Eminescu
for carte in range(numar_de_carti):
if "Eminescu" in carti[carte].autor.capitalize():
print(carti[carte])