0% encontró este documento útil (0 votos)
17 vistas50 páginas

Estructura de Algoritmos en Visual Basic

Este documento explica los diferentes tipos de estructuras de algoritmos, incluyendo secuencial, condicional y repetitiva. También muestra ejemplos de problemas resueltos usando cada estructura y su implementación en pseudocódigo y Visual Basic.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas50 páginas

Estructura de Algoritmos en Visual Basic

Este documento explica los diferentes tipos de estructuras de algoritmos, incluyendo secuencial, condicional y repetitiva. También muestra ejemplos de problemas resueltos usando cada estructura y su implementación en pseudocódigo y Visual Basic.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

El futuro está oculto detrás de los

hombres que lo hacen.

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.

Para poder estructurar un algoritmo de manera correcta se deberá


de aplicar los conceptos aprendidos en la unidad anterior de modo que
desarrollen algoritmos adecuados, los términos usados son aplicables a
los programas algorítmicos, de ahí que siempre se tendrá la siguiente
estructura básica para cualquier algoritmo a desarrollar:

Salida de
Información
Proceso de Datos

Captura de
Datos
Declaración de
Variables

I. Algoritmos de Estructura Secuencial.


Este tipo de algoritmos se caracteriza por que entre sus
instrucciones no existen estructuras condicionales ni repetitivas,
se desarrollan línea a línea hasta culminar con su ejecución,
gráficamente se observaría de la siguiente manera:

Instrucción 1

Instrucción 2

Instrucción 3

Instrucción N

Fundamentos de Programación Página 49


Carrera Profesional de Computación e Informática

A continuación se desarrollaran una serie de problemas del tema en dos ambientes:


estructurado(Algoritmos) y orientado a objetos(Visual Basic).

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.

3. Definición de variables de entrada


Las variables que se usaran para la captura de la base y la altura son:
B y H.

4. Definición de variables de salida


Finalmente la variable en donde se muestra el área del triangulo
rectángulo es: AR

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

- Visión Orientada a Objetos


Diseño del Formulario
Observación: Para el diseño y programación de las aplicaciones de
este libro, usaremos el Visual Basic en esta parte observaremos los
siguientes objetos:

El formulario que es un contenedor


de objetos, es la pantalla donde
diseñaremos nuestros programas

Este objeto lo usaremos para los


títulos de los datos a usar y los
resultados obtenidos

Este objeto lo usaremos para capturar


los datos entrantes y mostrar
resultados generados

Este objeto lo usaremos para


procesar un programa

La programación orientada a objetos se caracteriza porque se


estudian dos cosas:

DATOS + COMPORTAMIENTO

Fundamentos de Programación Página 51


Carrera Profesional de Computación e Informática

De este modo todo objeto que observamos posee dos divisiones


marcadas:

PROPIEDADES + OPERACIONES

Las propiedades nos servirán para Diseñar y las operaciones para


Programar.
A continuación observaremos como es el diseño y programación
orientada a objetos de la aplicación desarrollada anteriormente de
manera estructurada.
Objetos para el
ingreso de datos
Títulos para
(CAPTURAR)
ingresar datos
(ESCRIBIR)

Ejecución del
programa realizado

Hacer Salida de
doble click información
generada
(MOSTRAR)

Botones para nuevo


ingreso y salir

Codificación del Programa

Para mostrar
la operación Declaración de
variables

Asignación de
valores a las
Desarrollo del variables
Proceso

Salida de
información
generada

Fundamentos de Programación Página 52


Carrera Profesional de Computación e Informática

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
...

3. Definición de variables de entrada.


Las variables a utilizar para cada nota son: NP para las notas de
prácticas, NT para las notas de trabajo y EP para el examen parcial.

4. Definición de variables de salida.


El promedio que se obtenga, se almacena en la variable PROM.

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)

Fundamentos de Programación Página 53


Carrera Profesional de Computación e Informática

PROM = (NP + NT + EP) / 3


Mostrar(‘El promedio obtenido es:’, PROM)
FIN

Diagrama de Flujo

INICIO

Declaración de variables
NP, NT, EP: entero
PROM: real

NP, NT, EP

PROM = (NT + NP + EP) / 3

PROM

FIN

