Comparar dos arrays

De Ejercicios

Contenido

Enunciado

Diseñar un subalgoritmo que devuelva VERDAD si los dos arrays dados como entrada son iguales y FALSO, en otro caso.

Soluciones

Diseño en pseudocódigo

 FUNCION IGUALES(VAR V:ARRAY DE REALES; VAR W:ARRAY DE REALES; n,m:ENTEROS):LOGICO
 
 ENTRADAS:
   V: ARRAY DE REALES  (*Primer array que vamos a comparar*)
   W: ARRAY DE REALES  (*Segundo array que se quiere comparar*)
   n: ENTERO           (*Tamaño del array V*)
   m: ENTERO           (*Tamaño del array W*)
 SALIDAS:
   igual: LOGICO       (*VERDAD si los array V y W son iguales, FALSO en caso contrario*)
 VARIABLES:
   i: ENTERO
 
 INICIO
   igual <-- VERDAD
   SI (n=m) ENTONCES
     i <-- 1
     MIENTRAS ((i<=n) Y (igual)) HACER
       SI (V(i)<>W(i)) ENTONCES
         igual <-- FALSO
       FIN SI
       i<--i+1
     FIN MIENTRAS
   SI_NO
     igual<-FALSO
   FIN SI
   DEVOLVER igual
 FIN

Solucion en C

 
  int IGUALES(float V[],float W[], int n, int m){
  /*ENTRADAS:
    V: Primer array que vamos a comparar (el primer valor está en la posición 1)
    W: Segundo array que se quiere comparar (el primer valor está en la posición 1)
    n: Tamaño del array V
    m: Tamaño del array W
  */
  //SALIDAS
    int igual; //VERDAD si los dos arrays V y W so iguales, FALSO en caso contrario
  //VARIABLES
    int i;
 
    igual=1;
    if(n==m){
        i=1;
        while( (i<=n) && (igual) ){
           if(V[i]!=W[i]){
             igual=0;
           }
           i=i+1;
        }
    }else{
        igual=0;
    }
    return(igual);
 }

Programa en Matlab

Solución con programación clásica

function igual=iguales(v,w)
%FUNCIÓN igual=iguales(v,w)
%DESCRIPCIÓN: Diseñar un subalgoritmo que devuelva VERDAD si los arrays 'v' y 'w' son iguales y FALSO, en otro caso.
%ENTRADAS:
%   v, w: ARRAYS DE REALES; arrays que se van a comparar
%SALIDAS:
%   igual: LÓGICO; Verdadero si los array son iguales y falso en caso contrario.
%VARIABLES:
%   pos:ENTERO
 
    if length(v)==length(w),
        igual=true;
        pos=1;
        while (pos<=length(v))&&(igual==true)
            if v(pos)~=w(pos)
                igual=false;
            end
            pos=pos+1;
        end
    else
        igual=false;
    end

Solución Matlab

function igual=iguales(v,w)
%FUNCIÓN igual=iguales(v,w)
%DESCRIPCIÓN: Diseñar un subalgoritmo que devuelva VERDAD si los arrays 'v' y 'w' son iguales y FALSO, en otro caso.
%ENTRADAS:
%   v, w: ARRAYS DE REALES; arrays que se van a comparar
%SALIDAS:
%   igual: LÓGICO; Verdadero si los array son iguales y falso en caso contrario.
%VARIABLES:
%   pos:ENTERO
 
    igual=false;
    if length(v)==length(w)
        if v==w
            igual=true;
        end
    end
Tipos de soluciones