manual de fundamentos

Upload: teo-altamirano

Post on 19-Jul-2015

563 views

Category:

Documents


1 download

TRANSCRIPT

Manual de Fundamentos de Programacin

ndice Unidad 1 Conceptos Bsicos ................................................................................................................... 31.1 Clasificacin del software de: sistemas y aplicacin ...................................................................................................... 4 1.2 Algoritmo .................................................................................................................................................................... 4 1.3 Lenguaje de Programacin ........................................................................................................................................... 4 1.4 Programa..................................................................................................................................................................... 4 1.5 Programacin .............................................................................................................................................................. 5 1.6 Paradigmas de programacin ....................................................................................................................................... 5 1.7 Editores de texto ......................................................................................................................................................... 6 1.8 Compiladores e intrpretes .......................................................................................................................................... 6 1.9 Ejecutables .................................................................................................................................................................. 7 1.10 Consola de lnea de comandos ................................................................................................................................... 7

Unidad 2 Algoritmos ............................................................................................................................... 92.1 Anlisis de problemas ................................................................................................................................................ 10 2.2 Representacin de algoritmos: grfica y pseudocdigo............................................................................................... 10 2.3 Diseo de algoritmos aplicados a problemas. ............................................................................................................. 12 2.4 Diseo algortmico de funciones ................................................................................................................................ 13

Unidad 3 Introduccin a la Programacin ............................................................................................ 173.1 Caractersticas del lenguaje de programacin ............................................................................................................. 18 3.2 Estructura bsica de un programa. ............................................................................................................................. 18 3.3 Traduccin de un programa: compilacin, enlace de un programa, errores en tiempo de compilacin y 3.4 Ejecucin de un programa. .............................................................................................................................................................. 20 3.5 Elementos del lenguaje: datos, literales y constantes, identificadores, variables, parmetros, operadores, entrada y salida de datos................................................................................................................................................................. 21 3.6 Errores en tiempo de ejecucin. ................................................................................................................................. 38

Unidad 4 Control de flujo. ..................................................................................................................... 40Elabor: Ing. Fabiola Fuentes Herrera

1

Manual de Fundamentos de Programacin

Introduccin.................................................................................................................................................................... 41 4.1 Estructuras secuenciales. ........................................................................................................................................... 42 4.2 Estructuras selectivas: simple, doble y mltiple. ......................................................................................................... 43 4.4 Diseo e implementacin de funciones ...................................................................................................................... 50

Unidad 5 Arreglos ................................................................................................................................. 54Introduccin.................................................................................................................................................................... 55 5.1 Unidimensionales: conceptos bsicos, operaciones y aplicaciones.............................................................................. 55 5.2 Multidimensionales: conceptos bsicos, operaciones y aplicaciones. .......................................................................... 57 Fuentes de Informacin................................................................................................................................................... 64

Elabor: Ing. Fabiola Fuentes Herrera

2

Manual de Fundamentos de Programacin

Unidad 1 Conceptos BsicosUnidad 1 Conceptos Bsicos

Elabor: Ing. Fabiola Fuentes Herrera

3

Manual de Fundamentos de Programacin

1.1 Clasificacin del software de: sistemas y aplicacin

1.2 AlgoritmoUn algoritmo es un conjunto de acciones que determinan la secuencia de los pasos a seguir para resolver un problema especfico.

1.3 Lenguaje de ProgramacinUn Lenguaje de Programacin es un conjunto de reglas, notaciones, smbolos y/o caracteres que permiten a un programador poder expresar el procesamiento de datos y sus estructuras en la computadora. Cada lenguaje posee sus propias sintaxis. Tambin se puede decir que un programa es un conjunto de rdenes o instrucciones que resuelven un problema especfico basado en un Lenguaje de Programacin. Existen varias clasificaciones para los lenguajes de programacin.

