Clase 02 - UN Virtual

Download Report

Transcript Clase 02 - UN Virtual

Clase 2
 Tipos de datos
 Asignación de valores
 Estructura IF
 Ejercicios
Pasos para resolver un problema
1. Entender el problema.
2. Identificar las constantes y variables (de entrada, de
salida e intermedias).
3. Identificar los procesos de transformación.
4. Establecer una estrategia de solución. Representación
del problema.
5. Codificar el algoritmo en un lenguaje de programación
determinado.
6. Ejecutar y depurar el programa con base en los
resultados obtenidos.
Tipos de datos comunes
Datos
Numéricos
Enteros
Corto
Carácter
Reales
Largo
Simple
Sencillo
Doble
Cadena
Lógicos
Nombres de variables
Para nombrar una variable en la mayoría de los
lenguajes de programación es necesario seguir ciertas
reglas:
 Debe empezar obligatoriamente con una letra (a-z o
A-Z)
 No pueden contener espacios en blanco
 El resto de los dígitos pueden ser números
 Se pueden incluir caracteres especiales como el
guión bajo (underline).
Asignación
Para darle valor a una variable dentro de un algoritmo
existen dos alternativas:
 Leer la variable (obviamente cuando se trata de una
variable de entrada)
Ej: Leer X
 Asignarle un valor directamente, o el resultado de una
operación
Ej: A = 3
Z = (X+Y)*2
Precedencia de los operadores
Cuando hay de las operaciones aritméticas es necesario
considerar el orden en que se evalúa la expresión
cuando aparecen dos o más operaciones. En general los
lenguajes de programación coinciden en evaluar primero
lo que se encuentra entre paréntesis comenzando por los
paréntesis más internos. Dentro de cada paréntesis o en
una expresión libre de paréntesis es común evaluar de
la siguiente forma:
Se recorre de izquierda y se evalúan (en ese orden):
 Funciones especiales (raíz cuadrada, valor absoluto,
logaritmo, seno, coseno, tangente elevar a potencia,
etcétera)
 Divisiones (/), multiplicaciones (*), división entera (%).
 Sumas (+) y/o restas (-).
Ejemplo
Dado que al ejecutar un algoritmo este trabaja en
secuencia, determinar los valores finales de las variables
suponiendo que se tienen las siguientes instrucciones:
1.
2.
3.
4.
5.
6.
7.
i=3
j=5
k=i+j
j=k/2
i=i-1
m=i+k*3
n = k * (3 + i)
Línea
1
2
3
4
5
6
7
i
j
k
m
n
Estructura IF
En los lenguajes de programación es común el uso
de condicionales que sirven para denotar diferentes
alternativas que pueden llevarse a cabo dado el
valor de una expresión lógica, el cual siempre será
verdadero o falso. La forma más simple que tiene
un condicional (una pregunta) es:
SI (expresión lógica)
Instrucciones que se realizan si la expresión lógica es verdadera
FIN SI
Ejemplo
Diseñar un algoritmo para leer la edad de una
persona y decir si es mayor de edad
INICIO
Leer e
SI (e ≥ 18)
Mostrar “Mayor de edad”
FIN SI
FIN
Estructura IF
Los condicionales también sirven para representar
alternativas de ejecución, es decir, que se haga una
cosa u otra dependiendo del valor de una expresión
lógica. La forma en este caso es:
SI (expresión lógica)
Instrucciones que se realizan si la expresión lógica es verdadera
DE LO CONTRARIO
Instrucciones que se realizan si la expresión lógica es verdadera
FIN SI
Ejemplo
Diseñar un algoritmo para leer un número y
decir si es par o impar
INICIO
Leer n
SI (n % 2 = 0)
Mostrar “El número es par”
DE LO CONTRARIO
Mostrar “El número es impar”
FIN SI
FIN
Estructura IF
Cuando hay más de dos alternativas (no es sólo la parte
verdadera y falsa de una única expresión lógica), se puede
emplear el condicional múltiple de la siguiente manera:
SI (expresión lógica 1)
Instrucciones que se realizan si la expresión lógica 1 es verdadera
DE LO CONTRARIO SI (expresión lógica 2)
Instrucciones que se realizan si la expresión lógica 1 es falsa y la expresión
lógica 2 es verdadera
…
DE LO CONTRARIO
Instrucciones que se realizan si todas las expresiones lógica son falsas
FIN SI
Ejemplo
Diseñar un algoritmo para leer la nota final de un
estudiante y decir si ganó, perdió definitivamente o si
puede habilitar (suponiendo que se pueda)
INICIO
Leer nota
SI (n ≥ 2.95)
Mostrar “El estudiante ganó”
DE LO CONTRARIO SI (n ≥ 2.65)
Mostrar “El estudiante puede habilitar”
DE LO CONTRARIO
Mostrar “El estudiante perdió”
FIN SI
FIN
Operadores lógicos y conectores
Las expresiones lógicas que se
utilizan en los condicionales pueden
ser simples (sólo es necesario evaluar
una pregunta) o compuestas (varias
preguntas), y pueden usar cualquier
operador lógico
Operador
En VBA
>
>
<
<
≥
>=
≤
<=
=
=
≠
<>
Conector
Acción
En VBA
Y
P Y Q es verdadera sólo si tanto P como Q son
verdaderas, en caso contrario es falsa
AND
O
P O Q es verdadera si cualquiera de las dos es
verdadera, y sólo es falsa si ambas son falsas
OR
No
No P cambia el valor de P
Not
Ejemplo
Si A=10, B=8 y C=6, cual es el valor de:
A>B
B<=C
A>=B or B<C
A>B and B<C
True
False
True
False
Not (A>C)
B<C or A<=C
B<>A and B>C
Not(B>A and B>C)
False
False
False
True
Técnicas para representar los
algoritmos





