Fund. de Prog. 2

47
George Boole [bu ː l] (2 de noviembre de 1815 - 8 de diciembre de 1864) fue un matemático y filósofo británico. Como inventor del álgebra de Boole, que marca los fundamentos de la aritmética computacional moderna, Boole es considerado como uno de los fundadores del campo de las Ciencias de la Computación. En 1854 publicó "An Investigation of the Laws of Thought" en el que desarrollaba un sistema de reglas que le permitían expresar, manipular y simplificar problemas lógicos y filosóficos cuyos argumentos admiten dos estados (verdadero o falso) por procedimientos matemáticos. Se podría decir que es el padre de las operaciones lógicas y gracias a su álgebra hoy en día es posible manipular operaciones lógicas. 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

Transcript of Fund. de Prog. 2

Page 1: Fund. de Prog. 2

George Boole [buː l] (2 de noviembre de 1815 - 8 de diciembre de 1864) fue un matemático y filósofo británico. Como inventor del álgebra de Boole, que marca los fundamentos de la aritmética computacional moderna, Boole es considerado como uno de los fundadores del campo de las Ciencias de la Computación. En 1854 publicó "An Investigation of the Laws of Thought" en el que desarrollaba un sistema de reglas que le permitían expresar, manipular y simplificar problemas lógicos y filosóficos cuyos argumentos admiten dos estados (verdadero o

falso) por procedimientos matemáticos. Se podría decir que es el padre de las operaciones lógicas y gracias a su álgebra hoy en día es posible manipular operaciones lógicas.

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

Page 2: Fund. de Prog. 2

Página 50

Fundamentos de programación

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:

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:

Declaración de Variables

Captura de Datos

Proceso de Datos

Salida de Información

Instrucción 1

Instrucción 2

Instrucción 3

Instrucción N

Page 3: Fund. de Prog. 2

Fundamentos de Programación Página 51

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

A continuación se desarrollaran una serie de problemas del tema en dos ambientes: estructurado(Algoritmos) y orientado a objetos(Visual Basic).

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.

5.1 Pseudocódigo

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:‟)

Ejercicio de aplicación No. 1

Page 4: Fund. de Prog. 2

Página 52

Fundamentos de programación

Capturar(H) AR = (B * H) / 2

Mostrar(„El valor del área del triangulo es:‟, AR) FIN

5.2 Diagrama de Flujo

5.3 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:

INICIO

FIN

B, H

AR = (B * H) / 2

AR

Declaración de variables B, H: entero

AR: real

El formulario que es un contenedor de objetos, es la pantalla donde diseñaremos nuestros programas

Label1 lo usaremos para los títulos de los datos a usar y los resultados

obtenidos

TextBox1 captura los datos entrantes y mostrar resultados generados

Button1 es para procesar un programa

Page 5: Fund. de Prog. 2

Fundamentos de Programación Página 53

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

La programación orientada a objetos se caracteriza porque se estudian dos cosas:

De este modo todo objeto que observamos posee dos divisiones marcadas:

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

A continuación observaremos como es el diseño del formulario

5.4 Codificación del Programa

Private Sub Button1_Click Dim b as integer

Dim h as integer Dim ar as single b = val(textbox1.text) h = val(textbox2.text)

ar = (b*h) / 2 textbox3.text = ar End Sub

DATOS + COMPORTAMIENTO

PROPIEDADES + OPERACIONES

Títulos para ingresar datos (ESCRIBIR)

Objetos para el ingreso de datos (CAPTURAR)

Ejecución del programa realizado

Salida de información

generada (MOSTRAR)

Botones para nuevo ingreso y salir

Declaración de variables

Asignación de valores a las

variables

Desarrollo del Proceso

Salida de información generada

Page 6: Fund. de Prog. 2

Página 54

Fundamentos de programación

Un docente 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 prácticas, 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 prácticas, 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.

5.1 Pseudocódigo

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)

PROM = (NP + NT + EP) / 3

Ejercicio de aplicación No. 2

Page 7: Fund. de Prog. 2

Fundamentos de Programación Página 55

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

Mostrar(„El promedio obtenido es:‟, PROM) FIN

5.2 Diagrama de Flujo

5.3 Diseño del Formulario

INICIO

FIN

NP, NT, EP

PROM = (NT + NP + EP) / 3

PROM

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

PROM: real

ESCRIBIR

CAPTURAR