1.4 ProgramaEs un conjunto de instrucciones que sigue la computadora para alcanzar un resultado especfico. Un programa se escribe en un lenguaje de programacin (Java, C, C#,etc).

Elabor: Ing. Fabiola Fuentes Herrera

Unidad 1 Conceptos Bsicos

4

Manual de Fundamentos de Programacin

1.5 ProgramacinLa programacin es el proceso de disear, codificar, depurar y mantener el cdigo fuente de programas computacionales.

1.6 Paradigmas de programacinExiste una infinidad de definiciones de lo que es un paradigma. Un paradigma es un determinado marco desde el cual miramos el mundo, lo comprendemos, lo interpretamos e intervenimos sobre l. Abarca desde el conjunto de conocimientos cientficos que imperan en una poca determinada hasta las formas de pensar y de sentir de la gente en un determinado lugar y momento histrico. Adam Smith define paradigma, en su libro Los poderes de la mente, como un conjunto compartido de suposiciones. Es la manera como percibimos el mundo: agua para el pez. El paradigma nos explica el mundo y nos ayuda a predecir su comportamiento". En nuestro contexto, el paradigma debe ser concebido como una forma aceptada de resolver un problema en la ciencia, que ms tarde es utilizada como modelo para la investigacin y la formacin de una teora. Tambin, el paradigma debe ser concebido como un conjunto de mtodos, reglas y generalizaciones utilizadas conjuntamente por aquellos entrenados para realizar el trabajo cientfico de investigacin. En nuestro contexto, los paradigmas de programacin nos indican las diversas formas que, a lo largo de la evolucin de los lenguajes, han sido aceptadas como estilos para programar y para resolver los problemas por medio de una computadora. Se muestran a continuacin un resumen de los paradigmas de uso ms extendido en programacin.

Programacin por procedimientos Es el paradigma original de programacin y quiz todava el de uso ms comn. En l, el programador se concentra en el procesamiento, en el algoritmo requerido para llevar a cabo el cmputo deseado. Los lenguajes apoyan este paradigma proporcionando recursos para pasar argumentos a las funciones y devolviendo valores de las funciones. FORTRAN es el lenguaje de procedimientos original, Pascal y C son inventos posteriores que siguen la misma idea. La programacin estructurada se considera como el componente principal de la programacin por procedimientos. Unidad 1 Conceptos Bsicos

Programacin modular Con los aos, en el diseo de programas se dio mayor nfasis al diseo de procedimientos que a la organizacin de la informacin. Entre otras cosas esto refleja un aumento en el tamao de los programas. La programacin modular surge como un remedio a esta situacin. A menudo se aplica el trmino mdulo a un conjunto de procedimientos afines junto con los datos que manipulan. As, el paradigma de la programacin modular consiste en: a) Establecer los mdulos que se requieren para la resolucin de un problema. b) Dividir el programa de modo que los procedimientos y los datos queden ocultos en mdulos. Elabor: Ing. Fabiola Fuentes Herrera

5

Manual de Fundamentos de Programacin

Este paradigma tambin se conoce como principio de ocultacin de procedimientos y datos. Aunque C++ no se diseo especficamente para desarrollar la programacin modular, su concepto de clase proporciona apoyo para el concepto de mdulo.

Abstraccin de datos Los lenguajes como ADA y C++ permiten que un usuario defina tipos que se comporten casi de la misma manera que los tipos definidos por el lenguaje. Tales tipos de datos reciben a menudo el nombre de tipos abstractos o tipos definidos por el usuario. El paradigma de programacin sobre este tipo de datos consiste en: a) Establecer las caractersticas de los tipos de datos abstractos se desean definir. b) Proporcionar un conjunto completo de operaciones vlidas y tiles para cada tipo de dato. Cuando no hay necesidad de ms de un objeto de un tipo dado, no es necesario este estilo y basta con el estilo de programacin de ocultamiento de datos por medio de mdulos.

Programacin orientada a objetos (OOP) El problema con la abstraccin de datos es que no hay ninguna distincin entre las propiedades generales y las particulares de un conjunto de objetos. Expresar esta distincin y aprovecharla es lo que define a la OOP a travs del concepto de herencia. El paradigma de la programacin orientada a objetos es, entonces, a) Definir que clases se desean b) Proporcionar un conjunto completo de operaciones para cada clase c) Indicar explcitamente lo que los objetos de la clase tienen en comn empleando el concepto de herencia En algunas reas las posibilidades de la OOP son enormes. Sin embargo, en otras aplicaciones, como las que usan los tipos aritmticos bsicos y los clculos basados en ellos, se requiere nicamente la abstraccin de datos y/o programacin por procedimientos, por lo que los recursos necesarios para apoyar la OOP podran salir sobrando.