- Visión Orientada a Objetos

Diseño del Formulario

CAPTURAR

ESCRIBIR

Ejecución del
programa realizado

MOSTRAR

Fundamentos de Programación Página 54


Carrera Profesional de Computación e Informática

Codificación del Programa

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.

3. Definición de variables de entrada


La variables para la captura de datos estarán representadas por las
letras B y C.

4. Definición de variables de salida


El valor final de la ecuación se almacenará en la variable X.

5. Diseño de la Solución.

- Visión Estructurada

Pseudocodigo

Fundamentos de Programación Página 55


Carrera Profesional de Computación e Informática

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

- Visión Orientada a Objetos


Diseño del Formulario

Fundamentos de Programación Página 56


Carrera Profesional de Computación e Informática

Codificación del Programa

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.

Observe: sea 54 el número a invertir.

DIV
MOD

4 * 10 + 5 = 45

Fundamentos de Programación Página 57


Carrera Profesional de Computación e Informática

3. Definición de variables de entrada.


La variable que se usará para la captura del número de 2 cifras será
NUM.

4. Definición de variables de salida.


El número invertido se almacenará en la variable INV.

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

Fundamentos de Programación Página 58


Carrera Profesional de Computación e Informática

- Visión Orientada a Objetos

Diseño del Formulario

Codificación del Programa

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:

Fundamentos de Programación Página 59


Carrera Profesional de Computación e Informática

1. Análisis.
i. ¿Qué te piden que realices?
Me piden transformar un número que se ingresa en
kilómetros a milímetros.

ii. ¿Qué datos necesito conocer?


El número que se desea convertir.

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.

Observe: voy convertir 10 kilómetros a milímetros.

El resultado sería entonces: 10 * 1000 * 100 * 10


= 10000000

Generalizando, la formula sería: N * 1000000

3. Definición de variables de entrada.


El número a convertir en milímetros será capturado en la variable
KM.

4. Definición de variables de salida.


El número convertido en milímetros se guardará en la variable ML.

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

Fundamentos de Programación Página 60


Carrera Profesional de Computación e Informática

Diagrama de Flujo

INICIO

Declaración de variables
KM, ML: entero

KM

ML = KM * 1000000

ML

FIN

- Visión Orientada a Objetos

Diseño del Formulario

Codificación del Programa

Fundamentos de Programación Página 61


Carrera Profesional de Computación e Informática

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:

Los porcentajes se deben expresar en números, de la


siguiente forma:

por lo tanto 20% = 0.2


35% = 0.35
las formulas serían: (la palabra de significa producto en
matemáticas)

Herencia del 1er hermano = 0.2 * Herencia


Herencia del 2do hermano = 0.35 * Herencia
Herencia del 3er hermano = Herencia – (herencias anteriores)

OBS: Para hallar el monto que le toca al ultimo hermano se


puede realizar de la forma como se muestra en la formula o
aplicando porcentajes, si se observa el gráfico al tercer
hermano le tocaría el 45%.
Fundamentos de Programación Página 62
Carrera Profesional de Computación e Informática

3. Definición de variables de entrada.


La variable de entrada que representa a la herencia es H.

4. Definición de variables de salida.


Las variables en donde se muestra la parte que le toca a cada
hermano son: el monto del primer hermano en HR1, el monto del
segundo hermano en HR2 y el monto del tercer hermano en HR3.

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

Fundamentos de Programación Página 63


Carrera Profesional de Computación e Informática

- Visión Orientada a Objetos

Diseño del Formulario

Codificación del Programa

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.

Fundamentos de Programación Página 64


Carrera Profesional de Computación e Informática

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:

Para el hermano mayor:

Alimentos = 0.4 * Sueldo_HMY


Alquiler = 0.21 * Sueldo_HMY
Banco_HMY = Sueldo_HMY – (Alimentos + Alquiler)

Para el hermano menor:

Estudios = 0.35 * Sueldo_HMN


Alquiler = 0.25 * Sueldo_HMN
Banco_HMN = Sueldo_HMN – (Estudios + Alquiler)

Para el banco en total:

Total Banco = Banco_HMY + Banco_HMN

3. Definición de variables de entrada.