Pseudocódigo (P-código)
Diagramación estructurada (diagrama de caja)
Diagramación libre (diagrama de flujo)
…
Sintaxis de un lenguaje de programación
determinado.
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
Diagramación libre
Proceso: cualquier tipo de operación que
pueda originar cambio de valor o impresión
de datos
Condicional: corresponde a la estructura de
IF descrita previamente. Normalmente, los
posibles caminos se rotulan como Sí y No,
como en la figura adjunta, pero también
pueden ser Verdadero (V) y Falso (F).
Diagramación libre
Indican el flujo lógico, o el orden de la
secuencia de operaciones del algoritmo
Terminal (representa el comienzo, “inicio” y
el final, “fin”, de un algoritmo. Puede
representar también una parada o
interrupción programada que sea necesario
realizar en un algoritmo.
Diagramación estructurada
Proceso
Condicional
Iteración definida: Se emplea para
representar un proceso repetitivo
del cual se sabe de antemano
cuántas veces se ejecutará cierta
secuencia de operaciones
Comparación
Pseudocódigo
a<b+c?
NO
SI
SI ( a > c+b)
Acción 1
DE LO CONTRARIO
Acción 2
FIN SI
Diagrama de caja
Acción 1
Acción 2
Diagrama de flujo
Otros ejercicios
Triángulo de Herón de Alejandría: Dadas las longitudes
de tres segmentos de recta determinar si es posible
formar un triángulo con ellos. En caso afirmativo
calcular el área del triángulo usando la fórmula:
abc
2
Área  S ( S  a)(S  b)(S  c)
S
Tenga en cuenta que todo lado debe ser menor que la
suma de los otros dos
c
b
a
Etapas del proceso…
DATOS DE
ENTRADA
a, b, c
PROCESAMIENTO
• Cálculos
• Relaciones lógicas
Verificar
• c<b+a
• b<c+a
• a<b+c
SALIDA
(resultados)
Sí forman
triángulo y
cual es el area
o NO forman
triángulo
Diagrama de flujo del algoritmo
Leer a, b, c
a<b+c y
b<a+cy
c < a + b?
SI
Mostrar “Sí forma triángulo”
NO
Mostrar “No forma triángulo”
Mostrar Area
abc
S
2
Area  S (S  a)(S  b)(S  c)
Ejercicio Ecuación Cuadrática
Desarrollar un algoritmo para resolver la ecuación
cuadrática de la forma:
AX2 + BX + C = 0
Cuáles son las etapas para el cálculo de las posibles
raíces?
Estructura general de un
programa secuencial
ENTRADA
DE DATOS
PROCESAMIENTO
• Cálculos
• Relaciones lógicas
•Decisiones
SALIDA
DE
RESULTADOS
Solución de la Ecuación
Cuadrática
Para resolver la ecuación cuadrática de la
forma:
AX2 + BX + C = 0
Se hace uso de la siguiente fórmula:
 B  B  4 AC
X1, 2 
, si A  0
2A
2
R/.
Pasos para solucionar el problema
 Paso 1: calcular B^2
 Paso 2: calcular B^2 - 4AC
 Paso 3: calcular (B^2 - 4AC)^(1/2)
 Paso 4: -B±(B^2 - 4AC)^(1/2)
 Paso 5:
 B  B  4 AC
X1, 2 
, si A  0
2A
2
Etapas del proceso…
DATOS DE
ENTRADA
PROCESAMIENTO
• Cálculos
• Relaciones lógicas
SALIDA
A 0
X1, X2
A, B, C
X 1, 2 
B
B 2  4 AC
2A
(resultados)
Leer A, B, C
A=0?
SI
B=0?
SI
Mostrar mensaje
“No hay ecuación”
NO
NO
D=B^2-4AC
X = -C / B
Mostrar X
D>=0?
SI
NO
29
C=  + *i
D>=0?
NO
SI
X1=(-B+D^(1/2))/(2A)
X2=(-B-D^(1/2))/(2A)
Mostrar X1 y X2
=-B/(2A)
=(-D^(1/2))/(2A)
Mostrar
X1 =  + *i
X2 =  - *i
Ejemplo:
“X1 =” &  “+” &  & “*i”30
Tarea
 Hacer un algoritmo que permita hallar cuál es el
mayor de tres valores numéricos distintos a, b y c.
 Elaborar algoritmo para el problema de determinar
si tres segmentos forman triángulo y en caso
afirmativo qué tipo de triángulo es.