Sei sulla pagina 1di 63

Algoritmos y Programacin Clase 2

1. 2. 2.

Elementos del lenguaje VB If Else - End If For - Next

Lenguaje de programacin:

Visual Basic
2

Lenguajes de programacin
Visual Basic: VB C C++ Java Fortran Muchos otros...
3

Clase 2

Conjunto bsico de caracteres: Alfabeto


Dgitos del 0-9. Letras de la A-Z (maysculas y minsculas) Caracteres especiales, ejemplos: ()+-*^/\.,;:!$%&#@=<>_[]

Clase 2

Variables, constantes y Tipos de datos


Las variables son abstracciones para manejar datos en un algoritmo. Las variables hacen referencia a localizaciones fsicas de memoria interna. a c Toda variable posee: una declaracin, un nombre, un b 5 10 2 tipo de dato. Ejemplo:

Dim a As Integer
Memoria RAM
5

Clase 2

Declaracin de variables
Las variables se declaran (definen) con la instruccin DIM Ejemplo: Dim B As Single La clusula As define el tipo de datos. Tipos de datos, ejemplos:
Integer: Entero simple Long: Entero largo Single: Real Simple Double: Real doble Boolean: Lgico String: Texto (alfanumrico)
6

Clase 2

Declaracin de constantes
Una constante puede ser un nmero (entero, real), un texto (String), un valor lgico (boolean).
Const Const Const Const N As Integer = 100 Pi As Single = 3.141592 Salir As Boolean = False Mensaje As String = *ERROR*"
7

Clase 2

Operadores
En VB existen diferentes tipos de operadores:
Operadores Aritmticos Operadores Relacionales Operadores Lgicos Operador de Concatenacin Operador de Asignacin

Clase 2

Operadores
Los operadores ARITMTICOS son:
Negacin Suma Resta Multiplicacin Divisin Real Divisin Entera Exponenciacin Mdulo (residuo) + * / \ ^ Mod
Clase 2

-2 -2 5+2 7 5-2 3 5*2 10 5/2 2.5 5\2 2 5^2 25 5 Mod 2 1


9

Operadores
Los operadores RELACIONALES son:
Mayor que Mayor o igual que Menor que Menor o igual que Igual que diferente de > >= < <= = <> 5>2 5>=2 5<2 5<=2 5=2 5<>2 true true false false false true

10

Clase 2

Operadores
Los operadores LOGICOS son:
Negacin lgica Conjuncin lgica (Y) Disyuncin lgica (O) Exclusin lgica Equivalencia lgica Implicacin lgica Not And Or Xor Eqv Imp

11

Clase 2

Operadores
Resultado de los operadores LOGICOS
P Q Not P P And Q P Or Q P Xor Q

V V F F

V F V F

F F V V

V F F F
Clase 2

V V V F

F V V F
12

Operadores
Operador de CONCATENACION (&):
Ejemplos: Sea A=20, B=10, C= ABC, D=XY
Valor = & A Valor = 20 A&B 2010 B&C 10ABC A+B&C 30ABC D&B XY10 C&A&D& &B ABC20XY 10 D+C XYABC
13

Clase 2

Operadores
Operador de ASIGNACION (=):
Sintaxis: Variable = Expresion Variable: Cualquier nombre de variable Expresion: Cualquier literal numrico o alfanumrico, constante o expresin vlida. Primero se evala Expresion y el resultado se asigna a variable
14

Clase 2

Expresiones
Una EXPRESIN es cualquier combinacin vlida de operandos y operadores. Los operandos pueden ser literales (numricos, alfanumricos, lgicos), constantes, variables, funciones. Las expresiones pueden ser Aritmticas, Relacionales, Lgicas, Alfanumricas, etc dependiendo de los operadores que se usan
15

Clase 2

Expresiones Aritmticas
Una expresin aritmtica es una expresin que puede ser evaluada como un nmero Llamada tambin Expresiones numricas Operandos: Literales numricos, Expresiones numricas, funciones numricas Operadores: Aritmticos Resultado: Valor numrico Ejemplo: Si A=2, entonces 5*A+2/A-3 8
16

Clase 2

