Foros aprenderaprogramar.com
		Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: JValero en 13 de Mayo 2014, 12:11
		
			
			- 
				Buenos días,
 
 Me encuentro haciendo el ejercicio 4 correspondiente a la semana 9 y hay varias cosas que no entiendo del pseudocódigo del ejercicio.
 
 Concretamente en la linea 4:
 
 4. i=1 : Leer Dato(i)
 Entiendo que si a la variable Dato(i) le dieramos, por ejemplo, un valor 10 (Dato(10)) el no poner i=1 haría que el programa empezase a leer Dato(0) cuando en este caso eso no sería posible. No sé si me explico.
 
 Referente al ejercicio me preguntan que qué ocurriría en el caso de que eliminásemos la linea 4 del psudocódigo. Entiendo que si borramos esa linea, eliminaríamos el array que guarda el total de datos que va a leer el programa.
 
 Cualquier ayuda, consejo u orientación será bien recibida.
 
 Muchas gracias a todos.
- 
				Buenos días, comento algunas cuestiones a tener en cuenta:
 
 Si bien en Visual Basic normalmente hacemos una declaración del tipo Dim dato (30) que nos indica que los índices del array Dato comprende dato (0), dato (1), dato (2)... hasta dato (30), en pseudocódigo no hacemos esta declaración y suponemos que si escibimos Leer dato (250) sería porque 250 es un índice válido para el array.
 
 La línea en cuestión tiene dos instrucciones separadas por un signo de dos puntos, lo que significa que una se ejecuta primero y la otra después. A efectos prácticos, es como si se tratara de dos líneas independientes (aunque para ahorrar espacio se pueden poner instrucciones una detrás de otra).
 
 Como bien dices, si escribiéramos Leer dato ( i ) sin haber dado un valor a i, lo que leeríamos sería dato (0) al no haber definido un valor para i.
 
 En cambio, al hacer i=1 y luego escribir Leer dato ( i ) significa que se va a leer dato (1) (al decir leer suponemos que se lee desde un archivo, o que lo introduce el usuario
 
 ¿Qué ocurrirá al eliminar la línea? Como en pseudocódigo no establecemos la obligación de declaración del array (cosa que sí hacemos en Visual Basic), al eliminiar esa línea no eliminamos el array, únicamente hacemos que se dejen de ejecutar esas instrucciones.
 
 Lo que sería correcto que te plantearas es:
 
 ¿Qué hace el programa cuando está esa línea presente? y ¿Qué haría el programa cuando no está esa línea presente?
 
 Pongo un ejemplo de un programa inventado:
 1. Inicio
 2. dato ( 8 ) = 24
 3. i = 8
 4. Si dato ( i ) = 24 entonces
 Mostrar "Canguro"
 Sino
 Mostrar "Perro"
 FinSi
 5. Fin
 
 Ahora nos preguntamos. ¿Qué hace el programa tal y como está? Primero se inicia, luego se asigna que dato ( 8 ) vale 24. Luego se dice que i vale 8. Luego comprueba si dato ( i ) vale 24. Como i es 8 y dato ( 8 ) vale 24 es cierto. Muestra el mensaje "Canguro" y termina.
 
 ¿Qué haría el programa si elimináramos la linea 3? Primero se inicia, luego se asigna que dato ( 8 ) vale 24. Luego comprueba si dato ( i ) vale 24. Como en este caso i no tiene valor suponemos que es cero, por tanto comprueba el valor de dato (0) para ver si es 24. Pero como dato (0) no se ha establecido suponemos que es cero, por tanto no es igual a 24. Muestra el mensaje "Perro" y termina.
 
 La idea es hacer un seguimiento de este tipo aplicado al pseudocódigo que se indica en el ejercicio...
 
 Revísalo y me comentas cómo lo ves...
 
 Saludos.