-
Veamos un ejemplo amigo donde dado un arreglo de enteros y luego un número quiero saber cuantas veces se repite dicho número en el arreglo y también quiero saber la última posición en que aparece. Por ejemplo, si mi arreglo es este
10 20 30 57 30 41 57
Me dan el número 30, entonces yo tengo que decir que se repite dos veces y que la última posición en que aparece es la posición número 5.
Suponiendo entonces que mi variable que contiene al arreglo se llama arreglo y la variable que contiene al número en cuestión se llama numero, necesito además una variable que llamaré ultimaPos para guardar justamente la última posición y además una variable llamada cantidadVeces que guardará la cantidad de veces en que aparece el número en el arreglo:
Algo importante es que si el número no aparece en el arreglo debo devolver como última posición el valor 0. Bien, el código donde se cargan los valores en el arreglo te lo dejo a tí, veamos la parte de recorrido:Espero amigo eso te ayude con tu problema, sino lo veremos diréctamente.Código:cantidadVeces:=0; ultimaPos:= 0; FOR i:=1 TO LARGO_ARREGLO DO BEGIN IF arreglo[i]=numero THEN begin cantidadVeces:= cantidadVeces + 1; ultimaPos:= i; end; END; -
Hola amigo el ejemplo que me dejaste , lo resolví satisfactoriamente y sin complicaciones. Pero sigo sin poder resolver el primer ejercicio de este tema, no logro asimilar como guardar el primer número mayor, guardar su posición y si posteriormente encuentro otro cambiarlo por ese, me enredo en tan solo pensarlo y vaya que ya tengo días intentando resolverlo. Te agradecería lo vieramos más detenidamento o paso a paso, si es conveniente.
Vlady ten un excelente día. GRACIAS!!!Código:PROGRAM arregloej1; USES crt; CONST N = 5; VAR arr: array[1..N] of integer; i, mayor, menor, actual: integer; ultimaPos, ultimaPos1: integer; BEGIN clrscr; ultimaPos := 0; ultimaPos1 := 0; write('Ingresa ',N,' enteros: '); read(actual); mayor:= actual; menor:= actual; for i:=1 to N-1 do begin read(arr[i]); if arr[i] > mayor then begin mayor := arr[i]; ultimaPos1 := i; end else if arr[i] < menor then begin menor := arr[i]; ultimaPos := i; end; //if end;//for writeln; writeln('El menor numero es ',menor,' en la posicion ',ultimaPos1); writeln('El mayor numero es ',mayor,' en la posicion ',ultimaPos); readkey; END. te paso el códgio.Última edición por danteolivetti; 25/08/2012 a las 13:05
-
Pues sí se puede. No es el uso que le daremos en la parte que refiere a Pascal porque casi no usaremos el tipo String, más bien los hago trabajar con arreglos de caracteres (ARRAY OF CHAR) para que ustedes mismos implementen los Strings (justamente un String es un ARRAY OF CHAR) y se rompan las neuronas. Eso hace que solidifiquen la base sobre arreglos e índices y sepan además qué hay detrás de un String.
En concreto a tu pregunta, se puede hacer perfectamente. Ante este tipo de pregunas puedes probar a hacerlo tú mismo en el IDE a ver que pasa. -
Hola Vlady!
he intentado utilizar un arreglo con string y me arrojaba errores que no podia encontrar con el debuger. ademas, como en ninguna parte mencionaste string supuse que no tratarias este tema en esta leccion sino en el siguiente o algo asi. Pues ya nos vienes acostumbrando a dejar a lo ultimo las cosas mas dificiles. Pero como el tema ya se estaba yendo por otro lado, me volvi para preguntar esto. De hecho, si no me equivoco, en ningún caso durante toda la leccion utilizaste un arreglo con STRING... Y disculpame si me equivoco.
Te cuento que estoy leyendo ya la leccion 22. leo primero lo teorico, las comprendo, luego realizo los ejercicios, y despues hare un resumen de todo el curso para que me quede todo bien claro. Hace 15 dias que estoy con esto y como se dice "Me Gusta"
Te sigo hasta que digas "Fin del curso"
Saludos profe! -
Amigo gracias por seguir el curso y por preocuparte en preguntar las dudas. Como bien dices no hablé de Strings, lo menciono en alguna lección para algún ejemplo, pero en sí no utilizaremos ese tipo hasta Modula. No se qué herrores te tiraría, podríamos ver el código específicamente, pero no es algo que tenga que preocuparte a menos que tú tengas un proyecto personal en el que lo necesites.
Cualquier otra duda estamos a las órdenes. Gracias por participar.
Saludos.

1