Array – Producto Escalar

Enunciado

Escribir una Función que realice la sumatoria del producto, componente a componente, de dos vectores de entrada.

Código

Python

def ScalarProduct ( n, v1, v2 ):
    sp = 0
    for i in range ( n ):
        sp += v1[i]*v2[i]
    return sp

def main():
    
    cant = 5
    vec1 = [ 3, 5, 7, 8, 9 ]
    vec2 = [ 4, 8, 9, 5, 3 ]
    sumV =  ScalarProduct( cant, vec1, vec2 )
    
    print("Producto escalar/Escalar product:", sumV)
    
    input( "Presionar/Press Enter to exist " )
main()

C++

#include <iostream>
using namespace std ;
#include <conio.h>

float ScalarProduct ( int n , float v1[], float v2[] )
{
   int i ; float sp ;

   sp = 0 ;
   for ( i=0 ; i<n ; i++ )
      sp += v1[i]*v2[i] ;
   return sp ;
}

int main ()
{
   int  i, n ;
   float v1[10], v2[10] ;
   	
   cout << "Ingresar/Enter dimension ( max 10 ): " ;
   cin >> n ;
   
   cout << "Ingresar elementos/" ;
   cout << "Enter elements vector 1:" << endl ;
   for ( i=0; i<n; i++ )
	cin >> v1[i] ;
			
   cout << "Ingresar elementos/" ;
   cout << "Enter elements vector 2:" << endl ;
   for ( i=0; i<n; i++ )
	cin >> v2[i] ;

   cout << "Producto escalar/Escalar product: " ;
   cout << ScalarProduct(n, v1, v2) << endl ;
   
   cout << "Presionar/Press Enter to exit " ;
   getch() ;
   return 0 ;  
}

Pascal

Program Array02 ;
uses CRT ;
const nmax = 10 ;
type
     dim = 1 .. nmax ;
     vector = array [ dim ]  of real ;
     element = real ;
var
     n , i : dim ;
     v1, v2 : vector ;
     s : element ;

Function ScalarProduct ( n: dim ; v1, v2 : vector ) : element ;
var s : element ;
begin
    s := 0 ;
    for i := 1 to n do
    begin
        s := s + ( v1[i]*v2[i] )
    end ;
    ScalarProduct := s ;
end ;


begin
     ClrScr ;
     write( 'Ingresar/Enter dimension ( max 10 ): ' ) ; 
     readln( n ) ;
     write( 'Ingresar elementos/' ) ;
     writeln( 'Enter elements vector 1: ' ) ;
     for i := 1 to n do
	readln( v1[i] ) ;
				
     write( 'Ingresar elementos/' ) ;
     writeln( 'Enter elements vector 2: ' ) ;
     for i := 1 to n do
	readln( v2[i] ) ;
     	
     s := ScalarProduct ( n, v1, v2 ) ;
		
     write( 'Producto escalar/' ) ;
     writeln( 'Escalar product: ', s:0:2 ) ;
		
     writeln( 'Presionar/Press Enter to exit' ) ;
     readln ;
end.

Diagramas