Sunteți pe pagina 1din 44

Clase # 2

 Ejercicios y repaso del


U concepto de algoritmo
N

A
• Lenguaje de programación
S

• Estructura IF…END IF

23/06/2019 20:31 2-1


Ecuación Cuadrática
Desarrollar un algoritmo para
resolver la ecuación cuadrática de la
U forma:
N AX2 + BX + C = 0
A

S
Cuáles son las etapas para el
cálculo de las raíces X1 y X2?

23/06/2019 20:31 2-2


Variables,
constantes
PROCESAMIENTO
ENTRADA • Cálculos
DE DATOS • Relaciones lógicas
U •Decisiones
N
Estructura
A
general de un
S
programa
SALIDA Variables,
secuencial DE
constantes
RESULTADOS

23/06/2019 20:31 2-3


Para resolver la ecuación
cuadrática de la forma:
AX2 + BX + C = 0
U
Se hace uso de la siguiente fórmula:
N

S
 B  B  4 AC
2
R/. X1,2  , si A  0
2A D0

23/06/2019 20:31 2-4


Pasos para solucionar el problema
• Paso 1: calcular B^2
• Paso 2: calcular B^2 - 4AC
U
• Paso 3: calcular D = (B^2 - 4AC)^(0.5)
N
• Paso 4: -B±(D)^(0.5)
A

• Paso 5:
B D
S

X 1, 2  , si A  0
2A D0

23/06/2019 20:31 2-5


Etapas del proceso
PROCESAMIENTO
DATOS DE
• Cálculos
ENTRADA
• Relaciones lógicas
U

N
SALIDA
(resultados)
A
A, B, C
S Si A 0, D  0
B D
 X 1, 2 
2A
X1, X2

23/06/2019 20:31 2-6


Leer A, B, C
SI Mostrar
B=0? mensaje
Sí “No hay
A=0? ecuación”
NO
U
NO X = -C / B
D=B^2-4AC
N
Mostrar X
A

S D>=0? 1
FIN
No
2 DIAGRAMA
LIBRE

23/06/2019 20:31 2-7


D >=0 1
2 D<0
X1=(-B+D^(1/2))/(2A)
=-B/(2A)
X2=(-B-D^(1/2))/(2A)

U
=((-D)^(0.5))/(2A)

N Mostrar X1 y X2
Mostrar
A X1 =  + *i
X2 =  - *i
S FIN
i  1
Ejemplo:
Complejo=  + *i “X1 =” &  “+” &  & “*i”

23/06/2019 20:31 2-8


• Este diagrama es más
compacto.
• Exige más abstracción.
• Pero permite lograr más
estructuración en los
algoritmos.
U
• Tiene muy claramente
N definidos las entradas y las
salidas en cada estructura
A empleada.

S • Es muy práctico para


problemas de mediana
complejidad.
DIAGRAMA RECTANGULAR
ESTRUCTURADO

23/06/2019 20:31 2-9


• El diagrama anterior
representa el proceso
lógico, o el ALGORITMO,
U
necesario para obtener las
N
raíces X1, X2.
A

S • Contempla todas las


posibilidades lógicas del
problema en cuestión.

23/06/2019 20:31 2 - 10
Pasos para plantear un algoritmo
1. Entender el problema.
2. Identificar las constantes y variables (estructura de
entrada y de salida).
3. Identificar las restricciones y relaciones matemáticas
U entre variables y constantes.
N 4. Establecer una estrategia de solución. Representación
del problema en un diagrama (u otra forma).
A
5. Elaborar el Programa en un lenguaje de
S programación de computadores.
6. Ejecutar y depurar el programa con base en los
resultados obtenidos. Análisis de los resultados.

23/06/2019 20:31 2 - 11
Representar algoritmos
• Diagramación libre.
• Diagramación estructurada
• Pseudocódigo (P-código)
U
• Lenguaje Natural Estructurado
N
• Sintaxis de un lenguaje de
A
programación de
S computadores.
Véase Cap. 2 en http://www.unalmed.edu.co/~walvarem. También
puede descarcar el archivo CAP2A.PDF de la página
http://xue.unalmed.edu.co/~walvarem/APdocs, carpeta DOCS_PDF