Ejecución del programa realizado

MOSTRAR

Page 8: Fund. de Prog. 2

Página 56

Fundamentos de programación

5.4 Codificación del Programa

Private Sub Button1_Click Dim nt, np, ep As Integer Dim prom As Single nt = Val(TextBox1.Text) np = Val(TextBox2.Text) ep = Val(TextBox3.Text) prom = (nt + np + ep) / 3 TextBox4.Text = prom End Sub

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

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

Declaración de variables

Asignación de valores a las

variables Desarrollo del Proceso

Salida de información generada

Ejercicio de aplicación No. 3

Page 9: Fund. de Prog. 2

Fundamentos de Programación Página 57

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

5.1 Pseudocódigo

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

5.2 Diagrama de Flujo

5.3 Diseño del Formulario

INICIO

FIN

B, C

X = 3 + 5 * B – 8 * C

X

Declaración de variables B, C, X: entero

Page 10: Fund. de Prog. 2

Página 58

Fundamentos de programación

5.4 Codificación del Programa

Private Sub Button1_Click Dim b, c, x As Integer b = Val(TextBox1.Text) c = Val(TextBox2.Text) x = 3 + 5 * b - 8 * c TextBox3.Text = x End Sub

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 número (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.

4 * 10 + 5 = 45

DIV MOD

Ejercicio de aplicación No. 4

Page 11: Fund. de Prog. 2

Fundamentos de Programación Página 59

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

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.

5.1 Pseudocódigo 5.2 Diagrama de Flujo

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

5.3 Diseño del Formulario

5.4 Codificación del Programa Private Sub Button1_Click( Dim num, a, b, inv As Byte num = Val(TextBox1.Text) a = num \ 10 b = num Mod 10 inv = b * 10 + a TextBox2.Text = inv End Sub

INICIO

FIN

NUM

A = NUM div 10 B = NUM mod 10 INV = B * 10 + A

INV

Declaración de variables A, B, NUM, INV: entero

Page 12: Fund. de Prog. 2

Página 60

Fundamentos de programación

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.

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.

5.1 Pseudocódigo

INICIO Declaración de variables KM, ML: entero

Ejercicio de aplicación No. 5

Page 13: Fund. de Prog. 2

Fundamentos de Programación Página 61

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

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

5.2 Diagrama de Flujo

5.3 Diseño del Formulario

5.4 Codificación del Programa

Private Sub Button1_Click

Dim km, ml As Long km = Val(TextBox1.Text) ml = km * 1000000 TextBox2.Text = ml

End Sub

INICIO

FIN

KM

ML = KM * 1000000

ML

Declaración de variables KM, ML: entero

Page 14: Fund. de Prog. 2

Página 62

Fundamentos de programación

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

Ejercicio de aplicación No. 6

Page 15: Fund. de Prog. 2

Fundamentos de Programación Página 63

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

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.

5.1 Pseudocódigo 5.2 Diagrama de Flujo

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

5.3 Diseño del Formulario

INICIO

FIN

H

HR1 = 0.2 * H HR2 = 0.35 * H

HR3 = H – (HR1 + HR2)

HR1, HR2, HR3

Declaración de variables H: entero

HR1, HR2, HR3: real

Page 16: Fund. de Prog. 2

Página 64

Fundamentos de programación

5.4 Codificación del Programa Private Sub Button1_Click

Dim h As Integer Dim hr1, hr2, hr3 As Single h = Val(TextBox1.Text) hr1 = 0.2 * h hr2 = 0.35 * h hr3 = h - (hr1 + hr2)

TextBox2.Text = hr1 TextBox3.Text = hr2 TextBox4.Text = hr3

End Sub

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. o ¿Qué te piden que realices?

Mostrar los gastos de los dos hermanos pero adicionalmente quiere que muestre cuanto destinan los dos juntos al banco

o ¿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

Ejercicio de aplicación No. 7

Page 17: Fund. de Prog. 2

Fundamentos de Programación Página 65

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

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)

5. Diseño de la Solución.

5.1 Pseudocódigo

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)

Page 18: Fund. de Prog. 2

Página 66

Fundamentos de programación

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

5.2 Diagrama de Flujo

5.3 Diseño del Formulario

INICIO

FIN

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

Declaración de variables SH1, SH2: entero

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

Page 19: Fund. de Prog. 2

Fundamentos de Programación Página 67

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

5.4 Codificación del Programa

