Академический Документы
Профессиональный Документы
Культура Документы
Pgina 1
1.1 Clasificacin del software de: sistema y aplicacin. 1.2 Algoritmo.. 1.3 Lenguaje de programacin... 1.4 Programa.. 1.5 Programacin.. 1.6 Paradigmas de programacin.. 1.7 Editores de texto.. 1.8 Compiladores e Intrpretes... 1.9 Ejecutables.. 1.10 Consola de lnea de comandos.
8 10 11 13 14 14 15 15 17 17
Unidad 2 Algoritmos...
18
2.1 Anlisis del problema. 2.2 Representacin de algoritmos: grfica y pseudocdigo.. 2.3 Diseo de algoritmos aplicados a problemas.... 2.4 Diseo algortmico de funciones.
Prototipo Didctico de Fundamentos de Programacin
18 21 25 28
Pgina 2
3.1 Caractersticas del lenguaje de programacin.. 3.2 Estructura bsica de un programa... 3.3 Traduccin de un programa: compilacin, enlace de un programa, errores en tiempo de compilacin.. 3.4 Ejecucin de un programa.... 3.5 Elementos del lenguaje: datos, literales y constantes, identificadores, variables, parmetros, operadores, entrada y salida de datos.. 3.6 Errores en tiempo de ejecucin...
38 41
43 45
49 63
4.1 Estructuras secuenciales.. 4.2 Estructuras selectivas: simple, doble, mltiple.. 4.3 Estructuras iterativas: repetir, mientras, hasta/desde... 4.4 Diseo e implementacin de funciones
65 68 75 85
Unidad 5 Arreglos............................................................................................................. 87
5.1 Unidimensionales: conceptos bsicos, operaciones y aplicaciones 5.2 Multidimensionales: conceptos bsicos, operaciones y aplicaciones.
Prototipo Didctico de Fundamentos de Programacin
87 92 Pgina 3
Glosario de trminos.
93
Conclusiones.
96
Bibliografa..
97
Pgina 4
Introduccin
El prototipo didctico que se presenta, expone la materia de fundamentos de programacin de la manera ms sencilla y prctica, para que el alumno o usuario tenga las herramientas bsicas que lo encaminen al mundo de la programacin. En este prototipo, se nos darn las herramientas para resolver problemas comunes y simples de la vida cotidiana y tambin algunas aplicaciones de la ingeniera no muy sofisticados. Recordando que, este prototipo fue creado para conocer lo bsico de laprogramacin, como, comprender los conceptos bsicos de la misma, aprender el diseo de algoritmos, poder escribir expresiones aritmticas y lgicas en un lenguaje de programacin y familiarizarnos con el manejo de consola. As tambin, conocer el uso y funcionamiento de las estructuras secuenciales, selectivas, iterativas, arreglos unidimensionales y multidimensionales en el desarrollo de aplicaciones. Dejaremos en claro, que los fundamentos de programacin es la base principal de la programacin, como lo es, el cimiento de una casa.
Pgina 5
Introduccin de la unidad 1 En la unidad 1 conoceremos y comprenderemos los conceptos bsicos que son usados en la programacin. Introduccin de la unidad 2 En la unidad 2 explicaremos los conceptos bsicos para la formulacin de algoritmos, as como sus ventajas y desventajas, resolveremos y analizaremos problemas de la vida cotidiana e investigaremos los mtodos ms usuales para representar un algoritmo. Introduccin de la unidad 3 En la unidad 3 conoceremos las caractersticas del lenguaje de programacin, tambin la estructura bsica de un programa, analizaremos las fases de traduccin de un programa, veremos tambin, como ejecutar un programa, estudiaremos los distintos elementos de un lenguaje y veremos porque hay errores en tiempo de ejecucin. Introduccin de la unidad 4 En la unidad 4 estudiaremos el uso de las estructuras secuenciales, selectivas e iterativas y analizaremos ejemplos en las que aparecen estas estructuras; tambin veremos como disear e implementar las funciones. Introduccin de la unidad 5 En la unidad 5 conoceremos el uso y funcionamiento de arreglo unidimensionales y multidimensionales.
Pgina 6
Pgina 7
Se clasifican como veremos en el mapa conceptual de la pgina 9: Software de sistema Software de aplicacin
Software de Sistema: es el conjunto de programas indispensables para que la maquina funcione; se denominan tambin programas del sistema; (Luis Joyanes Aguilar). Esto programas son bsicamente: El sistema operativo: Windows Xp, Windows Vista, Windows 7, Linux, etc. Los editores de texto: Archivos de texto o texto plano. Los compiladores e intrpretes: Traductores de lenguajes de programacin. Programas de utilidad: Microsoft office.
Software de aplicacin: conjunto de instrucciones de computadora escritas con un lenguaje de programacin, las cuales dirigen al hardware para que efectu actividades especficas de procesamiento de datos y de informacin que proporcionan funcionalidad al usuario; (Luis Joyanes Aguilar).Estos programas bsicamente son: Una aplicacin de procesamiento de texto (Word). Una hoja de clculo (Excel). Una aplicacin para hacer diagramas o grficos, representaciones visuales (PowerPoint). Software que manipulan el hardware de la computadora como la resolucin de nuestra pantalla.
Pgina 8
Software de sistema
Software de aplicacin
Dirigen el hardware
Una aplicacin de procesamiento de texto. Una hoja de clculo. Representaciones visuales. Software que manipulan la mquina.
Ejemplos Ejemplos
Sistema operativo Windows Xp Archivos de texto Traductores de lenguaje Microsoft office Word Excel PowerPoint
Pgina 9
Concepto. Es una serie de pasos organizados o secuencias que nos describen el proceso que debemos seguir, para darle solucin a un problema especfico. (Luis J. A.).
Algoritmo
Problema
Se construye usando
Graficas
Se utilizan en
Pseudocdigo Programas
Instrucciones Escritos en
Pgina 10
Concepto. Lenguaje artificial que sirve para escribir programas que permitan la comunicacin usuario/maquina. (Luis Joyanes Aguilar). Son estructuras simblicas que nos permiten disponer de los dispositivos de una computadora. (Felipe Ramrez). Los principales tipos de lenguaje utilizados son: Leguaje mquina. Lenguaje de bajo nivel (ensamblador). Lenguaje de alto nivel.
Instrucciones a la computadora El trmino instruccin (operacin realizable) se suele referir al lenguajemquinay bajo nivel, reservando el trmino sentencia o proposicin para los lenguajes de alto nivel, las instrucciones bsicas y comunes de los lenguajes de programacin son las siguientes: o Instrucciones de entrada / salida:instrucciones de transferencia de informacin y datos entre dispositivos perifricos (teclado, impresora, unidad de disco, etc.) y la memoria central. o Instrucciones aritmtico / lgicas: instrucciones que ejecutan operacionesaritmticas (suma, resta, multiplicacin, divisin, potenciacin) y lgicas (and, or, not, etc.). o Instrucciones selectivas: instrucciones que permiten la seleccin de tareas alternativas en funcin de los resultados de diferentes expresiones condicionales. o Instrucciones repetitivas: instrucciones que permiten la repeticin de secuencias de instrucciones un nmero determinado o indeterminado de veces.
Lenguaje mquina. Son aquellos que estn escritos en lenguaje directamente comprensible por la mquina, ya que sus instrucciones son cadenas binarias (0 y 1).
Prototipo Didctico de Fundamentos de Programacin Pgina 11
Lenguaje de bajo nivel. Conocidotambin como ensamblador, las instrucciones en este lenguaje se conocen como nemotcnicos (abreviaturas) y requieren una fase de traduccin al lenguaje mquina. Ventajas: es ms fcil que el lenguaje mquina en la codificacin y la velocidad de clculo. Desventajas: cada mquina tiene su propio lenguaje lo que lo hace dependiente de la mquina y no se puede ejecutar en otra; se necesita un proceso de traduccin para el programa escrito originalmente en ensamblador llamado programa fuentey el programa que se obtiene al traducirlo se llama lenguaje objeto.
Lenguaje de alto nivel. Es independiente de la mquina, las instrucciones del programa de la computadora no depende del diseo del hardware, lo que hace que estos programas sean transportables. Ventajas: El tiempo de preparacin de los programadores es ms rpida que con los otros lenguajes de programacin. La escritura del programa se basan en reglas sintcticas similares a los lenguajes humanos (pueden ser READ, WRITE, OPEN, etc.). Las modificaciones y puestas a punto de los programas son ms fciles. Son ms econmicos los programas. Transportabilidad. Desventajas: El proceso de traduccin es muy largo y ocupan ms recursos. aprovecha menos los recursos internos de la mquina. Aumento de ocupacin de la memoria.
Prototipo Didctico de Fundamentos de Programacin Pgina 12
1.4 Programa.
Concepto. Conjunto de instrucciones que controlan (dirigen) a una computadora, formalmente programa de computadora es un conjunto de instrucciones internas utilizadas para ejecutarse en una computadora y que produzcan un resultado concret. (Luis Joyanes Aguilar). Un programa tiene 3 partes: Entrada de datos: normalmente se ejecuta a travs de instrucciones de lectura, y en lo que se le pide al usuario la informacin que el programa va a necesitar para ejecutarse y se hace a travs de lectura. Accin de un algoritmo: parte en la que se resuelve el problema usando los datos de entrada. Salida: muestra el resultado deseado. En la parte de las acciones a ejecutar se distinguirn 2 partes: Declaracin de variables. Instrucciones del programa.
Instrucciones y tipos: Para que una instruccin se ejecute tiene que ser llevada a la memoria. En cuanto al orden de ejecucin, el programa puede ser de dos tipos: Programas lineales: las instrucciones se ejecutan consecutivamente igual al orden de escritura. Programas no lineales: las instrucciones no se ejecutan en el mismo orden en las que aparecen escritas si no que realizan saltos que nos mandan de una instruccin a otra. Nunca se deben hacer saltos no lineales.
Pgina 13
1.5 Programacin.
Concepto. Se refiere al proceso en el cual se desarrolla o escribe un programa, esto se refiere a expresar el algoritmo en un lenguaje de programacin. (Luis Joyanes Aguilar). Es la habilidad de pensar de manera razonada, sistemtica y ordenada, que nos hace capaces de inferir algoritmos abstractos y soluciones a problemas de negocios, que fcilmente puedan ser implementados a travs de cdigos escritos en un lenguaje de programacin determinado. (Felipe Ramrez).
Qu es paradigma? Es la manera como percibimos el mundo: (agua para el pez); el paradigma nos explica el mundo y nos ayuda a predecir su comportamiento.
Pgina 14
Concepto. Programa que permita crear y modificar archivos digitales compuestos nicamente por texto sin formato, conocidos comnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes ledos segn el cdigo de caracteres que usa el editor. Los editores de texto son incluidos en el sistema operativo o en algn paquete de software instalado y se usan cuando se deben crear o modificar archivos de texto como archivos de configuracin, scripts o el cdigo fuente de un programa.
Compilador: Proceso de traduccin que convierte un programa fuente escrito en un lenguaje de alto nivel a un programa objeto en cdigo mquina y listo por tanto para ejecutarse en el ordenador. Los programas escritos en lenguaje de alto nivel se llaman programa fuente y el programa traducido programa objeto. El compilador traduce sentencia a sentencia al programa fuente.
Pgina 15
Programa fuente
Compilador
Programa objeto
Para poder traducir el programa objeto a cdigo maquina debemos usar un programa llamado montador o enlazador (linker). El proceso de montaje nos conduce a un programa en lenguaje maquina directamente ejecutable.
Programa fuente
Compilador (traductor)
Programa objeto
Enlazador
Pgina 16
Programa fuenta
Interprete
1.9 Ejecutables.
Concepto. Es tradicionalmente un archivo binario cuyo contenido se interpreta por el ordenar como un programa. Generalmente, contiene instrucciones en cdigo mquina de un procesador en concreto, pero tambin pueden contener bytecodes que requieren un intrprete para ejecutarlo. Adems suele contener llamadas a funciones especficas de un sistema operativo. Los ejecutables pueden ser portable (se pueden ejecutar en varias computadoras) o no portables (destinadas a una computadora especifica).
Concepto. Es un mtodo que permite a las personas dar instrucciones a algn programa informtico por medio de una lnea de texto simple. Su acrnimo en ingls es CLI (Command line Interface),encontradasen las interfaces graficas de diversos sistemas operativos, para ejecutar aplicaciones a travs de un intrprete de comandos.
Prototipo Didctico de Fundamentos de Programacin Pgina 17
La principal razn para que las personas aprendan a programar en general y los lenguajes de programacin en particular es utilizar la computadora como una herramienta principal para resolver problemas.La resolucin de un problema se divide en las siguientes fases: Anlisis de sistema. Diseo de algoritmo. Codificacin. Compilacin y ejecucin. Verificacin. Depuracin. Mantenimiento. Documentacin.
Constituyen el ciclo de vida del software y las faces o etapas son: Anlisis. El problema se analizas teniendo presente la especificacin de los requisitos dados por la persona que encargo el programa. Diseo.Una vez analizado el problema, se disea una solucin que conducir a un algoritmo que resuelva el problema. Codificacin (implementacin). La solucin se escribe en la sintaxis de lenguaje de alto nivel (por ejemplo C) y se obtiene un programa. Compilacin, ejecucin y verificacin. El programa se ejecuta, se comprueba rigurosamente y se elimina todo los errores (denominados busg en ingls) que puedan aparecer. Depuracin y mantenimiento. El programa se actualiza y modifica cada vez que sea necesario, de modo que se cumplan todas las necesidades de cambio de sus usuarios. Documentacin. Escritura de las diferentes fases de ciclo de vida del software, esencialmente el anlisis, diseo y codificacin, unidos a manuales de usuarios y de referencias, as como normas para el mantenimiento.
Pgina 18
Anlisis de problema
Los elementos que conforman un algoritmo son: Entrada: los datos iniciales que posee el algoritmo antes de ejecutarse. Proceso: accin que lleva acabo el algoritmo. Salida: resultado final que obtiene el problema.
Ejemplo de los elementos (entrada, proceso y salida). El clculo del rea de un rectngulo se puede dividir en: Entrada de datos (altura, base).
Prototipo Didctico de Fundamentos de Programacin Pgina 19
A=b*a
b
Diseo de un algoritmo. La solucin de un problema complejo puede requerir muchos pasos, esto hace necesariamente que dividamos el problema en subproblemas para que as sea ms sencillo resolverlo. Este mtodo se denomina divide y vencers y es aplicable a la resolucin de problemas complejos dividindolo en subproblemas y a continuacin dividir estos subproblemas en otros de nivel ms bajo. Este mtodo se conoce tcnicamente como diseo descendente (topdown) o modular. El proceso de romper el problema en cada etapa y expresar cada paso en forma ms detallada se denomina refinamiento sucesivo. Cada subprograma es resuelto mediante un mdulo (subprogramas) que tiene un solo punto de entrada y un solo punto de salida. Un programa principal tambin se le puede llamar (mdulo de nivel ms alto) y los subprogramas (mdulo de nivel ms bajo). Los programas estructurados tienen un diseo modular. Al mtodo de romper el programa enmdulos ms pequeos se llama programacin modular. Los mdulos pueden ser planeados, codificados, comprobados y depurados independientemente (incluso por diferentes programadores). El proceso que convierte los resultados del anlisis de problema en un diseo modular con refinamientos sucesivos que permitan una posterior traduccin a un lenguaje, se denomina diseo de algoritmo.
Pgina 20
Ejemplo de diseo descendente y refinamiento paso a paso, basndonos en el problema de calcular el rea de un rectngulo.
Entrada de datos
Salida de resultados
Salida BASE
Salida AREA
Para representar un algoritmo se debe utilizar algn mtodo que permitan independizar dicho algoritmo del lenguaje de programacin elegido. Esto permitir que un algoritmo pueda ser codificado indistintamente en cualquier lenguaje de programacin. Los mtodos ms usuales para representar de un algoritmo son: Diagrama de flujo. Diagrama N-S(Nassi-Schneiderman) Lenguaje de especificacin de algoritmo: Pseudocdigo. Lenguaje espaol.
Pgina 21
Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grfica de cmo debe realizarse los pasos en la computadora para producir un resultado. Esta representacin grfica se da cuando varios smbolos se relacionan entre s mediante lneas que indican el orden en que se deben ejecutar los procesos o pasos; los pasos que se utilizan han sido normalizados por el instituto norteamericano de normalizacin (ANSI). SMBOLODESCRIPCIN
Smbolo de proceso y nos indica la asignacin de un valor en la memoria y/o la ejecucin de una operacin aritmtica.
Conector dentro de pgina, representa la continuidad del diagrama dentro de la misma pgina y sirve para enlazar dos partes cualesquiera de un ordinograma.
Pgina 22
Decisin mltiple, dependiendo del resultado de la comparacin se seguir uno de los diferentes caminos.
Comentarios, se utilizan para aadir comentarios clasificadores a otros smbolos de diagrama de flujo.
Pgina 23
El Diagrama N-S (Nassi-Schneiderman) tambin conocido como diagrama de Chapin, es como un diagrama de flujo en las que se omiten las flechas de unin y las cajas (rectngulos) son contiguas (cercanos o prximos); las acciones se escriben en las cajas, que se leern siempre de arriba abajo al igual que los diagramas de flujos, tambin se pueden escribir diferentes acciones en una caja. Ejemplo de diagrama N-S.
leer nombre, hora, precio Calcular salario hora * precio calcular impuesto 0.25 * salario calcular neto salario impuestos escribir nombre, salario, impuestos, neto
Prototipo Didctico de Fundamentos de Programacin Pgina 24
nombre del algoritmo accin 1 accin 2 accion3 fin Otro ejemplo es la representacin de la estructura condicional como vemos a continuacin.
Los mtodos de lenguaje en espaol y las formular no suelen ser fciles de transformar en programas, ya que el mtodo de lenguaje en espaol es muy extenso y confuso, y en el mtodo de las formulas no es frecuente que un algoritmo pueda ser expresado por una simple formula.
Ejemplos de algoritmos aplicados a problemas. Ejemplo. Leer el sueldo de tres empleados y aplicarles un aumento del 10,12 y 15 % respectivamente. Desplegar el resultado.
Pgina 25
Algoritmo en pseudocdigo. Inicio Leer (S1, S2, S3) Aum1 S1 * 0.10 Aum2 S2 * 0.12 Aum3 S3 * 0.15 Sf1 S1 + Aum1 Sf2 S2 + Aum2 Sf3 S3 + Aum3 Escribir (SF1, SF2, SF3) Fin
Pgina 26
Inicio
S1, S2, S3
Aum1 S1 * 0.10
Aum2 S2 * 0.12
Aum3 S3 * 0.15
Sf1 S1 + Aum1
Sf2 S2 + Aum2
Sf3 S3 + Aum3
Fin
Inicio Leer S1, S2, S3 Aum1 S1 * 0.10 Aum2 S2 * 0.12 Aum3 S3 * 0.15 Sf1 S1 + Aum1 Sf2 S2 + Aum2
Prototipo Didctico de Fundamentos de Programacin Pgina 27
La programacin modular es uno de los mtodos de diseo ms flexible y potente para mejora la productividad de un programa. Esto quiere decir que el programa se divide en mdulos (partes independientes) las cuales ejecutan una nica actividad o tarea y se codifican independientemente de otros mdulos. Cada mdulo se analiza, se codifica y se pone a un punto por separado. Cada programa tiene un mdulo que es el programa principal que controla todo, se pasa el control a los submdulos (subprogramas) para que ellos puedan ejecutar sus funciones. Cada submdulo devuelve el control al mdulo principal cuando haya completado su tarea. Si la tarea asignada a cada submdulo es muy difcil, esta deber romperse en otros mdulos ms pequeos. El proceso sucesivo de subdivisin de mdulos continua hasta que cada mdulo tenga solamente una tarea especfica que realizar, estas tareas pueden ser entradas, salidas, manipulacin de datos, control de otros mdulos o alguna combinacin de datos. Un mdulo puede transferir temporalmente (bifurcacin) el control a otro modulo, sin embargo, cada mdulo debe devolver el control al mdulo del cual se recibi originalmente el control.
Los mdulos son independientes y no pueden tener acceso a cualquier otro modulo, con excepcin al mdulo al que llama y sus propios submodulos; sin embargo los resultados producidos por un mdulo pueden ser utilizados por cualquier otro modulo cuando se transfiera a ellos el control.
Pgina 28
Subprograma 1
Subprograma 2
Subprograma 3
Subalgoritmo 1
Subalgoritmo2
Subalgoritmo 3
Se dice que el programa principal invoca al subprograma, el subprograma realiza la tarea y luego devuelve el control (resultado) al programa principal.
Subprograma
Algoritmo
Subalgoritmo
Pgina 29
Subprograma 2
Funciones. La funcin en una estructura que no depende de nadie similar a los mdulos, la diferencia radica en que la funcin se usa para devolver un solo valor de un tipo de datos simple a punto de referencia. La funcin se relaciona en detallar su nombre en una expresin, como si fuera una variable ordinaria de tipo simple. Las funciones se dividen en estndares y definidas por el usuario: Estndares: Son funciones proporcionadas por cualquier lenguaje de programacin de alto nivel, y se dividen el alfabticas y aritmticas. Definido por el usuario: son funciones establecidas por el programador con el objetivo de realizar alguna funcin especfica, por lo general se usa cuando se trata de hacer algn clculoque se valla ocupar en varias ocasiones en la parte principal de un algoritmo. Declaracin de funciones. Consta de una cabecera que comenzara con el tipo de valor devuelto por la funcin, seguido de la palabra funciny del nombre y argumento de la funcin, seguido del cuerpo de la funcin que es una serie de instrucciones, cuya ejecucin (accin) har que se asigne un valor al nombre de la funcin; esto determina el resultado que se ha de devolver al programa. La declaracin de la funcin ser:
Pgina 30
Otro ejemplo puede ser la definicin de la funcin trigonomtrica, cuyo valor es:
dondesen(x) y cos(x) son las funciones seno coseno (normalmente funciones internas). La declaracin de la funcin es:
Observe que se incluye un comentario para describir la funcin. Es buena prctica incluir documentacin que describa brevemente lo que hace la funcin, lo que representa sus parmetros o cualquier otra informacin que explique la definicin de la funcin.
Prototipo Didctico de Fundamentos de Programacin Pgina 31
Cada vez que se llama a una funcin desde el algoritmo principal se establece automticamente una correspondencia entre los parmetros formales y los actuales. Debe haber el mismo nmero de parmetros actale como formales en la declaracin de la funcin, anticipando una correspondencia (relacin) uno a uno de izquierda a derecha. Una llamada a la funcin implica los siguientes pasos: 1. A cada parmetro formal se le asigna el valor real de su correspondencia parmetro actual. 2. Se ejecuta el cuerpo de acciones de la funcin. 3. Se devuelve el valor de la funcin al nombre de la funcin y se retorna al punto de llamada. Aqu un ejemplo de los pasos de una llamada a la funcin. Definicin de la funcin: y = (potencia n de x).
Pgina 32
Procedimientos (subrutinas). Un procedimiento o subrutina es un subprograma que ejecuta un proceso especfico. Ningn valor est asociado con el nombre del procedimiento; por consiguiente, no puede ocurrir en una expresin. Un procedimiento se llama escribiendo su nombre, por ejemplo, SORT, para indicar que un procedimiento denominado SORT se va usar. Cuando se invoca el procedimiento, los pasos que lo definen se ejecutan y a continuacin se devuelve el control al programa que llamo. La declaracin de un procedimiento es similar a la de funciones.
Pgina 33
mbito: Variables Locales y Globales. Las variables utilizadas en los programas principales y sub programas se clasifican en dos tipos: Variable local: las variables permanecen activas durante todo el programa. Se crean al iniciarse este y se destruye o desaparece de la memoria al finalizar. Variable global: las variables son creadas cuando el programa llega a la funcin o procedimiento en la que est definida. Al finalizar la funcin o procedimiento, desaparece de la memoria. Si dos variables, una global y una local, tiene el mismo nombre, la local prevalecer sobre la global dentro del mduloen que ha sido declarada. Dos variables locales pueden tener el mismo nombre, siempre y cuando estn declaradas en funciones o procedimientos diferentes.
Comunicacin con Subprogramas: paso de parmetros. Cuando un programa llama a un subprograma, la informacin se comunica a travs de la lista de parmetros y se establece una correspondencia automtica entre los parmetros formales y actuales. Los parmetros actuales son sustituidos o utilizados en lugar de los parmetros formales. La declaracin del subprograma se hace con:
Pgina 34
Paso o Parmetro por Valor. Son los parmetros que pueden recibir valores pero que no pueden devolverlos. Es una variable global que se conecta con una variable local mediante el envo de su valor, despus de lo cual ya no hay relacin. Lo que le sucede a la variable local no afectar a la global. Cuando un parmetro actual se pasa por valor, el subprograma hace una copia del valor de ste en una posicin de memoria idntica en tamao pero distinta en ubicacin a la del parmetro actual y la asigna al parmetro formal correspondiente. Como el subprograma trabaja a partir de sus parmetros formales, si durante la ejecucin se modifica el valor de un parmetro formal correspondiente a un paso por valor, el contenido de la posicin de memoria del parmetro actual no se ver alterado.
Pgina 35
Paso o Parmetro por Referencia. Son los que pueden recibir y devolver valores. Son variables globales que se conectan con una local a travs de su contenido; al establecerse dicha conexin las variables se convierten en sinnimos, lo que afecte a la variable local le suceder a la variable global.
Pgina 36
La primera llamada en (1) produce que los parmetros a y c sean sustituidos por x e y si los valores de x e y se modificaran dentro de a y c en el algoritmo principal. De igual modo, b y d son sustituidos por x e y, y cualquier modificacin de x o y en el procedimiento afectar tambin al programa principal.
Pgina 37
Una vez que se has visto cmo tratar un problema y como escribir un algoritmo que lo modelase se ver a continuacin las herramientas que se dispone, los lenguajes de programacin para programar un algoritmo, como construir un programa, y como programarlo utilizando un pseudocdigo. Cul es el propsito de un lenguaje de programacin? Los lenguajes de programacin pueden ser de propsito general o especficos. Lenguajes de programacin especficos: C, C++, Java, visual Basic, Pascal, etc. Los lenguajes de programacin especficos: SQL, PROMELA, etc.
POR QU LA DIVERSIDAD DE LENGUAJES DE PROGRAMACIN? En primer lugar existen distintos tipos de lenguajes de programacin, porque cada uno de ellos est especificado para resolver un grupo de problemas con caractersticas similares. En segundo lugar, los lenguajes de programacin han ido evolucionando hacia una mayor facilidad, flexibilidad y potencia. Por esto, han ido apareciendo distintos tipos de lenguajes que ofrecen una funcionalidad mayor y generalmente una filosofa de programacin novedosa. Por ltimo, las compaas que disean software estn muy interesadas en tener muchos lenguajes de programacin en el mercado porque esto les reportar ms beneficios econmicos.
POR QU ES IMPORTANTE EL ESTUDIO DE DIFERENTES LENGUAJES O PARADIGMAS CUANDO AL FINAL SLO TRABAJAS CON UNOS POCOS?
Prototipo Didctico de Fundamentos de Programacin Pgina 38
CARACTERSTICAS COMUNES DE LOS LENGUAJES DE PROGRAMACIN. Tienen una sintaxis, un conjunto de reglas que definen qu expresiones de texto son correctas. Por ejemplo, en C todas las sentencias deben terminar en ';'. Los lenguajes de programacin se ejecutan en un computador y tienen una determinada semntica que define cul ser el resultado de la ejecucin de un programa. Definen un conjunto de tipos de datos primitivos que representan los posibles valores que pueden devolver las expresiones del lenguaje. Tienen mecanismos de abstraccin para definir nuevos tipos de datos a partir de los primitivos o nuevas funciones y procedimientos.
Pgina 39
OTRAS CARACTERSTICAS. Implementacin. La implementacin de un lenguaje es la que provee una manera de que se ejecute un programa para una determinada combinacin de software y hardware. Existen bsicamente dos maneras de implementar un lenguaje: Compilacin e Interpretacin. Compilacin: es el proceso que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz interpretar. Los programas traductores que pueden realizar esta operacin se llaman compiladores. stos, como los programas ensambladores avanzados, pueden generar muchas lneas de cdigo de mquina por cada proposicin del programa fuente. Interpretacin: es una asignacin de significados a las frmulas bien formadas de un lenguaje formal. Como los lenguajes formales pueden definirse en trminos puramente sintcticos, sus frmulas bien formadas pueden no ser ms que cadenas de smbolos sin ningn significado. Una interpretacin otorga significado a esas frmulas.
Tcnica. Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una serie de detalles. Correccin. Un programa es correcto si hace lo que debe hacer tal y como se estableci en las fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es muy importante especificar claramente qu
Pgina 40
Como ya se ha visto, cuando se escribe un programa lo que se trata de hacer es indicarle a la computadora cmo ha de resolver un problema. Estos programas siguen determinada estructuras, que dependen del tipo de lenguaje que usemos y del entorno en el cual lo creemos.
Pgina 41
LA MAYORA DE LOS PROGRAMAS SIGUEN UNA DE DOS ESTRUCTURAS: Programas por lote. Estos se ejecutan tpicamente desde una lnea de comando o automticamente desde otra aplicacin y tienden al siguiente patrn: Inicializacin interna de los datos. Lectura de los datos ingresados. Procesamiento de los datos. Visualizacin o ejecucin de los resultados.
Programas controlados por eventos. La mayor parte de las interfaces responden a eventos. Los programas controlados por eventos son generalmente as: Inicializacin interna de los datos. Lectura de los datos ingresados. Procesamiento de los datos. Visualizacin o ejecucin de los resultados.
Pgina 42
Para elaborar un programa debemos tomar en cuenta las dos siguientes fases: Fase de compilacin, montaje o enlace (link). Fase de ejecucin de un programa.
Fase de compilacin o linkado (link, montado, enlace). Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado directamente por un ordenador, sino que debe ser traducido a lenguaje mquina. Las etapas por las que debe pasar un programa escrito en un lenguaje de programacin, hasta poder ser ejecutable son: Programa fuente: Programa escrito en un lenguaje de alto nivel (texto ordinario que contiene las sentencias del programa en un lenguaje de programacin). Necesita ser traducido a cdigo mquina para poder ser ejecutado. Compilador: Programa encargado de traducir los programas fuentes escritos en un lenguaje de alto nivel a lenguaje mquina y de comprobar que las llamadas a las funciones de librera se realizan correctamente. Programa (o cdigo) objeto: Es el programa fuente traducido (por el compilador) a cdigo mquina. An no es directamente ejecutable. Programa Ejecutable: Traduccin completa a cdigo mquina, realizada por el enlazador, del programa fuente y que ya es directamente ejecutable. Montador o enlazador (Linker): Es el programa encargado de insertar al programa objeto el cdigo mquina de las funciones de las libreras (archivos de biblioteca) usadas en el programa y realizar el proceso de montaje, que producir un programa ejecutable .exe. Las libreras son una coleccin de cdigo (funciones) ya programado y traducido a cdigo mquina, listo para utilizar en un programa y que facilita la labor del programador. A continuacin mostramos una imagen de cmo se desenvuelven las etapas de un programa.
Pgina 43
Errores en tiempo de compilacin. Si el programa fuente es sintcticamente correcto, el compilador generar el cdigo objeto, en caso contrario mostrar una lista con los errores encontrados, no generndose ningn programa objeto, para que procedamos a su depuracin. Los compiladores emiten mensajes de error o de advertencia durante las fases de compilacin, de enlace o de ejecucin de un programa. Los errores en tiempo de compilacin son los que se producen antes de la ejecucin del programa, durante el proceso de compilacin del programa. Los errores que se pueden producir en la fase de compilacin son: Errores fatales. Son raros e indican errores internos del compilador. Cuando ocurre la compilacin se detiene inmediatamente. Errores de sintaxis. Son los errores tpicos de sintaxis, no detienen la compilacin sino que al finalizar sta se mostrar la lista con todos los errores encontrados. Algunos errores suelen ser consecuencia de otros
Pgina 44
Generacin de cdigo ejecutable. La fase final del compilador es la generacin de cdigo ejecutable. Toma como entrada la representacin intermedia del programa fuente y produce como salida un programa objeto equivalente. Las exigencias tradicionalmente impuestas a un compilador son duras. El cdigo de salida debe ser correcto y de gran calidad, lo que significa que debe utilizar de forma eficaz los recursos de la computadora. Adems, el propio generador de cdigo debe ejecutarse eficientemente. Matemticamente, el problema de generar cdigo ptimo es indecidible. En la prctica, hay que conformarse con tcnicas heursticas que generan cdigo bueno pero no siempre ptimo. La eleccin de las heursticas es importante, ya que un algoritmo de generacin de cdigo cuidadosamente diseado puede producir fcilmente cdigo que sea ms rpido que el producido por un algoritmo diseado precipitadamente.
Pasos para la elaboracin y ejecucin de un programa. Los pasos a seguir los podemos resumir de la siguiente manera: 1. Escribir el cdigo fuente, por ejemplo con el editor del EID. 2. Compilar el fichero fuente. 3. Si se produce errores de sintaxis volver al editor y eliminar los errores de sintaxis.
Pgina 45
Fases de ejecucin de un programa. Una vez que tenemos el programa en lenguaje mquina, para poderlo ejecutar hay que introducirlo en la memoria, y se efectan las siguientes fases: 1. Una utilidad del S.O. llamada cargador colocar el programa, y sus datos de entrada, en memoria principal, preparndolo para su ejecucin. 2. El S.O. le pasa el control a la C.P.U. para que comience la ejecucin del programa, realizando la Unidad de Control los siguientes pasos (fases): Captacin de la instruccin: Lee de la Memoria Principal la instruccin a ejecutar. Ejecucin de la instruccin: Interpreta la instruccin leda y enva seales de control a las unidades que deban intervenir en su ejecucin. Tras dicha ejecucin se establece cul ser la siguiente instruccin a ejecutar.
Ejecutar programa en C++. Despus de que se ha compilado un programa en C++, est listo para ejecutarse. Desde la salida de un compilador de C++ es cdigo ejecutable objeto, para ejecutar el programa, simplemente escriba su nombre en la lnea de comandos. Por ejemplo, para ejecutar Ejemplo1.exe use esta lnea de comandos: C:\...>Sample Cuando se ejecuta, el programa muestra el siguiente resultado: C++ ispowerprogramming.
Prototipo Didctico de Fundamentos de Programacin Pgina 46
4. En el men Archivo, haga clic en Guardar para crear un archivo de origen de C. 5. Cierre el Bloc de notas. 6. En el smbolo del sistema, escriba simple.c cl y presione Enter.El compilador cl.exe gnero un programa ejecutable, Simple.exe.Puede ver el nombre del programa ejecutable, en las lneas de informacin de salida que muestra el compilador.
7. Para ver una lista de todos los archivos del directorio \simple\, escriba dir simple.* y presione Enter.El archivo .obj es un archivo de formato intermedio. 8. Para ejecutar Simple.exe, escriba simple y presione Enter.El programa mostrar este texto y se cerrar; Se trata de un programa C nativo. 9. Para cerrar la ventana de smbolo del sistema, escriba salir y presione Enter.
Pgina 48
Datos. El primer objetivo de toda computadora es el manejo de la informacin o datos. Estos datos pueden se cifras de ventas de un supermercado o las calificaciones de una clase o informacin asignada por el usuario a un problema especfico. Un dato es la expresin general que describe los objetos con los cuales opera una computadora. Existen dos clases de tipos de datos, datos simples (sin estructura) y compuestos (estructurados). Los datos simples significan que no estn compuestos de otra estructura de datos, los ms usado son: enteros, reales, carcter (char) y los de tipo lgico (boolean). Los datos estructurados no tienen limitaciones o restricciones en el tamao de memoria ocupada que son propias de las estructuras estticas. Los ms comunes son: array (vector/matriz), registro, archivo (fichero), conjunto, cadena (string).
Tipos de Datos. Al declarar variables se necesita indicar cul es el tipo de datos de las variables, los tipos bsicos permitidos por el lenguaje c++son los que se muestran en la siguiente tabla:
Pgina 49
El tipo entero es un subconjunto finito de los nmeros enteros. Los nmeros enteros son nmeros completos, no tienen componentes fraccionarios o decimales y pueden ser positivos o negativos. Ejemplo de nmeros enteros: 5 -15 20 1340 6 4 17 100
En aplicaciones cientficas se requiere una presentacin especial para manejar nmeros, es ah donde entra la representacin en coma flotante es una generalizacin de notacin cientfica. Un ejemplo seria: representacin de notacin exponencial. En estas expresiones se consideran la mantisa (parte decimal) al nmero real y el exponente (parte potencial) el de la potencia de diez. Tipos lgicos (booleanos) El tipo lgico tambin llamado booleano, es aquel dato que solo puede tomar uno de los dos valore:
Cierto o verdadero (true) y falso (false)
Este tipo de datos se utiliza para representar las alternativas (si/no) a determinadas condiciones, por ejemplo, cuando se pide si un valor entero es par, la respuesta ser verdadera o falsa, segn sea par o impar.
Pgina 50
El tipo cadena (string) de caracteres es una sucesin de caracteres que se encuentran delimitados por una comilla (apstrofo)o dobles comillas, segn el tipo de lenguaje de programacin. La longitud de una cadena de caracteres es el nmero de ellos comprendidos entre los separados o limitadores. Aqu los siguientes ejemplo: 'Hola Mortimer', ''8 de octubre de 2010'', 'Sr. Mckenna'. En la siguiente grafica observemos pues el resumen de la clasificacin de los tipos de datos: Datos
Numricos
Carcter
Lgico
Entero
Real
Pgina 51
Secuencias de escape. En el caso de los caracteres, hay que tener en cuenta que hay una serie de caracteres que son especiales. Por ejemplo como almacenamos en una variable char el smbolo de la comilla simple, si la propia comilla simple sirve para delimitar, es decir:
Eso no se puede hacer ya que el compilador entiende que hay una mala delimitacin de caracteres. Para resolver este y otros problemas se usan los caracteres de escape, que representan caracteres especiales. Todo comienza con el signo '\' (backslash) seguido de una letra minscula.
Constantes. Las constantes son objetos cuyo valor permanece por siempre a lo largo de la ejecucin de un programa. Una contante es la denominada de un valor concreto, de tal forma que se utiliza su nombre cada vez que se necesita referenciarlo. Por ejemplo, si se desea obtener un reporte para cada uno de los empleados de una empresa, con sus datos generales, la fecha y cantidad de dinero que recibieron la ltima semana, el dato fecha puede ser una contante ya que la fecha es la misma para todos. La mayora de los lenguajes de programacin permiten diferentes tipos de constantes, que suelen ser las siguientes: enteras, reales, caracteres y lgicas, y representan datos de ese tipo.
Identificadores. Son las palabras creadas por los programadores para darle nombre a los objetos y dems elementos que necesitamos declarar en un programa como son las variables, constantes, tipos, estructura de datos, archivos, subprogramas, etc. Un identificador no puede ser igual a una palabra reservada, y no debe tener el mismo nombre que una funcin, ya sea definida por el usuario o de las bibliotecas propias del programa. Variables.
Prototipo Didctico de Fundamentos de Programacin Pgina 53
Parmetros o argumentos. Los parmetros o argumentos son un mecanismo para pasar datos del programa principal a un procedimiento y viceversa. Los parmetros de la llamada para ejecutar la rutina se llaman parmetros reales, mientras que los parmetros en la declaracin de rutina se llaman parmetros formales. A continuacin se muestra un ejemplo de programacin con un procedimiento que tiene un parmetro.
Pgina 54
Los parmetros pueden ser de cualquier tipo predefinido o ya declarado en la definicin de tipos, incluso pueden ser funciones o procedimientos. Asimismo pueden existir parmetros formales de distintas clases. Los parmetros formales se clasifican en: Parmetros formales por Valor (o de entrada). Parmetros formalesVariables (o de entrada/salida). Parmetros formales Variables sin Tipo.
Parmetros formales por Valor (o de entrada). Los parmetros formales por valor permiten la introduccin de informacin en el procedimiento. A continuacin un ejemplo.
Los vales son introducidos en la llamada a la subrutina mediante el parmetro real que puede ser una constante, una variable o una expresin con un valor determinado. Al empezar a ejecutarse la subrutina se reserva espacio en la memoria para el parmetro formal al que, en un principio, se le asigna el mismo valor que el parmetro real. Posteriormente los valores que vayan tomando durante la ejecucin de la subrutina, el parmetro real y formal sern independientes. Una vez terminada de ejecutar la subrutina se dejara libre de uso el espacio de memoria correspondiente al parmetro formal. Ejemplo de un programa que incluye un procedimiento con un parmetro formal por valor:
Prototipo Didctico de Fundamentos de Programacin Pgina 55
Parmetros formales Variables (o de entrada/salida). Los parmetros formales variables permiten la introduccin y obtencin o salida de informacin en el procedimiento.
Pgina 56
En este caso la informacin que pasamos no es un valor del parmetro real sino la direccin de memoria en la que se almacena el valor del parmetro real. Este espacio de la memoria es compartido con el parmetro formal durante la ejecucin del procedimiento. Es decir, cualquier cambio en el parmetro formal afectara al real y viceversa, de forma que el valor final del parmetro formal en la subrutina lo conserva el parmetro real al terminar de ejecutarse la subrutina. Los parmetros reales que corresponden a parmetros variables (nunca constantes ni expresiones) que pueden tener o no un valor al hacer la llamada a la subrutina. Por ejemplo, los parmetros variables se pueden utilizar para asignar un valor por primera vez a variables globales (inicializacin de variables).
Parmetros formales Variables sin Tipo. Los parmetros formales variables sin tipo tambin permita la introduccin y obtencin o salida de informacin en el procedimiento.
Los procedimientos que declaran este tipo de parmetros formales se llaman de forma similar a los anteriores, pero pueden emplear parmetros reales de cualquier tipo, de forma que los parmetros formales asumen los tipos correspondientes de aquellos. Un ejemplo de procedimiento con parmetros formales de diversos tipos es el siguiente.
Donde a y b son parmetros por valor; c, d y e son parmetros variables y f y g son parmetro variables sin tipo.
Pgina 57
Operadores Aritmticos: Los operadores aritmticos permiten la realizacin de operaciones matemticas con los valores (variables y constantes).Los operadores aritmticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real. Suma Resta Multiplicacin Divisin Modulo (residuo de la divisin entera).
+ * / Mod
Ejemplos:
Pgina 58
Los operadores en una misma expresin con igual nivel de prioridad se evalan de izquierda a derecha. Ejemplo a continuacin.
Operadores Relacionales. Se utilizan para establecer una relacin entre dos valores. Compara esto valores entre si y esta comparacin produce un resultado de certeza o falsedad (verdadero o falso). Los operadores relacionales comparan valores del mismo tipo (numricos o cadenas). Tiene el mismo nivel de prioridad en su evaluacin. Los operadores relacionales tienen menor prioridad que los aritmticos.
Pgina 59
Ejemplos no lgicos.
Operadores Lgicos. Estos operadores se utilizan para establecer relaciones entre valores lgicos. Se refiere a que sirven para plantear condiciones o comparaciones y dan como resultado un valor booleano verdadero y falso, es decir se cumple o no se cumple. Estos valores pueden ser resultado de una expresin relacional.
Pgina 60
Ejemplo:
Pgina 61
Pgina 62
As, por ejemplo: Leer (A, B, C) Representa la lectura de tres valores de entrada que se asignan a la variable A, B y C. Escribir ('hola Abimael') Visualiza en la pantalla o monitor mensaje 'hola Abimael'. - o escribir en el dispositivo de salida - el
Leer en ingls es read y escribir en ingls es write o bien print, como suelen traerlos lo diferentes lenguajes de programacin.
Como cada lenguaje de programacin tiene unas reglas especiales (sintaxis) debe existir un compilador especfico para cada lenguaje de programacin.
Pgina 63
Pgina 64
Se caracteriza por que una accin se ejecuta de tras de la otra (la instruccin sigue a otra en secuencia). Dentro de este tipo podemos encontrar operaciones de inicio/fin, inicializacin de variables, operaciones de asignacin, calculo, sumarizacin, etc. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el final del proceso. A continuacin figura 4.a que representa una estructura secuencial.
La estructura secuencial tiene una entra y una salida, su representacin grfica se muestra en la figura 4.b y 4.c.
Pgina 65
Ejemplos usando la estructura secuencial. Ejemplo 4.1. Calculo de la suma y producto de dos nmeros. La suma S de dos nmeros es S = A + B. El pseudocdigo y el diagrama de flujo correspondiente se muestran a continuacin.
Pgina 66
inicio leer (A) leer (B) SA+B PA*B escribir (S, P) fin.
Diagrama de flujo:
Pgina 67
La especificacin formal de algoritmos tiene realmente utilidades cuando el algoritmo requiere una instruccin. Este es el casi cuando existe un numero de posibles alternativas resultantes de la evaluacin de una determinada condicin. Estas estructuras se identifican porque en la fase de solucin de un problema existe algn punto en el cual es necesario establecer una pregunta, para decidir si ciertas acciones deban realizarse o no. Las condiciones se especifican usando expresiones lgicas. La representacin de una estructura selectiva se hace con palabras en pseudocdigo (if - then - else o en espaol si - entonces - sino) y en flujograma (figura geomtrica) en forma de un rombo o bien con un tringulo en el interior de una caja rectangular. Las estructuras selectivas o alternativas son: Simples. Dobles. Mltiples.
Pgina 68
Ejemplo usando estructuras selectivas simples. Construir un algoritmo tal, que dado como dato la calificacin de un alumno en un examen, escriba ''aprobado'' en caso de que esa calificacin fuese mayor que 8. Salidas: mensaje de aprobado si se cumple la condicin. Entradas: calificacin. Datos adicionales: un alumno aprueba si la calificacin es mayor que 8. Variables: Cal = calificacin
Pgina 69
Inicio Leer (Cal) Si Cal > 8 entonces Escribir (''aprobado'') Fin_si Fin
Pseudocdigo
Diagrama de flujo
Diagrama N-S
Pgina 70
Entonces, si una condicin C es verdadera, se ejecuta la accin S1 y si es falsa, se ejecuta la accin S2.
Pgina 71
Inicio Leer (cal) Si cal > 8 entonces Escribir (''aprobado'') Sino Escribir (''reprobado'') Fin_si Fin
Pseudocdigo
Diagrama de flujo
D i a g r a m a N S
Pgina 72
Inicio Leer (sue) Si sue< 100 entonces Nsuesue* 1.15 Sino Nsuesue* 1.12 Fin_si Escribir (Nsue) Fin Pseudocdigo Diagrama N-S
Estructuraselectivamltiple. Con frecuencia es necesario que exista ms de dos elecciones posibles. Esto situacin se resuelve usando la estructura selectiva mltiple, as te evitaras una serie de problemas de escritura y de legibilidad. Usando la estructura de decisin mltiple se evaluara una expresin que podr tomar '' n '' valores distintos, 1, 2, 3, ., n y segn que elija uno de estos valores en la condicin, se realizara una de las '' n '' o lo que es igual, el flujo del algoritmo seguir slo un determinado camino entre las '' n '' posibles. Esta estructura se representa por un selector el cual si tomael valor 1 ejecutara la accin 1, si toma el valor 2 ejecutara la accin 2, si toma el valor N realizara la accin N.
Pgina 73
Ejemplos con la estructura selectiva mltiple. Ejemplo 1. Disear un algoritmo tal que dado como dato dos variables de tipo entero, obtengan el resultado de la siguiente funcin.
Pseudocdigo
Diagrama de flujo
Pgina 74
Diagrama N-S
Son operaciones que se deben ejecutar un nmero repetido de veces. El conjunto de instrucciones que se ejecutan repetidamente cierto nmero de veces, se llama ciclo, bucle o lazo. Iteracin significa cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle. Fases de un programa cclico: 1. 2. 3. 4. Entrada de datos e instrucciones previas. Lazo o bucle. Instrucciones finales o reto del proceso. Salida de resultado.
A continuacin un ejemplo de bucle infinito. En este diagrama de flujo, el bucle se estar repitiendo indefinidamente ya que no existe ninguna condicin que nos permita finalizar en algn momento.
Pgina 75
A continuacin un ejemplo de un bucle finito. Es este ejemplo, el bucle finalizara cuando se cumpla la condicin de que N sea igual a cero. Esto quiere decir, que existe una condicin que nos permitir en algn momento finalizar.
Pgina 77
Representacin grafica
Representacin pseudocodificada
Ejemplo con la estructura iterativa repetir. Calcular la suma de los cuadros de los primeros 100 nmeros enteros y escribe el resultado. Solucin: las reglas para la construccin de esta estructura usando repetir, nos dice que debemos declarar una variable contador que debe inicializarse antes del ciclo e incrementarse dentro del ciclo. La condicin estar colocada al final del bucle, para que primero ejecutemos la instruccin y luego preguntamos si la condicin se cumple. Esto quiere decir, que en esta estructura el bucle se realizara por lo menos una vez; tambin observaremos que la condicin est al revs, porque el bucle se repite hasta que la condicin se cumpla.
Prototipo Didctico de Fundamentos de Programacin Pgina 78
Pseudocdigo
Diagrama N-S
Diagrama de flujo
Pgina 79
Representacin grafica
Observemos el diagrama de flujo, que se necesita una variable contadora (un ndice), para llevar la cuenta de las veces que entramos al cuerpo del ciclo. Tambin es importante notar que esta variable se inicializa antes de entra al cuerpo del ciclo, y dentro del cuerpo se incrementa en una cantidad constante, por lo general en uno. Esta variable a la vez, nos sirve para compararla con el valor dado en la condicin. Cuando se cumple la condicin, se sale del ciclo.
Prototipo Didctico de Fundamentos de Programacin Pgina 80
Representacin pseudocodificada
Ejemplo con la estructura mientras. Calcular la suma de los cuadrados de los primeros 100 nmeros enteros y escribir el resultado.
Diagrama N-S
Pseudocdigo
Pgina 81
Diagrama de flujo
Estructura iterativa desde/hasta. Se usa frecuentemente cuando se conoce de antemano el nmero de veces que se ejecutarn las acciones de un bucle. Enseguida se muestra una de sus caractersticas, en su representacin grfica.
Pgina 82
Espaol Desde var = valor inicial hasta valor final hacer Acciones Fin_desde
La estructura desde/hasta se le conoce como repetitiva, para usar esta estructura en algoritmos debemos hacer uso de contadores y de algunas veces de acumuladores, cuyo breve concepto daremos a continuacin. Contador: es una variable cuyo valor aumenta o disminuye en una cantidad constante cada vez que se produce un determinado suceso o accin. Los contadores se utilizan con la finalidad de contar acciones internas del bucle; deben realizar una operacin de inicializacin y posteriormente las sucesivas de incremento o decremento del mismo. La inicializacin consiste en asignarle al contador un valor. Se situar antes y fuera del bucle. A continuacin su representacin pseudocodificada:
<nombre> nombre del contador > + <valor constante> Si en vez de incremento es decremento se coloca un menos en lugar del ms. Ejemplo: i = i + 1
Pgina 83
Ejemplo con la estructura iterativa desde/hasta: Calcular la suma de los cuadrados de los primeros 100 enteros y escribir el resultado.
Pseudocdigo Inicio Suma Desde I = 1 hasta 100 hacer Suma suma + I * I Fin_desde Escriba (suma) Fin
Diagrama de flujo
Pgina 84
Una funcin es un subprograma que recibe, como argumentos o parmetros, datos de tipo numrico o no numrico, y devuelve un nico resultado.Las funciones incorporadas al sistema se denominan funciones internas, o intrnsecas; las funciones definidas por el usuario se llaman funciones externas. El algoritmo o programa invoca la funcin con el nombre de esta ltima en una expresin seguida de una lista de argumentos que deben coincidir en cantidad, tipo y orden con los de la funcin que fue definida. A continuacin explicaremos como se hace la declaracin de funciones: En primer lugar, la cabecera, en la que hay que indicar el tipo del valor que devuelve la funcin. Por este motivo la llamada a una funcin debe ir incluida adecuadamente en una expresin. El tipo de dato que devuelve una funcin puede ser ordinal, real, cadena o puntero. En segundo lugar, en el cuerpo de la funcin hay que indicar mediante una sentencia de asignacin el valor que debe devolver la funcin. El primer trmino de esta sentencia de asignacin es el identificador de la funcin y el segundo trmino, una constante, variable o expresin compatible con el tipo de dato que devuelva la funcin. Aparte de esto, todo lo dicho anteriormente para los procedimientos sirve para las funciones. A continuacin el esquema de declaracin de una funcin:
La invocacin o llamada de una funcin ya la hemos estudiado en el captulo 2.4 de este prototipo didctico, al igual que la declaracin de una funcin por eso seremos honestos al afirmar que ya hemos estudiado estos temas.
Pgina 85
Pgina 86
Un arreglo (array) es una coleccin de datos del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre comn. Para referirse a un determinado elemento de un array se deber utilizar un ndice, que especifique su posicin relativa en el array. Un arreglo es una coleccin finita, homognea y ordenada de elementos. Finita: Todo arreglo tiene un lmite; es decir, debe determinarse cul ser el nmero mximo de elementos que podrn formar parte del arreglo. Homognea: Todos los elementos del arreglo deben ser del mismo tipo. Ordenada: Se puede determinar cul es el primer elemento, el segundo, el tercero y as sucesivamente. Los arreglos se clasifican de acuerdo con el nmero de dimensiones que tienen. As se tienen los: - Unidimensionales (vectores). - Bidimensionales (tablas o matrices). - Multidimensionales (tres o ms dimensiones).
Representaciones grafica
Pgina 87
Representacin grafica
Un array unidimensional, o lineal, o vector, es un conjunto finito y ordenado de elementos homogneos. Es finito porque tiene un nmero determinado de elementos. Homogneo porque todos los elementos almacenados van a ser del mismo tipo. Ordenado porque vamos a poder acceder a cada elemento del array de manera independiente porque va a haber una forma de referenciar cada elemento. Para referenciar cada elemento de un array vamos a usar ndices (valor que directa o indirectamente referencia la posicin del array). Los ndices tienen que ser de cualquier tipo de datos escalar (entre los que se puede definir un orden, y que entre 2 elementos consecutivos no puede haber infinitos elementos), aunque normalmente como ndices se van a utilizar nmeros enteros. Para referenciar un elemento de un array usaremos el nombre del array y entre corchetes [ ] el ndice que determina la posicin de ese elemento en el array. El rango o longitud de un vector o array lineal es la diferencia entre el ndice de valor mximo y el ndice de valor mnimo de ese array + 1. Normalmente los ndices comienzan a enumerarse, es decir, el valor mnimo del ndice es 0 1, dependiendo del lenguaje (en Pascal con 1 y en C con 0). Sin embargo nadie impide que comiencen en cualquier otro valor. Los arrays se almacenan siempre en posiciones consecutivas de memoria y podemos acceder a cada elemento del array de manera independiente a travs de
Prototipo Didctico de Fundamentos de Programacin Pgina 88
Operaciones y aplicaciones con arreglos unidimensionales o vectores. 1. Asignacin de un dato a una posicin concreta del array: <nom_array>[indice] valor
Ventas [3] 800000 2. Lectura y escritura de datos: leer<nom_array>[indice] escribir<nom_array>[indice] desde i=1 hasta 12 escribir Introduce las ventas del mesi leer ventas [i]
Prototipo Didctico de Fundamentos de Programacin Pgina 89
Pgina 90
Borrar J. Suponiendo que el nmero de elementos validos actualmente es N y que quiero borrar el elemento de la posicin K. Desde i=K hasta N1 A[I] A[I+1] Fin desde Para indicar que el nmero de elementos validos es N, podramos indicarlo como N N1.
Pgina 91
Arreglo Bidimensional: Es un conjunto de datos homogneo, finito y ordenado, donde se hace referencia a cada elemento por medio de dos ndices. El primero se utiliza para los renglones (filas) y el segundo para las columnas. Tambin puede definirse como un arreglo de arreglos. Internamente en memoria se reservan MxN posiciones consecutivas para almacenar todos los elementos del arreglo. MxN quiere decir: M: es el nmero de filas de la matriz. N: es el nmero de columnas de la matriz.
Arreglo multidimensional: Un arreglo multidimensional es un array de 3 ms dimensiones. Si tenemos un array de N dimensiones, cada dimensin de tamao d1,d2,..,dN, el nmero de elementos del array ser d1*d2*..*dN, y para acceder a un elemento concreto del array utilizaremos N ndices, cada uno de los cuales referenciar a una posicin dentro de una dimensin, siempre segn el orden de declaracin. En memoria, el array se sigue almacenando en posiciones consecutivas. La declaracin de un array multidimensional sera: Nom_array: array [LI1..LS1,LI2..LS2,LI3..LS3,LIN..LSN] de tipo Nom_array [I1,I2,I3,IN] LI1 <= I1 <= LS2 LIN <= I2 <= LSN.
Pgina 92
Pgina 95
Conclusiones
El propsito de este trabajo es que el alumno o usuario que tenga o no conocimientos en la computacin, pueda llegar a involucrarse en el inmenso mundo de la programacin, Es decir, se busca encaminar a los alumnos hacia lo que es programacin, para que en un futuro que deseen aprender un determinado lenguaje de programacin tengan las bases necesarias y fundamentales para poder empezar programar. As pues, buscamos empapar al alumno o usuario, de todos los conceptos y herramientas bsicas que lo ayuden desde un inicio a llegar hacer un buen programador.
Pgina 96
Bibliografa
Fundamentos de programacin: Algoritmos y Estructura de datos. Luis Joyanes Aguilar; Primera y Segunda Edicin, McGRAW-HILL. Fundamentos de programacin: Algoritmos, Estructura de datos y Objetos. Luis Joyanes Aguilar; Tercera Edicin, McGRAW-HILL. Introduccin a la programacin: Algoritmos y su implementacin en VB.NET, C#, JAVA y C++. Felipe Ramrez; Segunda Edicin, Alfaomega.
Pgina 97
AGRADECIMIENTOS
Agradezco a DIOS, JESUCRISTO y ESPRITU SANTO, que han esto conmigo en la elaboracin de este prototipo, dndome la sabidura y fuerzas necesarias para seguir adelante. A mis padres Adalberto y Elizabeth, que si no fuera por ellos, yo no hubiera llegado a este nivel de mi vida, como profesionista y como una persona de valores. A mi hermana Evalinda y ta Jisela porque siempre estuve en sus oraciones y su amor estuvo conmigo. A mi familia Lpez Cerqueda y Cruz Glvez, porque han estado conmigo en todo los momento de mi vida. A la Lic. Sayonara Orozco lvarez por el gran apoyo que me dio para poder desarrollar este prototipo didctico y por todo el tiempo que me dedico para que este proyecto pudiera llegar al xito. Y todas aquellas personas que me apoyaron en este lapso de mi vida.
Pgina 98