#Scrivere un programma che acquisisca due coppie di numeri reali (x1,y1) e (x2,y2) da tastiera che #servono ad identificare due vertici opposti di un quadrato con lati paralleli agli assi. La prima #coppia indica quello in basso a sinistra e tale messaggio va dato all'utente. #1a) Scrivere una funzione in cui il programma controlla che i due punti possano effettivamente #rappresentare i vertici opposti di un quadrato, altrimenti manda un messaggio e chiede di reinserire. #2a) Il programma deve calcolare lato, area e lunghezza della diagonale del quadrato. #3a) Scrivere una funzione che, utilizzando il codice precedente, chieda di inserire due quadrati e #controlli se hanno stessa area mandando un messaggio che includa il valore dell'area se coincide o #dica che non coincidono. def verifica_vertice(v): #if type(q)!=tuple: return False try: if len(v)!=2: return False elif type(v[0])>float and type(v[1])>float: return False except: return False return True def acquisisci_vertici(): v1=tuple() v2=tuple() while verifica_vertice(v1)== False: v1=input("Inserisci le coordinate del vertice in basso a sinistra nel formato 'x,y'\n>>>") while verifica_vertice(v2) == False: v2 = input("Inserisci le coordinate del vertice in alto a destra nel formato 'x,y'\n>>>") return [v1,v2] def controlloQuadrato(vertici): v1 = vertici[0] v2 = vertici[1] if v1[0]>v2[0] or v1[1]>v2[1]: print "I vertici inseriti non sono compatibili con il quadrato richiesto" return False elif v2[0]-v1[0] != v2[1]-v1[1]: print "I vertici inseriti non formano un quadrato" return False return True def calcoliQuadrato(vertici): from math import sqrt v1 = vertici[0] v2 = vertici[1] lato=v2[0]-v1[0] diag= sqrt(2*(lato**2)) area=lato**2 return [lato,diag,area] def confrontoAreaQuadrati(): print "Quadrato 1." check = False while check == False: vertici1 = acquisisci_vertici() check = controlloQuadrato(vertici1) print "\Quadrato 2." check = False while check == False: vertici2 = acquisisci_vertici() check = controlloQuadrato(vertici2) if calcoliQuadrato(vertici1)[2] == calcoliQuadrato(vertici2)[2]: print "I due quadrati hanno la stessa area e vale", calcoliQuadrato(vertici2)[2] else: print "le due aree sono diverse." print "Programma di calcolo del lato, area e lunghezza della diagonale di un quadrato." print "Parte b: calcoli" check=False while check==False: vertici=acquisisci_vertici() check=controlloQuadrato(vertici) calcoli=calcoliQuadrato(vertici) print "lato =",calcoli[0],"diagonale =",calcoli[1],"area =",calcoli[2] print "\nParte C: confronta due quadrati." confrontoAreaQuadrati()