Python-it.org forum # share your knowledge! ;)
Settembre 23, 2014, 00:16 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizie: Tutorial Django gratuito, in italiano!: http://www.python-it.org/09/09/14/tutorial-django-gratuito-in-italiano
 
   Home   Guida Regolamento Ricerca Accedi Registrati Python-it.org Doc Chat  
Apri il forum in una pagina a parte - È possibile fornire/richiedere supporto anche presso i canali IRC #python su Azzurra e #python.it su Freenode

Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Calcolo delle figure geometriche  (Letto 850 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
whilenet
python neanderthalensis
****

Livello reputazione: 0
whilenet non ha alcuna influenza
Scollegato Scollegato

Messaggi: 351


Mostra profilo
« inserito:: Febbraio 12, 2012, 16:04 »

Ragazzi ho realizzato questo programma che calcola 5 figure geometriche, ho cercato di renderlo più semplice e comprensibile possibile.
Lascio a voi il giudizio del programma.
Commentate pure ogni tipo di giudizio positivo o negativo ke sia.
Anzi mi servirà per migliorarmi.

Ecco il codice:

from math import sqrt
# Programma per il calcolo delle figure geometriche

def rettangolo():
    print "Calcola la superficie del rettangolo ricordando la formula"
    print "S = b x h"
    b=int(raw_input("Calcola la base"))
    h=int(raw_input("Calcola l'altezza"))
    c=(b*h)
    print "La superficie del nostro rettangolo misura",c


def cerchiocirconferenza():
    print "Calcola la circonferenza del cerchio ricordando la formula"
    print "c = 2 pi greco r"
    r=int(raw_input("Trova i centimetri del raggio"))
    print "La lunghezza della circonferenza del cerchio misura",2*3.14*r


def cerchiosuperficie():
    print "Calcola la superficie del cerchio ricordando la formula"
    print "S = pi greco r2"
    r=int(raw_input("Trova i centimetri del raggio"))
    print "La superficie del nostro cerchio misura",3.14*r*r

def triangolo():
    print "Calcola la superficie del triangolo ricordando la formula"
    print "S = b*h/2"
    b=int(raw_input("trova la base"))
    h=int(raw_input("trova l'altezza"))
    c=(b*h)
    print "La superficie del nostro triangolo misura",c/2,"centimetri"

def diagonalerombo():
    print "Calcola la diagonale del rombo conoscendo le diverse formule"
    print "formula per calcolare la quarta potenza della diagonale in questione"
    print
    Ddue=int(raw_input("Inserisci valore diagonale"))
    print "Il valore della diagonale è uguale a",Ddue*Ddue*Ddue*Ddue
    print
    print "formula per calcolare il quadrato dell'area e moltiplicarlo per quattro"
    a=int(raw_input("Inserisci area"))
    print "L'area moltiplicata per 4 elevato a due da come risultato",4*a*a
    print "Il valore del risultato della diagonale ed il valore del risultato dell'area è uguale a",Ddue**4+4*24**2
    print
    print "dividendo il valore ottenuto con il quadruplo del quadrato del valore della diagonale il risultato è",(Ddue**4+4*24**2)/256
    print "La radice quadrata del valore ottenuto è di",int(sqrt((Ddue**4+4*24**2)/256))
    print "Il valore del lato è quindi uguale a",int(sqrt((Ddue**4+4*24**2)/256))
   
print "1)rettangolo"
print "2)cerchiocirconferenza"
print "3)cerchiosuperficie"
print "4)triangolo"
print "5)diagonalerombo"
print
a=input("Digita una delle seguenti figure geometriche che ti interessa calcolare")
if a==1:
    print "Hai deciso di calcolare il rettangolo"
    print
    rettangolo()
elif a==2:
    print "Hai deciso di calcolare la circonferenza del cerchio"
    print
    cerchiocirconferenza()
elif a==3:
    print "Hai deciso di calcolare la superficie del cerchio"
    print
    cerchiosuperficie()
elif a==4:
    print "Hai deciso di calcolare la superficie del triangolo"
    print
    triangolo()
elif a==5:
    print "Hai deciso di calcolare il lato del rombo"
    print
    diagonalerombo()
   
   
Registrato

Hey! Non permettere mai a nessuno di dirti che non sai fare qualcosa. Neanche a me. Ok? Se hai un sogno tu lo devi proteggere. Quando le persone non sanno fare qualcosa lo dicono a te che non la sai fare. Se vuoi qualcosa, vai e inseguila. Punto. (Chris a Christopher)
Python-it.org forum
« inserito:: Febbraio 12, 2012, 16:04 »

 Registrato
Giornale di Sistema
python sapiens sapiens
******

Livello reputazione: 0
Giornale di Sistema non ha alcuna influenza
Scollegato Scollegato

Messaggi: 2246


Mostra profilo WWW
« Risposta #1 inserito:: Febbraio 12, 2012, 16:21 »

Cava tutte le print dalle funzioni.
Non è una buona idea mischiare la parte di interazione dell'utente con quella di calcolo puro e semplice.
Così puoi anche riutilizzare le stesse funzioni per più compiti: quella che calcola la superficie del rettangolo può farlo anche per il quadrato.
Se tieni fuori dalla funzione la messaggistica per l'utente sarà semplice riutilizzarla senza scrivere 2 volte codice identico.

Struttura meglio il menù di dialogo con l'utente.

Se l'utente ha bisogno di calcolare una seconda figura, perché il programma gli termina fra le mani senza possibilità di appello?

Nomi significativi per le variabili.
Il programma non l'hai scritto solo per te, ma anche per altri a cui vuoi farlo leggere, ad esempio proprio tu fra qualche settimana o mese.
Magari non questo programma ma con altri capiterà, e allora ti ringrazierai per non aver scritto a bensì area, meglio ancora area_quadrato.
E segui la PEP8, d_due e non Ddue, cerchio_circonferenza() e non cerchiocirconferenza(); quando lo leggono altri anche l'uso delle convenzioni conta.
« Ultima modifica: Febbraio 12, 2012, 16:32 da Giornale di Sistema » Registrato

Distillato di Python - da assaporare a piccoli sorsi
Giornale di Sistema - giornale di bordo dei miei viaggi nel mondo dei bit
Claudio_F
python sapiens
*****

Livello reputazione: 0
Claudio_F non ha alcuna influenza
Scollegato Scollegato

Messaggi: 936


Mostra profilo
« Risposta #2 inserito:: Febbraio 12, 2012, 19:11 »

Commentate pure ogni tipo di giudizio positivo o negativo ke<syntax error> sia.
    r=int(raw_input("Trova i centimetri del raggio"))
    print "La lunghezza della circonferenza del cerchio misura",2*3.14*r

- Invece di: "Trova i centimetri del raggio" non sarebbe meglio: "Inserire i centimetri del raggio" ? (e cosi' per le altre)
- Se voglio calcolare la circonferenza di un cerchio di 12.5 cm di raggio, con il tuo programma come faccio?
- 3.14 e' troppo approssimato e per raggi molto grandi ottieni un errore eccessivo, meglio usare math.pi
« Ultima modifica: Febbraio 12, 2012, 19:20 da Claudio_F » Registrato

- posso sicuramente escludere la certezza di aver sbagliato -
whilenet
python neanderthalensis
****

Livello reputazione: 0
whilenet non ha alcuna influenza
Scollegato Scollegato

Messaggi: 351


Mostra profilo
« Risposta #3 inserito:: Febbraio 13, 2012, 12:54 »

Ok ma se il raggio è di 4 centimetri il risultato dovrebbe essere

25.12 mentre con math.pi mi ritorna 25.1327412287

come me ne esco in questo caso?
Registrato

Hey! Non permettere mai a nessuno di dirti che non sai fare qualcosa. Neanche a me. Ok? Se hai un sogno tu lo devi proteggere. Quando le persone non sanno fare qualcosa lo dicono a te che non la sai fare. Se vuoi qualcosa, vai e inseguila. Punto. (Chris a Christopher)
Giornale di Sistema
python sapiens sapiens
******

Livello reputazione: 0
Giornale di Sistema non ha alcuna influenza
Scollegato Scollegato

Messaggi: 2246


Mostra profilo WWW
« Risposta #4 inserito:: Febbraio 13, 2012, 13:02 »

Dando ragione a math.pi per il motivo che ti ha già spiegato Claudio_F:
http://it.wikipedia.org/wiki/Pi_greco_%28prime_100_mila_cifre%29
Registrato

Distillato di Python - da assaporare a piccoli sorsi
Giornale di Sistema - giornale di bordo dei miei viaggi nel mondo dei bit
Python-it.org forum
   

 Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines XHTML 1.0 valido! CSS valido!