Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Departamento de Informtica
Algoritmo
Ao: 2015
Prof. Victor E. Hermosilla M.
(vhermosilla@pol.una.py)
CLASE #1 / CLASE #2
27-julio-2015
27-julio-2015
Entrega de tareas:
En forma individual
Herramientas
Contenido de la materia
Introduccin: conceptos bsicos sobre problemas,
algoritmos, programas, anlisis de problemas,
representacin de algoritmos
Tipo de datos simples, operaciones primitivas y
expresiones.
Estructura de un programa Estructuras de control.
Cadenas
Subprogramas
Tipo de datos estructurados y definidos por el usuario
Archivos
Breve introduccin a la programacin utilizando
lenguaje C
Anlisis de problemas
Algoritmos lineales
Problema:
dominio
rango
Algoritmo:
Propiedades de un algoritmo
Tiene pasos concretos, donde cada paso es realizado en una cantidad finita
de tiempo. Esta bien definido.
Problema:
Dado dos nmeros enteros positivos que representan la base y la
altura de un tringulo, encontrar la superficie del mismo.
Datos de
Entrada
base y altura
Procesamiento
Algoritmo
superficie =
Datos de
Salida
superficie
base .altura
2
Ejercicio:
Disee como solucionara el siguiente
problema. Escrbalo paso a paso.
Encuentre el rea sombreada que
representa un anillo.
Que datos son necesarios?
Algoritmo Dpto. Informtica
10
Representacin de un algoritmo
Semi-hablado: pseudocdigo
Diagrama de Flujo
Inicio
base, altura
Pseudocdigo
Inicio
leer base, altura
sup <- (base*altura)/2
escribir sup
Fin
sup
Fin
SL
var
base, altura,sup : numerico
inicio
leer(base,altura)
sup = (base*altura)/2
imprimir(sup)
fin
11
Anlisis
Codificacin en
algn L.P.
L.P.=>
Lenguaje de
Programacin
Traduccin
Diseo de
sol
solucin
Verificacin
manual de
la solucin
Resolucin del problema
Ejecucin
Verificacin
Depuracin
Cdigo
depurado
Prueba y depuracin
en mquina
12
Programa
Una instancia de un algoritmo. Es la representacin concreta de un
algoritmo en algn lenguaje de programacin (para el curso seria
SL).
Lenguaje de programacin
Intrpretes
Compiladores
13
14
Problemas y algoritmos
Recordar que:
Un algoritmo es una posible solucin a un problema planteado.
Desde el punto de vista de la materia, este problema puede ser resuelto por una
computadora.
Tener en claro cuales son los datos de entrada, en qu cantidad y cual es su naturaleza
de cada uno (tipo o dominio del dato).
15
Conceptos bsicos
Memoria
Componente del computador destinado a almacenar programas y
datos.
Variable
Regin de la memoria (principal) que puede ser accedida mediante un
nombre. El contenido de esta regin puede ser cambiada.
Constante literal
Cualquier nmero o cadena de caracteres que forma parte del texto del
programa. Es un valor en s mismo y no puede cambiar. Es almacenado
(generalmente ) como parte del programa.
Identificador
Comienza con una letra o con un _ (guin bajo). No debe tener espacios
16
Conceptos bsicos
Expresin
Combinacin de constantes, variables y operadores.
Ejemplo: a + b + 10 * c ^ 2
Operadores
17
Conceptos bsicos
Operadores (continuacin)
Evaluacin de operandos
Para que una expresin pueda evaluarse (determinar el valor final
de la misma) debe tenerse en cuenta qu pasa cuando existe ms
de un operador en la expresin, en qu orden se evaluar?
18
Conceptos bsicos
Ejemplo de expresin algortmica
Variables
Constantes literales
A + B * C ^ 2 100 + 55
Expresin algebraica
correspondiente
A+B . C 2100+55
Algoritmo Dpto. Informtica
Operadores
19
Conceptos bsicos
Evaluacin de expresin.
Uso de reglas de precedencia y asociatividad
A + B * C ^ 2 100 + 55
1
2
3
4
20
a)
b2 +4.(a+c)
b)
b
a.
100+c
x +1
c)
( x 2+ y 2)3
zb
21
Conceptos bsicos
Tipo de datos
Lgico (logico) : representa datos que pueden tomar dos valores posibles
: verdadero o falso.
Por ejemplo: NO, SI, TRUE, FALSE.
22
Conceptos bsicos
Asignacin
Ejemplo:
a = 10 + 5 . Indica que a la variable de nombre a se le asignar
el resultado de evaluar 10 + 5.
Operacin de
asignacin
a
Memoria
a = 10 + 5
15
a
Memoria
Me
23
Instrucciones
Instruccin:
Tipos de instrucciones
24
O
Opcional
var
<nombre_variable(s)> : <nombre_tipo>
...
O
Opcional
si no hay
var
variables
inicio
Instrucciones
<cuerpo>
fin
Archivo .sl
25
Pseudocdigo
SL
programa suma_1010
var
a, b: numerico
Inicio
b = 1000
a = b + 10
Fin
inicio
b = 1000
a = b + 10
fin
26
programa sumar_1010
var
a, b : numerico
inicio
b = 1000
a = b + 10
fin
27
28
programa sumar_1010
var
a, b : numerico
inicio
b = 1000
a = b + 10
fin
29
programa sumar_1010
var
a, b : numerico
inicio
b = 1000
a = b + 10
fin
30
programa sumar_1010
var
a, b : numerico
inicio
b = 1000
a = b + 10
fin
Declaracin de variables
dos variables numricas
identificadas como a y b.
31
programa sumar_1010
var
a, b : numerico
inicio
b = 1000
a = b + 10
fin
32
programa sumar_1010
var
a, b : numerico
inicio
Cuerpo del programa
b = 1000
Cada sentencia o instruccin esta
a = b + 10
separada por un ENTER
fin
Para el ejemplo existen dos
instrucciones de asignacin
33
programa sumar_1010
var
a, b : numerico
inicio
b = 1000
a = b + 10
fin
34
35
Algoritmos lineales
Caractersticas
Inicio
Paso 1
Paso 2
...
Paso N
Fin
Algoritmo Dpto. Informtica
36
base . altura
superficie=
2
37
operador de asignacin =
38
Pasos
secuenciales
inicio
leer(base,altura)
superficie = (base * altura)/2
imprimir(superficie)
fin
39
40
41
42
43
Frmula
Funcin en SL Descripcin
sin ( x)
cos ( x )
tan ( x)
ln ( x)
x
arctan ( x )
sen(x)
cos(x)
tan(x)
log(x)
logaritmo natural de x
abs(x)
valor absoluto de x
arctan(x)
sqrt(x)
raiz cuadrada de x
ex
exp(x)
el valor de e elevado a x
44
Bibliografa
Joyanes Aguilar, Luis. Fundamentos de programacin:
algoritmos, estructura de datos y objetos. McGraw-Hill,
2003.
Joyanes Aguilar, Luis. Fundamentos de ProgramacinAlgoritmos y Estructuras de Datos. McGraw-Hill, 1996.
Segovia Silvero, Juan. SL. Introduccin al lenguajeReferencia de subrutinas predefinidas-Ejemplos selectos.
Centro Nacional de Computacin, Universidad Nacional
de Asuncin. 1999.
Rodriguez Almeida, Miguel Angel. Metodologa de la
programacin a travs del pseudocdigo. McGraw-Hill,
1991.
Kernighan & Pike. La prctica de la programacin.
Prentice-Hall. 1999.
Algoritmo Dpto. Informtica
49