Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad2 2
Unidad2 2
Unidad2 2
2) Sentencia SELECCIÓN-CASO
Esta es una estructura de decisión múltiple, evaluará una expresión que podrá
tomar uno de los “n” valores distintos que para algunos casos puede tratarse de
rangos o valores individuales, según cumpla con uno de estos.
Esta sentencia puede ser tratada también como si fuera sentencias si anidadas,
deberá tener en cuenta que los rangos o valores se expresarán como condiciones.
Diagrama de Flujo
Rango_Valor_1
Expresión_ Rango_Valor_4
Variable
Rango_Valor_2
Rango_Valor_3
Acción 1 Acción 4
Acción 2 Acción 3
Pseudocodigo
a) Problema #1
Un movil recorre un tramo de la carretera con Movimiento Rectilíneo
Uniforme (MRU), determinar y mostrar cual es el espacio recorrido:
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Calcular el espacio recorrido y en base a ello mostrar cuanta
gasolina se consume.
ii. ¿Qué datos necesito conocer?
La velocidad y el tiempo (según formula).
2. Planteamiento Lógico.
El desarrollo es simple, solamente deberá ingresar la velocidad y el
tiempo para calcular el espacio recorrido, en base a ello deberá observar
la tabla para que desarrolle la estructura correspondiente y muestre el
mensaje solicitado.
Ejemplo:
Si el espacio recorrido es de 25 kilómetros
El mensaje es 1 galón.
INICIO
Declaración de variables
V, T, E: entero
Escribir(‘Ingrese la velocidad:’)
Capturar(V)
Escribir(‘Ingrese el tiempo:’)
Capturar(T)
E=V*T
Seleccionar Cuando (E)
Sea 0 y 30
Mostrar(‘Debe usar 1 galón’)
Sea 31 y 60
Mostrar(‘Debe usar 2 galones’)
Sea 61 y 200
Fundamentos de Programación Pag. 99
Carrera Profesional de Computación e Informática
INICIO
Declaración de variables
V, T, E: entero
V, T
E=V*T
0 y 30 E
60 y 200
31 y 60
FIN
b) Problema #2
En un hotel los costos por día de las habitaciones son de acuerdo al tipo, según
la tabla:
Tipo Costo
A 35
B 25
C 15
Días Dscto
1..3 2%
4..7 10%
8 a mas 25%
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Hallar cuanto pagará el cliente por los días que estuvo en el hotel.
ii. ¿Qué datos necesito conocer?
El tipo de habitación y el número de días que se quedará.
2. Planteamiento Lógico.
Para poder determinar el total a pagar por el cliente inicialmente se
deberá saber cuanto le costará la habitación para ello deberá escoger el
tipo de habitación a usar(ver cuadro 1), luego deberá de mencionar el
número de días que se quedará de modo que se le pueda otorgar un
descuento(ver cuadro 2) y posteriormente se obtenga el total a pagar.
Ejemplo:
Si el tipo es B, el costo será de 25 soles
Si se queda 5 días, le corresponde un descuento del 10%
Es decir el costo de la habitación será de:
25 – 25/100 = 22.5
El total a pagar finalmente será:
22.5 * 5 = 112.5
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
TIP: caracter
ND, PRE: entero
TP: real
Escribir(‘Ingrese el tipo de habitación a usar:’)
Capturar(TIP)
Escribir(‘Ingrese el número de días que se quedará:’)
Capturar(ND)
Seleccionar Cuando (TIP)
Sea ‘A’
PRE = 35
Sea ‘B’
PRE = 25
Sea ‘C’
PRE = 15
Fin Seleccionar
Seleccionar Cuando (ND)
Sea 1..3
DSCT = 0.02
Sea 4..7
DSCT = 0.1
Otro caso
Fundamentos de Programación Pag. 102
Carrera Profesional de Computación e Informática
DSCT = 0.25
Fin Seleccionar
PRE = PRE – (PRE * DSCT)
TP = PRE * ND
Mostrar(‘El total a pagar será de:’, TP)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
TIP: caracter
ND, PRE: entero
TP: real
TIP, ND
A TIP
C
1y3 ND
Otro Caso
4y7
TP
FIN
Inicio de Bucle
Instrucción 1
Instrucción 2
Instrucción N
Fin de Bucle
Ej:
Inicio de Bucle
C=C+1
Fin de Bucle
Inicio de Bucle
AC = AC + N
Fin de Bucle
Diagrama de Flujo
Para I
Hasta F
Acciones
Pseudocodigo
Para i = 1 hasta n
Acciones
Fin_Para
Se ejecutará 10 veces
Ej:
a) Problema #1
Desarrollar un algoritmo que permita calcular y mostrar la suma de los n
primeros números naturales, deberá ingresar el límite de números a sumar.
S = 1 + 2 + 3 + 4 + 5 +... + n
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Calcular la suma de n números naturales.
ii. ¿Qué datos necesito conocer?
La cantidad de números a sumar.
2. Planteamiento Lógico.
Este tipo de problemas se puede desarrollar aplicando la formula general
para la suma de números naturales o en todo caso haciendo uso de
acumuladores y contadores.
INICIO
Declaración de variables
I, N, AC: entero
Escribir(‘Ingrese la cantidad de números a sumar:’)
Capturar(N)
AC = 0
Para I = 1 hasta N
AC = AC + I
Fin_Para
Mostrar(‘El espacio recorrido fue:’, AC)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
I, N, AC: entero
AC = 0
Para I=1
Hasta N
AC = AC + I
AC
FIN
Este Objeto lo
usaremos para
poder manejar
varios datos
(valores)
b) Problema #2
Desarrollar un algoritmo que permita calcular y mostrar la suma de los n
primeros números en la siguiente progresión, deberá ingresar el límite de
números a sumar.
S = 2 + 4 + 6 + 8 +... + n
Solución:
1. Análisis.
2. Planteamiento Lógico.
Este tipo de problemas se puede desarrollar aplicando la formula general
para la suma de números pares o en todo caso haciendo uso de
acumuladores y contadores.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
I, N, AC, NUM: entero
Escribir(‘Ingrese la cantidad de números a sumar:’)
Capturar(N)
AC = 0
NUM = 0
Para I = 1 hasta N
NUM = NUM + 2
AC = AC + NUM
Fin_Para
Mostrar(‘La suma es:’, AC)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
I, N, AC, NUM: entero
AC = 0; NUM = 0
Para I=1
Hasta N
NUM = NUM + 2
AC = AC + NUM
AC
FIN
Declaración de Variables
Dim i As Byte
Dim NUM As Integer
Dim AC As Integer
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Ingresar 30 números y mostrar cuantos fueron pares e impares.
ii. ¿Qué datos necesito conocer?
Cada uno de los números a evaluar.
2. Planteamiento Lógico.
A medida que se van ingresando los números se deberán de ir evaluando
para que mediante contadores a través de la condición correspondiente
determinar cuantos eran pares y cuantos impares.
3. Definición de variables de entrada.
Se requiere ingresar los números, usaremos la variable N.
4. Definición de variables de salida.
Las variables de salida serán 2 (para los impares y otra para los pares)
Fundamentos de Programación Pag. 112
Carrera Profesional de Computación e Informática
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
N, CI, CP, I: entero
CI = 0
CP = 0
Para I = 1 hasta 30
Escribir(‘Ingrese el número a evaluar:’)
Capturar(N)
SI (N mod 2 = 0) entonces
CP = CP + 1
Sino
CI = CI + 1
Fin_si
Fin_Para
Mostrar(‘El total números pares fue:’, CP)
Mostrar(‘El total números impares fue:’, CI)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
I, N, CP, CI: entero
CP = 0
CI = 0
Para I=1
Hasta 30
N mod 2 = 0
CI = CI + N CP = CP + N
CP, CI
FIN
Declaración de Variables
Dim i As Byte
Dim ACP As Integer
Dim ACI As Integer
d) Problema #4
Diseñar un algoritmo que permita ingresar 100 números y que permita mostrar
al final cuantos de los números ingresados fueron positivos, cuantos fueron
negativos y cuantos fueron cero, además se deberá mostrar las suma de ellos en
cada caso.
Solución:
1. Análisis.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
SP, SN, CP, CN, CC, NM, I: entero
CN = 0
CP = 0
CC = 0
SP = 0
SN = 0
Para I = 1 hasta 100
Escribir(‘Ingrese el número a evaluar:’)
Capturar(NM)
SI (NM > 0) entonces
CP = CP + 1
SP = SP + NM
Sino
SI (NM = 0) entonces
CC = CC + 1
Sino
CN = CN + 1
SN = SN + NM
Fin_si
Fin_si
Fin_Para
Mostrar(‘La cantidad de positivos es:’, CP)
Mostrar(‘La cantidad de ceros es:’, CC)
Mostrar(‘La cantidad de negativos es:’, CN)
Mostrar(‘La suma de positivos es:’, SP)
Mostrar(‘La suma de negativos es:’, SN)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
SP, SN, CP, CN, CC, NM,I: entero
CP = 0; CC = 0;
CN = 0; SP = 0;
SN = 0
Para I=1
Hasta 30
NM
NM > 0
CP = CP + 1
N=0
SP = SP + N
CI = CI + 1 CC = CC + 1
SI = SI + N
FIN
- Orientada a Objetos
Declaración de Variables
Dim i As Byte
Dim CP As Integer
Dim CN As Integer
Dim CC As Integer
Dim SP As Integer
Dim SN As Integer
e) Problema #5
Desarrolle un algoritmo que muestre los múltiplos de cada uno de los 50
números que se ingresaran por teclado.
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
El número a evaluar.
2. Planteamiento Lógico.
Para determinar los múltiplos de un número, deberá de dividirse el
número entre todos sus antecesores positivos incluyéndose el mismo y si
la división devuelve resto igual a cero entonces se definirá como
múltiplo del número dividido. Para lograr esto se deberá utilizar dos
bucles, uno para los 50 números y otro para realizar las divisiones.
3. Definición de variables de entrada.
Se requiere ingresar el número, usaremos la variable N.
4. Definición de variables de salida.
Los múltiplos estarán representados por la variable que controla el bucle
(J) de las divisiones.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
I, J, N: entero
Para I = 1 hasta 50
Escribir(‘Ingrese el número a evaluar:’)
Capturar(N)
Para J = 1 hasta N
SI (N mod J = 0) entonces
Mostrar(‘es múltiplo del número:’, J)
Fin_si
Fin_Para
Fin_Para
FIN
Diagrama de Flujo
INICIO
Declaración de variables
N, I, J: entero
Para I=1
Hasta 50
Para J=1
Hasta N
N mod J= 0
FIN
- Orientada a Objetos
Diseño del Formulario
MsFlexGrid1
Este Objeto lo
usaremos para poder
manejar varios datos
(valores) agrupados
en filas y columnas.
Declaración de variables
Dim i As Byte
Dim j As Byte
Dim c As Byte
Dim NUM As Byte
Diagrama de Flujo
F
¿?
Acciones
Pseudocodigo
a) Problema #1
Desarrolle un algoritmo que permita observar la suma de los n primeros
números de la siguiente sucesión: (número impares)
S = 1 + 3 + 5 + 7 +...
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
La suma de los n primeros números impares.
ii. ¿Qué datos necesito conocer?
Cuantos números sumaré.
2. Planteamiento Lógico.
Primero deberemos ingresar o saber cuantos números vamos a sumar,
luego dentro del bucle se deberá realizar lo siguiente: controlar el bucle,
generar el número de manera tal que se pueda ir acumulando para
obtener la suma final.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
N, SN, CN, NUM: entero
CN = 0
SN = 0
NUM = -1
Escribir(‘Ingrese la cantidad de números a sumar:’)
Capturar(N)
Hacer Mientras (CN < N)
CN = CN + 1
NUM = NUM + 2
SN = SN + NUM
Fin_Mientras
Mostrar(‘La suma de los números es:’, SN)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
N, SN, CN, NUM: entero
CN = 0; SN = 0; NUM = -1
F
CN<N
V
SN
CN = CN + 1
NUM = NUM + 2
SN = SN + NUM
FIN
b) Problema #2
Realizar un algoritmo que permita que permita leer los datos de 100 alumnos
(Num_Sección y Sexo), luego calcule y muestre:
Total de varones por cada sección.
Total de mujeres por cada sección.
Total general de varones.
Total general de mujeres.
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Calcular y mostrar una serie de totales (ver enunciado del problema).
ii. ¿Qué datos necesito conocer?
El número de sección y el sexo del alumno.
2. Planteamiento Lógico.
Se deberá ingresar la sección y el sexo de cada alumno para realizar las
preguntas correspondientes e ir contando el número de alumnos por
sección teniendo en cuenta el sexo de estos.
3. Definición de variables de entrada.
La sección se captura en la variable SC y el sexo en la variable SX.
4. Definición de variables de salida.
Para el total de varones por sección: TVS(1, 2, 3), para el total de
mujeres por sección: TMS(1, 2, 3), para el total general de varones:
TGV y para el total general de mujeres: TGM.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
SC, TVS1, TVS2, TVS3, TMS1, TMS2, TMS3, TGV, TGM, CN: entero
SX: caracter
TVS1 = 0
TVS2 = 0
TVS3 = 0
TMS1 = 0
TMS2 = 0
TMS3 = 0
TGV = 0
TGM = 0
CN = 0
Diagrama de Flujo
INICIO
Declaración de variables
SC, TVS1, TVS2, TVS3, TMS1, TMS2,
TMS3, TGV, TGM, CN: entero
SX: caracter
F
CN<100
FIN
SC = 1
SC = 2 SX=‘H’
SX=‘H’
SX=‘H’
Declaración de Variables
Dim CN As Byte
Dim i As Byte
Dim TVS1 As Byte
Dim TVS2 As Byte
Dim TVS3 As Byte
Dim TMS1 As Byte
Dim TMS2 As Byte
Dim TMS3 As Byte
Dim TGV As Byte
Dim TGM As Byte
Next i
End Sub
c) Problema #3
La señorita Veronica tiene un problema: le han pedido que desarrolle un
algoritmo que sirva para poder calcular el ingreso total diariamente por los
pasajes que se pagan en un bus, si se sabe que el pasaje de los adultos es de 2
soles, de los universitarios es 1 sol y los niños no pagan. Se calcula que en
promedio diariamente viajan 500 personas.
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Hallar el ingreso diario por concepto de pasajes en un bus.
ii. ¿Qué datos necesito conocer?
Los tipos de persona que suben al carro diariamente, ya que en base
a esto se sabe que pasaje cobrar.
2. Planteamiento Lógico.
Se deberá ingresar el tipo de pasajero que sube al bus para ir
contabilizando los pasajes.
3. Definición de variables de entrada.
El tipo de pasajero estará representado por la variable TP.
4. Definición de variables de salida.
El total diario estará representado por la variable TD.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
TD, I, CN: entero
TP: cadena
TD = 0
CN = 0
Hacer Mientras (CN < 500)
CN = CN + 1
Escribir(‘Ingrese el tipo de pasajero:’)
Capturar(TP)
SI (TP = ‘Adulto’) entonces
TD = TD + 2
Sino
SI (TP = ‘Universitario’) entonces
TD = TD + 1
Fin_si
Fin_si
Fin_Mientras
Mostrar(‘El total diario por concepto de pasajes es:’, TD)
FIN
Fundamentos de Programación Pag. 131
Carrera Profesional de Computación e Informática
Diagrama de Flujo
INICIO
Declaración de variables
TD, I, CN: entero
TP: cadena
TD = 0; CN = 0
F
CN<500
V
CN = CN + 1 TD
TP FIN
TP = ‘Adulto’
TP = ‘Universitario’
TD = TD + 2
TD = TD + 1
Declaración de Variables
Dim CN As Integer
Dim TD As Integer
Dim i As Integer
Diagrama de Flujo
Acciones
F
¿?
Pseudocodigo
Hacer
Acciones
Hasta que (¿Condición?)
a) Problema #1
Desarrollar un algoritmo que permita el ingresar 20 números, luego muestre la
tabla de multiplicar (del 1 al 12) de cada uno de los números ingresados.
Solución:
1. Análisis.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
CN, N, NM, I: entero
CN = 0
Hacer
Escribir(‘Ingrese el número a evaluar:’)
Capturar(N)
Para I = 1 hasta 12
NM = N * I
Mostrar(‘tabla de multiplicar:’, NM)
Fin_Para
CN = CN + 1
Hasta que (CN = 20)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
CN, N, NM, I: entero
CN = 0
Para I=1
Hasta 12
NM = N * I
NM
CN = CN + 1
CN=20
F
V
FIN
Declaración de Variables
Dim CN As Byte
Dim NM As Integer
Dim i As Byte
b) Problema #2
Desarrollar un algoritmo que permita ingresar 50 números enteros diferentes de
cero, luego muestre cuantos de estos números fueron pares y cuantos fueron
impares.
Solución:
1. Análisis.
Los 50 números.
2. Planteamiento Lógico.
Inicialmente se deberá validar el ingreso de los números porque dice que
tendrán que ser enteros diferentes de cero, luego mediante una pregunta
simple ir contando cuales son pares e impares.
3. Definición de variables de entrada.
La variable en donde se ingresará el número es N.
4. Definición de variables de salida.
Los números pares serán almacenados en NP y los impares en NI.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
N, NP, NI, I: entero
NP = 0
NI = 0
Para I = 1 hasta 50
Hacer
Escribir(‘Ingrese el número a evaluar:’)
Capturar(N)
Hasta que (N <> 0)
Si (N mod 2 = 0) entonces
NP = NP + 1
Sino
NI = NI + 1
Fin_Si
Fin_Para
FIN
Diagrama de Flujo
INICIO
Declaración de variables
N, NP, NI, I: entero
NP=0, NI=0
Para I=1
Hasta 50
V
N<>0
Nmod2=0
NI = NI + 1 NP = NP + 1
NP, NI
FIN
Declaración de Variables
Dim i As Byte
Dim x As Byte
Dim NP As Byte
Dim NI As Byte
c) Problema #3
Diseñar un algoritmo que permita ingresar 100 números positivos, luego
determinar cuantos de estos números fueron de 1, 2 y 3 cifras.
Solución:
1. Análisis.
Ej:
Si (N >= 1) and (N <= 9) entonces................. rango de 1 a 9
3. Definición de variables de entrada.
La variable en donde se ingresará el número es N.
4. Definición de variables de salida.
Los contadores para cada grupo son: 1C para una cifra, 2C para dos
cifras y 3C para tres cifras.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
N, 1C, 2C, 3C, I: entero
1C = 0
2C = 0
3C = 0
Para I = 1 hasta 100
Hacer
Escribir(‘Ingrese el número a evaluar:’)
Capturar(N)
Hasta que (N > 0)
Si (N >= 1 and N <= 9) entonces
1C = 1C + 1
Sino
Si (N >= 10 and N <= 99) entonces
2C = 2C + 1
Sino
Si (N >= 100 and N <= 999) entonces
3C = 3C + 1
Sino
Mostrar(‘No es un números de 1, 2 o 3 cifras’)
Fin_Si
Fin_Si
Fin_Si
Fin_Para
Mostrar(‘De 1 cifra:’,1C)
Mostrar(‘De 2 cifras:’,2C)
Mostrar(‘De 3 cifras:’,3C)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
N, 1C, 2C, 3C, I: entero
Para I=1
Hasta 100
V
N>0
N>=1 and
N<=9
1C = 1C + 1
N>=10 and
N<=99
2C = 2C + 1
N>=100 and
N<=999
No es un 3C = 3C + 1
números de 1, 2
o 3 cifras
1C, 2C, 3C
FIN
Declaración de Variables
Dim N As Integer
Dim i As Byte
Dim C1 As Byte
Dim C2 As Byte
Dim C3 As Byte
Dim C4 As Byte
For i = 1 To 100
N = List1.List(i - 1)
If (N >= 1 And N <= 9) Then
C1 = C1 + 1
Else
If (N >= 10 And N <= 99) Then
C2 = C2 + 1
Else
If (N >= 100 And N <= 999) Then
C3 = C3 + 1
Else
C4 = C4 + 1
End If
End If
End If
Next i
Text1 = C1
Text2 = C2
Text3 = C3
Text4 = C4
End Sub