You are on page 1of 10

Algoritmos y Estructuras de Datos Unidad 1

UNIVERSIDAD TECNOLGICA NACIONAL INGENIERIA EN SISTEMAS

Ctedra: "ALGORITMOS Y ESTRUCTURAS DE DATOS

UNIDAD N 1

CONCEPTOS BSICOS SOBRE PROGRAMACIN

Ing. Esp. Rosanna M. MAINIERI

Ing. Esp. Rosanna M. MAINIERI Pgina 1 de 10

Algoritmos y Estructuras de Datos Unidad 1

UNIDAD 1:

CONCEPTOS BASICOS SOBRE PROGRAMACION

Objetivo General de la Materia ........................................................ 3 Conceptos bsicos sobre programacin.......................................... 3 Lenguajes de Programacin............................................................ 5 Resolucin de un Problema............................................................. 6 Diagramacin................................................................................... 6 Programacin .................................................................................. 7 Programacin Estructurada ............................................................. 7 o Programacin Modular.......................................................... 7 o Diseo Descendente............................................................. 8 o Programacin Estructurada .................................................. 9 Bibliografa..................................................................................... 10

Ing. Esp. Rosanna M. MAINIERI Pgina 2 de 10

Algoritmos y Estructuras de Datos Unidad 1

Objetivo General de la materia:


Desarrollar la destreza o habilidad en los alumnos de crear programas para resolver problemas, no solo funcionalmente efectivos, sino fundamentalmente correctos desde un punto de vista metodolgico, en procura de la eficiencia durante todo su ciclo de vida.

CONCEPTOS BASICOS SOBRE PROGRAMACION


Contenidos: Algoritmo, accin, autmata, programa, lenguaje de programacin, sentencia, codificacin, diagramacin, programacin, Programacin Estructurada.

A diario nos enfrentamos, ya sea en la vida como en la carrera universitaria, con problemas. Qu debemos hacer con ellos? Resolverlos.

Para ello se necesita una serie de pasos que lo resuelvan. Esa serie de pasos o acciones se llama algoritmo. Este trmino, como se ve, es el primer trmino del nombre de la asignatura. Algoritmo: es una serie de pasos o acciones necesarios para resolver un problema.

PROBLEMA

ALGORITMO

Por ejemplo, una receta de cocina es un algoritmo, ya que contiene una serie de pasos que hay que ejecutar para preparar un plato de comida. En estas recetas adems figuran los ingredientes, que son los objetos que se deben procesar para preparar el plato. En nuestra materia, los datos (informacin) sern los objetos a procesar para llegar a obtener la solucin del problema. En el nombre de la materia aparece en segundo lugar el trmino estructura de datos, que hace referencia a la forma en que se debe manejar a los datos, que sern los objetos con los que se trabajar. Accin: es un hecho que se desarrolla en un lapso finito.

Ing. Esp. Rosanna M. MAINIERI Pgina 3 de 10

Algoritmos y Estructuras de Datos Unidad 1

Ahora bien, en nuestra materia quin ser el encargado de ejecutar esas acciones? La computadora o autmata. Necesitamos entonces, darle al autmata una serie de rdenes para que pueda ejecutar las acciones en respuesta a esas rdenes y as resolver el problema. Autmata: mquina o instrumento que produce acciones en respuestas a rdenes para resolver un problema. Estas acciones surgen como respuesta a rdenes, estas rdenes o instrucciones componen el programa que le ser dado al autmata para que pueda trabajar. El autmata no es el autor, sino el ejecutante de la accin. Accin <> Orden Programa: es un texto compuesto por un conjunto de rdenes que al ser ejecutadas por un autmata produce una secuencia de acciones que resuelven un problema. Una accin produce un resultado, es decir, se obtiene una modificacin del entorno del sistema en estudio. Hay un estado inicial del sistema, luego de ejecutarse la accin o conjunto de acciones, hay un estado final del sistema, que es distinto al inicial. Por ejemplo, si la accin fuera ABRIR LA PUERTA : Estado inicial: Puerta cerrada Estado final: Puerta abierta 1) Primitivas o Simple 2) Compuestas

Existen dos tipos de acciones:

1) Accin primitiva, elemental o simple: Acontecimiento ejecutable por un instrumento en respuesta a una nica orden. 2) Accin compuesta o proceso: es una secuencia de acciones, organizadas en el tiempo El hombre debe informarle a la mquina cmo resolver un problema, esto lo hace por medio de un programa, como ya se dijo, es un texto, y debe estar escrito en un lenguaje que la mquina entienda. Lenguaje de Programacin: Conjunto de elementos y reglas que deben tenerse en cuenta para escribir un programa, para un cierto autmata. Sentencia: es una orden escrita en un lenguaje de programacin. El algoritmo es entendido por los hombres, pero para que pueda ser entendido por el autmata se lo debe traducir mediante un lenguaje que la mquina comprenda, es decir, mediante un lenguaje de programacin y as se obtiene un programa.
Ing. Esp. Rosanna M. MAINIERI Pgina 4 de 10

Algoritmos y Estructuras de Datos Unidad 1

PROBLEMA