23/06/2019 20:31 2 - 12
Símbolos del Diagrama libre
Proceso (cualquier tipo de operación que pueda
originar cambio de valor, formato o posición de
la información almacenada en memoria,
operaciones de asignación aritmética, de
transferencia, etc.).
U Decisión. Correponde a la estructura de
selección lógica que se explicó en una sección
N anterior. Implica operaciones lógicas de
comparación entre variables y/o constantes –
A normalmente dos- y en función del resultado de
las mismas se determina cuál de los dos
S
caminos alternativos se debe seguir.
Normalmente, las dos posibles salidas se
rotulan como Sí y No, como en la figura
adjunta, pero también puede ser Verdadero (V)
y Falso (F).

23/06/2019 20:31 2 - 13
Símbolos del Diagrama libre/2
Indican el flujo lógico, o el orden de la secuencia
de operaciones del algoritmo

U Conector, se emplea para enlazar dos partes


cualesquiera de un diagrama de lógica, en el cual las
N dos partes a enlazar están en una misma página.
A
Terminal (representa el comienzo, “inicio” y el
S final, “fin”, de un algoritmo. Puede representar
también una parada o interrupción programada
que sea necesario realizar en un algoritmo.

23/06/2019 20:31 2 - 14
Símbolos Diagrama estructurado
Proceso de cálculo: Representa un proceso en el
cual se ejecuta una secuencia de operaciones,
generalmente de cálculo aritmético o matemético.
La secuencia, lógicamente ordenada, de
operaciones dentro de un proceso constituye el
algoritmo de dicho proceso.
U Estructura de selección lógica
La estructura de selección lógica (decisión) es un
N rectángulo dividido en tres triángulos por medio de
línea diagonales, como se muestra en la figura
A adyecente). La condición o expresión lógica se
escribe en el triángulo superior y las dos posibles
S opciones (Verdadero/Falso, Sí/NO, V/F) se escriben
en los triángulos laterales. Depende del criterio, de
quién elabora el diagrama de lógica, la secuencia de
escritura de dichas opciones.

23/06/2019 20:31 2 - 15
Símbolos Diagrama estructurado/2
Estructura de iteración definida: Se emplea para
representar un proceso repetitivo del cual se sabe de
antemano cuántas veces se ejecutarán las
operaciones del rango de ejecución, definido por la
secuencia de operaciones: operación1, operación2,
..., operaciónN.
U
If (A > B And A > C)THEN
N Text4 = “A es el mayor”
ElseIf (B > A And B > C)Then
A Text4 = “B es el mayor”
ElseIf(C > And C > B)Then
S Text4 = “C es el mayor”
End If

Programa en el lenguaje de programación

23/06/2019 20:31 2 - 16
Problema del triángulo
• Dadas las longitudes de tres
segmentos de recta determinar si
es posible formar un triángulo con
U
ellos.
N
• En caso afirmativo calcular el área
A
del triángulo (fórmula de Herón)
S
a
b
c

23/06/2019 20:31 2 - 17
Estrategia para la solución
c b

U Cada lado del triángulo debe ser


N menor que la suma de los otros dos
A lados (véase Euclides, “Elementos”):
S • c<b+a
• b<c+a
Libros I al VI, Geometría plana.
• a<b+c

23/06/2019 20:31 2 - 18
Los pasos del algoritmo
1. Conocer los valores de a, b, c
2. Verificar si c<b+a
U 3. Verificar si b<c+a
N
4. Verificar si a<b+c
A
5. Si se cumplen las relaciones 2, 3 y
S
4 entonces los tres lados sí forman
triángulo

23/06/2019 20:31 2 - 19
6. Si se cumplen las relaciones 2, 3 y 4 se
calcula el área la cual es =
abc
S Herón de
2
U
Área  S ( S  a)( S  b)( S  c) Alejandría
N

