Sunteți pe pagina 1din 5

04/09/2011

Objetivos

Tema 2
Algoritmos y Programas: Estructura
ETSID Grado en Diseo Industrial curso 11-12

Distinguir entre algoritmo y programa. Conocer las fases de desarrollo de software. Conocer las distintas tcnicas de respresentacin de algoritmos. C Conocer las l estructuras t t algortmicas l t i ms comunes Disear algoritmos que resuelvan problemas de complejidad media.

Contenidos
1. Conceptos Bsicos
1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 1.3 Fases de Generacin de un Programa. 1.4 Esquema General de Funcionamiento de un Programa. 1.5 Descomposicin Modular

1. Conceptos Bsicos
1.1 Definiciones Instruccin: Expresin formada por nmeros, operaciones y letras que indica, en un computador, la operacin que debe realizar y los datos correspondientes. Algoritmo: Conjunto ordenado y finito de operaciones que permite hallar la solucin de un problema. Programa: Conjunto de instrucciones en un lenguaje dado que indica a un ordenador cmo resolver un p problema. De manera ms informal:
Algoritmo: Secuencia de instrucciones no ambigua que resuelve una tarea concreta en un tiempo finito. Programa: Codificacin de uno o ms algoritmos en un lenguaje de programacin.

2. Representacin de algoritmos.
2.1 Pseudocdigo 2.2 Diagrama de Flujo 2.3 Diagrama de Cajas

3. Estructuras algortmicas
3.1 Secuencial 3.2 Selectiva 3.3 Repetitiva

Procesar: Someter datos a una serie de operaciones programadas. Al proceso de traducir o codificar un algoritmo a forma de programa se le conoce con el nombre de implementacin.
3 4

1. Conceptos Bsicos
1.2 El Proceso de Desarrollo de Software

1. Conceptos Bsicos
Fases de generacin de un programa:
Escritura del Programa Fuente Compilacin SI

1.3. Fases de Generacin de un Programa

Proceso de desarrollo de software: Proceso de trabajo que debe seguir un programador a la hora de construir un programa o aplicacin que resuelva cierto problema. Se divide en:
Definicin del problema. Implica el desarrollo y clarificacin exacta de las especificaciones del problema, de los datos de entrada y de los datos de salida. Diseo del algoritmo. Describe la secuencia ordenada de pasos que conducen a la solucin de un problema dado. Implementacin. Codificar el algoritmo como un programa en un lenguaje de programacin. Ejecucin y validacin del programa en el ordenador. Documentacin. Tanto la definicin del problema como el algoritmo y el programa deben formar parte de la documentacin. Su contenido depender de a quin va dirigida. Mantenimiento del programa. Los programas pueden quedarse anticuados, debiendo ser revisados, ampliados y modificados. 5

Hay errores? NO Programa Objeto Enlace Programa Ejecutable SI Hay errores? NO FIN

Archivos de Biblioteca

Programas Objeto del Usuario

04/09/2011

1. Conceptos Bsicos
1.4. Esquema de Funcionamiento de un Programa

Representacin de algoritmos (1)


Sumar dos nmeros y visualizar el resultado.

El esquema general de funcionamiento de un programa se divide en:


Entrada de datos: Suele tener lugar al comienzo del programa, aunque no tiene por qu ser as. Procesamiento de la informacin: Una vez disponibles los datos, datos el programa sigue las instrucciones para operar con ellos y obtener los resultados. Salida de datos: Una vez procesada la informacin el programa presenta por pantalla, por impresora, a ficheros los resultados obtenidos.
Entrada de Datos Proceso Salida de Resultados
7

Algoritmo en pseudocdigo Inicio

Lenguaje Algortmico o Pseudocdigo

Leer el primer nmero Leer el segundo nmero Calcular la suma de ambos Visualizar el resultado Fin

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

Representacin de algoritmos (1)


Nos permite realizar un esbozo del programa final utilizando un lenguaje cercano al natural. Aunque el conjunto de palabras y smbolos de los distintos lenguajes es muy diferente, su funcionalidad es similar. Despus ser sencillo traducir al lenguaje elegido.
Ejercicio: Pedir al usuario dos nmeros (A y B), y visualizar el mayor de ellos

Representacin de algoritmos (1)


Ejemplo: Pedir al usuario dos nmeros, y visualizar el mayor de ellos Algoritmo en pseudocdigo Inicio Leer el primer nmero A Leer el segundo nmero B Si A>B Visualizar A Sino Visualizar B Fin
9 10

Representacin de algoritmos (1)


#include <stdio.h> main() { int A,B; printf(Dime el numero A: "); scanf("%d", &A); printf(Dime el numero B: "); scanf("%d", &B); if (A>B) printf(el mayor es %d,A); else printf(el mayor es %d,B); getch(); }
11

ejercicio Disea un algoritmo en pseudo-cdigo que pida al usuario dos nmeros enteros (A,B) e imprima por pantalla el producto y la divisin.

12

04/09/2011

ejercicio Disea un algoritmo en pseudo-cdigo que pida al usuario dos nmeros enteros (A,B, donde A<B) e imprima por pantalla los nmeros pares entre A y B.

Representacin de algoritmos (2)

Diagrama d de Flujo

Un diagrama de flujo es una representacin grfica de los pasos que seguimos para realizar un proceso; partiendo de una entrada, y despus de realizar una serie de acciones, llegamos a una salida. Realizan una representacin grfica de los algoritmos resaltando el flujo de control del algoritmo.

13

14

Representacin de algoritmos (2)


