Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad I. Algoritmos.
Lgica de Programacin.
Algoritmos.
Temas :
Concepto de :
Algoritmo
Tipos de Algoritmos:
Diagramas de flujo.
Pseudocdigo.
Diagramas N-S (Nassi scheneiderman).
Desarrollo de algoritmos.
Lgica de Programacin.
Definicin de conceptos.
Lgica de Programacin.
Programacin estructurada.
Uso de tres estructuras lgicas de control:
Secuencial:
Sucesin simple de dos o mas operaciones.
Seleccin:
Bifurcacin condicional de una o ms operaciones.
Interaccin:
Repeticin de una o ms operacin mientras se
cumple una condicin.
Lgica de Programacin.
Lgica de Programacin.
Lgica de Programacin.
Pseudocdigo.
Diagramas de flujo.
Lgica de Programacin.
Lgica de Programacin.
BEGIN
WRITE
Introduzca el radio:
READ
radio
Area PI * radio ^ 2
WRITE
El area es : , area
END
Lgica de Programacin.
3. Codificacin.
Implementacin del programa con un lenguaje
programacin.
/* Programa: Calculo del rea de un circulo. */
#include <stdio.h>
#include <conio.h>
main()
{
float radio ;
const float pi = 3.1416f;
float area;
// Lectura de datos.
printf("Dame el radio ");
scanf("%f" , &radio);
// Evaluacin del modelo matematico.
area = pi * radio * radio;
// Salida de resultados.
printf(El area es %10.4f ", area );
de
Lgica de Programacin.
Errores
Errores
Errores
Errores
de
de
de
de
sintaxis o de compilacin
ejecucin
lgica
especificacin.
a) Chequeo de escritorio
b) Prueba manual de datos.
c) Prueba de datos de muestra en la computadora
d) Prueba por un grupo selecto de usuarios potenciales.
Lgica de Programacin.
Lgica de Programacin.
Algoritmos.
Los algoritmos son una lista bien definida, ordenada y finita
de operaciones que permite hallar la solucin a un
problema.
Lgica de Programacin.
Tipos de un algoritmo
Los algoritmos pueden ser expresados de muchas maneras,
incluyendo al lenguaje natural, pseudocdigo, diagramas de
flujo y lenguajes de programacin entre otros.
Lgica de Programacin.
Diagrama de flujo.
Un diagrama de flujo constituye la representacin grafica de
la solucin del problema.
Smbolos ms utilizados:
Lgica de Programacin.
Lgica de Programacin.
Asignacin.
<nombre_de_variable>
<expresion>
Ejemplos:
Lgica de Programacin.
Salida.
WRITE
<lista_expresion
es>
Lgica de Programacin.
Entrada de datos.
READ
<lista_variables
>
Ejemplos.
READ
radio
READ
base,
altura
Lgica de Programacin.
Salida de datos.
WRITE
<lista_expresion
es>
Salida.
WRITE
Introduzca el
radio :
WRITE
El area es = ,
area
Lgica de Programacin.
.
Instruccin_N
END
Lgica de Programacin.
PI = 3.1416
WRITE
Introduzca el radio:
READ
radio
PI = ????
Area PI * radio ^ 2
WRITE
El area es : , area
END
Lgica de Programacin.
Decisiones.
SI
(TRUE)
Bloque_instruccion
es_1
Decisi
n
No
(FALSE)
Bloque_instruccion
es_2
Lgica de Programacin.
Ejemplo.
El
siguiente
algoritmo
muestra
el
mensaje
apropiado, de acuerdo a las
siguientes alternativas:
APROBADO
NO APROBADO
Se mostrara el mensaje de
APROBADO si el promedio
es mayor o igual a 70. El
promedio se calcula en
base a tres calificaciones.
Lgica de Programacin.
Estructuras de repeticin.
NO
(FALSE)
PROCESO
CONDICI
N
(Cuerpo del
Ciclo)
SI
(TRUE)
PROCESO
(Cuerpo del
Ciclo)
SI
(TRUE)
CONDICI
N
NO
(FALSE)
Lgica de Programacin.
VC 0
VC <
N
Actualizacin.
VC
VC+1
VC .- Variable de
control.
SI
(TRUE)
PROCESO
(Cuerpo del
Ciclo)
NO
(FALSE)
N .- numero de
veces a repetir el
proceso
Lgica de Programacin.
Contador.
Inicializacin del contador
Contabiliza el numero de
calificaciones mayores o
iguales a 70
aprobados 0
NO
(FALSE)
CONDICI
N
SI
(TRUE)
READ
calificaci
on
SI
Calificacion
>= 70
aprobados aprobados
+1
Actualizacin del
contador sujeto a una
condicin
Lgica de Programacin.
Acumulador.
Acumula las calificaciones.
Inicializacin del acumulador.
suma 0
NO
(FALSE)
CONDICI
N
SI
(TRUE)
READ
calificaci
on
suma suma +
calificacion
Actualizacin del
acumulador.
Lgica de Programacin.
Pseudocdigo.
Diremos que una notacin es un pseudocdigo si con
ella podemos describir un algoritmo utilizando
palabras y frases del lenguaje natural sujetas a
determinadas reglas.
No existe un pseudocdigo totalmente estndar, ya
que depende de quin lo utilice.
Lgica de Programacin.
Estructura de un pseudocdigo.
Cabecera.
Declaraciones.
Cuerpo.
Lgica de Programacin.
Cabecera.
ALGORITHM <nombre_del_algoritmo>
Ejemplo:
ALGORITHM area_Circulo
ALGORITHM AreaCirculo
ALGORITHM AREA_CIRCULO
No se permiten espacios en blanco.
Lgica de Programacin.
Declaraciones.
En esta seccin se declaran las constantes, los tipos de datos
y las variables que se usan en el algoritmo.
[ CONST
<declaracin_constantes>
]
[ TYPE
<declaracin_tipos_de_datos> ]
[ VAR
<declaracin_variables>
]
Ejemplo:
CONST
PI = 3.1416
VAR
radio, area
Lgica de Programacin.
Lgica de Programacin.
El algoritmo completo.
ALGORITHM area_Circulo
CONST
PI = 3.1416
VAR
radio, area
BEGIN
WRITE (Introduzca el radio : )
READ (radio)
area PI * radio ^ 2
WRITE (El area es = , area)
END
Lgica de Programacin.
Comentarios.
ALGORITHM area_Circulo
/* Declaracin */
CONST
PI = 3.1416
VAR
radio, area
BEGIN
// Datos de entrada
WRITE (Introduzca el radio : )
READ (radio)
// Calculo del area.
area PI * radio ^ 2
WRITE (El area es = , area)
END
Lgica de Programacin.
Decisin.
IF ( <expresin_lgica> ) THEN
<bloque_instrucciones_1>
[ ELSE
<bloque_instrucciones_2> ]
END_IF
Ejemplo:
IF ( promedio >= 70 ) THEN
WRITE (APROBADO)
ELSE
WRITE (NO APROBADO)
END_IF
Lgica de Programacin.
Ejemplo.
ALGORITHM
AlumnoAprobado
VAR
c1 , c2 , c3
promedio
BEGIN
WRITE (Introduzca tres calificaciones)
READ (c1, c2, c3)
promedio ( c1 + c2 + c3 ) / 3
IF (promedio >= 70) THEN
WRITE( APROBADO)
ELSE
WRITE( NO APROBADO)
END_IF
END
Lgica de Programacin.
Ejemplo.
Definicin del problema.
La velocidad final que logra un automvil que se desplaza
con una aceleracin constante (a) se puede expresar por:
vf
2
0
2as
1/ 2
s v0 t
1/ 2 a t 2
Y v0 es la velocidad inicial.
Elabore un algoritmo para determinar la velocidad final del
automvil.
Lgica de Programacin.
Anlisis.
Se desea obtener la velocidad final del automvil (vf). Por lo tanto
se convierte en el parmetro de salida o respuesta del programa.
Realizando una inspeccin sobre el modelo matemtico a
resolver, se observa que la velocidad inicial , la aceleracin y el
tiempo de recorrido debern ser proporcionados como entrada por
parte del usuario.
La distancia recorrida (s) en este caso solo es un parmetro
intermedio para la solucin final y por lo tanto solo es auxiliar para
obtener la velocidad final que es el objetivo del problema.
El sistema de unidades es responsabilidad del usuario al
proporcionar los datos de entrada ( por ejemplo si la velocidad
inicial estar dada en m/s o Km/hr), siendo este homogneo para
Identificadores
todos los datos.Parmetros.
Salida
vf
Entrada
a , t , v0
Auxiliares
Constantes
Lgica de Programacin.
Entrada de datos.
READ
v0, a, t
s v0 t + a t2
vf ( v02 + 2 a s ) ^
0.5
WRITE
La velocidad final es :
, vf
END
Evaluacin
modelo
matemtico
Salida de resultados
Lgica de Programacin.
Lgica de Programacin.
Ejemplo.
Anlisis.
x b x c 0
Una ecuacin cuadrtica de la aforma
tiene dos soluciones o races y estn pueden ser reales o
complejas. Las dos soluciones reales x1 y x2 pueden ser
evaluadas por:
b b2 4 a c
b b2 4 a c
y
x1
x2
2a
2a
2
Sino
Las soluciones son complejas.
Lgica de Programacin.
Parmetros .
Parmetros.
Salida
x1, x2
Races complejas
Entrada
a, b, c
Auxiliares
Constantes
Lgica de Programacin.
Algoritmo.
Diagrama de flujo.
BEGI
N
WRITE
Coeficientes :
READ
a,b, c
r b2 4 a
c
1
SI
(TRUE)
r
>=
0
x1 ( -b + r ^ 0.5) /
(2 a)
WRITE
Raices
complejas
x2 ( -b r ^ 0.5) /
(2 a)
WRITE Las raices
son : , x1
NO
(FALSE)
, x2
1
END
Lgica de Programacin.
Algoritmo.
Pseudocdigo.
ALGORITHM Ecuacion_Cuadratica.
VAR
x1 , x2
a,b,c
r
BEGIN
WRITE (Dame los coeficientes a , b y c : )
READ (a, b, c)
r b^2 - 4 a c
IF (r >=0) THEN
x1 ( -b + r ^ 0.5) / (2* a)
x2 ( -b r ^ 0.5) / (2* a)
WRITE Las raices son : , x1 , x2
ELSE
WRITE Las raices son complejas
END_IF
END
Lgica de Programacin.
Ejercicio.
Elabore un algoritmo para que Acepte o Rechace una varilla circular,
los criterios de aceptacin son los siguientes; Su longitud debe ser mayor
de 7.75 cm. y menor de 7.85 cm, su dimetro no debe ser menor de
0.335 cm. no mayor de 0.346 cm.. Adems su masa no debe exceder de
5.6 gr.
La masa de la varilla es igual al volumen multiplicado por la densidad
especfica del material.
(Suponga la densidad especfica de la varilla como constante e igual a 7.8
gr/cm3.)
Anlisis.
Condiciones de aceptacin:
Parmetros.
Salida
Entrada
longitud , diametro
Auxiliares
masa
Constantes
DENSIDAD , PI
Lgica de Programacin.
Diagrama de flujo.
Lgica de Programacin.
Pseudocdigo.
ALGORITHM Varilla_Circular
CONST
DENSIDAD = 7.8
PI = 3.1416
VAR
longitud, diametro
masa
BEGIN
WRITE ("Dame la longitud )
READ ( longitud)
WRITE ("Dame el diametro )
READ (diametro)
IF (longitud > 7.75 AND longitud < 7.85) THEN
IF ( diametro >= 0.335 AND diametro <= 0.346) THEN
masa PI *diametro2 / 4 * longitud * DENSIDAD
IF (masa <= 5.6) THEN
WRITE ("Aceptada)
ELSE
WRITE ("Rechazada)
END_IF
ELSE
WRITE ("Rechazada)
END_IF
ELSE
WRITE ("Rechazada)
END_IF
END
Lgica de Programacin.
Pseudocdigo.
ALGORITHM Varilla_Circular
CONST
DENSIDAD = 7.8
PI = 3.1416
VAR
longitud, diametro
masa
BEGIN
WRITE ("Dame la longitud )
READ ( longitud)
WRITE ("Dame el diametro )
READ (diametro)
IF (longitud > 7.75 AND longitud < 7.85) THEN
IF ( diametro >= 0.335 AND diametro <= 0.346) THEN
masa PI *diametro2 / 4 * longitud * DENSIDAD
IF (masa <= 5.6) THEN
WRITE ("Aceptada)
ELSE
WRITE ("Rechazada)
END_IF
ELSE
WRITE ("Rechazada)
END_IF
ELSE
WRITE ("Rechazada)
END_IF
END
Lgica de Programacin.
Pseudocdigo.
ALGORITHM varilla_Circular2
CONST
DENSIDAD = 7.8
PI = 3.1416
VAR
longitud, diametro
masa, aceptada
BEGIN
WRITE "Dame la longitud "
READ longitud
WRITE "Dame el diametro "
READ diametro
aceptada FALSE
Lgica de Programacin.
Ejemplo.
Un equipo de aire acondicionado se encuentra diseado para encenderse
bajo las siguientes condiciones; De las 9 hrs. en adelante y hasta antes de
las 16 hrs si la Temperatura sobrepasa los 25C y la humedad es mayor
de 0.6 o si la Temperatura es mayor de 30C independientemente de la
humedad. Antes de las 9 hrs o de las 16 hrs en adelante
si la
Temperatura es mayor de 30C y la humedad mayor de 0.7
Considere solo horas, no considere fracciones (minutos y segundos).
Elabore un algoritmo para indicar si el equipo se encuentra Encendido o
Apagado
Anlisis.
Parmetros.
Salida
Encendido
Apagado
Entrada
hr, T , h
Auxiliares
Constantes
Lgica de Programacin.
Diagrama de flujo.
Pseudocdigo..
ALGORITHM aire_Acondicionado
VAR
Hr, T , h
BEGIN
WRITE "Dame la Hora "
READ Hr
WRITE "Dame la Temperatura "
READ T
WRITE "Dame la humedad "
READ h
IF (Hr >= 9 ANDHr < 16)
IF ( T > 25 AND h > 0.6)
WRITE ON
ELSE
IF (T > 30)
WRITE ON"
ELSE
WRITE OFF
END_IF
END_IF
ELSE
IF ( T > 30 AND h > =:7)
WRITE ON
ELSE
WRITE OFF
END_IF
END_IF
Lgica de Programacin.
Ejemplo.- Elabore un programa que muestre el mensaje apropiado de acuerdo, a las siguient
alternativas:
Mensaje.
Promedio.
Muy Bien
90..100
ALGORITHM Alumno
Bien.
80..89
CONSTANT
Regular.
70..79
VARAIABLE
Mal
0..69
c1 , c2 , c3
El promedio es calculado en base a tres
Promedio
evaluaciones parciales.
Representacin algortmica.
BEGIN
WRITE Dame sus tres calificaciones
READ c1 , c2 , c3
promedio <- (c1 + c2 + c3) / 3.0;
Lgica de Programacin.
Ejercicio.
La velocidad que adquiere un paracaidista en cada libre puede
ser expresada por:
c
t
gm
v(t )
1 e m
c
c
gm
m mt
:
s (t )
e
t
c
c
Donde:
c.- Es una constante que depende del diseo del paracadas
= 12 Kg/s.
m.- Masa del paracaidista.
g Constante gravitacional = 9.81 m /s2
Lgica de Programacin.
Ejercicio.
El alcance horizontal (x) que logra un proyectil, que es disparado
con una velocidad inicial (v0) y con un ngulo () con respecto a la
horizontal, puede ser expresado por:
x v0 x
voy
2
voy
2gh
v0 x
v0 cos eno
v0 y
v 0 seno
Lgica de Programacin.
Ejercicios.
Dada la fecha (da, mes y ao) por parte del usuario Elabore
un algoritmo que indique si la fecha es CORRECTA o NO
CORRECTA.
No das
31
31
30
31
30
31
31
30
31
30
31