Beruflich Dokumente
Kultur Dokumente
Ingeniera Informtica Ingeniera Tcnica en Informtica de Sistemas Ingeniera Tcnica en Informtica de Gestin Fundamentos de la Programacin 1 Departamento de Ciencia de la Computacin e I.A. Universidad de Alicante
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
Es el nico trabajo que puedo pensar en el que me desempeo como ingeniero y artista. Posee un increble y riguroso elemento tcnico, que me gusta porque hay que pensar con mucha precisin. Por otra parte, tiene un lado extraordinariamente creativo donde las nicas limitaciones son las fronteras de la imaginacin.
Andy Hertzfeld, codiseador de Macintosh, en Programmers at Work
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
Contenidos (1)
3.1. Qu es un algoritmo?
3.1.1. Definicin 3.1.2. Fases del proceso de programacin. 3.1.3. reas de inters en el trabajo de algoritmos 3.2.1. Lenguaje algortmico 3.2.2. Diagramas de flujo 3.2.3. Diagramas de cajas 3.3.1. Predicados 3.3.2. Componentes de una especificacin
3
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
Contenidos (2)
3.4. Estructuras bsicas
3.4.1. Los comentarios 3.4.2. La asignacin 3.4.3. La estructura secuencial 3.4.4. La estructura alternativa 3.4.5. La estructura iterativa
3.5. Lenguaje algortmico ALC. 3.6. Trazas de un algoritmo. EJERCICIOS DE TRAZAS SOBRE ALGORITMOS
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
El Concepto de Algoritmo
Algoritmos + Estructuras de Datos = Programas
Descripcin precisa de una sucesin ordenada de instrucciones no ambiguas que permiten resolver un problema en un nmero finito de pasos
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
El Concepto de Algoritmo
Algoritmos + Estructuras de Datos = Programas
Son independientes tanto del lenguaje de programacin como del ordenador que los ejecuta
La ejecucin de una o varias instrucciones que componen un algoritmo la denominaremos proceso o cmputo
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
1. 2. 3. 4. 5. 6. 7.
Comprensin del problema Plantear la lgica Codificar el programa Traducir el programa a lenguaje mquina Probar el problema Evaluar la solucin Utilizar el programa. Llevarlo a ejecucin
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
10
11
12
13
14
reas de inters
Cmo disear Algoritmos Cmo expresar Algoritmos Cmo validar Algoritmos Cmo analizar Algoritmos Cmo probar Algoritmos
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
15
Variante del lenguaje natural en la que se han eliminado las posibles ambigedades mediante el uso de un vocabulario restringido y unas reglas sintcticas de construccin de sentencias
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
16
L eer n u m ero
In icia liz a r c o n ta d o r
v e rd a d e ro
c o n ta d o r < = n u m e ro
fa ls o
v e rd a d e ro
(n u m e r o r e sto c o n ta d o r ) = 0
fa ls o
E s c r ib ir c o n t a d o r
In c r e m e n ta r c o n ta d o r
F in
Realizan una representacin grfica de los algoritmos resaltando el flujo de control del algoritmo.
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
17
I n ic ia liz a r c o n ta d o r
c o n ta d o r < = n u m e r o
C a lc u la r ( n u m e r o r e s t o c o n t a d o r )
re s to = 0
si no
E s c r ib ir c o n ta d o r In c re m e n ta r c o n ta d o r
Diagrama en el que se omiten las flechas de unin y las cajas son contiguas, lo que permite resaltar la estructura y favorecer la modularidad
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
18
algoritmo : Ejemplo de Comentario # Esto es una comentario correcto # Y esto es otro falgoritmo.
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
19
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
20
algoritmo : Ejemplo de Asignacin var x,y : real fvar x:=3; y:=x+2 falgoritmo.
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
21
Lee a Escribe b
Lee a Escribe b
22
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
Inicio
x :=7
y := x+ y
Fin
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
23
condicin
verdadero falso
S1
S2
verdadero
condicin
falso
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
24
S1
verdadero
condicin
falso
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
25
v a ria b le
...
v a lo r n
S1
S2
o tr o c a s o
Sn
S n+1
caso variable de valor1 : S1 fbloque valor2 : S2 fbloque ... valorn : Sn fbloque otrocaso : Sn+1 fbloque fcaso
S1
valor1
verdadero
falso
valor2
falso
...
S2
verdadero
valorn
falso
Sn
Sn+1
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
26
co n d ici n
fa lso
cuerpo
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
27
condicin
verdadero
condicin
falso
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
28
verdadero
condicin
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
29
S fpara
v a r ia b le := v a lo r_ in ic ia l
para variable:=valor_inicial
v e rd a d e ro
v a r ia b le < = v a lo r _ fin a l
fa ls o
S
i n c r e m e n to
S
hasta valor_final
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
30
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
31
Seleccin mltiple: caso expresin de valor1 : instruccin1 fbloque v21,v22,...,v2n : instruccin fbloque ... valorn : instruccin n fbloque [otrocaso : instruccin n+1 fbloque] fcaso
32
33
Disear un algoritmo que lea un nmero natural distinto de 0 desde teclado y muestre por pantalla todos los divisores de dicho nmero
algoritmo : Divisores # Algoritmo que escribe los divisores de un nmero dado {numero=X (X N ) X>0} # Declaracin de variables var numero, contador : entero fvar # Cuerpo del algoritmo escribe( 'Introduce un nmero natural no nulo : ' ); lee( numero ); escribe( 1 ); contador := 2 ; mientras (contador < numero) hacer si (numero resto contador) = 0 entonces escribe( contador ) fsi; contador := contador + 1 fmientras; escribelin( contador ) {numero=X contador=X} falgoritmo.
Diagrama de flujo
INICIO/FIN del algoritmo PROCESO Operaciones de tratamiento ENTRADA / SALIDA
35
D ivisores
verdadero
falso
verdadero
falso
E scribir contador
Fin
BLOQUE CONDICIONAL
instruccin 1
verdadero
condicin
falso
instruccin 2 mdulo X
instruccin 1
instruccin 2
BLOQUE MIENTRAS-HACER
condicin
BLOQUE REPETIR-HASTA
cuerpo
cuerpo
condicin
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
37
resto = 0
si no
evidente que las flechas de e diagrama de flujo no responden a las estructuras tas. Corrige el siguiente grama denominado cdigo agueti.
COMIENZO
Leer NOTA, POSICIN
NO
SI
NO
SI
SI
NO
NOTA >= 50? PRUEBA >= 70?
SI
SI
NO
NO NO
NOTA >= 75?
SI
Imprimir RECHAZADO
Imprimir ACEPTADO
FIN
Traza de un algoritmo.
El estado de un proceso queda correctamente descrito por el valor de cada uno de los objetos (variables) en el momento en que dicho proceso es observado
n1
Solicitar un nmero n1
n2 3 3 3
nRes 7 7
4
Solicitar un nmero n2
4
Calcular nRes = n1 + n2
4
Mostrar nRes
4
Fundamentos de la Programacin 1
Ingeniera Informtica Ingeniera Tcnica en Informtica de Gestin Ingeniera Tcnica en Informtica de Sistemas
40