Apuntes 6

14
Página 1 de 14 UNIVERSIDAD TECNOLÓGICA DE PANAMÁ PROGRAMACIÓN - Lic. Andy Gómez De La Torre, MBA APUNTES DEL CURSO – No. 6 I. Estructuras de Decisión o Condicionales La estructura condicional se utiliza para indicarle al computador que debe evaluar una condición y, a partir del resultado, ejecutar el bloque de instrucciones correspondiente. La forma más común está compuesta por una proposición (condición) que se evalúa y dos bloques de instrucciones que se ejecutan, uno cuando la condición es verdadera (selección simple y doble) y otro cuando ésta es falsa (únicamente en la selección doble). Algunos autores se refieren a este tipo de estructura como estructura de selección, estructura selectiva o estructura de decisión; en esta guía, todas estas denominaciones son consideradas sinónimas. Para que una proposición (frase declarativa) sea válida, debe poder afirmarse que es verdadera o falsa. En programación, se utilizan operadores relacionales (<, =, >) para establecer la relación que existe entre dos elementos de la proposición. Adicionalmente, las proposiciones pueden ser sencillas o compuestas. Las proposiciones compuestas se forman con dos o más proposiciones sencillas unidas por operadores lógicos (y, o, no). Cuando se unen dos proposiciones por medio del operador lógico “y”, significa que ambas proposiciones deben ser verdaderas (conjunción). Cuando se unen dos proposiciones por medio del operador lógico “o”, significa que por lo menos una de las dos proposiciones debe ser verdadera (disyunción). Más adelante se detallan cuáles son los operadores relacionales y lógicos utilizados en Visual Basic .NET Por su parte, un bloque de instrucciones puede contener una o varias instrucciones que se ejecutan una detrás de otra. La estructura condicional tiene tres variantes: selección simple. selección doble. selección múltiple. Selección Simple (Sentencia IF-THEN) Esta estructura permite ejecutar condicionalmente una o más sentencias. La expresión a evaluar dará como resultado un valor booleano True o False. Si es True (Cierto) llevará a cabo el primer grupo de sentencias. Si es False (Falso) no se realizará nada, y el programa continua a la siguiente sentencia. IF ( condición ) THEN sentencia(s); ENDIF Selección Doble (Sentencia IF…THEN…ELSE) Esta estructura permite ejecutar condicionalmente una o más sentencias. La expresión a evaluar dará como resultado un valor booleano True o False. Si es True (Cierto) llevará a cabo el primer grupo de sentencias. Si es False (Falso) llevará a cabo el segundo grupo de sentencias (después de la instrucción else). IF ( condición ) THEN sentencia(s); ELSE sentencia(s); ENDIF

Transcript of Apuntes 6

Page 1: Apuntes 6

Página 1 de 14

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

PROGRAMACIÓN - Lic. Andy Gómez De La Torre, MBA

APUNTES DEL CURSO – No. 6

I. Estructuras de Decisión o Condicionales

La estructura condicional se utiliza para indicarle al computador que debe evaluar una condición y, a partir del resultado, ejecutar el bloque de instrucciones correspondiente. La forma más común está compuesta

por una proposición (condición) que se evalúa y dos bloques de instrucciones que se ejecutan, uno cuando la condición es verdadera (selección simple y doble) y otro cuando ésta es falsa (únicamente en la selección doble). Algunos autores se refieren a este tipo de estructura como estructura de selección, estructura selectiva o estructura de decisión; en esta guía, todas estas denominaciones son consideradas sinónimas. Para que una proposición (frase declarativa) sea válida, debe poder afirmarse que es verdadera o falsa. En programación, se utilizan operadores relacionales (<, =, >) para establecer la relación que existe entre dos elementos de la proposición. Adicionalmente, las proposiciones pueden ser sencillas o compuestas. Las proposiciones compuestas se forman con dos o más proposiciones sencillas unidas por operadores lógicos (y, o, no). Cuando se unen dos proposiciones por medio del operador lógico “y”, significa que ambas proposiciones deben ser verdaderas (conjunción). Cuando se unen dos proposiciones por medio del operador lógico “o”, significa que por lo menos una de las dos proposiciones debe ser verdadera (disyunción). Más adelante se detallan cuáles son los operadores relacionales y lógicos utilizados en Visual Basic .NET Por su parte, un bloque de instrucciones puede contener una o varias instrucciones que se ejecutan una detrás de otra. La estructura condicional tiene tres variantes:

