Añadir+números+distintos+a+una+lista+(preguntando+antes+de+leer+cada+número)

=__**Añadir** números distintos **a una lista (preguntando antes de leer cada número)**__=

code format="pascal" PROGRAM ARR_3 ; CONST iLONG_FISICA = 100 ; TYPE taiVectores = ARRAY [1 .. iLONG_FISICA] OF Integer ;

FUNCTION fniBuscarElemento (     iNumBuscado: Integer ;                            CONST    aiVector: taiVectores ;                                    iLongitud: Integer) : Integer ; VAR boEncontrado : Boolean ; iPosic      : Integer ; BEGIN boEncontrado := FALSE ; iPosic := 1 ;

WHILE NOT boEncontrado AND ( iPosic <= iLongitud) DO          IF  aiVector  [iPosic] = iNumBuscado THEN boEncontrado := TRUE ELSE iPosic := iPosic + 1 ;

IF boEncontrado  THEN fniBuscarElemento := iPosic ELSE fniBuscarElemento := 0 ; END ;

PROCEDURE AniadirNumerosDistintosALista (VAR aiLista   : taiVectores ;                                         VAR  iLongitud : Integer); VAR cResp  : Char ; iNumero : Integer ; BEGIN Writeln ; Write ('Introducir un  numero (S/N): ') ; Readln(cResp) ;

WHILE (Upcase (cResp) = 'S') AND (iLongitud < iLONG_FISICA) DO         BEGIN Write ('Numero ', iLongitud:2, ': ') ; Readln (iNumero) ;

IF fniBuscarElemento (iNumero, aiLista, iLongitud)= 0 THEN BEGIN iLongitud          := iLongitud + 1 ; aiLista [iLongitud] := iNumero ; END ELSE Writeln ('Error: el valor ', iNumero, ' ya esta en la lista') ;

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

PROCEDURE MostrarNumeros (CONST aiLista  : taiVectores ;                                iLongitud : Integer); VAR i : Integer ; BEGIN FOR i := 1  TO iLongitud DO         Write (aiLista [i] : 8 ) ;

Writeln ; END ;

{- Variables del programa principal --} VAR aiLista  : taiVectores ; iLongitud : Integer ;

BEGIN {--- PROGRAMA PRINCIPAL }

iLongitud := 0 ; { Inicializar la lista como vacía }

Writeln ('Escribe los números de la lista:') ; Writeln ; AniadirNumerosDistintosALista (aiLista, iLongitud) ;

Writeln ; IF iLongitud > 0 THEN BEGIN WriteLn ('Lista de los numeros leidos: ') ; MostrarNumeros (aiLista, iLongitud) ; END ELSE Writeln ('Error: No has introducido ningun numero');

Writeln ; Readln ; END. { FIN de Arr_3.PAS } code