jueves, 8 de diciembre de 2011

Ejercicio 8 (Arrays)


Plantee e implemente un programa en PASCAL que, mediante búsqueda secuencial, permita encontrar el menor y el mayor índice de donde se encuentra un valor dado X en un array de números enteros. El programa debe permitir al usuario introducir apropiadamente el array de números enteros y solicitarle el valor que desea encontrar.


PROGRAM ejercicio8(input,output);
(*Programa que permita introducir varios elementos en un array y que mediante una funcion permita buscar el primer numero y el ultimo y determine en que puesto se encuentra.*)


TYPE
    TAarray = ARRAY[1..10] OF integer;
VAR
    Aarray:TAarray;
    u,p,a,numero:integer;
(********************************************************************************************************************************************************************************)
PROCEDURE leer;
VAR
   I:integer;
BEGIN
     I:=0;
     writeln('Introduzca los terminos separados por espacios');
     FOR I:=1 TO 10 DO
     read(Aarray[I]);                                                                                                                                                         1 2 3


END;
(************************************************************************************************************************************************************************************)
PROCEDURE buscar;
VAR
   I,serepite,repeticiones:integer;
BEGIN
     write('Que numero desea buscar?:');
     read(numero);
     repeticiones:=0;
     serepite:=0;
     FOR I:=1 TO 10 DO
         BEGIN
         IF numero = Aarray[I] THEN serepite:=1 ELSE serepite:=0;
          repeticiones:= repeticiones+serepite;
          END;
          writeln('El numero ',numero:2,' se repite ',repeticiones:2,' veces.');
END;
(**************************************************************************************************************************************************************************************)
 FUNCTION primero(numero:integer):integer;
VAR
   I:integer;
BEGIN
     FOR I:=10 DOWNTO 1 DO
     IF numero = Aarray[I] THEN primero:=I;


END;
(**************************************************************************************************************************************************************************************)
FUNCTION ultimo(numero:integer):integer;
VAR
   I:integer;
BEGIN
     FOR I:=1 TO 10 DO
     IF numero = Aarray[I] THEN ultimo:=I;


END;
(*******************************************************************************************************************************************************************************************)
BEGIN
     leer;
     REPEAT
     buscar;
     u:=ultimo(numero);
     p:=primero(numero);
     writeln('El numero ',numero:2,' aparece por primera vez en la posicion',p:2,' y por ultima vez en la posicion numero ',u:2);
     write('Desea hacer otra busqueda? Si[1] No[0]');
     read(a);
     UNTIL a = 0;


END.


Ejemplo de ejecución



No hay comentarios:

Publicar un comentario

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | GreenGeeks Review