selección simple.

selección doble. selección múltiple.

Selección Simple (Sentencia IF-THEN) Esta estructura permite ejecutar condicionalmente una o más sentencias. La expresión a evaluar dará

como resultado un valor booleano True o False. Si es True (Cierto) llevará a cabo el primer grupo de sentencias. Si es False (Falso) no se realizará nada, y el programa continua a la siguiente sentencia.

IF ( condición ) THEN sentencia(s);

ENDIF

Selección Doble (Sentencia IF…THEN…ELSE) Esta estructura permite ejecutar condicionalmente una o más sentencias. La expresión a evaluar dará como resultado un valor booleano True o False. Si es True (Cierto) llevará a cabo el primer grupo de sentencias. Si es False (Falso) llevará a cabo el segundo grupo de sentencias (después de la instrucción else).

IF ( condición ) THEN sentencia(s);

ELSE sentencia(s);

ENDIF

Page 2: Apuntes 6

Página 2 de 14

La figura a continuación presenta esquemáticamente las formas de representar estas sentencias:

Estructura condicional simple Estructura condicional doble

Ejemplos en VB.NET donde se emplean ambas estructuras. Un empleado gana una comisión del 5%, sólo si sus ventas mensuales son mayores a 10,000 balboas

Indicar si un número es positivo o negativo.

Algoritmo: 1. Leer ventas 2. Calcular comision = 0 3. Si ventas > 1000 Entonces

3.1. Calcular comisión = ventas * 0.05

4. Escribir comisión 5. Fin

Algoritmo: 1. Leer n 2. Si n < 0 Entonces

2.1. Escribir “Número Negativo” 3. Sino

3.1. Escribir “Número Positivo” 4. Fin

II. Operadores Relacionales o Condicionales

Se utilizan para formar expresiones booleanas, es decir, expresiones que al ser evaluadas cuyo resultado será cierto o falso. Los operadores relaciones son muy empleados en las decisiones IF, en los ciclos WHILE, y en menor número en las operaciones de cálculo aritmético-matemático.

Operadores Es CIERTO cuando (THEN) Es FALSO cuando (ELSE)

> La expresión1 debe ser > que expresión2

La expresión1 debe ser <= que expresión2

< La expresión1 debe ser < que expresión2

La expresión1 debe ser >= que expresión2

Page 3: Apuntes 6

Página 3 de 14

>=

(mayor o igual)

La expresión1 debe ser >= que expresión2

La expresión1 debe ser < que expresión2

<=

(menor o igual)

La expresión1 debe ser <= que expresión2

La expresión1 debe ser > que expresión2

= La expresión1 debe ser = que expresión2

La expresión1 debe ser <> que expresión2

<> (no igual, diferente)

La expresión1 debe ser <> que expresión2

La expresión1 debe ser = que expresión2

Ejemplos Resultado

25 < 24

25 = 25

25<> 4

24>=25

0 (Falso)

1 (Cierto)

1 (Cierto)

0 (Falso)

Cuando se comparan caracteres alfanuméricos estos se evalúan, carácter por carácter de izquierda a derecha. Si las cadenas a evaluar son de diferente longitud, pero iguales hasta el último carácter del más corto, entonces se considera que la cadena más corta es menor que la más larga.

Sólo son iguales dos cadenas, si ambas tienen los mismos caracteres en la misma secuencia y tienen la misma longitud.

Los caracteres en minúsculas tienen un mayor valor que los caracteres en minúsculas.

Ejemplos Resultado

“A” < “B”

“Uno” = “uno”

“ABC”<> “DEF”

“ABC”>”abc”

1 (Cierto)

0 (Falso)

1 (Cierto)

0 (Falso)

III. Operadores Lógicos o Booleanos