Se requerirán dos variables, una para almacenar el sueldo del
hermano mayor: SH1 y otra para el sueldo del hermano menor: SH2.

4. Definición de variables de salida.


Las variables de salida son varias cada una de ellas según al análisis
representará la solicitud del problema:

ALM1(gasto de alimentación del hermano mayor)


ALQ1(gasto de alquiler del hermano mayor)
BCO1(destino al banco del hermano mayor)
EST2(gasto de estudios del hermano menor)
ALQ2(gasto de alquiler del hermano menor)
BCO2(destino al banco del hermano menor)
TBCO(total destinado al banco por los 2 hermanos)
Fundamentos de Programación Página 65
Carrera Profesional de Computación e Informática

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

Diagrama de Flujo INICIO

Declaración de variables
SH1, SH2: entero
ALM1, ALQ1, BCO1, EST2,
ALQ2, BCO2, TBCO: real

SH1, 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

ALM1, ALQ1,
BCO1, EST2,
ALQ2,BCO2, TBCO

FIN

Fundamentos de Programación Página 66


Carrera Profesional de Computación e Informática

- Visión Orientada a Objetos

Diseño del Formulario

Codificación del Programa

Fundamentos de Programación Página 67


Carrera Profesional de Computación e Informática

II. Algoritmos de Estructura Condicional.


Este tipo de algoritmos se caracteriza por que entre sus instrucciones no solo se
muestran estructuras secuenciales comunes sino también estructuras selectivas, es
decir condicionales pero aun no se muestran estructuras
repetitivas.

Las estructuras selectivas son tres: la sentencia SI –


ENTONCES – SINO, SI – ENTONCES – SINO – SI,
SELECCIÓN – CASO.

La forma como se estructura una condición se puede


realizar de dos formas:

 Condiciones Simples.
Son aquellas condiciones que utilizan operadores relacionales.

Expresión 1 Operador Expresión 2


Relacional

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:

- ((A > C) and (4 > 0)) or (a > 5)


- ((E * 100) > 40) and (((4 * E) < 500) or (8 = B))
- ((E > R) and (W = 6) ) or (5 = F)
- ((20 + T) > (20 + R)) or ((40 > W) and (R > 100))

Fundamentos de Programación Página 68


Carrera Profesional de Computación e Informática

1) Sentencia SI – ENTONCES – SINO


Esta sentencia se caracteriza porque posee una condición, la cual se evalúa y
en caso de ser verdadera se desarrollaran ciertas acciones en caso de no ser
verdadera se desarrollará la parte falsa.

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

Fundamentos de Programación Página 69


Carrera Profesional de Computación e Informática

3. Definición de variables de entrada.


Se requerirán dos variables, N1 y N2 que representen a los números que
se evalúan.
4. Definición de variables de salida.
Para este problema no existirán variables de salida debido a que se desea
mostrar solo mensajes.
5. Diseño de la Solución.
- Visión Estructurada
Pseudocodigo

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

Fundamentos de Programación Página 70


Carrera Profesional de Computación e Informática

- Visión Orientada a Objetos


Diseño del Formulario

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.

ii. ¿Qué datos necesito conocer?


Las 2 notas que se promediaran.

Fundamentos de Programación Página 71


Carrera Profesional de Computación e Informática

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).

3. Definición de variables de entrada.


Se requerirán dos variables, NT1 y NT2 que representen a las notas que
se promediaran.

4. Definición de variables de salida.


La variable PROM será la que represente al promedio obtenido.

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

PROM = (NT1 + NT2) / 2

Fundamentos de Programación Página 72


Carrera Profesional de Computación e Informática

F V
PROM>10.5

‘Desaprobado:’, ‘Aprobado: ‘,
PROM PROM

FIN

- Visión Orientada a Objetos

Diseño del Formulario

Codificación del Programa

Fundamentos de Programación Página 73


Carrera Profesional de Computación e Informática

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

Todos los numeros evaluados son múltiplos de 2, devuelven un resto


igual a cero, en general se dice que un número es múltiplo de otro si el
resto de su dividirlo con el otro devuelve cero como resultado.

3. Definición de variables de entrada.


La variable NUM representa el número a evaluar.

4. Definición de variables de salida.


Para este problema no existirán variables de salida debido a que se desea
mostrar solo mensajes.

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

