Você está na página 1de 31

Universidad del Zulia Facultad de Ingeniera Dpto. De Computacin Prof.

Nilian Crdenas - Marisol Prato

Unidad II Introduccin a una Metodologa Bsica de Programacin

Gua de estudio elaborada por el

Profesor Alfredo Montilla

UNIDAD II

TEMA 1 DEFINICIN DE ALGORITMO: Un algoritmo consiste en la descripcin detallada del procedimiento a seguir para alcanzar la solucin de un problema en donde se establecen la secuencia de pasos o instrucciones a ejecutar, lgicamente encadenadas, para lograr esta solucin.

CARACTERSTICAS DE UN ALGORITMO: Todo algoritmo debe tener las siguientes caractersticas fundamentales: 1. Debe ser preciso: El orden de realizacin de las operaciones deben estar dado en forma clara. No debe existir ambigedad en el mismo. Todos los posibles caminos de solucin deben aparecer recogidos en el algoritmo y la secuencia de operaciones debe estar detallada. 2. Debe ser Finito: El algoritmo debe terminar en un momento determinado despus de ejecutar un nmero finito de pasos. 3. Debe estar expresado en Instrucciones Elementales: Las

Instrucciones que componen el algoritmo deben estar a nivel de ser representables, del lenguaje de programacin a utilizar. 4. Debe ser General: Debe estar orientado a la resolucin de problemas generales ms bien que problemas especficos, sea, que sea aplicable a diferentes casos con datos diversos del mismo problema.

PASOS A SEGUIR PARA LA RESOLUCIN DE UN PROBLEMA La resolucin de un problema puede realizarse en dos etapas: 1. Anlisis del problema y diseo del programa 2. Instalacin y puesta a punto del programa. La etapa de anlisis del Problema y Diseo del Programa comprende los siguientes pasos: 1.1. 1.2. 1.3. 1.4. 1.5. Definicin del problema que se va a resolver Determinacin del mtodo de solucin mas factible Especificacin de los datos de entrada y los resultados de salida Diseo del Algoritmo Codificacin del Algoritmo

1.1. Definicin del Problema que se va a resolver En este paso se trata de identificar la naturaleza del problema a resolver: en que consiste la solucin del mismo, bajo que condiciones va a ser resuelto. Si es necesario se recurre a la bibliografa para obtener esta informacin significativa.

1.2. Determinacin del mtodo de solucin ms factible Existe a veces un solo mtodo o existen varios para resolver un determinado problema. Entre ellos se debe escoger el que en forma optima, segn los criterios de seleccin empleados, resuelva el problema. Supone este paso el conocimiento adecuado de los procedimientos

matemticos y /o lgicos necesarios para alcanzar la solucin del problema desde un punto de vista terico. De ser necesario, se recurrir a bibliografa adecuada para ubicar la informacin requerida para tener esta capacidad de solucin, a nivel terico, del problema.

1.3. Especificacin de los datos de entrada y los resultados de salida Una vez elegido el mtodo se proceder a especificar la informacin que es necesario conocer de antemano (Datos) para aplicar el mtodo y la informacin deseada que se obtendr (Resultados).

1.4. Diseo del Algoritmo Una vez seleccionado el mtodo de solucin, especificados los datos y resultados, se proceder al diseo del algoritmo. Esto conlleva a un anlisis lgico de las operaciones que deben ejecutarse para alcanzar la solucin del problema. Aqu las tcnicas de diseo de algoritmo tal como el diseo descendente, las tcnicas de programacin estructurada para la escritura del algoritmo y las tcnicas de representacin cumplen un rol muy importante.

DATOS

ALGORITMO

RESULTADOS

El algoritmo, basado en el mtodo, es la descripcin detallada de las operaciones a realizar para alcanzar la solucin del problema u resultados deseados a partir de los datos del mismo. Este paso representa la obtencin del algoritmo que constituye la esencia de la programacin.

1.5. Codificacin del algoritmo Las instrucciones expresadas en el algoritmo se traducen a instrucciones preparadas en algn lenguaje de programacin para obtener el denominado Programa Fuente .Este proceso se llamado Codificacin. Un programa Fuente es la versin en instrucciones preparadas en un Lenguaje de Programacin del Algoritmo obtenido en el paso de

anlisis lgico de las operaciones a realizar. Luego, se inicia la etapa de instalacin y Puesta a Punto del Programa que comprende los siguientes pasos:

Edicin, traduccin, compaginacin, ejecucin, correccin, y puesta a punto del programa a travs de dos esquemas bsicos: - A travs de un Compilador - A travs de un Intrprete

