Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructuras 2
Estructuras 2
Por cada uno de los N estudiantes de una universidad, donde cada uno cursa 4
materias se tienen los siguientes datos:
Hacer un algoritmo que encuentre para cada estudiante el número de créditos cursados y el
promedio crédito.
Análisis
Datos de entrada
• Número de estudiantes.
• Código estudiante.
• Nota materia 1.
• Número de créditos materia 1.
• Nota materia 2.
• Número de créditos materia 2.
• Nota materia 3.
• Número de créditos materia 3.
• Nota materia 4.
• Número de créditos materia 4.
Datos de salida
Algoritmo
INICIO
NUME = 1
LEA: NE
MIENTRAS NUME < = NE HAGA
LEA: COD, N1, NC1, N2, NC2, N3, NC3, N4, NC4
NCC = NC1 + NC2 + NC3 + NC4
PC = (Nl * NC1 + N2 * NC2 + N3 * NC3 + N4 * NC4) / NCC
ESCRIBA: “EL ESTUDIANTE CON CODIGO”, COD, NUME = NUME +
1
FIN_MIENTRAS
FIN_INICIO
Prueba de escritorio
¿?
Otro ejercicio:
Hacer un algoritmo que encuentre la suma de los primeros N números naturales.
Análisis
Datos de entrada
• La cantidad de números a tener en cuenta en la suma.
Datos de salida
• La suma de los primeros N números naturales.
Proceso
Primero se debe conocer la cantidad de números naturales a sumar y luego generar y
sumar los números comprendidos entre 1 y esa cantidad.
Definición de variables
N: Cantidad de números naturales a sumar.
NUM: Contador que genera los números entre 1 y N y que a su vez controla el
ciclo.
SUMA: Suma de los números entre 1 y N.
Algoritmo
INICIO
SUMA = 0
NUM = 1
LEA: N
MIENTRAS NUM ≤ N HAGA
SUMA = SUMA + NUM
NUM = NUM + 1
FIN_MIENTRAS
ESCRIBA: "LA SUMA ES:", SUMA
FIN_INICIO
Esquema cualitativo
Este esquema es utilizado cuando no se conoce el número de veces que debe
repetirse la secuencia de un determinado ciclo.
En esta clase de ciclo el usuario decide cuándo terminar con el proceso repetitivo
sin importar cuantas iteraciones se hayan efectuado; a diferencia de los ciclos
anteriores, en donde el número de iteraciones está determinado desde el principio.
La implementación del modelo se hace demarcando el grupo de registros o datos a
procesar mediante información inválida para el proceso; por lo tanto, se deben
conocer las características de los datos y con base en esto usar una marca como
registro final que delimite la información que interviene dentro del proceso.
La marca o registro centinela, como también se le conoce, tiene el significado
de no hay más datos, o simplemente no hay más registros para procesar; en
otros términos se llegó al final del archivo.
El registro que contiene la marca (centinela) se adiciona al final del archivo como
último registro.
ESTRUCTURAS ADICIONALES
Estructura PARA
La estructura para permite que una o más instrucciones secuencia se repitan
cero o más veces, mientras los valores de una progresión aritmética de razón
creciente o decreciente se vayan asignando a una variable denominada variable de
control del ciclo para.
El control del ciclo se hace en forma automática con base en parámetros que
establece el programador.
Esta estructura es usada cuando se tiene un esquema cuantitativo y el contador
que controla el ciclo se incrementa o disminuye en un valor constante.
La diferencia como se implementa esta clase de ciclos con la estructura mientras, es
que el para maneja la inicialización del contador y su incremento en forma
automática, es decir, lo hace la estructura.
Los valores de los parámetros que maneja este ciclo son controlados por la
estructura y, una vez establecidos sus valores o activado el ciclo, no es factible
cambiarlos.
Representación
PARA VC = LI, LF, INC HAGA
<secuencia>
FIN_PARA
Donde:
VC: Variable numérica entera que sirve de control del ciclo (contador en la
estructura mientras).
Ll: Expresión entera utilizada como límite inicial del rango de valores que puede
tomar VC (valor inicial del contador).
LF: Expresión entera usada como límite final del rango de valores que puede tomar
VC (valor final del contador o número de repeticiones del ciclo en el esquema
cuantitativo).
INC: Expresión entera que indica el valor del incremento o disminución de la
variable de control; si el valor es uno se puede omitir.
Ejemplo
PARA I = 1, 5, 1 HAGA
ESCRIBA: I
FIN_ PARA
Representación
CASOS DE <variable>
CASO 1:
<SECUENCIA 1>
CASO 2:
<SECUENCIA 2>
CASO N:
<SECUENCIA N>
OTROS
CASOS: <SECUENCIA N+1>
FIN_CASOS
Funcionamiento
Al llegar a la estructura se evalúa el valor almacenado en la variable utilizada como
controlador, para determinar cuál de las secuencias se efectúa. Una secuencia se
ejecutará sí, y sólo sí, uno de los rótulos (casos) correspondientes coincide con el
valor actual del controlador.
Por tanto, el valor actual del controlador determina cuál de las secuencias se va a
ejecutar. Si el valor del controlador no coincide con ninguno de los rótulos descritos
y la secuencia por defecto (N+1) está presente, entonces ésta será ejecutada. Si esta
secuencia no está presente (es opcional usarla) y el valor del controlador no
coincide con ninguno de los rótulos, no será ejecutada ninguna de las secuencias;
por lo tanto, continuará con la estructura siguiente.
En forma general se puede decir, que si el valor del controlador es i, se ejecutará
una sola vez la secuencia correspondiente al caso i y que la secuencia (N+1) se
ejecutará si está presente, para cualquier valor del controlador que no coincida con
ningún caso.
Representación
REPETIR
<secuencia>
MIENTRAS <expresión lógica>
Ejemplo
REPETIR
A= A + 1
ESCRIBA: A, B
MIENTRAS A <= B