Comparar+valores+de+arrays+paralelos

=__**Comparar valores de Arrays paralelos**__=

Escribir un programa que complete dos arrays X e Y de tamaño 10, y compare cada uno de los elementos del array X con el elemento correspondiente del array Y.

Seguidamente se deber rellenar otros array Z en el que cada elemento debe contener el valor 1, 0 o -1. En función de la relación entre los elementos que ocupan su misma posición en los arrays X e Y:

El elemento Z[i]: >> contendrá el valor 1 si X[i] > Y [i] >> contendrá el valor 0 si X[i] = Y [i] >> contendrá el valor -1 si X[i] < Y [i]

Después escribirá en pantalla una tabla que muestre el contenido de los arrays X, Y, Z y la cantidad de números de elementos de X que son menores que los de Y, y la cantidad de los que son mayores.

code format="pascal" PROGRAM P_80_E10 ; USES Crt ; CONST iLONG_FISICA = 10 ; TYPE taiVector = ARRAY [1 .. iLONG_FISICA] OF Integer ; VAR aiX, aiY, aiZ : taiVector ; byCantidad : Byte ;

PROCEDURE LeerNumeros (VAR aiX, aiY: taiVector ; VAR byCantidad : Byte) ; VAR cResp : Char ; BEGIN byCantidad := 0 ;

write ('Introducir un n£mero (S/N): ') ; Readln(cResp) ;

WHILE (Upcase (cResp) = 'S') AND (byCantidad < iLONG_FISICA) DO       BEGIN byCantidad := byCantidad + 1 ;

Write ('Elemento ', byCantidad:2, ' de X : ') ; Readln (aiX [byCantidad]) ;

Write ('Elemento ', byCantidad:2, ' de Y : ') ; Readln (aiY [byCantidad]) ;

IF (byCantidad < iLONG_FISICA) THEN BEGIN Writeln ; Write ('Introducir otro numero (S/N): ') ; Readln(cResp) ; END ; END ; END ; { LeerNumeros }

PROCEDURE CompararNumeros (CONST   aiX, aiY: taiVector;                           VAR           aiZ: taiVector;                                 byCantidad : Byte) ; VAR i : Byte ; BEGIN FOR i := 1 TO byCantidad DO      IF aiX [i] > aiY [i] THEN aiZ [i] := 1 ELSE IF aiX [i] = aiY [i] THEN aiZ [i] := 0 ELSE aiZ [i] := -1 END ; { CompararNumeros }

FUNCTION fnbyContarApariciones (CONST  aiNumeros: taiVector ;                                      byCantidad : Byte;                                     iNumBuscado : Integer) : Byte ; VAR i, byContador : Byte ; BEGIN byContador := 0 ;

FOR i := 1 TO byCantidad DO      IF aiNumeros [i] = iNumBuscado THEN byContador := byContador + 1 ;

fnbyContarApariciones := byContador ; END ; { fnbyContarApariciones }

PROCEDURE MostrarNumeros (CONST aiNumeros: taiVector; byCantidad : Byte) ; VAR i : Byte ; BEGIN FOR i := 1 TO byCantidad DO       Write (aiNumeros[i]:8) ; Writeln ; END ; { MostrarNumeros }

BEGIN {****************** PROGRAMA PRINCIPAL ****************************} Writeln ('Escribe los valores de los arrays X e y:') ; LeerNumeros (aiX, aiY, byCantidad) ;

CompararNumeros (aiX, aiY, aiZ, byCantidad) ;

Writeln ; Writeln ('Array X:') ; MostrarNumeros (aiX, byCantidad) ; Writeln ('Array Y:') ; MostrarNumeros (aiY, byCantidad) ; Writeln ('Array Z:') ; MostrarNumeros (aiZ, byCantidad) ;

Writeln ; Writeln ('Numero de elementos de X mayores que en Y: ',                         fnbyContarApariciones (aiZ, byCantidad, 1)) ; Writeln ('Numero de elementos de X menores que en Y: ',                         fnbyContarApariciones (aiZ, byCantidad, -1)) ;

ReadLN ; END. { FIN DE ARR_1_10.PAS } code