Expresiones Relacionales
Llamada tambin Expresin de comparacin Operandos: Expresiones numricas alfanumricas Operadores: relacionales Resultado: Valor lgico (booleano) Ejemplo: Si A=2, entonces 5*A > 3 True ABC <= XYW True 10 > 5 False
17

Clase 2

Expresiones Lgicas
Operandos: Expresiones relacionales lgicas Operadores: lgicos Resultado: Valor lgico (booleano) Ejemplo: Si A = 2 4*A > -1 And X2 = X & A True

18

Clase 2

Elementos del lenguaje VB


Conjunto bsico de caracteres (alfabeto) Variables, constantes Tipos de datos Operadores Expresiones

Instrucciones

Estructura Bsica IfEnd If

19

Clase 2

IF ELSE - ENDIF

20

Estructura Bsica Seleccin Lgica


IfElseEnd if
Permite tomar decisiones. Seleccionar uno de dos cursos de accin diferentes. Es necesario definir una expresin lgica. El valor de verdad de una expresin lgica es uno de estos dos valores lgicos:
True (Verdadero) False ( Falso)
21

Clase 2

Representacin estructura IFEnd If


Condicion?

Condicion?
SI

SI

NO

NO

Accin1 Accin2

Accin2

Accin1

Libre
Clase 2

Estructurado 22

Estructura IFEnd If Sintaxis


If Condicion Then Accin1 Else Accin2 End if Si Condicion es verdadera se ejecuta Accin1 de lo contrario se ejecuta Accin2 La clusula Else es opcional.
23

Clase 2

Ejemplo 1: Ecuacin Cuadrtica


Desarrollar un algoritmo para resolver la ecuacin cuadrtica de la forma:

AX2 + BX + C = 0
Cules son las etapas para el clculo de las races X1 y X2?

24

Clase 2

Solucin de la Ecuacin Cuadrtica


Para resolver la ecuacin cuadrtica de la forma:

AX2 + BX + C = 0
Se hace uso de la siguiente frmula:

B B 4AC X1,2 = , si A 0 2A
25

Clase 2

Etapas del proceso


DATOS DE ENTRADA PROCESAMIENTO Clculos Relaciones lgicas Decisiones SALIDA (resultados)

A, B, C
X 1, 2 = B B 2 4 AC 2A

, A 0

X1, X2

26

Clase 2

Algoritmo
Leer A, B, C D=B^2-4*A*C X1=(-B+D^(1/2))/(2*A) X2=(-B-D^(1/2))/(2*A) Mostrar X1 y X2 Terminar
27

Inicio

Clase 2

Fallas del Algoritmo


Qu pasa si..
A=0 A=0yB=0 B2 - 4AC < 0

Solucin

Refinar el Algoritmo!!!!
28

Clase 2

Algoritmo Refinado
Leer A, B, C A=0?
NO SI

Inicio B=0?
NO SI

Mostrar Mensaje: No hay Ecuacin Mostrar X1

D=B^2-4*A*C
1

X1=-C/B

Terminar
29

Clase 2

Algoritmo Refinado
1

D<0?
NO

SI

=-B/(2*A) =((-D)^(1/2))/(2*A)

Mostrar: X1=(-B+D^(1/2))/(2*A) X2=(-B-D^(1/2))/(2*A) X1= & & + & & *i X2= & & - & & *i Mostrar X1 y X2

Terminar
30

Clase 2

El esquema anterior representa el proceso lgico (ALGORITMO) necesario para obtener las races X1 y X2 (solucin de una Ecuacin Cuadrtica).

31

Clase 2

Pasos para elaborar un programa:


1. Entender el problema 2. Identificar las entradas y salidas (datos y resultados) 3. Identificar las restricciones y relaciones matemticas 4. Establecer un algoritmo de solucin. Representar el algoritmo en un diagrama (opcional) 32
Clase 2

Pasos para elaborar un programa:


5. Implementar el algoritmo en un Lenguaje de Programacin (Programa) 6. Ejecutar el programa y depurar con base en el anlisis de los resultados

33

Clase 2

Ejemplo 2
Dadas las longitudes de tres segmentos de recta, determinar si es posible formar un tringulo con ellos.
a b c

