Informatică, întrebare adresată de superandriesh, 8 ani în urmă

Se consideră următoarele date despre cărţile dintr-o bibliotecă (denumirea, autorul, numărul de
pagini). Să se scrie un program care va afişa datele cărţii cu numărul de pagini cel mai mare şi
deasemenea denumirea cărţilor scrise de Eminescu.

In orice limbaj de prgoramare de preferat in C.

Răspunsuri la întrebare

Răspuns de Porecla0987
1

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

Alte întrebări interesante