ALGORITMO

PROGRAMA

LENGUAJES DE PROGRAMACION Los lenguajes se clasifican en lenguajes de Bajo Nivel y de Alto Nivel. Lenguajes de Bajo Nivel Lenguaje de Mquina: Es el lenguaje que entiende la computadora y est compuesto por instrucciones codificadas en binario, es decir por 0 y 1. Es el primer lenguaje que se emple en la programacin de ordenadores. Lenguaje Ensamblador: Fue el primer intento de sustituir el lenguaje de mquina por un lenguaje parecido al utilizado por las personas. Se utilizan conjuntos de caracteres para representar las instrucciones del lenguaje de mquina, para una computadora en particular. Para este lenguaje se necesita un programa llamado ensamblador que traduce las instrucciones escritas en lenguaje ensamblador a lenguaje de mquina. Lenguajes de Alto Nivel Son posteriores a los de bajo nivel. Las instrucciones se escriben con palabras especficas, con significado para el hombre, y se crearon con los siguientes objetivos: Lograr la independencia del ordenador Aproximar an ms sus instrucciones al lenguaje humano. Utilizan palabras en lugar de cadenas de smbolos sin aparente significado Suministran libreras de rutinas con las funciones de uso frecuente (entrada, salida, etc.) Traductores Los programas que no estn escritos en lenguaje de mquina deben ser traducidos a cdigo binario para que puedan ser comprendidos por el autmata. Existen dos tipos de traductores: los intrpretes y los compiladores. Intrprete: Es un programa que toma al programa escrito en lenguaje de alto nivel y lo traduce y ejecuta, lnea por lnea. Compilador: Es un programa que traduce todo el programa escrito en lenguaje de alto nivel (Programa Fuente) y obtiene un programa escrito en cdigo de mquina (Programa Objeto). Luego, el programa objeto es el que se ejecuta. RESOLUCION DE UN PROBLEMA
Ing. Esp. Rosanna M. MAINIERI Pgina 5 de 10

Algoritmos y Estructuras de Datos Unidad 1

Al encarar la resolucin de un problema debe diferenciarse dos etapas: 1) Obtencin del algoritmo 1.1) Estudio del enunciado 1.2) Creacin del algoritmo

2) Codificacin del algoritmo La primera es la de mayor importancia y la ms delicada, la codificacin puede incluso resultar un trabajo rutinario y hasta existen herramientas que lo resuelven automticamente. Obtener un algoritmo: es inventar la resolucin de un problema, sin tener en cuenta el lenguaje con el cual se va a programar, por lo tanto, la actividad principal es pensar en el problema Codificar: es aplicar sistemticamente las definiciones y reglas de un lenguaje de programacin a las acciones especificadas en el algoritmo. De las dos partes de Obtencin del algoritmo la primera, el Estudio del enunciado, es la prioritaria, pues si el problema no est perfectamente definido y comprendido, cualquier algoritmo que se obtenga va a ser incorrecto, con l no se resolver nada, o se resolver un problema distinto al deseado. El estudio del enunciado es conocer perfectamente cul es el problema que se debe resolver, a este punto se le debe dedicar todo el tiempo que sea necesario. Se deber determinar muy claramente: Qu se pretende obtener como resultado? Cules son los datos de los que se dispone?

DIAGRAMACION Al crear un algoritmo, ste debe ser entendido por las personas, no por las mquinas, por lo cual no requieren serias restricciones sintcticas ni semnticas para ser entendidas, pero es conveniente usar una representacin generalizada para representarlos, esto es diagramar. Diagramar: representar un algoritmo sobre un soporte fsico La diagramacin puede ser: Esquemtica: se representa al algoritmo como un texto (pseudocdigo). Grfica: se representa al algoritmo como un grfico. (Diagrama de Chapin o Nassi-Schneiderman, de Flujo, de Jackson)

Ing. Esp. Rosanna M. MAINIERI Pgina 6 de 10

Algoritmos y Estructuras de Datos Unidad 1

PROGRAMACION Entendemos a la programacin como la planificacin, proyeccin, desarrollo e implementacin de la resolucin de un problema, la que abarca obviamente a la creacin del algoritmo. Un profesional en la programacin debe encarar la solucin del problema de forma tal que su producto sea til ahora y en el futuro, estando o no l en el centro de cmputos. Para lograr esto debe tener muy presentes las futuras posibles modificaciones del mismo. Las caractersticas, entonces, que debe tener un programa son: 1) Claridad algortmica 2) Legibilidad 3) Modificabilidad 1) Que sea claro significa, que su resolucin algortmica sea sencilla, que est correctamente estructurado, resultando de fcil comprensin. 2) Que sea legible significa que cuando se codific se eligi bien los nombres de los objetos utilizados, se agregaron comentarios para indicar lo que se va haciendo y se diagram bien el texto para resaltar el contenido semntico sobre lo sintctico. 3) Que sea fcilmente modificable, implica que cualquier modificacin del problema que genere un agregado, supresin o cambio de alguna de sus partes, no debe obligar a cambiar todo el programa, sino slo una parte. PROGRAMACIN ESTRUCTURADA Para entender el concepto de programacin estructurada debemos antes tener en claro dos conceptos previos: Programacin Modular y Diseo Descendente. Programacin Modular La programacin modular es uno de los mtodos de diseo ms flexible y potentes para mejorar la productividad de un programa. En programacin modular el programa se divide en mdulos (partes independientes), cada una de las cuales ejecuta una nica actividad o tarea y se codifican independientemente de otros mdulos. Cada uno de estos mdulos se analizan, codifican y ponen a punto por separado.

