Practico 4 Ej 6

Practico 4 Ej 6

de Juliana Fernández De Leon -
Número de respuestas: 1

Hola, estoy un poco trancada con el ejercicio. Me pasa que cuando lo ejecuto parece ser que no llega a leer todos los números y solo lee el primero.

CodigoEjecución del código

En respuesta a Juliana Fernández De Leon

Re: Practico 4 Ej 6

de Luis Sierra -
hola juliana,

hay varios comentarios a hacer.

1. el código está casi correcto. tenés un problema en la inicialización, y tenés un problema de tipeo.

2A. considera la siguiente instrucción compuesta:
begin read(a); read(b); read(c) end
esa instrucción compuesta tiene tres instrucciones, todas ellas reads. hay una instrucción especial, la instrucción vacía o skip, que no hace nada, y se usa cuando no se escribe nada. será muy rara, pero a veces es útil. la siguiente instrucción compuesta tiene tres instrucciones vacías:
begin ;; end
cada punto y coma separa una instrucción de la siguiente.

2B. y ahora, tu problema de tipeo. la instrucción
for v := e1 to e2 do instrucción
repite instrucción una cierta cantidad de veces. tu pusiste
for j := 1 to n do instrucción_vacía
porque el ; que aparece al final de ese renglón separa el for de la instrucción compuesta que aparece luego. es decir,
lo que pusiste entre el begin y el end no es el cuerpo del for, sino la instrucción siguiente al for, separada por ese ;. y el cuerpo del for es... la instrucción vacía. así que tu for no hace nada ocho veces, y luego ejecuta una vez lo que tú crees que era el cuerpo del for.

3. una vez corregido ese error de tipeo, observarás que tu programa no funciona correctamente. tienes un problema de inicialización que se refleja en dos cosas.

3A. como no tienes ninguna entrada negativa, e inicializaste el mínimo en cero, te quedará que el mínimo será siempre cero, aunque no esté entre los datos.
3B. el mismo problema lo tendrías sino hubiera ninguna entrada positiva, aunque si lo ejecutas en este caso no te percatarías. así que si bien el error 3A se manifiesta en esta ejecución, el 3B, que es igual de error que el anterior, no
se manifiesta.

tienes que inicializar los valores extremos con valores que sirvan. suponiendo que la cantidad n es mayor que cero, puedes inicializarlos con el primer entero leído.

saludos

luis