1.7 Editores de textoEs un programa que permite crear y modificar archivos digitales compuestos nicamente por texto sin formato, conocidos comnmente como archivos de texto o texto plano Unidad 1 Conceptos Bsicos

1.8 Compiladores e intrpretesUn compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de mquina, pero tambin puede ser un cdigo intermedio (bytecode), o simplemente texto. Este proceso de traduccin se conoce como compilacin. Un compilador es un programa que permite traducir el cdigo fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina). De esta manera un programador puede disear un programa en un lenguaje mucho ms cercano a cmo piensa un ser humano, para luego compilarlo a un programa ms manejable por una computadora. Elabor: Ing. Fabiola Fuentes Herrera

6

Manual de Fundamentos de Programacin

En ciencias de la computacin, intrprete o interpretador es un programa informtico capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intrpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripcin en un lenguaje de programacin al cdigo de mquina del sistema, los intrpretes slo realizan la traduccin a medida que sea necesaria, tpicamente, instruccin por instruccin, y normalmente no guardan el resultado de dicha traduccin. Usando un intrprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente diferentes (ej. una PC y un PlayStation 3). Usando un compilador, un solo archivo fuente puede producir resultados iguales solo si es compilado a distintos ejecutables especficos a cada sistema. Los programas interpretados suelen ser ms lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son ms flexibles como entornos de programacin y depuracin (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o aadir mdulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la mquina donde se ejecuta el intrprete, sino del propio intrprete (lo que se conoce comnmente como mquina virtual). Para mejorar el desempeo, algunas implementaciones de programacin de lenguajes de programacin pueden interpretar o compilar el cdigo fuente original en una ms compacta forma intermedia y despus traducir eso al cdigo de mquina (ej. Perl, Python, MATLAB, y Ruby). Algunos aceptan los archivos fuente guardados en esta representacin intermedia (ej. Python, UCSD Pascal y Java). Comparando su actuacin con la de un ser humano, un compilador equivale a un traductor profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intrprete corresponde al intrprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito. En la actualidad, uno de los entornos ms comunes de uso de los intrpretes informticos es Internet, debido a la posibilidad que estos tienen de ejecutarse independientemente de la plataforma.

1.9 EjecutablesEn informtica, un ejecutable o archivo ejecutable, es tradicionalmente un archivo binario cuyo contenido se interpreta por el ordenador como un programa. Generalmente, contiene instrucciones en cdigo mquina de un procesador en concreto, pero tambin puede contener bytecode que requiera un intrprete para ejecutarlo. Adems suele contener llamadas a funciones especficas de un sistema operativo (llamadas al sistema). Dependiendo del tipo de que se traten las instrucciones, hablaremos de ejecutables portables (se pueden ejecutar en varias plataformas) y no portables (destinado a una plataforma concreta). Por ejemplo, un ejecutable Java es portable ya que utiliza un bytecode no asociado a un procesador en concreto.

1.10 Consola de lnea de comandosEs un mtodo que permite a las personas dar instrucciones a algn programa informtico por medio de una lnea de texto simple. Debe notarse que los conceptos de CLI, Shell y Emulador de Terminal no son lo mismo, aunque suelen utilizarse como sinnimos. La Lnea de Comandos de Windows es una implementacin de la consola MS-DOS para la interfaz grfica de las diversas versiones Microsoft Windows.

La lnea de comandos ha estado presente en forma activa en el sistema operativo Windows desde la versin 3.0 hasta la Elabor: Ing. Fabiola Fuentes Herrera

Unidad 1 Conceptos Bsicos

7

Manual de Fundamentos de Programacin

versin Windows 98, donde los programas de la interfaz grfica eran ejecutados por medio de la consola y sobre la cual todo el sistema operativo era montado. A partir de la versin de Windows XP, la lnea de comandos pas a segundo plano como un complemento de sistema, sin que perdiera la funcionalidad de la misma.

Elabor: Ing. Fabiola Fuentes Herrera

Unidad 1 Conceptos Bsicos

8

Manual de Fundamentos de Programacin

Unidad 2 AlgoritmosUnidad 2 Algoritmos

Elabor: Ing. Fabiola Fuentes Herrera

9

Manual de Fundamentos de Programacin

2.1 Anlisis de problemasRegresando al tema 1.2 tenemos que un algoritmo es un conjunto de acciones que determinan la secuencia de los pasos a seguir para resolver un problema especfico. Sus pasos deben estar definidos con precisin de forma que no existan ambigedades que den origen a elegir una opcin equivocada. Los algoritmos son finitos; es decir, su ejecucin termina en un nmero determinado de pasos. La mayora de los algoritmos de utilidad al programador poseen 3 partes principales:

Entrada de Datos

Algoritmo

Procesamiento de Datos

Salida de Resultados

2.2 Representacin de algoritmos: grfica y pseudocdigoLos algoritmos pueden representarse a travs de un conjunto de palabras por medio de las cuales se puede representar la lgica de un programa. Este conjunto de palabras constituyen lo que se conoce como pseudocdigo.

Adems, los algoritmos se pueden representar grficamente a travs de un diagrama de flujo. Ambas herramientas se describen a continuacin.

Diagramas de flujo Un diagrama de flujo es una representacin grfica de un algoritmo o de una parte del mismo. La ventaja de utilizar un diagrama de flujo es que se le puede construir independientemente del lenguaje de programacin, pues al momento de llevarlo a cdigo se puede hacer en cualquier lenguaje. Dichos diagramas se construyen utilizando ciertos smbolos de uso especial como son rectngulos, valos, pequeos crculos, etc.; estos smbolos estn conectados entre s por flechas conocidas como lneas de flujo. A continuacin se presentan estos smbolos y su significado.

Smbolos y su Significado

Terminal. Representa el inicio y fin de un programa.

Proceso. Son acciones que el programa tiene que realizar

Elabor: Ing. Fabiola Fuentes Herrera

Unidad 2 Algoritmos

10

Manual de Fundamentos de Programacin

Decisin. Indica operaciones lgicas o de comparacin.

Entrada. Nos permite ingresar datos.

Salida. Es usado para indicar salida de resultados

Selector mltiple. Representa una decisin con mltiples alternativas.

Conector. Enlaza dos partes cualesquiera de un programa

Lnea de flujo. Indica direccin de flujo del diagrama. Las flechas de flujo no deben cruzarse. Los diagramas se leen de arriba hacia abajo y de izquierda a derecha.

Conector fuera de pgina. Representa conexin entre partes del algoritmo representadas en pginas diferentes.

Reglas 1. 2. 3. 4. 5. 6. 7. 8. Todo diagrama debe de tener un inicio y un fin Las lneas utilizadas para indicar la direccin del flujo del diagrama deben ser rectas, verticales y/o horizontales. Todas las lneas utilizadas para indicar la direccin del flujo del diagrama deben estar conectadas. La conexin puede ser a un smbolo que exprese lectura, proceso, decisin, impresin, conexin o fin de diagrama. El diagrama de flujo debe ser construido de arriba hacia abajo (Top-down) y de izquierda a derecha (right to left) La notacin utilizada en el diagrama de flujo debe ser independiente del lenguaje de programacin. La solucin presentada en el diagrama puede escribirse posteriormente y fcilmente en diferentes lenguajes de programacin. Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o ayuden a en tender lo que hicimos. Si el diagrama de flujo requiriera ms de una hoja para su construccin, debemos utilizar los conectores adecuados y enumerar las pginas convenientemente. No puede llegar ms de una lnea a un smbolo

Elabor: Ing. Fabiola Fuentes Herrera

Unidad 2 Algoritmos

11

Manual de Fundamentos de Programacin

Pseudocdigo A continuacin se muestran algunos ejemplos de palabras utilizadas para construir algoritmos en pseudocdigo. PALABRA ABRE CASO CIERRA ENTONCES ESCRIBE FIN HASTA HAZ INICIO LEER MIENTRAS NO O O - BIEN PARA SI USUAL Y { }