En caso afirmativo calcular el rea del tringulo


34

Clase 2

Estrategia para la solucin


c a b

Cada lado del tringulo debe ser menor que la suma de los otros dos lados: c < b+a b < c+a a < b+c
35

Clase 2

Estrategia para la solucin


Si se cumplen las condiciones para formar el tringulo, se puede usar la frmula de Hern de Alejandra para calcular el rea del tringulo, as:
a+b+c S= 2 rea = S ( S a)( S b)( S c)
36

Clase 2

Etapas del proceso


DATOS DE ENTRADA PROCESAMIENTO Clculos Relaciones lgicas SALIDA (resultados)

a, b, c

Verificar si: c < b+a b < c+a a < b+c


Clase 2

Forman tringulo y Area No forman tringulo 37

Algoritmo
1. 2. 3. 4.

Leer los valores de a, b, c Verificar si c < b+a Verificar si b < c+a Verificar si a < b+c

38

Clase 2

Algoritmo
5.

Si se cumplen las relaciones 2, 3 y 4 entonces los tres segmentos forman tringulo y el rea es:
a+b+c S= 2 rea = S ( S a)( S b)( S c)

6.

Si no cumple alguna de las tres relaciones 2, 3 y 4 entonces no forman tringulo


39

Clase 2

Diagrama de Flujo
Leer a,b,c
a<b+c y b<a+c y c<a+b?
NO SI

Inicio
Mostrar Mensaje: Forman tringulo

S=(a+b+c)/2 Area=(S*(S-a)*(S-b)*(S-c))^(1/2)

Mostrar Mensaje: No forman tringulo

Mostrar Area

Terminar
Clase 2

40

Etapas para elaborar el proyecto en VB


Construir la interfaz grfica:
Mecanismos de entrada de datos Botn para llevar a cabo el proceso Mecanismos para salida de resultados
Formularios, controles y propiedades

Programacin en lenguaje VB

41

Clase 2

Interfaz de usuario en etapa de construccin

42

Clase 2

Cdigo del programa