Private Sub Button1_Click Dim sh1, sh2 As Integer Dim alm1, alq1, bco1, est2, alq2, bc02, tbco As Single sh1 = Val(TextBox1.Text) sh2 = Val(TextBox2.Text) alm1 = 0.4 * sh1 alq1 = 0.21 * sh1 bco1 = sh1 - (alm1 + alq1) est2 = 0.35 * sh2 alq2 = 0.25 * sh2 bc02 = sh2 - (est2 + alq2) tbco = bco1 + bc02 TextBox3.Text = alm1 TextBox4.Text = alq1 TextBox5.Text = bco1 TextBox6.Text = est2 TextBox7.Text = alq2 TextBox8.Text = bc02 TextBox9.Text = tbco

End Sub

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 Expresión 2 Operador Relacional

Page 20: Fund. de Prog. 2

Página 68

Fundamentos de programación

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.

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

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

Expresión 1 Expresión 2 Operador

Lógico Operador

Lógico Expresión 3

Condición

Acciones _ B Acciones _ A

V F

Page 21: Fund. de Prog. 2

Fundamentos de Programación Página 69

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

Pseudocódigo Si ¿Condición? entonces Acciones _ A

Sino Acciones _ B Fin si

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

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.

5.1 Pseudocódigo

INICIO Declaración de variables N1, N2: entero

Ejercicio de aplicación No. 1

Page 22: Fund. de Prog. 2

Página 70

Fundamentos de programación

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

5.2 Diagrama de Flujo

5.3 Diseño del Formulario

el primer número es

mayor

el primer número no es mayor

INICIO

N1, N2

Declaración de variables N1, N2: entero

FIN

A>B

F V

Page 23: Fund. de Prog. 2

Fundamentos de Programación Página 71

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

5.4 Codificación del Programa

Public Class Form7 Dim n1, n2 As Integer Private Sub Button1_Click n1 = Val(TextBox1.Text) n2 = Val(TextBox2.Text) If n1 > n2 Then TextBox3.Text = "El primer número es mayor" Else TextBox3.Text = "El segundo número es mayor" End If End Sub End Class

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.

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.

Las variables serán declaradas a nivel de formulario

Ejercicio de aplicación No. 2

Page 24: Fund. de Prog. 2

Página 72

Fundamentos de programación

4. Definición de variables de salida. La variable PROM será la que represente al promedio obtenido.

5. Diseño de la Solución.

5.1 Pseudocódigo 5.2 Diagrama de Flujo

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

5.3 Diseño del Formulario

5.4 Codificación del Programa

Public Class Form8 Dim nt1, nt2 As Integer Dim prom As Single

Private Sub Button1_Click

INICIO

NT1, NT2

Declaración de variables NT1, NT2: entero

PROM: real

PROM = (NT1 + NT2) / 2

FIN

„Aprobado: „, PROM

„Desaprobado:‟, PROM

F V

PROM>10.5

Page 25: Fund. de Prog. 2

Fundamentos de Programación Página 73

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