INSTRUCCIONES BASICAS EN UN ALGORITMO Existen cuatro tipos bsicos de instrucciones: Instrucciones de Asignacin: Mediante estas instrucciones se indica la ejecucin de operaciones matemticas, literales o lgicas y que el resultado final de las mismas sea asignado a cierta entidad. Obedecen a la siguiente forma general: Variable =Expresin Instrucciones de Entrada Salida: Son instrucciones de transferencia de informacin de algn dispositivo externo a la computadora (Entrada) o viceversa (Salida). Instrucciones de Seleccin (de Decisin): Permite la eleccin de un camino de solucin entre varios posibles en base al examen de ciertas consideraciones. Instrucciones Repetitivas: Estas instrucciones permiten la ejecucin repetida de un conjunto de instrucciones un nmero determinado o indeterminado de veces.

ESTRUCTURA DE DATOS DEFINICIN: Una estructura de datos es una representacin de los datos de modo que puedan ser procesados como un conjunto homogneo. Segn Roger Pressman, ((pre88); p.245), la estructura de datos es una representacin de la relacin lgica entre elementos individuales de datos y dicta la organizacin, mtodo de acceso, grado de asociatividad y

alternativas de procesamiento para la informacin escalar la estructura de datos ms simple. Constante

siendo el elemento

Se refiere a una posicin de memoria cuyo valor permanece inalterado durante la ejecucin de un programa y esta asociado a cierto tipo de datos. Se identifica por el valor mismo. Variable: Se refiere a una posicin en memoria cuyo valor puede ser variado durante la ejecucin de un programa y est asociada a cierto tipo de datos. Se identifica a travs de un nombre simblico. En el curso de la ejecucin de un programa el valor actual de una variable es el ltimo que le ha sido asignado. Nombre Simblico: Es un identificador conformado por uno o ms caracteres alfanumricos, el primero de los cuales es usualmente una letra. Expresin Es una combinacin de variables, constantes, operadores y referencias a funciones que expresan clculos aritmticos, literales y / o lgicos a ser realizados. En su forma mas simple una expresin esta constituida por una variable o constante. Entre las estructuras de datos ms complejas se encuentran los arreglos, listas encadenadas, pilas, colas, rboles, grafos, registros, archivos y bases de datos.

USOS BASICOS DE LAS VARIABLES EN EL DESARROLLO DE LOS ALGORITMOS Las variables pueden ser utilizadas para diversos propsitos durante el curso de las operaciones planteadas en un algoritmo. Entre esos usos bsicos se tienen: Acumulador de Suma En este caso la variable contiene el resultado de la suma de varios trminos en donde esta suma se define a travs de la ejecucin repetida de un grupo de instrucciones en donde en cada ejecucin se suma un nuevo termino. Acumulador de producto La variable va a contener el resultado del producto de varios trminos. Este producto se define generalmente a travs de la ejecucin repetida de un grupo de instrucciones en donde en cada ejecucin se multiplica lo acumulado por un nuevo termino de los varios que van a ser multiplicados. Contador El uso de la variable en este caso es el llevar la cuenta del nmero de veces que una determinada situacin se presento. Por lo general se define su valor en un proceso en donde cada vez que se presente la ocurrencia de una determinada situacin se incrementa el valor del contador para reflejar esta ocurrencia.

Variable de Control Esta variable permite establecer el nmero de veces que la ejecucin de un determinado grupo de instrucciones se ve a efectuar. Este grupo de instrucciones se ejecuta una vez para cada valor que esta variable tome a lo largo de este proceso repetitivo. Indicador Es una variable que pude tomar valores de varios valores establecidos durante la ejecucin de un programa. El valor inicial de la variable cambia cuando una determinada situacin se presenta. Interruptor Es una variable indicador que solo puede tomar dos valores posibles. Por eso tambin se le llama conmutador, switch, bandera, flag. Apuntador Es una variable cuyo valor establece la ubicacin de una determinada informacin.

TECNICAD DE REPREENTACION DE ALGORITMOS: Definicin Una Tcnica de Representacin de Algoritmos es una tcnica para la representacin de los algoritmos en donde a travs de convenciones y el empleo de smbolos estandarizados se expresa en forma clara el proceso establecido en el algoritmo.