‘No es múltiplo de ‘Es múltiplo de


2:’, NUM 2:’, NUM

FIN

- Visión Orientada a Objetos

Diseño del Formulario

Fundamentos de Programación Página 75


Carrera Profesional de Computación e Informática

Codificación del Programa

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.

3. Definición de variables de entrada.


La variable N1 y N2 representarán a los números que se ingresaran.

4. Definición de variables de salida.


El resultado final se mostrará en la variable SUM.

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

Escribir(‘Ingrese el primer número a evaluar:’)


Capturar(N1)
Escribir(‘Ingrese el segundo número a evaluar:’)
Capturar(N2)
SUM = N1 + N2
Si (SUM > 20) entonces
N1 = N1 + 10
N2= N2 – 5
Sino
N1 = N1 – 18
N2= N2 + 15
Fin_Si
SUM = N1 + N2
Mostrar(‘La suma de los número que se generan es:’, SUM)
FIN

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

Fundamentos de Programación Página 77


Carrera Profesional de Computación e Informática

- Visión Orientada a Objetos

Diseño del Formulario

Codificación del Programa

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.

Fundamentos de Programación Página 78


Carrera Profesional de Computación e Informática

ii. ¿Qué datos necesito conocer?


Conocer los tres números a evaluar.

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.

3. Definición de variables de entrada.


Se requieren tres números que estarán representados por: N1, N2 y N3.

4. Definición de variables de salida.


Será la variable MY en donde se observará el mayor de los tres números.

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

Fundamentos de Programación Página 79


Carrera Profesional de Computación e Informática

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

- Visión Orientada a Objetos


Diseño del Formulario

Fundamentos de Programación Página 80


Carrera Profesional de Computación e Informática

Codificación del Programa

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

Fundamentos de Programación Página 81


Carrera Profesional de Computación e Informática

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.

ii. ¿Qué datos necesito conocer?


Conocer las tres notas.

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.

Cuando se evalúan rangos se debe tener en cuenta:

• Si se desea expresar si un número está dentro de un rango


especificado se usará el operador lógico and.

Fundamentos de Programación Página 82


Carrera Profesional de Computación e Informática

• Si se desea expresar si un número está fuera de rango debe


usar el operador lógico or.

3. Definición de variables de entrada.


Se requieren tres notas que estarán representados por: NT1, NT2 y NT3.

4. Definición de variables de salida.


Para el promedio la variable será PR, el resto solo son 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

Fundamentos de Programación Página 83


Carrera Profesional de Computación e Informática

Diagrama de Flujo

INICIO

Declaración de variables
NT1, NT2, NT3: entero
PR: real

NT1, NT2, NT3

PR = (NT1+ NT2 + NT3) / 3

(PR>=0) and (PR<=7)

‘El promedio es
(PR>=0) and (PR<=7)
pésimo:’, PR

‘El promedio es ‘El promedio es


bueno:’, PR regular:’, PR

MY

FIN

Fundamentos de Programación Página 84


Carrera Profesional de Computación e Informática

- Visión Orientada a Objetos

Diseño del Formulario

Codificación del Programa

g) Problema #7
En una empresa el sueldo básico de los trabajadores es en base a la categoría
que tienen:

Categoría Sueldo básico


A 800
B 1000
C 700

Fundamentos de Programación Página 85


Carrera Profesional de Computación e Informática

Todos los trabajadores tienen una bonificación de acuerdo a cantidad de hijos


que tienen:

N_Hijos % Bonificación
0 .. 3 10%
4 .. 6 12%
7 .. mas 14%

Finalmente los trabajadores tienen un descuento de acuerdo a la AFP en que se


encuentren inscritos:

AFP % Descuento
UNION 14%
HORIZONTE 16%
INTEGRA 15%

Tanto los porcentajes de las bonificaciones como de los descuentos se obtienen


del sueldo básico; realice un algoritmo que calcule y muestre el sueldo Neto a
pagar, si este se obtiene de:

SN = Sbasico + Bonificaciones – Descuentos

Solución:

1. Análisis.
i. ¿Qué te piden que realices?
Hallar el sueldo Neto, en base al básico, bonificación y descuento.

