Fund._de_prog._3

42
Fundamentos de Programación Página 98 Fundamentos de programación 2. Sentencia SELECCIÓN-CASO Esta es una estructura de decisión múltiple, evaluará una expresión que podrá tomar uno de los “n” valores distintos que para algunos casos puede tratarse de rangos o valores individuales, según cumpla con uno de estos. Esta sentencia puede ser tratada también como si fuera sentencias si anidadas, deberá tener en cuenta que los rangos o valores se expresarán como condiciones. Diagrama de Flujo Pseudocódigo Seleccionar Cuando (Expresión_Variable) Sea (Rango_Valor_1) Acción 1 Sea (Rango_Valor_2) Acción 2 Sea (Rango_Valor_3) Acción 3 Sea (Rango_Valor_4) Acción 4 ... Fin Seleccionar Un móvil recorre un tramo de la carretera con Movimiento Rectilíneo Uniforme (MRU), determinar y mostrar cual es el espacio recorrido: Espacio = Velocidad * Tiempo Expresión_ Variable Acción 1 Acción 4 Rango_Valor_1 Rango_Valor_2 Rango_Valor_3 Rango_Valor_4 Acción 2 Acción 3 Ejercicio de aplicación No. 1

description

holas

Transcript of Fund._de_prog._3

  • Fundamentos de Programacin Pgina 98

    Fundamentos de programacin

    2. Sentencia SELECCIN-CASO Esta es una estructura de decisin mltiple, evaluar una expresin que podr tomar uno de los n valores distintos que para algunos casos puede tratarse de rangos o valores individuales, segn cumpla con uno de estos.

    Esta sentencia puede ser tratada tambin como si fuera sentencias si anidadas, deber tener en cuenta que los rangos o valores se expresarn como condiciones.

    Diagrama de Flujo

    Pseudocdigo

    Seleccionar Cuando (Expresin_Variable) Sea (Rango_Valor_1) Accin 1 Sea (Rango_Valor_2) Accin 2 Sea (Rango_Valor_3) Accin 3 Sea (Rango_Valor_4) Accin 4 ...

    Fin Seleccionar

    Un mvil recorre un tramo de la carretera con Movimiento Rectilneo Uniforme (MRU), determinar y mostrar cual es el espacio recorrido:

    Espacio = Velocidad * Tiempo

    Expresin_Variable

    Accin 1 Accin 4

    Rango_Valor_1

    Rango_Valor_2 Rango_Valor_3

    Rango_Valor_4

    Accin 2 Accin 3

    Ejercicio de aplicacin No. 1

  • Fundamentos de Programacin Pag. 99

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    Adicionalmente mostrar un mensaje que indique el consumo de gasolina segn la tabla:

    Espacio Recorrido Gasolina 0 y 30 1 galn 31 y 60 2 galones 61 y 200 3 o mas galones

    Solucin:

    1. Anlisis. i. Qu te piden que realices? Calcular el espacio recorrido y en base a ello mostrar cuanta gasolina se consume.

    ii. Qu datos necesito conocer? La velocidad y el tiempo (segn formula).

    2. Planteamiento Lgico.

    El desarrollo es simple, solamente deber ingresar la velocidad y el tiempo para calcular el espacio recorrido, en base a ello deber observar la tabla para que desarrolle la estructura correspondiente y muestre el mensaje solicitado.

    Ejemplo: Si el espacio recorrido es de 25 kilmetros El mensaje es 1 galn.

    3. Definicin de variables de entrada.

    Se requerirn dos variables, V y T que representen a la velocidad y el tiempo respectivamente.

    4. Definicin de variables de salida. La variable de salida estar representada por E.

    5. Diseo de la solucin

    5.1 Pseudocdigo

    INICIO Declaracin de variables V, T, E: entero Escribir(Ingrese la velocidad:) Capturar(V) Escribir(Ingrese el tiempo:) Capturar(T) E = V * T Seleccionar Cuando (E) Sea 0 y 30 Mostrar(Debe usar 1 galn) Sea 31 y 60 Mostrar(Debe usar 2 galones) Sea 61 y 200 Mostrar(Debe usar 3 o ms galones)

  • Pgina 100

    Fundamentos de programacin

    Fin Seleccionar Mostrar(El espacio recorrido fue:, E) FIN

    5.2 Diagrama de Flujo

    5.3 Diseo del Formulario

    INICIO

    V, T

    E = V * T

    Declaracin de variables V, T, E: entero

    E 0 y 30 60 y 200

    31 y 60

    Debe usar 1 galn

    Debe usar 2 galones

    Debe usar 3 o mas galones

    E

    FIN

  • Fundamentos de Programacin Pag. 101

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    5.4 Codificacin del Programa

    Public Class Form1 Dim v, t, e1 As Single Dim mensaje As String Private Sub Button1_Click v = Val(TextBox1.Text) t = Val(TextBox2.Text) e1 = v * t Select Case e1 Case 0 To 30 mensaje = "debes usar un galn" Case 31 To 60 mensaje = "debes usar dos galn" Case 61 To 200 mensaje = "debes usar tres o ms galones" End Select TextBox3.Text = mensaje End Sub End Class

    En un hotel los costos por da de las habitaciones son de acuerdo al tipo, segn la tabla:

    Tipo Costo

    A 35 B 25 C 15

    Adems dependiendo el nmero de das que se pueda quedar se le otorga un descuento sobre el pago diario a realizar, segn la tabla:

    Das Dscto 1..3 2% 4..7 10%

    8 a mas 25%

    Realizar un algoritmo en donde se ingrese el tipo de habitacin y el nmero de das que se quedar en el hotel, de modo que se pueda calcular y mostrar el total a pagar por la persona al momento de que se retire del hotel.

    Total a pagar = Costo por da * nmero de das

    Ejercicio de aplicacin No. 2

  • Pgina 102

    Fundamentos de programacin

    Solucin:

    1. Anlisis. ii. Qu te piden que realices?

    Hallar cuanto pagar el cliente por los das que estuvo en el hotel. iii. Qu datos necesito conocer?

    El tipo de habitacin y el nmero de das que se quedar.

    2. Planteamiento Lgico. Para poder determinar el total a pagar por el cliente inicialmente se deber saber cuanto le costar la habitacin para ello deber escoger el tipo de habitacin a usar (ver cuadro 1), luego deber de mencionar el nmero de das que se quedar de modo que se le pueda otorgar un descuento (ver cuadro 2) y posteriormente se obtenga el total a pagar.

    Ejemplo: Si el tipo es B, el costo ser de 25 soles Si se queda 5 das, le corresponde un descuento del 10% Es decir el costo de la habitacin ser de: 25 25/100 = 22.5 El total a pagar finalmente ser: 22.5 * 5 = 112.5

    3. Definicin de variables de entrada.

    Se usarn dos variables de entrada: TIP para el tipo y ND para el nmero de das.

    4. Definicin de variables de salida. El total a pagar se mostrar en la variable TP.

    5. Diseo de la Solucin.

    5.1 Pseudocdigo

    INICIO Declaracin de variables TIP: caracter ND, PRE: entero TP: real Escribir(Ingrese el tipo de habitacin a usar:) Capturar(TIP) Escribir(Ingrese el nmero de das que se quedar:) Capturar(ND) Seleccionar Cuando (TIP) Sea A: PRE = 35 Sea B : PRE = 25 Sea C: PRE = 15 Fin Seleccionar Seleccionar Cuando (ND) Sea 1..3: DSCT = 0.02

  • Fundamentos de Programacin Pag. 103

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    Sea 4..7: DSCT = 0.1 Otro caso DSCT = 0.25 Fin Seleccionar PRE = PRE (PRE * DSCT) TP = PRE * ND Mostrar(El total a pagar ser de:, TP)

    FIN

    5.2 Diagrama de Flujo

    INICIO

    TIP, ND

    Declaracin de variables TIP: caracter

    ND, PRE: entero TP: real

    TP

    FIN

    TIP A C

    B

    PRE = 35 PRE = 25 PRE = 15

    ND 1 y 3 Otro Caso

    4 y 7

    DSCT = 0.02 DSCT = 0.1 DSCT = 0.25

    PRE = PRE (PRE * DSCT) TP = PRE * ND

  • Pgina 104

    Fundamentos de programacin

    5.3 Diseo del Formulario

    5.4 Codificacin del Programa

    Public Class Form2 Dim nd, pre As Integer Dim dsct, tp As Single Private Sub Button1_Click nd = Val(TextBox1.Text) Select Case nd Case 1 To 3 dsct = 0.02 Case 4 To 7 dsct = 0.1 Case Else dsct = 0.25 End Select pre = pre - (pre * dsct) tp = pre * nd TextBox2.Text = tp End Sub Private Sub RadioButton1_Click pre = 35 End Sub Private Sub RadioButton2_Click pre = 25 End Sub Private Sub RadioButton3_Click pre = 15 End Sub End Class

    3. Algoritmos de Estructura Repetitiva. Este tipo de algoritmos se caracteriza por que entre sus instrucciones se muestran estructuras secuenciales, estructuras selectivas y estructuras que forman bucles, es decir un conjunto de instrucciones que se desarrollan un nmero determinado de veces, dependiendo una condicin o un lmite.

    Las estructuras repetitivas son tres: la sentencia PARA HASTA, HACER MIENTRAS, HACER HASTA.

  • Fundamentos de Programacin Pag. 105

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    Para el desarrollo de cualquiera de estas sentencias se deber tener en cuenta los siguientes conceptos:

    Bucle. Es denominado tambin lazo (Loop), es un segmento de un algoritmo o programa, cuyas instrucciones se repiten un nmero determinado de veces mientras se cumple una determinada condicin o en todo caso se le ha dado un lmite de veces a ejecutar. En todo algoritmo se debe establecer cuales son las sentencias que formaran las tareas repetitivas.

    Contador. Los procesos repetitivos por lo general lo utilizan, ya que necesitan contar los sucesos o acciones internas del bucle. Una de las formas de controlar un bucle es mediante un contador. Un contador es una variable cuyo valor se aumenta o disminuye en una cantidad constante por cada vuelta (interaccin) que da el bucle.

    Acumulador. Es denominado tambin totalizador, es una variable cuya misin es almacenar cantidades o valores resultantes de sumas sucesivas. Realiza la misma funcin que un contador con la diferencia de que el incremento o decremento de cada suma es variable en lugar de constante como en el caso del contador.

    1. Sentencia PARA HASTA Esta es una sentencia repetitiva, se caracteriza por tener un inicio y un fin que sern establecidos va programa y no tener condicionales (evaluaciones lgicas) para la salida o ingreso al bucle; esta sentencia repetitiva es una de las mas fciles de aplicar.

  • Pgina 106

    Fundamentos de programacin

    Diagrama de Flujo

    Pseudocdigo Para I = Nmero Hasta F Acciones Fin_Para Casos de la Sentencia Desde Hasta

    Caso 1.- Cuando: INICIO < FIN Es la forma normal de trabajo para la sentencia, el incremento ser por defecto de 1 o en todo caso podr ser expresada por el programador. Ejm: El valor de n asumimos como 10 Para i = 1 hasta n

    Acciones Fin_Para Se ejecutar 10 veces Para i = 6 hasta n step 2 Acciones Fin_Para Se ejecutar 3 veces

    Caso 2.- Cuando: INICIO > FIN Esta vez no se tratar de un incremento sino de un decremento, de acuerdo a la cantidad que se exprese. Ejm: El valor de n asumimos como 2

    Para i = 6 hasta n step -2 Acciones Fin_Para Se ejecutar 5 veces Para i = 8 hasta n step -3

    Acciones Fin_Para Se ejecutar 3 veces

  • Fundamentos de Programacin Pag. 107

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    Desarrollar un algoritmo que permita calcular y mostrar la suma de los n primeros nmeros naturales, deber ingresar el lmite de nmeros a sumar.

    S = 1 + 2 + 3 + 4 + 5 +... + n

    Solucin:

    1. Anlisis. i. Qu te piden que realices?

    Calcular la suma de n nmeros naturales. ii. Qu datos necesito conocer?

    La cantidad de nmeros a sumar.

    2. Planteamiento Lgico. Este tipo de problemas se puede desarrollar aplicando la formula general para la suma de nmeros naturales o en todo caso haciendo uso de acumuladores y contadores.

    3. Definicin de variables de entrada.

    Se requerirn una variable que represente a la cantidad de nmeros a sumar(N).

    4. Definicin de variables de salida. La suma total estar representada por la variable AC.

    5. Diseo de la Solucin.

    5.1 Pseudocdigo

    INICIO Declaracin de variables I, N, AC: entero Escribir(Ingrese la cantidad de nmeros a sumar:) Capturar(N) AC = 0 Para I = 1 hasta N

    AC = AC + I Fin_Para Mostrar(El espacio recorrido fue:, AC)

    FIN

    Ejercicio de aplicacin No. 1

  • Pgina 108

    Fundamentos de programacin

    5.2 Diagrama de Flujo

    5.3 Diseo del Formulario

    5.4 Codificacin del Programa

    Public Class Form2 Dim nd, pre As Integer Dim dsct, tp As Single Private Sub Button1_Click nd = Val(TextBox1.Text) Select Case nd Case 1 To 3 dsct = 0.02 Case 4 To 7

    INICIO

    N

    Declaracin de variables I, N, AC: entero

    FIN

    AC = 0

    Para I=1 Hasta N

    AC = AC + I

    AC

  • Fundamentos de Programacin Pag. 109

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    dsct = 0.1 Case Else dsct = 0.25 End Select pre = pre - (pre * dsct) tp = pre * nd TextBox2.Text = tp End Sub Private Sub RadioButton1_Click pre = 35 End Sub Private Sub RadioButton2_Click pre = 25 End Sub Private Sub RadioButton3_Click pre = 15 End Sub End Class

    Desarrollar un algoritmo que permita calcular y mostrar la suma de los n primeros nmeros en la siguiente progresin, deber ingresar el lmite de nmeros a sumar.

    S = 2 + 4 + 6 + 8 +... + n

    Solucin:

    1. Anlisis.

    i. Qu te piden que realices? Calcular la suma de n nmeros de la progresin mostrada.

    ii. Qu datos necesito conocer? La cantidad de nmeros a sumar.

    2. Planteamiento Lgico.

    Este tipo de problemas se puede desarrollar aplicando la formula general para la suma de nmeros pares o en todo caso haciendo uso de acumuladores y contadores.

    3. Definicin de variables de entrada.

    Se requerirn una variable que represente a la cantidad de nmeros a sumar(N).

    4. Definicin de variables de salida. La suma total estar representada por la variable AC.

    Ejercicio de aplicacin No. 2

  • Pgina 110

    Fundamentos de programacin

    5. Diseo de la solucin

    5.1 Pseudocdigo 5.2 Diagrama de Flujo

    INICIO Declaracin de variables I, N, AC, NUM: entero Escribir(Ingrese la cantidad de nmeros a sumar:) Capturar(N) AC = 0 NUM = 0 Para I = 1 hasta N NUM = NUM + 2

    AC = AC + NUM Fin_Para Mostrar(La suma es:, AC)

    FIN

    5.3 Diseo del Formulario

    Codificacin del Programa

    Public Class Form4 Dim n As Byte Dim NUM As Integer Dim AC As Integer Private Sub Button1_Click ListBox1.Items.Clear() AC = 0 NUM = 0

    INICIO

    N

    Declaracin de variables I, N, AC, NUM: entero

    FIN

    AC = 0; NUM = 0

    Para I=1 Hasta N

    NUM = NUM + 2 AC = AC + NUM

    AC

  • Fundamentos de Programacin Pag. 111

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    For n = 1 To Val(TextBox1.Text) NUM = NUM + 2 ListBox1.Items.Add(Str(NUM)) AC = AC + NUM Next n TextBox2.Text = AC End Sub Private Sub cmdsalir_Click If MsgBox("Desea salir?", vbInformation + vbYesNo, "SALIDA") = vbYes Then End End If End Sub Private Sub cmdlimpiar_Click ListBox1.Items.Clear() TextBox1.Text = 0 TextBox2.Text = 0 TextBox1.Focus() End Sub End Class I

    Se ingresarn 30 nmeros (asumir que todos son positivos), determinar cuantos fueron pares y cuantos fueron impares.

    Solucin: 1. Anlisis.

    i. Qu te piden que realices? Ingresar 30 nmeros y mostrar cuantos fueron pares e impares.

    ii. Qu datos necesito conocer? Cada uno de los nmeros a evaluar.

    2. Planteamiento Lgico. A medida que se van ingresando los nmeros se debern de ir evaluando para que mediante contadores a travs de la condicin correspondiente determinar cuantos eran pares y cuantos impares.

    3. Definicin de variables de entrada. Se requiere ingresar los nmeros, usaremos la variable N.

    4. Definicin de variables de salida. Las variables de salida sern 2 (para los impares y otra para los pares)

    5. Diseo de la Solucin.

    Ejercicio de aplicacin No. 3

  • Pgina 112

    Fundamentos de programacin

    5.1 Pseudocdigo

    INICIO Declaracin de variables N, CI, CP, I: entero CI = 0 CP = 0 Para I = 1 hasta 30

    Escribir(Ingrese el nmero a evaluar:) Capturar(N) SI (N mod 2 = 0) entonces

    CP = CP + 1 Sino

    CI = CI + 1 Fin_si

    Fin_Para Mostrar(El total nmeros pares fue:, CP) Mostrar(El total nmeros impares fue:, CI)

    FIN

    5.2 Diagrama de Flujo

    INICIO

    Declaracin de variables I, N, CP, CI: entero

    FIN

    CP = 0 CI = 0

    CP, CI

    Para I=1 Hasta 30

    N

    N mod 2 = 0

    CI = CI + N CP = CP + N

  • Fundamentos de Programacin Pag. 113

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    5.3 Diseo del Formulario

    5.4 Codificacin del Programa

    Public Class Form1 Dim i As Byte Dim ACP As Integer Dim ACI As Integer Private Sub CmdLimpiar_Click() ListBox1.Items.Clear() TextBox1.Text = 0 TextBox2.Text = 0 ' CmdGenera.Focus() End Sub Private Sub CmdSalir_Click()

    If MsgBox("Desea salir?", vbInformation + vbYesNo, "SALIDA") = vbYes Then End End If End Sub Private Sub Button1_Click ListBox1.Items.Clear() For i = 1 To 30 ListBox1.Items.Add(Str(Math.Round(Rnd() * 100, 0))) Next i End Sub Private Sub Button2_Click Dim i As Integer ACP = 0 ACI = 0 For i = 1 To 30 If Val(ListBox1.Items(i - 1)) Mod 2 = 0 Then ACP = ACP + Val(ListBox1.Items(i - 1)) Else ACI = ACI + Val(ListBox1.Items(i - 1)) End If Next i TextBox1.Text = ACP TextBox2.Text = ACI End Sub End Class

  • Pgina 114

    Fundamentos de programacin

    Disear un algoritmo que permita ingresar 100 nmeros y que permita mostrar al final cuantos de los nmeros ingresados fueron positivos, cuantos fueron negativos y cuantos fueron cero, adems se deber mostrar las suma de ellos en cada caso.

    Solucin:

    1. Anlisis. i. Qu te piden que realices?

    Hallar la suma y cuantos de los 100 nmeros a ingresar fueron negativos, positivos y cero.

    ii. Qu datos necesito conocer? Cada de uno de los 100 nmeros a evaluar.

    2. Planteamiento Lgico. Se ingresaran los 100 nmeros en un bucle, luego se debern realizar las preguntas respectivas (>0, 0) entonces

    CP = CP + 1 SP = SP + NM Sino SI (NM = 0) entonces CC = CC + 1 Sino

    CN = CN + 1 SN = SN + NM Fin_si

    Ejercicio de aplicacin No. 3

  • Fundamentos de Programacin Pag. 115

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    Fin_si Fin_Para Mostrar(La cantidad de positivos es:, CP), Mostrar(La cantidad de ceros es:, CC) Mostrar(La cantidad de negativos es:, CN) Mostrar(La suma de positivos es:, SP) Mostrar(La suma de negativos es:, SN) FIN

    5.2 Diagrama de Flujo

    INICIO

    Declaracin de variables SP, SN, CP, CN, CC, NM,I: entero

    FIN

    CP = 0; CC = 0; CN = 0; SP = 0;

    SN = 0

    CP, CC, CI, SP, SN

    Para I=1 Hasta 30

    NM

    CP = CP + 1 SP = SP + N

    NM > 0

    N = 0

    CI = CI + 1 SI = SI + N

    CC = CC + 1

  • Pgina 116

    Fundamentos de programacin

    5.3 Diseo del Formulario

    5.4 Codificacin del Programa

    Public Class Form1 Dim i As Byte Dim CP As Integer Dim CN As Integer Dim CC As Integer Dim SP As Integer Dim SN As Integer Private Sub cmdgenera_Click ListBox1.Items.Clear() For i = 1 To 100 If (Rnd() * 50 > i) Then ListBox1.Items.Add(Str(Math.Round(Rnd() * 100, 0))) Else ListBox1.Items.Add(Str(-Math.Round(Rnd() * 100, 0))) End If Next i End Sub Private Sub cmdprocesa_Click Dim i As Integer 'ListBox1.Items.Clear() CN = 0: CP = 0: CC = 0: SP = 0: SN = 0 For i = 1 To 30 If (Val(ListBox1.Items(i - 1)) > 0) Then CP = CP + 1 SP = SP + Val(ListBox1.Items(i - 1)) Else If (Val(ListBox1.Items(i - 1)) = 0) Then CC = CC + 1 Else CN = CN + 1 SN = SN + Val(ListBox1.Items(i - 1)) End If End If Next i TextBox1.Text = CP TextBox2.Text = CC TextBox3.Text = CN TextBox4.Text = SP TextBox5.Text = SN End Sub Private Sub cmdnuevo_Click

  • Fundamentos de Programacin Pag. 117

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    ListBox1.Items.Clear() TextBox1.Text = 0 TextBox2.Text = 0 TextBox3.Text = 0 TextBox4.Text = 0 TextBox5.Text = 0 cmdgenera.Focus() End Sub Private Sub cmdsalir_Click

    If MsgBox("Desea salir?", vbInformation + vbYesNo, "SALIDA") = vbYes Then End End If End Sub End Class

    Desarrolle un algoritmo que muestre los mltiplos de cada uno de los 50 nmeros que se ingresaran por teclado.

    Solucin:

    1. Anlisis. i. Qu te piden que realices? Mostrar los mltiplos de un nmero.

    ii. Qu datos necesito conocer? El nmero a evaluar.

    2. Planteamiento Lgico. Para determinar los mltiplos de un nmero, deber de dividirse el nmero entre todos sus antecesores positivos incluyndose el mismo y si la divisin devuelve resto igual a cero entonces se definir como mltiplo del nmero dividido. Para lograr esto se deber utilizar dos bucles, uno para los 50 nmeros y otro para realizar las divisiones.

    3. Definicin de variables de entrada. Se requiere ingresar el nmero, usaremos la variable N.

    4. Definicin de variables de salida. Los mltiplos estarn representados por la variable que controla el bucle (J) de las divisiones.

    5. Diseo de la Solucin. 5.1 Pseudocdigo

    INICIO Declaracin de variables I, J, N: entero

    Ejercicio de aplicacin No. 4

  • Pgina 118

    Fundamentos de programacin

    Para I = 1 hasta 50 Escribir(Ingrese el nmero a evaluar:) Capturar(N) Para J = 1 hasta N

    SI (N mod J = 0) entonces Mostrar(es mltiplo del nmero:, J)

    Fin_si Fin_Para

    Fin_Para FIN

    5.2 Diagrama de Flujo

    INICIO

    Declaracin de variables N, I, J: entero

    FIN

    Para I=1 Hasta 50

    N

    N mod J= 0

    Para J=1 Hasta N

    J

  • Fundamentos de Programacin Pag. 119

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    5.3 Diseo del Formulario

    5.4 Codificacin del Programa

    Public Class Form1 REM Dim i As Byte REM Dim j As Byte Dim c As Byte Dim NUM As Byte Private Sub cmdgenera_Click Dim i As Integer ListBox1.Items.Clear() For i = 0 To 3

    ListBox1.Items.Add(Str(CInt(Math.Round(Rnd() * 50, 0)))) Next i End Sub Private Sub cmdprocesa_Click dg.RowCount = 2 For i = 0 To 3 dg.Item(i, 0).Value = Val(ListBox1.Items(i)) Next i For i = 0 To 3 NUM = Val(ListBox1.Items(i)) c = 0 For j = 1 To NUM - 1 If (NUM Mod j = 0) Then dg.RowCount = dg.RowCount + 1 c = c + 1 dg.Item(i, c).Value = j

  • Pgina 120

    Fundamentos de programacin

    End If Next j Next i End Sub Private Sub cmdsalir_Click

    If MsgBox("Desea salir?", vbInformation + vbYesNo, "SALIDA") = vbYes Then End End If End Sub Private Sub cmdnuevo_Click ListBox1.Items.Clear() dg.RowCount = 0 cmdgenera.Focus() End Sub End Class

    2. Sentencia HACER MIENTRAS Esta sentencia repetitiva evala una condicin al inicio del bucle, si esta es

    verdadera se ejecutaran una serie de acciones, las cuales seguirn realizndose hasta que la condicin se convierta en falsa, momento en el que se dejaran de evaluar las acciones y se proceder a continuar con la siguiente lnea de sentencias fuera del bucle. Diagrama de Flujo

    Pseudocodigo

    Hacer Mientras (Condicin?) Acciones

    Fin_Mientras

    ?

    Acciones

    V

    F

  • Fundamentos de Programacin Pag. 121

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    Desarrolle un algoritmo que permita observar la suma de los n primeros nmeros de la siguiente sucesin: (nmero impares)

    S = 1 + 3 + 5 + 7 +...

    Solucin:

    1. Anlisis. i. Qu te piden que realices?

    La suma de los n primeros nmeros impares. ii. Qu datos necesito conocer?

    Cuantos nmeros sumar.

    2. Planteamiento Lgico. Primero deberemos ingresar o saber cuantos nmeros vamos a sumar, luego dentro del bucle se deber realizar lo siguiente: controlar el bucle, generar el nmero de manera tal que se pueda ir acumulando para obtener la suma final.

    3. Definicin de variables de entrada. Se requiere ingresar la cantidad de nmeros a sumar, usaremos la variable N.

    4. Definicin de variables de salida. La suma total de los nmeros ingresados se obtendr en la variable SN.

    5. Diseo de la Solucin.

    5.1Pseudocodigo INICIO Declaracin de variables N, SN, CN, NUM: entero CN = 0 SN = 0 NUM = -1 Escribir(Ingrese la cantidad de nmeros a sumar:) Capturar(N) Hacer Mientras (CN < N)

    CN = CN + 1 NUM = NUM + 2 SN = SN + NUM

    Fin_Mientras Mostrar(La suma de los nmeros es:, SN)

    FIN

    Ejercicio de aplicacin No. 1

  • Pgina 122

    Fundamentos de programacin

    5.2 Diagrama de Flujo

    5.3 Diseo del Formulario

    5.4 Codificacin del Programa Public Class Form1 Dim NUM As Integer Dim c As Byte Dim AC As Integer Private Sub Button1_Click ListBox1.Items.Clear() c = 0 NUM = -1 AC = 0 Do While (c < Val(TextBox1.Text)) c = c + 1 NUM = NUM + 2

    CN = CN + 1 NUM = NUM + 2 SN = SN + NUM

    V

    F

    INICIO

    N

    CN = 0; SN = 0; NUM = -1

    Declaracin de variables N, SN, CN, NUM: entero

    CN

  • Fundamentos de Programacin Pag. 123

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    ListBox1.Items.Add(Str(NUM)) AC = AC + NUM Loop TextBox2.Text = AC End Sub Private Sub Button3_Click If MsgBox("Desea salir?", vbInformation + vbYesNo, "SALIDA") = vbYes Then End End If End Sub Private Sub Button4_Click ListBox1.Items.Clear() TextBox1.Text = 0 TextBox2.Text = 0 TextBox1.Focus() End Sub End Class

    Realizar un algoritmo que permita que permita leer los datos de 100 alumnos (Num_Seccin y Sexo), luego calcule y muestre: Total de varones por cada seccin, Total de mujeres por cada seccin. Total general de varones, Total general de mujeres.

    Se sabe que solo existen 2 secciones: 1, 2 y 3 Para el sexo: H = varones y M = mujeres

    Solucin: 1. Anlisis.

    i. Qu te piden que realices? Calcular y mostrar una serie de totales (ver enunciado del problema).

    ii. Qu datos necesito conocer? El nmero de seccin y el sexo del alumno.

    2. Planteamiento Lgico. Se deber ingresar la seccin y el sexo de cada alumno para realizar las preguntas correspondientes e ir contando el nmero de alumnos por seccin teniendo en cuenta el sexo de estos.

    3. Definicin de variables de entrada. La seccin se captura en la variable SC y el sexo en la variable SX.

    4. Definicin de variables de salida. Para el total de varones por seccin: TVS(1, 2, 3), para el total de mujeres por seccin: TMS(1, 2, 3), para el total general de varones: TGV y para el total general de mujeres: TGM.

    Ejercicio de aplicacin No. 2

  • Pgina 124

    Fundamentos de programacin

    5. Diseo de la Solucin.

    5.1 Pseudocodigo INICIO Declaracin de variables SC, TVS1, TVS2, TVS3, TMS1, TMS2, TMS3, TGV, TGM, CN: entero SX: caracter TVS1 = 0: TVS2 = 0: TVS3 = 0: TMS1 = 0: TMS2 = 0: TMS3 = 0: TGV = 0 TGM = 0: CN = 0 Hacer Mientras (CN < 100)

    CN = CN + 1 Escribir(Ingrese la seccin del alumno:) Capturar(SC) Escribir(Ingrese el sexo del alumno:) Capturar(SX) SI (SC = 1) entonces SI (SX = H) entonces

    TVS1 = TVS1 + 1 Sino TMS1 = TMS1 + 1

    Fin_si Sino

    SI (SC = 2) entonces SI (SX = H) entonces

    TVS2 = TVS2 + 1 Sino

    TMS2 = TMS2 + 1 Fin_si

    Sino SI (SX = H) entonces

    TVS3 = TVS3 + 1 Sino TMS3 = TMS3 + 1

    Fin_si Fin_si

    Fin_si Fin_Mientras TGV = TVS1 + TVS2 + TVS3 TGM = TMS1 + TMS2 + TMS3 Mostrar(El total de varones en la seccin 1 es:, TVS1) Mostrar(El total de varones en la seccin 2 es:, TVS2) Mostrar(El total de varones en la seccin 3 es:, TVS3) Mostrar(El total de mujeres en la seccin 1 es:, TMS1) Mostrar(El total de mujeres en la seccin 2 es:, TMS2) Mostrar(El total de mujeres en la seccin 3 es:, TMS3) Mostrar(El total general de varones es:, TGV) Mostrar(El total general de mujeres es:, TGM)

    FIN

  • Fundamentos de Programacin Pag. 125

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    5.2 Diagrama de Flujo

    CN = CN + 1

    V

    F

    INICIO

    SC, SX

    TVS1 = 0; TVS2 = 0; TVS3 = 0 TMS1 = 0; TMS2 = 0; TMS3 = 0

    TGV = 0; TGM = 0; CN = 0

    Declaracin de variables SC, TVS1, TVS2, TVS3, TMS1, TMS2,

    TMS3, TGV, TGM, CN: entero SX: caracter

    SC = 1

    SX=H

    TMS1 = TMS1 + 1 TVS1 = TVS1 + 1

    SX=H

    TMS2 = TMS2 + 1 TVS2 = TVS2 + 1

    SX=H

    TMS3 = TMS3 + 1 TVS3 = TVS3 + 1

    SC = 2

    CN

  • Pgina 126

    Fundamentos de programacin

    5.3 Diseo del Formulario

    5.4 Codificacin del Programa Public Class Form2 Dim CN As Byte Dim i As Byte Dim TVS1 As Byte Dim TVS2 As Byte Dim TVS3 As Byte Dim TMS1 As Byte Dim TMS2 As Byte Dim TMS3 As Byte Dim TGV As Byte Dim TGM As Byte Private Sub CmdSalir_Click() If MsgBox("Desea salir?", vbInformation + vbYesNo, "SALIDA") = vbYes Then End End If End Sub Private Sub cmdgenerar_Click ListBox1.Items.Clear() ListBox2.Items.Clear() For i = 1 To 100 ListBox1.Items.Add(Str(Math.Round(Rnd() * 2 + 1, 0))) If (Math.Round(Rnd() * 1 + 1, 0) = 1) Then ListBox2.Items.Add("H") Else ListBox2.Items.Add("F") End If Next i End Sub Private Sub cmdnuevo_Click ListBox1.Items.Clear() ListBox2.Items.Clear() TextBox1.Text = 0 : TextBox2.Text = 0 : TextBox3.Text = 0 :

    TextBox4.Text = 0 : TextBox5.Text = 0 : TextBox6.Text = 0 : TextBox7.Text = 0 : TextBox8.Text = 0

    End Sub Private Sub cmdprocesar_Click Dim sc, sx As String

  • Fundamentos de Programacin Pag. 127

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    TVS1 = 0 : TVS2 = 0 TVS3 = 0 : TMS1 = 0 TMS2 = 0 : TMS3 = 0 TGV = 0 : TGM = 0 : CN = 0 Do While (CN < 100) CN = CN + 1 SC = Trim(ListBox1.Items(CN - 1)) SX = Trim(ListBox2.Items(CN - 1)) If (SC = "1") Then If (SX = "H") Then TVS1 = TVS1 + 1 Else TMS1 = TMS1 + 1 End If Else If (SC = "2") Then If (SX = "H") Then TVS2 = TVS2 + 1 Else TMS2 = TMS2 + 1 End If Else If (SX = "H") Then TVS3 = TVS3 + 1 Else TMS3 = TMS3 + 1 End If End If End If Loop TGV = TVS1 + TVS2 + TVS3 TGM = TMS1 + TMS2 + TMS3 TextBox1.Text = TVS1 : TextBox2.Text = TVS2 TextBox3.Text = TVS3 : TextBox4.Text = TMS1 TextBox5.Text = TMS2 : TextBox6.Text = TMS3 TextBox7.Text = TGV : TextBox8.Text = TGM End Sub End Class

    La seorita Vernica tiene un problema: le han pedido que desarrolle un algoritmo que sirva para poder calcular el ingreso total diariamente por los pasajes que se pagan en un bus, si se sabe que el pasaje de los adultos es de 2 soles, de los universitarios es 1 sol y los nios no pagan. Se calcula que en promedio diariamente viajan 500 personas.

    Solucin:

    1. Anlisis. i. Qu te piden que realices?

    Hallar el ingreso diario por concepto de pasajes en un bus. ii. Qu datos necesito conocer?

    Ejercicio de aplicacin No. 2

  • Pgina 128

    Fundamentos de programacin

    Los tipos de persona que suben al carro diariamente, ya que en base a esto se sabe que pasaje cobrar.

    2. Planteamiento Lgico. Se deber ingresar el tipo de pasajero que sube al bus para ir contabilizando los pasajes.

    3. Definicin de variables de entrada. El tipo de pasajero estar representado por la variable TP.

    4. Definicin de variables de salida. El total diario estar representado por la variable TD.

    5. Diseo de la Solucin.

    5.1 Pseudocdigo INICIO Declaracin de variables TD, I, CN: entero TP: cadena TD = 0 CN = 0 Hacer Mientras (CN < 500)

    CN = CN + 1 Escribir(Ingrese el tipo de pasajero:) Capturar(TP) SI (TP = Adulto) entonces TD = TD + 2

    Sino SI (TP = Universitario) entonces

    TD = TD + 1 Fin_si

    Fin_si Fin_Mientras Mostrar(El total diario por concepto de pasajes es:, TD)

    FIN

  • Fundamentos de Programacin Pag. 129

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    5.2 Diagrama de Flujo

    5.3 Diseo del Formulario

    CN = CN + 1

    V

    F

    INICIO

    TP

    TD = 0; CN = 0

    Declaracin de variables TD, I, CN: entero

    TP: cadena

    TD = TD + 2

    CN

  • Pgina 130

    Fundamentos de programacin

    5.4 Codificacin del Programa Public Class Form1 Dim CN As Integer Dim TD As Integer Dim i As Integer Private Sub cmdnuevo_Click ListBox1.Items.Clear() TextBox1.Text = 0 End Sub Private Sub cmdsalir_Click

    If MsgBox("Desea salir?", vbInformation + vbYesNo, "SALIDA") = vbYes Then End End If End Sub Private Sub Button1_Click Dim x, i As Integer ListBox1.Items.Clear() For i = 1 To 500 x = CInt(Math.Round(Rnd() * 1 + 1)) If x = 1 Then ListBox1.Items.Add("Adulto") Else ListBox1.Items.Add("Universitario") End If Next i End Sub Private Sub cmdprocesa_Click CN = 0 TD = 0 Do While (CN < 500) If ListBox1.Items(CN) = "Adulto" Then TD = TD + 2 Else TD = TD + 1 End If CN = CN + 1 Loop TextBox1.Text = TD End Sub End Class

    3. Sentencia HACER HASTA Esta sentencia repetitiva se caracteriza por ejecutar una serie de acciones antes de realizar la evaluacin de una expresin lgica, si esta evaluacin resulta falsa se continua con el proceso de evaluar el bucle hasta que la condicin se haga verdadera momento en el cual se continuara con el programa principal.

    En esta estructura, se ingresar al bucle por lo menos una vez, no siendo posible esto en las otras estructuras estudiadas.

  • Fundamentos de Programacin Pag. 131

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    Diagrama de Flujo

    Pseudocdigo Hacer

    Acciones Hasta que (Condicin?)

    Desarrollar un algoritmo que permita el ingresar 20 nmeros, luego muestre la tabla de multiplicar (del 1 al 12) de cada uno de los nmeros ingresados.

    Solucin:

    1. Anlisis.

    i. Qu te piden que realices? Mostrar la tabla de multiplicar para cada uno de los 10 nmeros a ingresar.

    ii. Qu datos necesito conocer? Los nmeros.

    2. Planteamiento Lgico. A medida que se ingresan cada uno de los nmeros se debern evaluar para ir mostrando la tabla de multiplicar.

    3. Definicin de variables de entrada. La variable para la captura de los nmeros ser N.

    Acciones

    V

    F

    ?

    Ejercicio de aplicacin No. 1

  • Pgina 132

    Fundamentos de programacin

    4. Definicin de variables de salida. Los resultados de la tabla de multiplicar se vera en NM.

    5. Diseo de la Solucin.

    5.1 Pseudocdigo INICIO Declaracin de variables CN, N, NM, I: entero CN = 0 Hacer

    Escribir(Ingrese el nmero a evaluar:) Capturar(N) Para I = 1 hasta 12

    NM = N * I Mostrar(tabla de multiplicar:, NM)

    Fin_Para CN = CN + 1

    Hasta que (CN = 20) FIN

    5.3 Diseo del Formulario

    5.4 Codificacin del Programa Public Class Form2 Dim CN As Byte Dim NM As Integer Dim i As Byte

    INICIO

    CN = 0

    Declaracin de variables CN, N, NM, I: entero

    V

    F CN=20

    N

    Para I=1 Hasta 12

    NM = N * I

    NM

    CN = CN + 1

    FIN

  • Fundamentos de Programacin Pag. 133

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    Private Sub cmdgenerar_Click ListBox1.Items.Clear() CN = 0 Do ListBox1.Items.Add(Str(Math.Round(Rnd() * 100, 0))) CN = CN + 1 Loop Until CN = 5 End Sub Private Sub cmdprocesar_Click Dim i As Integer CN = 0 Do For i = 1 To 4 NM = Val(ListBox1.Items(CN)) * i DataGridView1.Item(CN, i).Value = NM Next i CN = CN + 1 Loop Until CN = 5 End Sub Private Sub Button3_Click ListBox1.Items.Clear() DataGridView1.RowCount = 13 End Sub Private Sub Button4_Click

    If MsgBox("Desea salir?", vbInformation + vbYesNo, "SALIDA") = vbYes Then End End If End Sub Private Sub Form2_Load ListBox1.Items.Clear() DataGridView1.RowCount = 13 End Sub End Class

    Desarrollar un algoritmo que permita ingresar 50 nmeros enteros diferentes de cero, luego muestre cuantos de estos nmeros fueron pares y cuantos fueron impares.

    Solucin:

    1. Anlisis.

    i. Qu te piden que realices? Averiguar cuantos de los 50 nmeros que se ingresarn fueron pares y cuantos impares.

    ii. Qu datos necesito conocer? Los 50 nmeros.

    Ejercicio de aplicacin No. 2

  • Pgina 134

    Fundamentos de programacin

    2. Planteamiento Lgico. Inicialmente se deber validar el ingreso de los nmeros porque dice que tendrn que ser enteros diferentes de cero, luego mediante una pregunta simple ir contando cuales son pares e impares.

    3. Definicin de variables de entrada. La variable en donde se ingresar el nmero es N.

    4. Definicin de variables de salida. Los nmeros pares sern almacenados en NP y los impares en NI.

    5. Diseo de la Solucin.

    5.1 Pseudocdigo 5.2 Diagrama de Flujo

    INICIO

    Declaracin de variables

    N, NP, NI, I: entero

    NP = 0

    NI = 0

    Para I = 1 hasta 50

    Hacer

    Escribir(Ingrese el

    nmero a evaluar:)

    Capturar(N)

    Hasta que (N 0)

    Si (N mod 2 = 0) entonces

    NP = NP + 1

    Sino

    NI = NI + 1

    Fin_Si

    Fin_Para

    FIN

    V

    INICIO

    NP=0, NI=0

    Declaracin de variables N, NP, NI, I: entero

    F

    N0

    N

    Para I=1 Hasta 50

    NP = NP + 1 NI = NI + 1

    Nmod2=0

    FIN

    NP, NI

  • Fundamentos de Programacin Pag. 135

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    5.3 Diseo del Formulario

    5.4 Codificacin del Programa Public Class Form1 Dim i As Byte Dim x As Byte Dim NP As Byte Dim NI As Byte Private Sub cmdgenerar_Click Dim i As Integer ListBox1.Items.Clear() For i = 1 To 50 Do x = Math.Round(Rnd() * 100, 0) Loop Until (x 0) ListBox1.Items.Add(Str(x)) Next i End Sub Private Sub cmdnuevo_Click ListBox1.Items.Clear() TextBox1.Text = 0 TextBox2.Text = 0 End Sub Private Sub cmdprocesar_Click cmdprocesar.Click Dim i As Integer NP = 0 NI = 0 For i = 1 To 50 If (ListBox1.Items(i - 1) Mod 2 = 0) Then NP = NP + 1 Else NI = NI + 1 End If Next i TextBox1.Text = NP TextBox2.Text = NI End Sub Private Sub cmdsalir_Click

    If MsgBox("Desea salir?", vbInformation + vbYesNo, "SALIDA") = vbYes Then End End If End Sub End Class

  • Pgina 136

    Fundamentos de programacin

    Disear un algoritmo que permita ingresar 100 nmeros positivos, luego determinar cuantos de estos nmeros fueron de 1, 2 y 3 cifras.

    Solucin:

    1. Anlisis.

    i. Qu te piden que realices? Averiguar cuantos de los 100 nmeros que se ingresarn fueron de 1 , 2 y 3 cifras.

    ii. Qu datos necesito conocer? Los 100 nmeros.

    2. Planteamiento Lgico. Deber validar el ingreso de cada uno de los nmeros, ya que estos deben ser positivos, luego habr que preguntar por los rangos iniciales y finales de modo que se pueda saber cuantos fueron de 1, 2 y 3 cifras. Ej: Si (N >= 1) and (N 0) Si (N >= 1 and N = 10 and N

  • Fundamentos de Programacin Pag. 137

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    2C = 2C + 1 Sino Si (N >= 100 and N 0

    N

    Para I=1 Hasta 100

    1C = 1C + 1

    N>=1 and

    N=10 and

    N=100 and

    N

  • Pgina 138

    Fundamentos de programacin

    5.3 Diseo del Formulario

    Codificacin del Programa Public Class Form2 Dim N As Integer Dim i As Byte Dim C1 As Byte Dim C2 As Byte Dim C3 As Byte Dim C4 As Byte Private Sub cmdgenerar_Click Dim CN As Integer Dim i As Integer ListBox1.Items.Clear() CN = 0 For i = 1 To 100 Do N = Math.Round(Rnd() * 1000, 0) Loop Until (N > 0) ListBox1.Items.Add(N) Next i End Sub Private Sub cmdnuevo_Click ListBox1.Items.Clear() TextBox1.Text = 0 TextBox2.Text = 0 TextBox3.Text = 0 TextBox4.Text = 0 End Sub Private Sub cmdprocesar_Click Dim i As Integer C1 = 0 C2 = 0 C3 = 0 C4 = 0 For i = 1 To 100 N = ListBox1.Items(i - 1) If (N >= 1 And N = 10 And N = 100 And N

  • Fundamentos de Programacin Pag. 139

    Estructuracin de algoritmos

    Instituto de Educacin Superior Tecnolgico Privado

    C3 = C3 + 1 Else C4 = C4 + 1 End If End If End If Next i TextBox1.Text = C1 TextBox2.Text = C2 TextBox3.Text = C3 TextBox4.Text = C4 End Sub Private Sub cmdsalir_Click

    If MsgBox("Desea salir?", vbInformation + vbYesNo, "SALIDA") = vbYes Then End End If End Sub

    End Class