Estas tcnicas permiten la descripcin en forma clara de los pasos o instrucciones o operaciones elementales que deben ejecutarse para alcanzar la solucin de un problema, establecindose el orden lgico a seguir. Tipos Las tcnicas de representacin de algoritmos mas utilizadas son las siguientes. -Diagrama de flujo - Seudo lenguaje -Diagrama N-S Diagrama de Flujo Es la tcnica ms antigua y continua siendo muy utilizada. Utiliza smbolos especficos para la representacin de ciertas operaciones. Entre los smbolos utilizados se encuentran: Las flechas de unin son utilizadas para indicar la secuencia de ejecucin de las operaciones. Viene de Va a

Los comentarios pueden ser agregados al diagrama de Flujo para aclarar el sentido de la operacin especfica.

1. Smbolo de Comienzo y Fin del Diagrama de Flujo

FIN

10

INICIO I

2. Smbolo de Operaciones de Proceso

3. Smbolo de Operaciones de decisin Simple a) no

si

b)

No recomendada su utilizacin hoy en da. 3 Salidas.

<

>

= 11

4) Simbolo de Operaciones de Decisin Multiple

No se utiliza hoy en da esta representacin

a)

b)

5) Smbolo de Operaciones Entrada/Salida por cualquier perifrico

6) Smbolo de Operaciones de Entrada por Teclado

7) Smbolo de Operacin de Salida por Pantalla

12

8) Smbolo de Operaciones de Salida por Impresora

9) Smbolo de Operaciones de Entrada/Salida por cinta Magntica

10) Smbolo de Entrada / Salida por Disco Magntico

11) Smbolo de Proceso Repetitivo Controlado por Variable de Control.

12) Smbolo de Operaciones de Llamada a Subrutina

13) Smbolo de Conexin de Puntos del Diagrama de Flujo en una misma pagina.

13

14) Smbolo de Conexin de Puntos del Diagrama de Flujo ubicado en pginas diferentes.

15) Smbolo que representa comentarios

Seudo lenguaje Permite expresar las operaciones a realizar en una forma muy parecida a nuestro lenguaje habitual utilizando palabras reservadas con significados establecidos. Se lee de arriba hacia abajo y es el medio bsico para representar las estructuras de control de programacin estructurada. Diagrama N-S Es parecido al diagrama de flujo. Utiliza smbolos grficos o bloques en donde la secuencia de instrucciones se visualiza como una secuencia de bloques unidos, sin las flechas de unin.

14

PROGRAMACION ESTRUCTURADA Definicin La programacin estructurada es un conjunto de tcnicas orientadas a la construccin de programas confiables que limita el conjunto de estructuras de control aplicables y presenta una serie de reglas que coordinan adecuadamente el desarrollo de las diferentes fases de la programacin. Este conjunto de tcnicas tiene por objetivo la produccin de programas correctos (libres errores), Legibles (fciles de leer), Duperables (fciles de corregir) y Modificables (fciles de mantener). O sea, la produccin de Programas Confiables. Un programa Correcto es aquel que hace lo que se supone debe hacer. O sea, alcanza la solucin del problema. Lo esencial aqu es el desarrollo de algoritmos correctos para poder obtener programas correctos. La programacin Estructurada es el resultado de estudios formales de correccin y se considera al Prof. Edgar W. Dijkstra de la Universidad, de Eindhoven el padre de la programacin Estructurada con valiosos aportes en este desarrollo por Hoare, Wirth, Dahl, Knuth, Bohm, Jacopini, etc. Es celebre la frase de Dijkstra. La estructura GOTO es perjudicial para la programacin. Un Programa Eficiente es un programa correcto que optimiza el uso de los recursos espacio de memoria y tiempo de ejecucin.

15

Hoy en da, la tendencia de la programacin, visto el abaratamiento del recurso espacio de memoria y de la mayor velocidad de ejecucin de las actuales computadoras, es la produccin de programas confiables frente a la de programas eficientes. Teorema de la Estructura Todo programa con un solo punto de entrada y un solo punto de salida puede ser expresado utilizando solamente tres tipos de estructuras de control: Secuencial, Selectiva y Repetitiva. Este teorema fue enunciado en mayo de 1966 por Bohm y jacopini. PROPOSITO Y REPRESENTACION DE LAS ESTRUCTURAS DE CONTROL: Definicin Una Estructura de control permite expresar un proceso estableciendo la forma en la cual las acciones que lo componen van a ser ejecutadas. Se caracterizan por tener una sola entrada y una sola salida y dar origen a programas que pueden ser ledos de arriba hacia abajo.

16

Estructura De Control

Representacin de la Estructura de control como un Bloque de una Entrada / una Salida