Combinan sus operandos de acuerdo con el álgebra de Boole. Los operadores lógicos se combinan con los operadores relaciones para simplificar decisiones múltiples o complejas en una sola instrucción. Los tres

operadores más empleados son:

Operadores Cuando es Cierto (THEN) Es Falso cuando (ELSE)

AND

(y)

Cuando todos sus operandos dan como resultado CIERTO

Alguno de sus operandos da como resultado FALSO

OR

(ó)

Alguno de sus operandos da como resultado CIERTO

Todos sus operandos dan como resultado FALSO

NOT (Negación, No)

Este operador lógico se utiliza para invertir el resultado de un operando. Si el resultado del operando es CIERTO lo convierte en FALSO. Si el resultado del operando es FALSO lo convierte en CIERTO.

Page 4: Apuntes 6

Página 4 de 14

Ejemplos Resultado

(7 > 4) OR (5=3)

(7>4) AND (5<>3)

(16=(4*4)) AND 2<>2

NOT (7>4)

Verdad

Verdad

Falso

Falso

Recuerde que se pueden incluir variables y constantes fijas en las operaciores aritméticas internas de los operandos. Igual es conveniente utilizar paréntesis para agrupar operandos, e inclusive para agrupar expresiones que incluyan operadores lógicos mixtos, es decir, expresiones boolenas que combinan AND, OR, NOT.

Si está interesado en el Algebra de Boole, existen otros operadores lógicos (y también otros operadores relacionales).

IV. Estructura Condicional SEGÚN-HACER (SELECT CASE)

SEGÚN-HACER (SELECT CASE) es una estructura de control empleada en programación, se utiliza para agilizar la toma de decisiones múltiples. El SELECT CASE no es tan popular como el IF, pero se utiliza con regularidad en la programación. En principio la funcionalidad de un SELECT CASE también se puede

implementar con múltiples IFs anidados. En el caso de que haya muchas acciones dependientes de muchos valores iniciales, es recomendable su uso. El SELECT CASE favorece la legibilidad y rapidez en la programación. Las estructuras condicionales simple y doble evaluaban una proposición (condición) que devolvía como resultado únicamente dos valores posibles y excluyentes: verdadero o falso. En cambio, la estructura

condicional de selección múltiple permite que la condición devuelva más de un valor posible y que para cada uno de esos valores se ejecute el bloque de instrucciones correspondiente. Por ejemplo, una situación típica de selección múltiple es cuando la incorporación de un estudiante a un equipo depende del color de una balota: si saca una balota roja, su incorporación al equipo es inmediata; si es azul, la incorporación será en julio; y si es blanca, el estudiante no tiene que integrarse al equipo. En esta situación hay tres valores posibles y cada uno de esos valores implica la ejecución de una instrucción diferente.

Por lo regular la expresión a evaluar es numérica ya que es más fácil de implementar, pero también se acepta que sean alfanuméricas. Igualmente que la selección simple (IF-THEN) y doble (IF-THEN-ELSE), las sentencias SELECT CASE pueden estar anidadas dentro de un programa.

Page 5: Apuntes 6

Página 5 de 14

Algoritmo Representación en diagrama

Segun variable_numerica Hacer opcion_1: secuencia_de_acciones_1 opcion_2: secuencia_de_acciones_2 opcion_3: secuencia_de_acciones_3

De Otro Modo: secuencia_de_acciones_DOM Fin Segun

Sintaxis en VB.NET

Select Case expresión

Case valor

Sentencias

.

.

.

Case Else

sentencias

End Select

Page 6: Apuntes 6

Página 6 de 14

Ejemplo de un programa VB.NET que utiliza SEGÚN-HACER

Un profesor desea establecer un nivel de aprobación en base a una calificación. 5 es “Excelente”, 4 es “Bueno”, 3 es “Regular”, y de no cumplirse los anteriores el estudiante “Reprobó”.

Algoritmo (PseInt) Proceso nota Leer calificacion Segun calificacion Hacer

5: Escribir "Excelente" 4: Escribir "Bueno" 3: Escribir "Regular"

De Otro Modo: Escribir "Reprobó" Fin Segun FinProceso