nt1 = Val(TextBox1.Text) nt2 = Val(TextBox2.Text) prom = (nt1 + nt2 =/2 If prom > 10.5 Then

TextBox3.Text = "Aprobado: " + Str(prom) Else TextBox3.Text = "Desprobado: " + Str(prom)

End If End Sub

End Class

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 números 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.

Ejercicio de aplicación No. 3

Page 26: Fund. de Prog. 2

Página 74

Fundamentos de programación

5. Diseño de la Solución. 5.1 Pseudocódigo

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

5.2 Diagrama de Flujo

5.3 Diseño del Formulario

INICIO

NUM

Declaración de variables NUM: entero

F V NUM mod 2 = 0

„Es múltiplo de 2:‟, NUM

„No es múltiplo de 2:‟, NUM

FIN

Page 27: Fund. de Prog. 2

Fundamentos de Programación Página 75

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

5.4 Codificación del Programa

Public Class Form9 Dim num As Integer Private Sub Button1_Click num = Val(TextBox1.Text) If num Mod 2 = 0 Then TextBox2.Text = "El número: " + Str(num) + " es par" Else TextBox2.Text = "El número: " + Str(num) + " es impar" End If End Sub End Class

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

Ejercicio de aplicación No. 4

Page 28: Fund. de Prog. 2

Página 76

Fundamentos de programación

5.1 Pseudocódigo INICIO Declaración de variables N1, N2, SUM: entero 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

5.2 Diagrama de Flujo

INICIO

N1, N2

Declaración de variables N1, N2, SUM: entero

F V SUM > 20

La suma de los número que se

generan es:‟, SUM

FIN

SUM = N1 + N2

N1 = N1 + 18 N2 = N2 – 15

N1 = N1 + 10 N2 = N2 – 5

SUM = N1 + N2

Page 29: Fund. de Prog. 2

Fundamentos de Programación Página 77

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

5.3 Diseño del Formulario

5.4 Codificación del Programa

Public Class Form10 Dim n1, n2, sum As Integer Private Sub Button1_Click

n1 = Val(TextBox1.Text) n2 = Val(TextBox2.Text)

sum = n1 + n2 If sum > 20 Then

n1 = n1 + 10 n2 = n2 - 5 Else n1 = n1 + 18 n2 = n2 + 15 End If sum = n1 + n2 TextBox3.Text = sum End Sub End Class

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.

ii. ¿Qué datos necesito conocer? Conocer los tres números a evaluar.

Ejercicio de aplicación No. 5

Page 30: Fund. de Prog. 2

Página 78

Fundamentos de programación

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.

5.1 Pseudocódigo 5.2 Diagrama de Flujo 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

F V

INICIO

N1, N2, N3

Declaración de variables N1, N2, N3, MY: entero

MY = N1

MY = N2

F V

MY = N3

MY<N2

MY<N3

MY

FIN

Page 31: Fund. de Prog. 2

Fundamentos de Programación Página 79

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

5.3 Diseño del Formulario

5.4 Codificación del Programa

Public Class Form11 Dim n1, n2, n3, ny As Integer Private Sub Button1_Click n1 = Val(TextBox1.Text) n2 = Val(TextBox2.Text) n3 = Val(TextBox3.Text) ny = n1 If ny < n2 Then ny = n2 End If If ny < n3 Then ny = n3 End If TextBox4.Text = ny End Sub End Class

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

C3

C1

Acción 1

Acción 2

Acción 3 Acción 4

C2

Page 32: Fund. de Prog. 2

Página 80

Fundamentos de programación

Pseudocódigo

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

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

Ejercicio de aplicación No. 6

Page 33: Fund. de Prog. 2

Fundamentos de Programación Página 81

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

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.

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.

5.1 Pseudocódigo

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

Page 34: Fund. de Prog. 2

Página 82

Fundamentos de programación

5.2 Diagrama de Flujo

5.3 Diseño del Formulario

INICIO

NT1, NT2, NT3

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

PR: real

PR = (NT1+ NT2 + NT3) / 3

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

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

„El promedio es bueno:‟, PR

„El promedio es regular:‟, PR

„El promedio es pésimo:‟, PR

MY

FIN

Page 35: Fund. de Prog. 2

Fundamentos de Programación Página 83

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

5.4 Codificación del Programa Public Class Form12 Dim nt1, nt2, nt3 As Integer Dim pr As Single Private Sub Button1_Click nt1 = Val(TextBox1.Text) nt2 = Val(TextBox2.Text) nt3 = Val(TextBox3.Text) pr = (nt1 + nt2 + nt3) / 3 If pr > 0 And pr < 7 Then TextBox4.Text = "Debes mejorar" Else If pr >= 8 And pr <= 15 Then TextBox4.Text = "Regular" Else TextBox4.Text = "Bueno" End If End If End Sub End Class

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

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%

Ejercicio de aplicación No. 7

Page 36: Fund. de Prog. 2

Página 84

Fundamentos de programación

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

5.1 Pseudocódigo

INICIO Declaración de variables CT: carácter AF: cadena NH, SB: entero

Page 37: Fund. de Prog. 2

Fundamentos de Programación Página 85

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

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 Fin_Si

Fin_Si SN = SB + BON – DSC Mostrar(„El sueldo neto es:‟, SN)

FIN

Page 38: Fund. de Prog. 2

Página 86

Fundamentos de programación

5.2 Diagrama de Flujo

INICIO

CT, NH, AF

Declaración de variables CT: carácter AF: cadena

NH, SB: entero BON, DSC, SN: real

CT=„A‟

CT=„B‟ SB = 800

SB = 700 SB = 1000

x

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

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

BON = 0.14 * SB BON = 0.12 * SB

AF= „UNION‟

AF= „HORIZONTE‟ DSC = 0.14 * SB

DSC = 0.15 * SB DSC = 0.16 * SB

SN = SB + BON - DSC

SN

FIN

Page 39: Fund. de Prog. 2

Fundamentos de Programación Página 87

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

5.3 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:

Permite agrupar botones

Permite elegir una opción de un grupo

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.

5.4 Codificación del Programa

Public Class Form13 Dim nh As Byte Dim sb As Integer Dim bon, dsc, sn As Single Private Sub RadioButton1_Click TextBox1.Text = 800 End Sub Private Sub RadioButton2_Click TextBox1.Text = 1000 End Sub Private Sub RadioButton3_Click TextBox1.Text = 700 End Sub Private Sub RadioButton4_Click dsc = 0.14 * Val(TextBox1.Text) End Sub

Se está asignando de manera inmediata el sueldo básico al objeto Text1 a medida que se escoge la categoría

Se está calculando y asignando el descuento a la variable DSC a medida que se va escogiendo una AFP

Page 40: Fund. de Prog. 2

Página 88

Fundamentos de programación

Private Sub RadioButton5_Click dsc = 0.16 * Val(TextBox1.Text) End Sub Private Sub RadioButton6_Click dsc = 0.15 * Val(TextBox1.Text) End Sub Private Sub Button1_Click sb = Val(TextBox1.Text) nh = Val(TextBox2.Text) If nh >= 0 And nh <= 3 Then bon = 0.1 * sb Else If nh >= 4 And nh <= 6 Then bon = 0.12 * sb Else bon = 0.14 * sb End If End If sn = sb + bon - dsc TextBox3.Text = sn End Sub

End Class Como podrán haber observado la aplicación de los objetos en algunos casos disminuye la codificación, si observa el Pseudocódigo 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.

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

Se está asignando los valores a las variables respectivas

Ejercicio de aplicación No. 8

Page 41: Fund. de Prog. 2

Fundamentos de Programación Página 89

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

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.

5.1 Pseudocódigo

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

Page 42: Fund. de Prog. 2

Página 90

Fundamentos de programación

5.2 Diagrama de Flujo

5.3 Diseño del Formulario

INICIO

NUM

Declaración de variables NUM: entero

NUM>20

NUM = NUM – 10 NUM = NUM + 40

NUM>100

NUM = NUM – 50 NUM = NUM * 2

NUM<0

NUM = NUM + 30

NUM

FIN

Page 43: Fund. de Prog. 2

Fundamentos de Programación Página 91

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

5.4 Codificación del Programa

Public Class Form14 Dim num As Integer Private Sub Button1_Click num = Val(TextBox1.Text) If num > 20 Then num = num + 40 If num > 100 Then num = num * 2 Else num = num - 50 End If Else num = num - 10 If num < 0 Then num = num + 30 End If End If TextBox2.Text = num End Sub End Class

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

C3

C1

Acción 1

Acción 3

C2

C4

Acción 4

Acción 2

Page 44: Fund. de Prog. 2

Página 92

Fundamentos de programación

Pseudocódigo

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

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

Ejercicio de aplicación No. 9

Page 45: Fund. de Prog. 2

Fundamentos de Programación Página 93

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

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. 5.1 Pseudocódigo

INICIO Declaración de variables 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

CN, PRE

Declaración de variables PRE: cadena

CN, PC, TP: entero

TP

FIN

PRE=„Vidrio‟

TP = PC * CN

PRE=„Bolsa‟

PRE=„Lata‟

PC = 10

PC = 12

PC = 16

Page 46: Fund. de Prog. 2

Página 94

Fundamentos de programación

Diseño del Formulario

Codificación del Programa

Public Class Form15 Dim pc, cn, tp As Integer Private Sub RadioButton1_Click pc = 10 End Sub Private Sub RadioButton2_Click pc = 12

Page 47: Fund. de Prog. 2

Fundamentos de Programación Página 95

Estructuración de algoritmos

Instituto de Educación Superior Tecnológico Privado

End Sub Private Sub RadioButton3_Click pc = 16 End Sub Private Sub Button1_Click cn = Val(TextBox1.Text) tp = pc * cn TextBox2.Text = tp End Sub End Class

Nuevamente observamos que la aplicación de objetos como el “option” disminuyó la codificación, ya que la asignación o cálculo se realizó en sus eventos de manera directa.