Mdulo, Accin Compuesta, Proceso, Subprograma o Subalgoritmo:: Es un conjunto de acciones (sentencias), agrupadas bajo un nombre, que resuelven una tarea o subproblema.

Ing. Esp. Rosanna M. MAINIERI Pgina 7 de 10

Algoritmos y Estructuras de Datos Unidad 1

Cada programa contiene un mdulo denominado programa principal que controla todo lo que sucede. Este programa principal es el que transfiere el control a los otros mdulos (subprogramas), de modo que ellos pueden ejecutar sus funciones. Cuando el mdulo haya completado su tarea devuelve el control al mdulo principal. Si la tarea asignada a un mdulo es demasiada compleja, ste deber romperse en otros mdulos ms pequeos. Los mdulos son unidades estancas, es decir son independientes entre s, en el sentido en que ningn mdulo puede tener acceso directo a cualquier otro mdulo excepto a sus propios submdulos. Diseo Descendente (Metodo Descendente, Top Dwn o de Refinamientos Sucesivos) El diseo descendente consiste en encontrar la solucin de un problema mediante la aplicacin sistemtica de descomposicin en subproblemas cada vez ms simples. Aplicando la mxima de divide para vencer. En este proceso se descompone al problema en subproblemas, cada uno de los cuales debe resolverse mediante un subprograma. Se determinan una serie de niveles o pasos sucesivos de refinamientos (subproblemas). Se establecen etapas o estructuras jerrquicas, de forma que se puede considerar cada estructura desde dos puntos de vista: qu hace? y cmo lo hace? Se debe encarar la resolucin de un problema en una primera instancia, como una secuencia de pocos y sencillos pasos (procesos o subproblema) que abarquen todo el problema, sin entrar en detalles. Esto, sin tener en cuenta quin o cmo los va a ejecutar. Se debe proponer una buena definicin para cada uno de esos pasos para transformarlos en nuevos subproblemas independientes, con las correctas especificaciones de sus datos y sus resultados. Luego, en una segunda instancia, se trata a cada uno de ellos en mayor profundidad, aplicndole a su vez el mismo mtodo. Es decir, se toma a cada subproblema como un nuevo problema y se lo resuelve en pocos pasos. Este proceso contina, tomando a cada nuevo subproblema como un nuevo problema, el cual hay que resolver encontrando nuevamente una serie de pasos. Se sigue as hasta que todos los sub-algoritmos estn compuestos por acciones primitivas. Lo ms interesante del mtodo, es que mediante este proceso reiterativo, se trata en forma separada lo global de los detalles. Resulta ms sencillo resolver al problema subdividindolo en subproblemas siendo as ms fcil llegar a la solucin y adems es conveniente aplicar este mtodo ya que habitualmente se trabaja en equipo y cada grupo del equipo, entonces, puede encargarse de resolver una parte, ensamblando luego todas las soluciones de estos subproblemas.

Ing. Esp. Rosanna M. MAINIERI Pgina 8 de 10

Algoritmos y Estructuras de Datos Unidad 1

Programacin Estructurada La programacin estructurada es una tcnica de programacin, que se introdujo en la segunda mitad de la dcada del sesenta, y significa escribir un programa de acuerdo a las siguientes reglas: El programa tiene un diseo modular Los mdulos son diseados de modo descendente Cada mdulo utiliza slo las tres estructuras bsicas de control: secuencia, seleccin y repeticin

Estas tcnicas aumentan considerablemente la productividad del programa reduciendo en elevado grado el tiempo requerido para escribir, verificar, depurar y mantener los programas. La programacin estructurada es el conjunto de tcnicas que incorporan: Recursos abstractos Diseo Descendente Estructuras Bsicas de control

Esta programacin se auxilia de los recursos abstractos en lugar de los recursos concretos de que dispone un determinado lenguaje de programacin.

Ing. Esp. Rosanna M. MAINIERI Pgina 9 de 10

Algoritmos y Estructuras de Datos Unidad 1

BILBIOGRAFA

DALE Nell, WEEMS Chip, (1989), PASCAL, Ed. Mc. Graw Hill, Espaa DE GIUSTI Armando, (2001), Algoritmos, Datos y programas, Ed. Prentice Hall, Fac. de Informtica, Univ. Nac. La Plata, Argentina. JENSEN Kathleen, WIRTH Niklaus, (1987), PASCAL Manual del usuario e informe, Ed. El Ateneo, Argentina. JOYANES AGUILAR Luis, (1996), Fundamentos de Programacin, Ed. Mc GrawHill, Espaa.

Ing. Esp. Rosanna M. MAINIERI Pgina 10 de 10

You might also like