ACCION: Definicin Una Accin representa una o varias instrucciones o una Estructura de Control. ESTRUCTURAS ALGORITMICAS DE CONTROL A continuacin se presentara las Estructuras de Control en la tres tcnicas de representacin de algoritmos: Diagrama de Flujo, Seudo lenguaje, Diagrama N-S.

Estructura Secuencial Permite indicar la ejecucin incondicional de varias acciones en forma secuencial:

17

DF ACCIN 1

SL INICIO <ACCION1> <ACCION 2> . . . .. . . <ACCION N> FIN

N-S <ACCION 1>

<ACCION 2> .... . <ACCION N>

ACCIN 2

ACCION 3

REPRESENTACION DE LA ESTRUCTURA SECUENCIAL EN TRES TECNICAS DE REPRESENTACION.

Estructura Selectiva Permite elegir una entre varias acciones posibles. La Estructura Selectiva (o Alternativa) puede ser: -Simple -Doble -Mltiple Estructura Selectiva Simple Permite representar la ejecucin condicional de una Accin en donde la Accin se ejecuta si una condicin lgica al ser evaluada resulta ser

18

verdadera (se cumple) y si la condicin no se cumple (es falsa) no se ejecuta la accin.

DF

SL SI <condicin> entonces <accin> fin-si

N-S

F
CONDICION

CONDICION
V
ACCION

V ACCION

Estructura Selectiva Doble

REPRESENTACION DE LA ESTRUCTURA SELECTIVA SIMPLE EN TRES TECNICAS DE REPRESENTACION.

19

Estructura Selectiva Doble Permite elegir una de dos acciones posibles dependiendo del resultado de una condicin lgica. Si la condicin lgica al ser evaluada resulta ser verdadera se ejecuta la Accin 1. Si resulta ser falsa se ejecuta la Accion2. DF V
Condicin

Accin 1

Accin 2

N-S S. L. SI < Condicin > Entonces < Accin 1 > Sino < Accin 2 > Fin Si Condicin ?

Accin 1

Accin 2

Estructura Selectiva Mltiple

REPRESENTACION DE LA ESTRUCTURA SELECTIVA DOBLE EN TRES TECNICAS DE REPRESENTACION.

20

Permite representar un proceso en donde se selecciona una entre varias acciones posibles dependiendo del resultado de una expresin al ser evaluada. Si el valor resultante de la expresin es valor1; se ejecuta la accin 1; si es valor n se ejecuta la accin n. Si ningn valor de los establecidos en la estructura aparece como resultado de la evaluacin de la expresin se ejecuta la Accin que sigue a la clusula De otra manera: D. F.

Expresin
= VALOR 1

= VALOR 2

= VALOR N

=OTRO
OO

Accin 1

Accin 2

Accin N

Accin

S. L. Caso < Expresin > de < Valor 1 > : < Accin 1 > < Valor 2 > : < Accin 2 >
= Valor 1 = Valor 2

N. S.

Expresin

< Valor N > : < Accin N > De otra manera < Accin > Fin Caso.

.............

= Valor N A c c i o n

= OTRO

A c c i o n 1

A c c i o n

. . . . .

A c c i o n

REPRESENTACION DE LA ESTRUCTURA SELECTIVA MULTIPLES EN LAS TRES TECNICAS DE REPRESENTACION.

Estructura Repetitiva.

21

Permite indicar la ejecucin repetida de una Accin .La Repetitiva tiene tres tipos : Mientras. Repetir / hasta que. Para.

Estructura

Estructura Mientras. Indica la ejecucin repetida de una Accin mientras cierta condicin sea verdadera. Al comienzo del proceso la condicin se evala. Si es verdadera se ejecuta la accin. Si es falsa se abandona el proceso repetitivo. De ejecutarse la accin se vuelve a evaluar la condicin. Si es verdadera se ejecuta la accin y se repite el proceso hasta que la condicin se haga falsa. D.F . F
Condicin

S. L. Mientras < Condicin > < Accin > Fin - Mientras N.S.

V Mientras < Condicin > Accin < Accin >

REPRESENTACION DE LA ESTRUCTURA MIENTRAS EN TRES TECNICAS DE REPRESENTACION Estructura Repetir / hasta que

22

Indica la ejecucin repetida de una Accin hasta que cierta condicin se cumpla.

D. F.

S. L. Repetir < Accin > Hasta que < Condicin >

Accin

f Condicin

v N. S.

< Accin >

Hasta que < Condicin>

