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ăspuns :

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])