ii. ¿Qué datos necesito conocer?


Se requiere conocer la categoría ya que en base a esta se obtiene el
sueldo Básico; la bonificación y descuento se obtienen del sueldo
básico.

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.

La bonificación es de acuerdo al número de hijos(ver cuadro), este


porcentaje se aplica al sueldo básico.

El descuento se obtiene de acuerdo a la AFP a que pertenece(ver


cuadro), este porcentaje se aplica al sueldo básico.

Para finalizar deberá aplicar la formula propuesta para hallar el sueldo


neto.

3. Definición de variables de entrada.

Fundamentos de Programación Página 86


Carrera Profesional de Computación e Informática

Se deberá ingresar la categoría(CT), el número de hijos(NH) y la AFP a


la q ue está afiliado(AF).

4. Definición de variables de salida.


El sueldo neto se mostrará en la variable SN.

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

Fundamentos de Programación Página 88


Carrera Profesional de Computación e Informática

(NH>=0) and (PR<=3)

BON = 0.1 * SB
(NH>=4) and (PR<=6)

BON = 0.14 * SB BON = 0.12 * SB

AF= ‘UNION’

DSC = 0.14 * SB
AF= ‘HORIZONTE’

DSC = 0.15 * SB DSC = 0.16 * SB

SN = SB + BON - DSC

SN

FIN

Fundamentos de Programación Página 89


Carrera Profesional de Computación e Informática

- Visión Orientada a Objetos

Diseño del Formulario

Observación: Para el diseño de este formulario usaremos nuevos objetos de


modo que se cambie un poco el diseño y deberá observar como varía la
programación, recuerde que debemos irnos adecuando a la programación por
operaciones:

Este objeto lo usaremos para


organizar algunos objetos

Este objeto nos permite escoger solo


una de varias opciones descritas

Conjuntos
de opciones

Descripción del proceso:

Cuando usted escoja una categoría en la caja de texto1, se mostrara el sueldo


básico, deberá ingresar el número de hijos y finalmente escoger una AFP;
cuando presione en el botón procesar se deberá generar el sueldo neto.

Fundamentos de Programación Página 90


Carrera Profesional de Computación e Informática

Codificación del Programa

Se esta asignando de manera


inmediata el sueldo básico al
objeto Text1 a medida que se
escoge la categoría

Se esta calculando y asignando


el descuento a la variable DSC
a medida que se va escogiendo
una AFP

Se esta asignando los valores a


las variables respectivas

Se esta obteniendo la
bonificación en BON

Se esta calculando el Sueldo


neto y se muestra el valor
obtenido

Como podrán haber observado la aplicación de los objetos en algunos casos


disminuye la codificación, si observa el Pseudocodigo observará que para obtener el
sueldo básico y el descuento se desarrollan cierta codificación (similar al que
observamos en la ultima pantalla), pero utilizando los objetos “option” se evito ello,
ya que la asignación o calculo se realiza en sus eventos de manera directa.

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

resultado mayor a 20 el número que se ingreso al inicio se le deberá quitar 10


para observar si el nuevo número que se genera es negativo, si esto se cumple
se le adicionará 30. Finalmente se deberá observar el número que se generó
después de todo el recorrido anterior. Desarrolle un algoritmo que permita
observar lo descrito anteriormente.

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)

4. Definición de variables de salida.


La variable de salida estará representada por la misma variable 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 = NUM – 10 NUM = NUM + 40

NUM>100
NUM<0

NUM = NUM – 50 NUM = NUM * 2

NUM = NUM + 30

NUM

FIN

- Visión Orientada a Objetos


Diseño del Formulario

Fundamentos de Programación Página 93


Carrera Profesional de Computación e Informática

Codificación del Programa

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

Fundamentos de Programación Página 94


Carrera Profesional de Computación e Informática

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

Diagrama de Flujo INICIO

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

Fundamentos de Programación Página 96


Carrera Profesional de Computación e Informática

- Visión Orientada a Objetos

Diseño del Formulario

Codificación del Programa

Nuevamente observamos que la aplicación de objetos como el “option” disminuyó la


codificación, ya que la asignación o calculo se realizó en sus eventos de manera
directa.

Fundamentos de Programación Página 97

También podría gustarte