Es. 15. 08/05

Da aptiva.

Denis propone questa soluzione:

print "Calcolo della somma di due vettori"
#uso il metodo della punta corda - teorema di pitagora
import math

def DistanzaVettori (x1,y1,x2,y2):
    V1=(x2-x1)**2
    V2=(y2-y1)**2
    distQuad=V1+V2
    risultato = math.sqrt(distQuad)
    print "la distanza tra i due vettori con il metodo punto-corda e' ", risultato
    
x1=input("inserici la coordinata x del primo vettore ")
y1=input("inserici la coordinata y del primo vettore ")
x2=input("inserici la coordinata x del secondo vettore ")
y2=input("inserici la coordinata y del secondo vettore ")
DistanzaVettori(x1,y1,x2,y2)
a=[(x1,y1)]
b=[(x2,y2)]
c=a+b
print "la lista della coppia di vettori e' ", c

Questo programma trova la distanza fra due vettori a due componenti. Il programma e' corretto (python 2) ma risolve un problema diverso da quello proposto.

La somma fra vettori viene definita fra vettori che hanno lo stesso numero di componenti, il risultato e' un vettore avente lo stesso numero di componenti dei sue sommati. Ogni elemento del vettore risultato e' la somma dei corrispondenti elementi dei vettori sommati. es.

 somma([1,2],[3,4]) deve essere [4,6]
 somma([1,2,3],[3,7,5]) sara' [4,9,8]

La nuova soluzione proposta:

print "Calcolo della somma di due vettori"
import math

def SommaVettori (x1,y1,x2,y2):
    V1=x1+x2
    V2=y1+y2
    risultato=V1,V2
    print "la distanza tra i due vettori e' ", risultato
    
x1=input("inserici la coordinata x del primo vettore ")
y1=input("inserici la coordinata y del primo vettore ")
x2=input("inserici la coordinata x del secondo vettore ")
y2=input("inserici la coordinata y del secondo vettore ")
Sommavettori(x1,y1,x2,y2)

calcola effettivamente la somma dei due vettori. (HO cambiato il nome della funzione perche' era incoerente).Il passo successivo, se ha voglia di proporre una ulteriore versione, e' la generalizzazione a vettori di un numero qualsiasi di elementi.

Io se cercassi in una libreria la funzione "sommavettori" me l'aspetterei con due soli parametri di tipo lista.

def sommavettori(x,y):
  ....

print ("Calcolo della somma di due vettori")
s1=input ("Inserisci le coordinate del primo vettore separate da virgole ")
s2=input ("Inserisci le coordinate del secondo vettore separate da virgole ")
v1=s1.split(',')
v2=s2.split(',')
for i in range(len(v1)):
  v1[i]=int(v1[i])
for i in range(len(v2)):
  v2[i]=int(v2[i])
print("la somma dei vettori e' ",sommavettori(v1,v2))

potrebbe per esempio provare a mettere codice al posto dei ... nel listato precedente.

Chi poi volesse vedere il codice del mio sommavettori per controllo e' qui di seguito... in rot13!

qrs fbzznirggbev(k,l):
        y=znk(yra(k),yra(l))
        gk=k+[0]*(y-yra(k))
        gl=l+[0]*(y-yra(l))
        e=[]
        sbe v va enatr(y):
                e.nccraq(gk[v]+gl[v])
        erghea e

Se non volete tradurlo a mano potete scrivere un programmino con la funzione presentata nell'esercizio di lettura e qualche istruzione si lettura di file.

Strumenti personali
Namespace

Varianti
Azioni
Navigazione
Strumenti