REPRESENTACION DE LA ESTRUCTURA REPETIR / HASTA QUE EN LAS TRES TECNICAS DE REPRESENTACION.

23

Estructura Para Permite indicar la ejecucin repetida de una Accin, una vez por cada valor que tome una variable de control. La variable de control va a tomar valores partiendo de un valor inicial hasta alcanzar o no sobrepasar cierto valor final modificndose de acuerdo a cierta cantidad. Se asigna el valor 0 a la variable SN. Se inicia un proceso repetitivo establecido a travs de una estructura Para. La accin constituida por una sola instruccin de asignacin se va a ejecutar para cada valor que tome la variable de control I.

D.F .
Para <V>=<I>, <F>,[<M>]

S.L. Para <V>=<I> hasta <F> (paso <M>) <accin> Fin-Para


Accin

N.S.
Para <V>=<I> hasta <F> ( paso <M>)

<Accin>

REPRESENTACION DE LA ESTRUCTURA PARA EN LAS TRES TECNICAS DE REPRESENTACION.

24

DISEO DE ALGORITMO TCNICAS DE DISEO DESCENDENTE DEFINICION: Diseo Tope Abajo, Top Down o Tcnica de Diseo Descendente, es una tcnica orientada al diseo de algoritmos en donde partiendo de los mas general se va a lo ms detallado a travs de un refinamiento cada vez mayor de las diferentes operaciones que representan el algoritmo. Se parte de un bloque nico y en refinamientos sucesivos este bloque nico se representa por una estructura de control que encierra otros bloques y estos a su vez por otras estructuras de control que encierran otros bloques, hasta que se llega al nivel de operaciones a nivel del lenguaje de programacin en donde se vaya a implementar el algoritmo para obtener el programa.

NIVEL GENERAL a)

NIVEL INTERMEDIO b)

INICIO

INICIO

Leer 2 valores A y B e imprimirlos e imprimir luego si el primer valor es igual, mayor o menor que el segundo.

Leer 2 valores A, B e Imprimirlos

Bloque I Refinamiento Del Bloque Principal.

Imprimir si el primer Valor es igual, mayor o menor que el segundo. Bloque II

FIN FIN

25

DIFERENTES ETAPAS EN EL REFINAMIENTO PROGRESIVO DEL SIGUIENTE ALGORITMO.

c)

INICIO

Leer A, B

NIVEL INTERMEDIO Refinamiento Del Bloque I

Imprimir A, B

SI 1er Valor BLOQUE III 2do = valor IMPRIMIR A,=B

NO

Refinamiento Del Bloque II

Imprimir si el primer Valor es mayor o menor que el segundo

FIN

26

d)

INICIO

A, B

A, B

SI A= B ? A= B

NO

SI A>B ? Refinamiento Del Bloque III A> B

NO

A<B

FIN

Nivel detallado

La Tcnica de Refinamiento Progresivo establece una serie de niveles, partiendo del nivel de menos elaboracin del algoritmo, del nivel ms general, hasta llegar al nivel ms detallado a nivel de las operaciones del lenguaje.

27

DEPURACIN La Depuracin es el proceso que consiste en la eliminacin de los errores una vez que se ha detectado su existencia. Segn Edward YOURDON,((YOU75), P.279) , la Depuracin es el arte de encontrar la naturaleza, localizacin y correccin de un error una vez que su existencia ha sido establecida. La Depuracin, por lo general, se da a consecuencia de una prueba. La prueba es un proceso orientado a determinar la existencia de errores. Cuando una prueba detecta un error la Depuracin es el proceso que elimina este error. Tcnicas de Chequeo Manual del Algoritmo Esta es una Tcnica de Prueba en donde los datos son seleccionados para representar todos los casos posibles, llamados Casos de Prueba, durante la ejecucin del algoritmo. Estos casos de pruebas, cuyos resultados son conocidos, son evaluados , llevando a cabo corridas manuales en donde los resultados obtenidos son sometido a estudio y si aparece una falta de correspondencia entre los resultados esperados y los resultados

obtenidos se habr demostrado la existencia de errores por lo que ser necesario iniciar un proceso de Depuracin. En este caso debe efectuarse una revisin del algoritmo para localizar el error y corregirlo.

28

Si durante la ejecucin de los Casos de Prueba no se detectan errores no debe llegarse a la conclusin de que el algoritmo es correcto salvo que se trate de un algoritmo sencillo en donde no haya duda de que los datos presentes en los Casos de Prueba realmente representan todas las situaciones posibles de prueba del algoritmo.

29

30

31

Você também pode gostar