A 7. Si no cumple alguna de las tres


relaciones 2, 3 y 4 entonces no forman
S
triángulo
8. REF.:http://www.arrakis.es/~mcj/heron.htm

23/06/2019 20:31 2 - 20
Diagrama libre del algoritmo
Leer a, b, c

FIN
U
a<b+c, y NO
N b < a + c, y “No forma triángulo”
A
c < a + b?
S
abc
SI S
2
“Sí forma triángulo” Área  S ( S  a)( S  b)( S  c)

23/06/2019 20:31 2 - 21
Etapas del proceso

DATOS DE PROCESAMIENTO
ENTRADA • Cálculos SALIDA
• Relaciones lógicas (resultados)
U

A
a, b, c Verificar
S Sí forman
• c<b+a triángulo o
• b<c+a NO forman
• a<b+c triángulo

23/06/2019 20:31 2 - 22
Construir el PROYECTO VB
• Construir la interfaz gráfica (controles y
sus propiedades):
U – Formulario
N – Diseño de la entrada de datos (controles)
A – Botón para llevar a cabo el proceso
S – Diseño para la salida de resultados (controles)

• Programación en lenguaje VisualBasic

23/06/2019 20:31 2 - 23
Interfaz gráfica de usuario
Controles para la
entrada de datos: un
LABEL despliega
texto; un TEXTBOX
U
despliega y recibe
N Control
datos.tipo
BotonComando para
Controles tipo
recibir programación
A
TEXTBOX
S para
desplegar los
resultados.

23/06/2019 20:31 2 - 24
Se definen
Dim a As Integer, b As Integer, c As Integer
las variables
Dim mensaje As String, area as single, S as single

a = Val(Text1.Text) LECTURA de los datos


b = Val(Text2.Text) de entrada desde los
c = Val(Text3.Text) controles tipo cajatexto
U If (a < b + c And b < a + c And c < a + b) Then Estructura de
mensaje = "Si forman triángulo“
N
S=(a + b +c)/2
SELECCIÓN
A area = Sqr(S*(S-a)*(S-b)*(S-c)) LÓGICA, para
Text5.Text = area determinar si
S Else se cunple o
mensaje = "No forman triángulo" no la
End If
condición
Text4.Text = mensaje

23/06/2019 20:31 2 - 25
Programa en ejecución

Se digitan los
datos de los lados
U del triángulo, en
N los controles
cajatexto
Se hace click en
A botóncomando para
calcular los resultados
S

23/06/2019 20:31 2 - 26
Lenguaje de programación

U Visual Basic
N

A Versión 6.0
S

23/06/2019 20:31 2 - 27
Elementos del Lenguaje: VB
Variables,
Conjunto básico constantes Operadores
de caracteres Tipos de datos Expresiones
(alfabeto)
U

S Instrucciones Estructura
Comandos
If…else

23/06/2019 20:31 2 - 28
Tabla ASCII (American
Conjunto básico Standard Code for
Information Interchange),
de caracteres
comprende 256
(alfabeto) caracteres numerados
U
del 0 al 255 (cap. 3).

N • Dígitos del 0-9.


A • Letras de la A-Z (mayúsculas y
S minúsculas)
• Caracteres especiales (,)-
.;¿?+*:/\.

23/06/2019 20:31 2 - 29
• Las variables son
Variables, abstracciones para
constantes manejar datos en un
Tipos de datos algoritmo.
• Las variables hacen
U a referencia a
Memoria RAM
c “localizaciones físicas”
N
de memoria interna.
A 5 10 2 b • Toda variable posee:
S una declaración, un
nombre, un tipo de dato.
• Ejemplo:
Dim a as integer

23/06/2019 20:31 2 - 30
Declaración de variables
• Las variables se declaran (definen) con
la instrucción DIM. Ej.: Dim b As Single
U
U
• La cláusula As define el tipo de datos.
N • Tipos de datos:
N
– Single: Real simple,
A
A – Integer: Entero simple,
S
S – String: texto o alfanumérico,
– Boolean: Lógico,
– Double: Real doble