Codificación en VB.NET

Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim opcion As Integer opcion = Val(TextBox1.Text) Select Case opcion Case 5 TextBox2.Text = "¡Excelente!" Case 4 TextBox2.Text = "Bueno" Case 3 TextBox2.Text = "Regular" Case Else TextBox2.Text = "Reprobó" End Select End Sub End Class

Page 7: Apuntes 6

Página 7 de 14

V. Estructuras de Repetición

La estructura iterativa o de repetición permite ejecutar una o varias instrucciones, un número

determinado de veces o, indefinidamente, mientras se cumpla una condición. Esta estructura ayuda a simplificar los algoritmos, ahorrando tiempo valioso a quien resuelve problemas con ayuda del computador. Existen cuatro estructuras en Visual Basic .NET: Mientras, Hacer-mientras, Para, y Hacer-hasta. Estructura Mientras (WHILE-END WHILE)

La Estructura Mientras (WHILE-END WHILE) es la estructura básica de ciclo en VB.NET. Esta repite la ejecución de un conjunto de sentencias mientras una condición dada sea cierta. La condición es verificada antes de ejecutarse el conjunto de sentencias. Sus posibles formas son las siguientes: REM Formato 1

contador = valor inicial

WHILE ( condición <= valor final )

sentencia(s)

contador = contador + incremento

END WHILE

REM Formato 2

WHILE ( condición de control )

sentencia(s)

END WHILE

La figura a continuación presenta esquemáticamente las formas de representar estas sentencias:

La representación de la izquierda se utiliza cuando se requiere que una estructura Mientras se repita un número determinado de veces. Para esto se establece un contador, cuyos valores se establecen desde un valor inicial, hasta un valor final. Cada vez que se repita la estructura, el contador se incrementará a través de un valor de incremento. La estructura de la derecha se utiliza cuando no sabemos el número de veces que la estructura Mientras se repetirá, pero se sabe que la misma se repetirá mientras la condición del Mientras sea verdadera.

Page 8: Apuntes 6

Página 8 de 14

Ejemplo en VB.NET de una Estructura Mientras

Realice la suma de los primeros n números naturales.

Algoritmo Diagrama de flujo

1. Leer n 2. Calcular s = 0 3. Calcular c = 1 4. Mientras c <= n

4.1. Calcular s = s + c 4.2. Calcular c = c + 1

5. Escribir s 6. Fin

Codificación en VB.NET

Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim n As Integer, c As Integer, s As Integer

n = Val(TextBox1.Text)

s = 0

c = 1

While (c <= n)

s = s + c

c = c + 1

End While

TextBox2.Text = Str(s)

End Sub

End Class

Page 9: Apuntes 6

Página 9 de 14

Estructura Hacer-Mientras (DO-LOOP WHILE)

Los ciclos DO-LOOP WHILE son idénticos a los ciclos WHILE-END WHILE, con una excepción: DO-LOOP

WHILE ejecutará el bloque de código que repite la evaluación antes de la sentencia LOOP WHILE. Esto significa que el código en el ciclo siempre se ejecutará al menos una vez.

contador = valor inicial

Acciones repetitivas

contador <= valor final

VERDADERO

contador = contador + incremento

FALSO

Acciones repetitivas

Condición

VERDADERO

FALSO

Por cierto, en PseInt no existe tal estructura, y no confundir con la estructura HACER-HASTA.

Page 10: Apuntes 6

Página 10 de 14

Realice la suma de los primeros n números naturales.

Algoritmo Diagrama de flujo

1. Leer n 2. Calcular s = 0 3. Calcular c = 1 4. Hacer

4.1. Calcular s = s + c 4.2. Calcular c = c + 1 4.3. Mientras (c<=n)

5. Escribir s 6. Fin

Inicio

Leer n

s = 0

c = 0

s = s + c

c <= n

VERDADERO

c = c + 1

Escribir s

Fin

FALSO

Codificación en VB.NET

Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim n As Integer, c As Integer, s As Integer

n = Val(TextBox1.Text)

s = 0

c = 1

Do

s = s + c

c = c + 1

