# -*- encoding:utf-8 -*-

# Caractéristiques de sphères:
# Le fichier de départ est un fichier texte dont chaque ligne
# contient un nombre réel représentant le diamètre d'une sphère
# et encodé sous la forme d'une chaîne de caractères

# Importation de fonctions:

from math import pi

# Définitions de fonctions nécessaires:

def caractSphere(d):
    """
    caractSphere(float d) --> str.
    Retourne les caractéristiques d'une sphère de diamètre d.

    """

    r = d/2             # rayon de la sphère
    ss = pi*r**2        # surface de section
    se = 4*pi*r**2      # surface extérieur
    v = 4/3*pi*r**3     # volume

    # La balise {:8:2f} utilisée ci-dessous formate le nombre affiché
    # de manière à occuper 8 caractères au total, en arrondissant de
    # manière à conserver deux chiffres après la virgule:

    ch = "Diam. {:6.2f} cm Section = {:8.2f} cm2 ".format(d, ss)
    ch = ch + "Surf. = {:8.2f} cm2 Vol. = {:9.2f} cm3".format(se,v)
    return ch

# Corps principal du programme:

nomSource = input('Nom du fichier à traiter: ')
nomDest = input('Nom du fichier destinataire: ')
fichierSource = open(nomSource, 'r', encoding = 'Utf-8')
fichierDest = open(nomDest, 'w', encoding = 'Utf-8')

while 1:
    diam = fichierSource.readline()
    if diam == "" or diam == "\n":
        break
    fichierDest.write(caractSphere(float(diam)) + "\n")    # enregistrement

fichierSource.close()
fichierDest.close()
