Estructura de Algoritmos en Visual Basic
Estructura de Algoritmos en Visual Basic
Anatole France
Estructuración de Algoritmos.
Objetivo
Que el estudiante aprenda el correcto uso de las distintas
sentencias con sus respectivas notaciones y sintaxis que ofrece
la teoría algorítmica para el desarrollo de problemas además de
mostrar de manera práctica como es el desarrollo de la misma
aplicación en Visual Basic.
En esta unidad
Estructuración de Algoritmos.
Algoritmos de Estructura Secuencial.
Algoritmos de Estructura Condicional.
Algoritmos de Estructura Repetitiva
Carrera Profesional de Computación e Informática
Estructuración de Algoritmos
Los algoritmos se estructuran de diversas formas, en algunos casos simplemente su
desarrollo es consecutivo, a este tipo de algoritmos se denomina de estructura secuencial,
en otros casos durante el desarrollo secuencial se generan preguntas a este tipo de
algoritmos se denomina de estructura condicional y en otros casos
generan bucles es decir repetición de ciertas líneas de programas, a
estos algoritmos se denominan de estructura repetitiva.
Salida de
Información
Proceso de Datos
Captura de
Datos
Declaración de
Variables
Instrucción 1
Instrucción 2
Instrucción 3
Instrucción N
a) Problema #1
Diseñar un Algoritmo que permita hallar el área de un triangulo rectángulo
si se sabe:
Área_triángulo = (B * H) / 2
Donde B es base del triangulo y H es la altura.
Solución:
1. Análisis
i. ¿Qué te piden que realices?
Hallar el área de un triangulo.
ii. ¿Qué datos necesito conocer?
Según la formula que se muestra debería de conocer la base y
la altura.
2. Planteamiento Lógico.
El problema es de aplicación directa solamente abra que tener en
cuenta la formula para hallar el área de un triangulo rectángulo, la
cual es dato del problema.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
B, H: entero
AR: real
Escribir(‘Ingrese el valor de la base:’)
Capturar(B)
Escribir(‘Ingrese el valor de la altura:’)
Capturar(H)
AR = (B * H) / 2
Mostrar(‘El valor del área del triangulo es:’, AR)
FIN
Fundamentos de Programación Página 50
Carrera Profesional de Computación e Informática
Diagrama de Flujo
INICIO
Declaración de variables
B, H: entero
AR: real
B, H
AR = (B * H) / 2
AR
FIN
DATOS + COMPORTAMIENTO
PROPIEDADES + OPERACIONES
Ejecución del
programa realizado
Hacer Salida de
doble click información
generada
(MOSTRAR)
Para mostrar
la operación Declaración de
variables
Asignación de
valores a las
Desarrollo del variables
Proceso
Salida de
información
generada
b) Problema #2
Un docente del instituto ABACO, demora demasiado al momento de hallar
sus promedios ya que hace uso de una calculadora, ha planteado que un
alumno le desarrolle un programita que le permita hacer los cálculos, si se
sabe que estos se obtienen de tres notas: nota de practicas, nota de trabajo y
examen parcial. Desarrolle el Algoritmo.
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Diseñar un programa para ayudar al profesor a calcular sus
promedios.
ii. ¿Qué datos necesito conocer?
Según el texto, los promedios se obtienen a partir de tres
notas: nota de practicas, nota de trabajo y examen parcial.
2. Planteamiento Lógico.
Para la solución del problema, se deberá tener en cuenta como es que
se obtiene un promedio, en general los promedios se obtienen
sumando las notas involucradas y dividiendo entre el número de
estas, ejemplo:
Si tenemos 2 notas: promedio = (n1 + n2) / 2
Si tenemos 3 notas: promedio = (n1 + n2 + n3) / 3
...
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
NP, NT, EP: entero
PROM: real
Escribir(‘Ingrese la nota de practicas:’)
Capturar(NP)
Escribir(‘Ingrese la nota de trabajo:’)
Capturar(NT)
Escribir(‘Ingrese la nota del examen parcial:’)
Capturar(EP)
Diagrama de Flujo
INICIO
Declaración de variables
NP, NT, EP: entero
PROM: real
NP, NT, EP
PROM
FIN
CAPTURAR
ESCRIBIR
Ejecución del
programa realizado
MOSTRAR
Declaración de
variables
Asignación de
valores a las
Desarrollo del variables
Proceso
Salida de
información
generada
c) Problema #3
Desarrollar un algoritmo que permita hallar el valor de X en la siguiente
ecuación:
X = 3 + 5B – 8C
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Hallar el valor de X en la ecuación planteada.
ii. ¿Qué datos necesito conocer?
Si se observa la ecuación existen 2 variables cuyos valores
no se conocen: B y C.
2. Planteamiento Lógico.
Este problema es de aplicación directa solamente habrá que tener en
cuenta la ecuación que se esta dando como dato.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
B, C, X: entero
Escribir(‘Ingrese el valor de B:’)
Capturar(B)
Escribir(‘Ingrese el valor de C:’)
Capturar(C)
X=3+5*B–8*C
Mostrar(‘El valor de X en la ecuación es:’, X)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
B, C, X: entero
B, C
X=3+5*B–8*C
FIN
d) Problema #4
Realizar un algoritmo que permita realizar lo siguiente:
Se ingresa un número de 2 cifras de la forma ab y la salida final deberá ser:
ba (es decir la inversa del número ingresado):
Ejemplo:
43------- 34
81------- 18
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Invertir un número de 2 cifras.
ii. ¿Qué datos necesito conocer?
El número que se desea invertir.
2. Planteamiento Lógico.
Para invertir un número debemos tener en cuenta que en un primer
instante se debe de descomponer el numero(de 2 dígitos), para ello lo
dividiremos entre 10, usaremos los operadores matemáticos “div” y
“mod” que nos van a permitir obtener el resto y el cociente entero;
una vez que tenemos el número descompuesto lo volveremos a
generar solo que transformando las unidades en decenas(multiplicar
por 10) y sumando las centenas.
DIV
MOD
4 * 10 + 5 = 45
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
A, B, NUM, INV: entero
Escribir(‘Ingrese el número de 2 cifras a invertir:’)
Capturar(NUM)
A = NUM div 10
B = NUM mod 10
INV = B * 10 + A
Mostrar(‘El número invertido es:’, X)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
A, B, NUM, INV: entero
NUM
A = NUM div 10
B = NUM mod 10
INV = B * 10 + A
INV
FIN
e) Problema #5
Se ingresa un número expresado en kilómetros por teclado, diseñe un
algoritmo que realice las operaciones (conversiones) correspondientes para
transformarlo en milímetros.
Unidad Unidad_Equivalente
1 centímetro 10 milímetros
1 metro 100 centímetros
1 kilómetro 1000 metros
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Me piden transformar un número que se ingresa en
kilómetros a milímetros.
2. Planteamiento Lógico.
Para poder llevar un número de un sistema a otro, se deberá de
utilizar las conversiones de sistemas(para el caso: unidades de
longitud), de modo que se pueda encontrar una formula de
conversión, para ello nos proporcionan una tabla con los datos de
equivalencias.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
KM, ML: entero
Escribir(‘Ingrese el número de kilómetros a transformar:’)
Capturar(KM)
ML = KM * 1000000
Mostrar(‘El número expresado en milímetros es:’, ML)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
KM, ML: entero
KM
ML = KM * 1000000
ML
FIN
f) Problema #6
Una herencia se tiene que repartir entre 3 hermanos, al primero le tocará el
20% de la herencia, al segundo le tocará el 35% de la herencia y al tercero
el resto. Diseñe un algoritmo que nos permita calcular y visualizar cuanto le
toca a cada hermano.
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
El problema me pide que muestre cuanto le toco de la
herencia a cada hermano.
ii. ¿Qué datos necesito conocer?
Deberé conocer cual es la herencia ya que la forma como se
reparte esta expresada en el problema.
2. Planteamiento Lógico.
Si sabemos cual es la herencia que se pretende repartir, solo
tendremos que tener en cuenta la forma en que esta se reparte para
poder plantear las formulas, para ello debemos saber lo siguiente:
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
H: entero
HR1, HR2, HR3: real
Escribir(‘Ingrese el monto de la herencia:’)
Capturar(H)
HR1 = 0.2 * H
HR2 = 0.35 * H
HR3 = H – (HR1 + HR2)
Mostrar(‘Al primer hermano le toca:’, HR1)
Mostrar(‘Al segundo hermano le toca:’, HR2)
Mostrar(‘Al tercer hermano le toca:’, HR3)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
H: entero
HR1, HR2, HR3: real
HR1 = 0.2 * H
HR2 = 0.35 * H
HR3 = H – (HR1 + HR2)
HR1, HR2,
HR3
FIN
g) Problema #7
Dos hermanos comparten los siguientes gastos de la casa: el hermano mayor
contribuye con el 40% de su sueldo para los gastos de alimentación, el 21%
en pagar el alquiler del departamento y el resto lo destina al banco; el
hermano menor tiene un egreso del 35% de su sueldo en sus estudios, el
25% en apoyar pagar el alquiler del departamento y lo restante lo destina al
banco. Diseñar un algoritmo que permita calcular y mostrar los gastos de los
hermanos, adicionalmente deberá observarse cuanto destinan en total al
banco los dos hermanos.
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Mostrar los gastos de los dos hermanos pero adicionalmente
quiere que muestre cuanto destinan los dos juntos al banco
ii. ¿Qué datos necesito conocer?
Los datos que se deben conocer son los sueldos de cada
hermano, ya que los gastos y destinos de sus sueldos se
describen en porcentajes en el problema.
2. Planteamiento Lógico.
Teniendo en cuenta el planteamiento del problema anterior y del
concepto de cómo se manejan los porcentajes, ahora diremos que el
sueldo del hermano mayor representa al 100% y muy a parte el
sueldo del hermano menor representa también el otro100%; con los
datos proporcionados se procede a generar las formulas
directamente:
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
SH1, SH2: entero
ALM1, ALQ1, BCO1, EST2, ALQ2, BCO2, TBCO: real
Escribir(‘Ingrese el sueldo del hermano mayor:’)
Capturar(SH1)
Escribir(‘Ingrese el sueldo del hermano menor:’)
Capturar(SH2)
ALM1 = 0.4 * SH1
ALQ1 = 0.21 * SH1
BCO1= SH1 – (ALM1 + ALQ1)
EST2 = 0.35 * SH2
ALQ2 = 0.25 * SH2
BCO2 = SH2 – (EST2 + ALQ2)
TBCO = BCO1 + BCO2
Mostrar(‘Monto destinado para alimentos, Hermano mayor:’,ALM1)
Mostrar(‘Monto destinado al alquiler, Hermano mayor:’, ALQ1)
Mostrar(‘Monto destinado al banco, Hermano mayor:’, BCO1)
Mostrar(‘Monto destinado para estudios, Hermano menor:’, EST2)
Mostrar(‘Monto destinado al alquiler, Hermano menor:’, ALQ2)
Mostrar(‘Monto destinado al banco, Hermano menor:’, BCO2)
Mostrar(‘Monto destinado en total al banco:’, TBCO)
FIN
Declaración de variables
SH1, SH2: entero
ALM1, ALQ1, BCO1, EST2,
ALQ2, BCO2, TBCO: real
SH1, SH2
ALM1, ALQ1,
BCO1, EST2,
ALQ2,BCO2, TBCO
FIN
Condiciones Simples.
Son aquellas condiciones que utilizan operadores relacionales.
Ejemplos:
- (A + 6) > (3 + P)
- (40 * P) < 500
- (E > 20)
- (3 + (6 + R) * 2) = 60
Condiciones Compuestas.
Son aquellas condiciones que están compuestas por operadores
relacionales y agrupados a su vez por medio de operadores lógicos.
Operador Operador
Expresión 1 Lógico Expresión 2 Lógico Expresión 3
Ejemplos:
Diagrama de Flujo
F V
Condición
Acciones _ B Acciones _ A
Pseudocodigo
Si ¿Condición? entonces
Acciones _ A
Sino
Acciones _ B
Fin si
a) Problema #1
Realizar un algoritmo que permita ingresar 2 números, luego determinar si el
primer número ingresado fue el mayor(mostrar un mensaje).
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Evaluar 2 números para determinar si el primer número
ingresado fue el mayor.
ii. ¿Qué datos necesito conocer?
Los 2 números.
2. Planteamiento Lógico.
La forma directa de poder saber si un número es mayor a otro es creando
una condición relacional.
Ejemplo:
A>B
INICIO
Declaración de variables
N1, N2: entero
Escribir(‘Ingrese el primer número:’)
Capturar(N1)
Escribir(‘Ingrese el segundo número:’)
Capturar(N2)
Si (N1 > N2) entonces
Mostrar(‘el primer número es mayor’)
Sino
Mostrar(‘el primer número no es mayor’)
Fin_Si
FIN
Diagrama de Flujo
INICIO
Declaración de variables
N1, N2: entero
N1, N2
F V
A>B
el primer el primer
número no número es
es mayor mayor
FIN
Se mostrará el
mensaje final
Observe que se le a
Codificación del Programa cambiado el nombre al
objeto command1
Las variables
serán declaradas
a nivel de
formulario
b) Problema #2
Diseñar un algoritmo que permita calcular y mostrar el promedio de 2 notas,
adicionalmente deberá mostrar mediante un mensaje si el promedio es
aprobatorio o desaprobatorio.
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Hallar el promedio de 2 notas y mostrar un mensaje: aprobado o
desaprobado.
2. Planteamiento Lógico.
Inicialmente se deberá hallar el promedio de las notas ingresadas, luego
deberá evaluar el promedio para saber si fue aprobatorio o
desaprobatorio, debe tener en cuenta que se considera aprobado aquel
promedio que es mayor a 10.5 (medio punto a favor del alumno).
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
NT1, NT2: entero
PROM: real
Escribir(‘Ingrese la nota1:’)
Capturar(NT1)
Escribir(‘Ingrese la nota2:’)
Capturar(NT2)
PROM = (NT1 + NT2) / 2
Si (PROM > 10.5) entonces
Mostrar(‘Aprobado:’, PROM)
Sino
Mostrar(‘Desaprobado:’, PROM)
Fin_Si
FIN
Diagrama de Flujo
INICIO
Declaración de variables
NT1, NT2: entero
PROM: real
NT1, NT2
F V
PROM>10.5
‘Desaprobado:’, ‘Aprobado: ‘,
PROM PROM
FIN
c) Problema #3
Se ingresa un número por teclado, determinar si este es par (mostrar un
mensaje).
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Determinar si el número que se ingresa es par.
ii. ¿Qué datos necesito conocer?
El número a evaluar.
2. Planteamiento Lógico.
Para poder saber si un número es par (múltiplo de 2), al dividir a esta
entre 2 el resto deberá ser cero, si recordamos clases anteriores, el resto
se obtiene mediante el operador MOD.
Ejemplo:
10 mod 2 = 0
26 mod 2 = 0
4 mod 2 = 0
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
NUM: entero
Escribir(‘Ingrese el número a evaluar:’)
Capturar(NUM)
Si (NUM mod 2 = 0) entonces
Mostrar(‘Es múltiplo de 2:’, NUM)
Sino
Mostrar(‘No es múltiplo de 2:’, NUM)
Fin_Si
FIN
Fundamentos de Programación Página 74
Carrera Profesional de Computación e Informática
Diagrama de Flujo
INICIO
Declaración de variables
NUM: entero
NUM
F V
NUM mod 2 = 0
FIN
d) Problema #4
Se ingresan dos números por teclado, si la suma de ambos es mayor a 20 al
primer número se le deberá de incrementar en 10 y al segundo se le quitará 5 en
caso contrario al primer número se le quitará 18 y al segundo se le aumentará
15, finalmente deberá mostrar la suma los nuevos números que se formaron.
Diseñar el algoritmo correspondiente.
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Mostrar la suma de los números pero depuse de desarrollar una serie
de procesos.
ii. ¿Qué datos necesito conocer?
Los números a evaluar.
2. Planteamiento Lógico.
Para el desarrollo de esta problema solamente se deberá tener un orden
lógico para asignar los valores correspondientes de acuerdo a la pregunta
que se genera al inicio del problema.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
N1, N2, SUM: entero
Fundamentos de Programación Página 76
Carrera Profesional de Computación e Informática
Diagrama de Flujo
INICIO
Declaración de variables
N1, N2, SUM: entero
N1, N2
SUM = N1 + N2
F V
SUM > 20
N1 = N1 + 18 N1 = N1 + 10
N2 = N2 – 15 N2 = N2 – 5
SUM = N1 + N2
La suma de los
número que se
generan es:’, SUM
FIN
e) Problema #5
Se ingresan tres números por teclado, realizar un algoritmo que permita hallar
cual es el mayor de los tres números que se ingresaron.
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Hallar el mayor de tres números.
2. Planteamiento Lógico.
Para determinar el mayor de tres números existen diversas formas, en la
que observaremos, se tiene en cuenta la asignación inicial de un valor
inicial a una variable que al final representará al mayor número(que
podrá ser cualquiera de los números ingresados), la cual después será
evaluada paulatinamente con condiciones simples(sin formar bucles)
con los números restantes.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
N1, N2, N3, MY: entero
Escribir(‘Ingrese el primer número a evaluar:’)
Capturar(N1)
Escribir(‘Ingrese el segundo número a evaluar:’)
Capturar(N2)
Escribir(‘Ingrese el tercer número a evaluar:’)
Capturar(N3)
MY = N1
Si (MY < N2) entonces
MY = N2
Fin_Si
Si (MY < N3) entonces
MY = N3
Fin_Si
Mostrar(‘El mayor de los tres números es:’, MY)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
N1, N2, N3, MY: entero
N1, N2, N3
MY = N1
F V
MY<N2
MY = N2
F V
MY<N3
MY = N3
MY
FIN
Observación_1 :
La sentencia SI, puede agruparse para ciertos casos de condicionales (condicionales
compuestas), a estas agrupaciones que puede presentar la sentencia Si se las
denomina “Sentencia SI Anidada”, y se expresa de la siguiente forma:
Diagrama de Flujo
C1
C2 Acción 1
Acción 4 Acción 3
C3
Acción 2
Pseudocodigo
Si (C1) entonces
Acción 1
...
Si (C3) entonces
Acción 2
...
Fin_si
Sino
Si (C2) entonces
Acción 3
...
Sino
Acción 4
...
Fin_si
Fin_si
f) Problema #6
Diseñar un algoritmo que permita ingresar 3 notas, determinar el promedio de
estas y luego mostrar un mensaje dependiendo el promedio obtenido, ver
cuadro:
Promedio Mensaje
0 .. 7 Pésimo
8 .. 15 Regular
16 .. 20 Bueno
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Hallar el promedio de notas y mostrar un mensaje de acuerdo a
cuadro.
2. Planteamiento Lógico.
Inicialmente deberá de calcular el promedio de las notas ingresadas,
luego haciendo uso de sentencias condicionales anidadas, deberá evaluar
el promedio e ir mostrando los mensajes.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
NT1, NT2, NT3: entero
PR: real
Escribir(‘Ingrese la primera nota:’)
Capturar(NT1)
Escribir(‘Ingrese la segunda nota:’)
Capturar(NT2)
Escribir(‘Ingrese la tercera nota:’)
Capturar(NT3)
PR = (NT1 + NT2 + NT3) / 3
Si (PR >= 0) and (PR <= 7) entonces
Mostrar(‘El promedio es pésimo:’, PR)
Sino
Si (PR >= 8) and (PR <= 15) entonces
Mostrar(‘El promedio es regular:’, PR)
Sino
Mostrar(‘El promedio es bueno:’, PR)
Fin_Si
Fin_Si
FIN
Diagrama de Flujo
INICIO
Declaración de variables
NT1, NT2, NT3: entero
PR: real
‘El promedio es
(PR>=0) and (PR<=7)
pésimo:’, PR
MY
FIN
g) Problema #7
En una empresa el sueldo básico de los trabajadores es en base a la categoría
que tienen:
N_Hijos % Bonificación
0 .. 3 10%
4 .. 6 12%
7 .. mas 14%
AFP % Descuento
UNION 14%
HORIZONTE 16%
INTEGRA 15%
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Hallar el sueldo Neto, en base al básico, bonificación y descuento.
2. Planteamiento Lógico.
Para obtener el sueldo básico se requiere conocer la categoría, el sueldo
básico que corresponde se obtiene según el cuadro que se muestra en el
enunciado.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
CT: carácter
AF: cadena
NH, SB: entero
BON, DSC, SN: real
Escribir(‘Ingrese la categoría:’)
Capturar(CT)
Escribir(‘Ingrese el número de hijos:’)
Capturar(NH)
Escribir(‘Ingrese la AFP:’)
Capturar(AF)
Si (CT = ‘A’) entonces
SB = 800
Sino
Si (CT = ‘B’) entonces
SB = 1000
Sino
SB = 700
Fin_Si
Fin_Si
Si (NH >= 0) and (NH <= 3) entonces
BON = 0.1 * SB
Sino
Si (NH >= 4) and (NH <= 6) entonces
BON = 0.12 * SB
Sino
BON = 0.14 * SB
Fin_Si
Fin_Si
Si (AF = ‘UNION’) entonces
DSC = 0.14 * SB
Sino
Si (AF = ‘HORIZONTE’) entonces
DSC = 0.16 * SB
Sino
DSC = 0.15 * SB
Fundamentos de Programación Página 87
Carrera Profesional de Computación e Informática
Fin_Si
Fin_Si
SN = SB + BON – DSC
Mostrar(‘El sueldo neto es:’, SN)
FIN
Diagrama de Flujo
INICIO
Declaración de variables
CT: carácter
AF: cadena
NH, SB: entero
BON, DSC, SN: real
CT, NH, AF
CT=‘A’
SB = 800
CT=‘B’
SB = 700 SB = 1000
BON = 0.1 * SB
(NH>=4) and (PR<=6)
AF= ‘UNION’
DSC = 0.14 * SB
AF= ‘HORIZONTE’
SN = SB + BON - DSC
SN
FIN
Conjuntos
de opciones
Se esta obteniendo la
bonificación en BON
h) Problema #8
Se ingresa un número por teclado, si este es mayor a 20 entonces habrá que
sumarle 40, si el nuevo número generado resulta mayor a 100 entonces se le
multiplicará por 2 en caso contrario se le quitará 50; en caso de que no haya
Fundamentos de Programación Página 91
Carrera Profesional de Computación e Informática
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Evaluar un número que se ingresa por teclado.
ii. ¿Qué datos necesito conocer?
El número a evaluar.
2. Planteamiento Lógico.
El desarrollo del problema planteado simplemente es de seguimiento,
deberá de tener un orden de desarrollo y realizar las condiciones así
como los procesos correspondientes a medida que se avanza con su
solución.
3. Definición de variables de entrada.
El número a evaluar es el único que se valor que se ingresa (NUM)
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
NUM: entero
Escribir(‘Ingrese el número a evaluar:’)
Capturar(NUM)
Si (NUM > 20) entonces
NUM = NUM + 40
Si (NUM > 100) entonces
NUM = NUM * 2
Sino
NUM = NUM – 50
Fin_Si
Sino
NUM = NUM – 10
Si (NUM < 0) entonces
NUM = NUM + 30
Fin_Si
Fin_Si
Mostrar(‘El valor final del número es:’, NUM)
FIN
Fundamentos de Programación Página 92
Carrera Profesional de Computación e Informática
Diagrama de Flujo
INICIO
Declaración de variables
NUM: entero
NUM
NUM>20
NUM>100
NUM<0
NUM = NUM + 30
NUM
FIN
Observación_2 :
La sentencia SI tiene una variante: SI-ENTONCES-SINOSI
Esta variación se caracteriza porque por el lado falso de la sentencia SI, no se llevan
acabo operaciones sino que se genera una pregunta inmediatamente ocurrido el lado
falso, la salida final ya sea que existan varias sentencias SI-ENTONCES-SINOSI es
solo un FIN_SI.
Diagrama de Flujo
C1
Acción 1
C2
C3
Acción 3 Acción 2
C4
Acción 4
Pseudocodigo
Si (C1) entonces
Acción 1
Si (C3) entonces
Acción 2
Fin_si
SinoSi (C2) entonces
Acción 3
SinoSi (C4) entonces
Acción 4
Fin_Si
i) Problema #9
Cuando un cliente se acerca a comprar 1 kilo de arroz a una tienda se da cuenta
de lo siguiente: el arroz se vendía en tres presentaciones: bolsa, lata y vidrio. El
kilo de arroz en bolsa cuesta 10 soles, en lata cuesta 12 soles y el vidrio cuesta
16 soles. Desarrolle un algoritmo que permita calcular y mostrar cuanto pagará
el cliente si se sabe que:
Total a pagar = Precio * Cantidad
Solución:
1. Análisis.
i. ¿Qué te piden que realices?
Calcular el total a pagar por el cliente que comprará un kilo de arroz.
ii. ¿Qué datos necesito conocer?
Según la formula se requiere conocer el precio y la cantidad, tenga
en cuenta que el precio esta en base a la presentación por lo que en
realidad se requiere conocer la presentación en la que llevará el kilo
de arroz.
2. Planteamiento Lógico.
Una vez que se ingrese la presentación se podrá obtener el precio del
arroz, luego se deberá ingresar la cantidad para finalmente hallar el total
a pagar (precio * cantidad).
3. Definición de variables de entrada.
Se deberá ingresar la presentación en la que quiere llevar el arroz (PRE)
y la cantidad a comprar(CN).
4. Definición de variables de salida.
La variable de salida que representa al total a pagar es TP.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo
INICIO
Declaración de variables
Fundamentos de Programación Página 95
Carrera Profesional de Computación e Informática
PRE: cadena
CN, TP, PC: entero
Escribir(‘Ingrese la presentación de arroz a comprar:’)
Capturar(PRE)
Escribir(‘Ingrese la cantidad de arroz a comprar:’)
Capturar(CN)
Si (PRE = ‘Bolsa’) entonces
PC = 10
SinoSi (PRE > ‘Lata’) entonces
PC = 12
SinoSi (PRE > ‘Vidrio’) entonces
PC = 16
Fin_Si
TP = PC * CN
Escribir(‘El total a pagar es:’ TP)
FIN
Declaración de variables
PRE: cadena
CN, PC, TP: entero
CN, PRE
PRE=‘Bolsa’
PC = 10
PRE=‘Lata’
PC = 12
PRE=‘Vidrio’
PC = 16
TP = PC * CN
TP
FIN