Dim a As Integer, b As Integer, c As Integer Dim mensaje As String, Area As Single, S As Single a = Val(Text1.Text) b = Val(Text2.Text) c = Val(Text3.Text) If (a < b + c And b < a + c And c < a + b) Then mensaje = "Forman tringulo" S=(a + b + c)/2 Area = ((S*(S-a)*(S-b)*(S-c))^(1/2) Text5.Text = Area Else mensaje = "No forman tringulo" End If Text4.Text = mensaje

43

Clase 2

Programa en ejecucin

44

Clase 2

FOR - NEXT

45

Estructura Bsica: Iteracin Definida


ForNext La sentencia ForNext da lugar a un ciclo, bucle o repeticin sta permite ejecutar un conjunto de instrucciones cierto nmero de veces
46

Clase 2

Estructura ForNext: Sintaxis


For var = inicio To fin Step incr Instrucciones Next var
Si ciclo El incr > se 0 inicia y0 var si > incr fin entonces >= inicio 0 y inicio el ciclo <=fin termina fin y Si incr > entonces <= fin incr Instrucciones :<= Valor : Cantidad final del en contador la :la Una que cambia ms el var inicio Variable : inicio Valor numrica inicial del que contador se utiliza la ejecucin contina con instruccin que incr 0y >= fin sigue a la< instruccin Next .y Si incr 0 entonces inicio >= fin se instrucciones contador ( entre var ) cada For vez que Next se que ejecuta como contador del bucle Cuando se ejecuten todas las instrucciones en incr < incr 0 y var se suma < fin entonces a var y se elpregunta ciclo Si termina por la y La Si el bucle, ejecutan el bucle. un nmero especificado de clusula Step es opcional. se la condicin ejecucin decontina finalizacin: con la instruccin que incr se asume omite, sigue a la instruccin Next. 1. veces. 47
Clase 2

Estructura ForNext
Palabras claves Valor del Valorinicial final Incremento del del contador contador

For K = 1 To 200 Step 5 ......... Nombre de la variable Next K de control o contador


Comienzo y fin del ciclo
Clase 2

Conjunto de instrucciones
48

Estructura ForNext
Cuando el incremento es unitario, se puede escribir o no, es decir:
For K = 1 To N Step 1 Next K For K = 1 To N Next K

Si el incremento NO es unitario, hay que escribirlo:


For X = -10.0 To 10.0 Step 0.5 Next X
Clase 2
49

Representacin Estructura ForNext


var = inicio, fin, incr var = inicio, fin, incr

Instrucciones
Next var

Instrucciones

Libre
Clase 2

Estructurado
50

Ejemplo 1
Escribir un algoritmo que permita calcular y mostrar la raz cuadrada de los primeros 100 nmeros naturales pares.
Inicio I = 2, 200, 2 R = Sqr(I) Mostrar I, R Terminar

Dim I As Integer, R As Single For I = 2 To 200 Step 2 R = Sqr(I) Text1.Text = Text1.Text & I & _ vbTab & R & vbCrLf Next I

51

Clase 2

Ejemplo 2
Una persona invierte $1000 en una cuenta de ahorros al 5% anual. Hacer un algoritmo que permita calcular el saldo de la cuenta en los prximos 20 aos, ao a ao.

a = p (1 + r )
Donde:

n = Nmero de aos p = Cantidad inicial invertida r = Tasa de inters anual a = Cantidad en depsito al final del n-simo ao
Clase 2

52

Etapas del proceso


DATOS DE ENTRADA PROCESAMIENTO Clculos Relaciones lgicas Decisiones SALIDA (resultados)

p,r,plazo

r=r/100 a=p*(1+r)^n, n=1,plazo

Mostrar n,a

53

Clase 2

Diagrama de Flujo Libre


p,r[%],plazo Inicio n=1,plazo,1

r=r/100

a=p*(1+r)^n
n, a Terminar
Clase 2

Next n
54

Interfaz Grfica

55

Clase 2

Cdigo del programa


Dim a As Single, p As Single, r As Single Dim n As Integer, plazo As Integer p = Val(Text1.Text) r = Val(Text2.Text) plazo = Val(Text3.Text) Text4.Text = Ao & vbTab & Saldo & vbCrLf r = r / 100 For n = 1 To plazo a = p*(1 + r) ^ n Text4.Text = Text4.Text & n & vbTab & _ a & vbCrLf Next n 56
Clase 2

Acumulador
El Acumulador se emplea para efectuar sumatorias (series, etc), productorias (factorial, etc) Anterior valor El esquema general es:

Variable = Variable + Expresion

Se toma el antiguo valor de la variable y el resultado se asigna Nuevo valor y se suma con la Expresion nuevamente a la variable.

- * /

57

Clase 2

Acumulador
Para emular el proceso de acumulacin se emplea una asignacin aritmtica:

Suma = Suma + X
El signo igual significa asignacin El nuevo valor de Suma es el anterior valor ms el valor de X El valor inicial de la variable acumuladora debe ser 0 para sumatorias y 1 para productorias.
58

Clase 2

Contador
El Contador es un caso particular del Acumulador. ste aumenta de uno en uno, o reduce de uno en uno su valor inicial. Ejemplos: I = I + 1 K = K - 1
59

Clase 2

Ejercicios propuestos
Realizar un algoritmo para: Encontrar el mayor de 10 valores numricos Averiguar si un entero es par o impar Averiguar si un entero es divisible por otro Averiguar si un entero es mltiplo de su ltima cifra
60

Clase 2

Ejercicios propuestos
Elaborar e implementar un algoritmo para: Calcular el promedio de los primeros 100 nmeros impares. Calcular el factorial de los 10 primeros nmeros naturales. Calcular los primeros n trminos de la serie:

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

Clase 2

Ejercicios propuestos
Elaborar e implementar un algoritmo para: Determinar si un nmero entero es primo. Determinar si un entero es perfecto (es igual a la suma de sus divisores). Calcular la suma de las cifras de un entero.

62

Clase 2

Algoritmos y Programacin Clase 2


1. 2. 2.

Elementos del lenguaje VB If Else - End If For - Next

63

Potrebbero piacerti anche