INICIO/FIN del algoritmo PROCESO Operaciones de tratamiento ENTRADA / SALIDA

Representacin de algoritmos (2)


Divisores de un nmero
D iv is o r e s L e e r n u m e ro
In ic ia liz a r c o n ta d o r

v e r d a d e ro

fa l s o

c o n ta d o r < = n u m e r o

Diagrama d de Flujo

v e rd a d e r o

fa l s o

(n u m e r o r e s to c o n ta d o r ) = 0

E s c r ib ir c o n t a d o r

COMPARACIN Toma de decisiones

In c r e m e n ta r c o n ta d o r

F in

LNEA (Flecha) DE FLUJO

15

16

ejercicio Disea un algoritmo en diagrama de flujo para calcular el producto y la divisin de dos nmeros enteros.

Representacin de algoritmos (3)


Divisores de un nmero
D iv is o r Leer num ero I n ic ia liz a r c o n t a d o r

Diagrama de Cajas o de Chapin C i

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 17 18

04/09/2011

ejercicio Disea un algoritmo en diagrama de cajas para calcular el producto y la divisin de dos nmeros enteros.

Estructuras algortmicas bsicas (1)


SECUENCIA : las acciones se efectan unas a continuacin de las otras, de manera consecutiva. Para saber donde finaliza una instruccin utilizaremos el smbolo ;
algoritmo <ejemplo_de_estructura_secuencial> j p _ _ _ var entera : num1, num2 inicio escribir(Primera sentencia) escribir(Segunda sentencia) escribir(Tercera sentencia) num1 <- 3 num2 <- 15 escribir( num1, num2) fin

Ejemplo

x:=7 y := x + y

Inicio x :=7

y:= x+ y

Fin

19

20

Estructuras algortmicas bsicas (2)


ENTRADA / SALIDA: Obtencin de informacin / Impresin del contenido de las variables, de un texto, ...
algoritmo <ejemplo_de_entrada_salida> var entera : edad, anyoAct, anyoNac i i i inicio escribir(Introduce el anyo actual :) leer(anyoAct) escribir(Introduce tu anyo de nacimiento :) leer(anyoNac) edad <- anyoAct anyoNac escribir(Tu edad es, edad) fin

Estructuras algortmicas bsicas (3)


SELECCIN : La estructura alternativa permite tomar decisiones entre distintas posibilidades en funcin de una condicin.
algoritmo <ejemplo_de_seleccin> i i i inicio si <expresin_lgica> entonces
verdadero falso

Lee a Escribe b

condicin
verdadero falso

S1

S2

condicin

Lee a

<accin S1> si_no <accin S2>


S1 S2

Escribe b
fin

fin_si

21

22

Estructuras algortmicas bsicas (4)


ESTRUCTURA SELECTIVA SIMPLE
verdadero

ejercicio Disea un algoritmo en diagrama de flujo y diagrama de cajas que pida al usuario tu edad e imprima por pantalla el ao de nacimiento si la edad es par.

condicin
falso

algoritmo <ejemplo_de_seleccin_simple> inicio si <expresin_lgica> entonces <accin S1> fin_si fin

S1

verdadero d d

condicin

f l falso

S1

23

24

04/09/2011

Estructuras algortmicas bsicas (5)


ESTRUCTURA SELECTIVA MLTIPLE
v a lo r 1 v a lo r 2

Estructuras algortmicas bsicas (6)


REPETICIN : (iteracin o bucle) repeticin de una instruccin en funcin de una condicin de continuacin o de finalizacin Repeticin con condicin inicial (Condicin de continuacin)
condicin

v a r i a b le
v a lo rn o tr o c a s o

S1 S2
...

Sn

S n+1

algoritmo <ejemplo_de_seleccin_mltiple> inicio segun_sea <expresin> hacer <lista_de_valores> : <acciones> en_otro_caso <acciones> fin_segun fin
Sn Sn+1 S1 S2
verdadero verdadero

valor1
verdadero

falso

p cuerpo
valor2
falso

v e rd a d e ro
...

co n d ic i n

fa lso

valorn

falso

. . .
S

mientras <expresin_lgica> hacer <acciones> fin_mientras . . .

25

26

Estructuras algortmicas bsicas (7)


REPETICIN : (iteracin o bucle) repeticin de una instruccin en funcin de una condicin de continuacin o de finalizacin Repeticin con condicin final (Condicin de finalizacin)

Estructuras algortmicas bsicas (8)


. . . desde <variable> <- <valor_inicial> hasta <valor_final> [incremento| decremento <valor_incremento>] hacer <acciones> fin_desde . . .

cuerpo
v a ria b le := v a lo r_ in ic ia l

p a r a v a ria b le := v a lo r_ in icia l
condicin
ve rd ad ero
v a r ia b le < = v a lo r _ fin a l

f a ls o

. . .
S

S
h a sta v a lo r_ fin al

verdadero

condicin

falso

repetir
in c r e m e n to

<acciones> hasta_que <expresin_lgica> . . .

27

28

Ejemplo
1.Describir las estructuras de un algoritmo cuyo diagrama de cajas es:

Ejercicio
1.Describir las estructuras de un algoritmo cuyo diagrama de cajas es:
... mientras (condicin1) hacer sentencia1; sentencia2; mientras (condicin2) hacer sentencia3; sentencia4; fin mientras; fin_mientras; si (condicin3) entonces repetir sentencia5; sentencia6; sentencia7; sentencia8; hasta (condicion4) si_no sentencia9; fin_si sentencia10; fin_mientras;

29

30

S-ar putea să vă placă și