Loop While (c <= n)

TextBox2.Text = Str(s)

End Sub

End Class

Page 11: Apuntes 6

Página 11 de 14

Estructura Para (FOR-TO-NEXT)

La estructura Para (FOR-TO-NEXT) funciona de manera similar a los ciclos Mientras, pero con controles

más precisos sobre cómo se repite el código. La estructura Para tiene tres elementos: Lo primero es el contador con un valor inicial (un número entero). La segunda es el valor final en la que el ciclo termina. La tercera es el valor de incremento que define la cantidad a añadir al contador para cada iteración. Los ciclos Para son útiles cuando un número predefinido o calculada de iteraciones es requerido. Su forma general es:

FOR contador = valor_inicial TO valor_final STEP valor_incremento

acciones a repetir

NEXT

Cuando se ejecuta una sentencia FOR, primero se asigna el valor inicial a la variable contadora. Luego se comprueba si su valor es menor o igual al valor final. En caso de ser menor o igual se ejecutan las

sentencias, y en caso de ser mayor el control del programa finaliza la repetición. En cada interacción, la variable se incrementa con el valor establecido en el incremento. Los autores no se ponen de acuerdo en cómo se representa simbólicamente este tipo de ciclo, pero para nuestros efectos prácticos emplearemos la misma representación que la estructura de repetición Mientras que utiliza contador.

Realice la suma de los primeros n números naturales.

Algoritmo Diagrama de flujo

1. Leer n 2. Calcular s = 0 3. Para c=1 Hasta n Con Paso 1

3.1. Calcular s = s + c 4. Escribir s 5. Fin

Page 12: Apuntes 6

Página 12 de 14

Codificación en VB.NET

Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim n As Integer, c As Integer, s As Integer

n = Val(TextBox1.Text)

s = 0

For c = 1 To n Step 1

s = s + c

Next

TextBox2.Text = Str(s)

End Sub

End Class

Estructura Hacer-Hasta (DO-LOOP UNTIL)

El ciclo DO-LOOP UNTIL trabaja diferente a los ciclos WHILE-END WHILE y DO-LOOP WHILE. Las sentencias que se repiten se ejecutan hasta que la condición es cierta. Dado que la comprobación de la condición se realiza al final las sentencias al menos se ejecutan una vez.

contador = valor_inicial

acciones repetitivas

contador = contador + incremento

contador > valor_final

FALSO

VERDADERO

acciones repetitivas

condiciónFALSO

VERDADERO

Dado el comportamiento de esta estructura, la condición se expresa inversamente a como se expresaría en una estructura Mientras. Ejemplo: la condición (contador <=10) se expresaría como (contador > 10).

Page 13: Apuntes 6

Página 13 de 14

Realice la suma de los primeros n números naturales.

Algoritmo Diagrama de flujo

1. Leer n 2. Calcular s = 0 3. Calcular c = 1 4. Hacer

4.1. Calcular s = s + c 4.2. Calcular c = c + 1 4.3. Hasta (c>n)

5. Escribir s 6. Fin

Inicio

Leer n

s = 0

c = 1

s = s + c

c = c + 1

c > n

Escribir s

FALSO

VERDADERO

Fin

Codificación en VB.NET

Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Dim n As Integer, c As Integer, s As Integer

n = Val(TextBox1.Text)

s = 0

c = 1

Do

s = s + c

c = c + 1

Loop Until (c > n)

TextBox2.Text = Str(s)

End Sub

End Class

Page 14: Apuntes 6

Página 14 de 14

Sentencias goto

Otra forma de construir estructuras de ciclo es a través de la sentencia "goto" junto con una etiqueta. El

programador puede definir una etiqueta, luego utilizar sentencias goto para mover el programa a las partes etiquetadas del programa. Esto, sin embargo, por lo general conduce a un código confuso y no se recomienda en la práctica.

DEFINICIONES

Bucle. Sinónimo “ciclo”. Es un tipo de estructura de control que permite repetir una o más sentencias múltiples veces. También es equivalente a “estructura de repetición”. Sentencia. En programación, una sentencia es una línea de código en algún lenguaje de programación.