23/06/2019 20:31 2 - 31
Una constante se define así:

• Una constante puede ser un número


U
(entero, real), un texto (String), un
N
valor de verdad (boolean).
A
• Const Pi As single = 3.141592
S
• Const N As Boolean = False
• Const Msj As String = “*ERROR*”

23/06/2019 20:31 2 - 32
Operadores. •Los operadores ARITMÉTICOS
Expresiones son:

Suma +
U Resta -
N Multiplicación *
A División Real /
S División Entera \
Potencia ^
Módulo (residuo) Mod

23/06/2019 20:31 2 - 33
• Los operadores RELACIONALES son:
mayor que >
menor que <
igual a =
U

N
mayor o igual que >=, =>
A
menor o igual que <=, =<
S
diferente <>, ><

Ejemplo: a < b + c

23/06/2019 20:31 2 - 34
• Los operadores LÓGICOS son:
y (conjunción lógica) And
ó (disyunción lógica) Or
no (negación) Not
U
Otros… (véase el cap. 3)
N

A Ejemplos:

S • A > B And (Not C)


• X <> Z Or (Q = T And R = 4.12)
• W <= Abs(A – B) Or Niter >=1000

23/06/2019 20:31 2 - 35
• CONCATENACIÓN:
Enlace (unión) &
Ejemplo:
U – “Valor=“ & C,  si C es 500, el
N mensaje muestra:
A Valor = 500
S – “D=”&A & B, si A=10 y B=20, se
muestra como un texto
D=1020

23/06/2019 20:31 2 - 36
Selección Lógica
• El valor de verdad de una expresión
lógica es uno de estos dos valores
U lógicos:
N
– True (Verdadero), False ( Falso).
A

S • En la evaluación de expresiones lógicas


se siguen las tablas de verdad de la
Lógica Simbólica.

23/06/2019 20:31 2 - 37
Ejemplos expresiones lógicas
para A=10, B=8 y C=6
A>B True Not (A>C) False
B<C False B<C or A<C False
U A>B or B<C True B>A and B>C False
A>B and B<C False Not(B>A and B>C) True
N

S
En el algoritmo del triángulo…

(a < b + c And b < a + c And c < a + b)

23/06/2019 20:31 2 - 38
Estructura Básica
Selección Lógica
(If…Else…End if)
U

N
• Permite tomar decisiones.
A
• Seleccionar uno de dos cursos de acción
diferentes.
S
• Es necesario definir una expresión lógica.

23/06/2019 20:31 2 - 39
Representación estructura IF
(diagramación libre)

U
a<b+c? If ( a > c+b) then
N N Acción 1
A
O Else
SI
S
Acción 2
Acción End if
Acción
1 2

23/06/2019 20:31 2 - 40
Representación estructura IF
(diagramación estructurada)

U
If ( a > c+b) then
N Acción 1
A Else
S
Acción 2
End if

23/06/2019 20:31 2 - 41
Conceptos Claves
• Carácter • Interfaz gráfica de
• Constante usuario.
U • Variable • Controles (objetos)
N • Operador • Definir variables
A
• Expresión • Asignar valores a
S
• Instrucción variables
• Diagramación • Tiempos de: diseño,
ejecución.
• Programa

23/06/2019 20:31 2 - 42
Tareas
• Hacer un algoritmo que
permita hallar cuál es el
U
mayor de tres valores
N
numéricos distintos a, b y c.
A • Elaborar algoritmo para el problema
S de determinar si tres segmentos
forman triángulo, qué tipo de triángulo
es y cuál es su perímetro y su área.

23/06/2019 20:31 2 - 43
U NIVER SID AD
N AC IONA L D E
C OLOM BIA
---- ------- ------ ---
Se de Me dellín
FACULTAD DE MINAS

GRACIAS FIIA

17/02/2005 1
ESCUELA DE SISTEMAS – 3004578-Algoritmos & Programación

23/06/2019 20:31 2 - 44