Apuntes.fundamentos de Programacion | Programa de computadora | Lenguaje de programación\nсохранитьСохранить «Apuntes.fundamentos de Programacion» для последующего чтения\n357 просмотров98 страниц\nPrototipo Didctico de Fundamentos de Programacin\nIntroduccin Introduccin de cada unidad... Objetivo del Prototipo Didctico...\n1.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.\n8 10 11 13 14 14 15 15 17 17\nUnidad 2 Algoritmos...\n2.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.\nUnidad 3 Introduccin a la programacin..\n3.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...\nUnidad 4 Control de flujo...\n4.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\n65 68 75 85\nUnidad 5 Arreglos............................................................................................................. 87\n5.1 Unidimensionales: conceptos bsicos, operaciones y aplicaciones 5.2 Multidimensionales: conceptos bsicos, operaciones y aplicaciones.\n87 92 Pgina 3\nEl 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.\nIntroduccin de cada unidad\nIntroduccin 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.\nObjetivo del Prototipo Didctico\nIntroducir al estudiante en la programacin con la finalidad de obtener las bases conceptuales para abordar las siguientes unidades temticas. Dar solucin a problemas cotidianos utilizando el razonamiento lgico. Obtener y aplicar herramientas necesarias para disear e implementar soluciones en un lenguaje de programacin, utilizando los conceptos adquiridos. Identificar, comprender, seleccionar e implementar la estructura de control ms adecuada a un problema especfico, as como el diseo de bloques de cdigos reutilizables, dado que es comn encontrar en la prctica problemas cuyas operaciones estn condicionadas o deban ejecutarse un nmero repetido de veces Conocer arreglos para una gran variedad de propsitos que proporcionan un medio conveniente de agrupar variables relacionadas y organizar datos de una manera que puedan ser fcilmente procesados.\nInstituto Tecnolgico del Istmo UNIDAD I CONCEPTOS BASICOS\n1.1 Clasificacin del software de: sistemas y aplicacin.\nSe clasifican como veremos en el mapa conceptual de la pgina 9: Software de sistema Software de aplicacin\nSoftware 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.\nSoftware 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.\nHacen funcionar a la maquina\nDirigen el hardware\nEl sistema operativo. Editores de texto. Compiladores e intrpretes. Programas de utilidad.\nUna aplicacin de procesamiento de texto. Una hoja de clculo. Representaciones visuales. Software que manipulan la mquina.\nSistema operativo Windows Xp Archivos de texto Traductores de lenguaje Microsoft office Word Excel PowerPoint\nConcepto. 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.).\nDescribe cmo resolver un problema\nDe un Maneja Se pueden hacer Datos\nSe construye usando\nSe escribe usando Lenguaje natural Lenguaje de programacin\nInstrucciones Escritos en\n1.3 Lenguaje de Programacin.\nConcepto. 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.\nInstrucciones 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.\nLenguaje mquina. Son aquellos que estn escritos en lenguaje directamente comprensible por la mquina, ya que sus instrucciones son cadenas binarias (0 y 1).\nPrototipo Didctico de Fundamentos de Programacin Pgina 11\nVentaja: no necesita ser traducido Desventaja: casi no lo recomiendan, dificultad y lentitud en la codificacin, poca fiabilidad, y solo se pueden ejecutar en el mismo procesador.\nLenguaje 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.\nLenguaje 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.\nPrototipo Didctico de Fundamentos de Programacin Pgina 12\nEl tiempo de ejecucin de los programas es mucho mayor.\nConcepto. 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.\nInstrucciones 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.\nTipos de instrucciones: Inicio y fin. Asignacin (dar un valor a una variable). Lectura/escritura (introducir o sacar informacin por dispositivos E/S). Instrucciones de bifurcacin (alternan el orden de ejecucin del programa, salto a otra instruccin que no es la siguiente). Bifurcacin incondicional (el salto se produce siempre y cuando el programa vaya a esa instruccin, GOTO (ir a)). Bifurcacin condicional (se ejecutan un conjunto de instrucciones u otras dependiendo del valor devuelto al evaluar una condicin).\nConcepto. 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).\n1.6 Paradigmas de programacin.\nQu 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.\nConcepto. Conjunto de patrones conceptuales que moldean la forma de resolver y pensar un problema, disear un algoritmo y estructurar un programa. Es decir, va a ser tenido en cuenta el armado del programa. Se le puede entender como un estilo de programacin marcado como un conjunto de criterios para manejar el programa.\nConcepto. 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.\n1.8 Compiladores e Intrpretes.\nCompilador: 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.\nLa compilacin y sus fases:\nPara 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.\nPrograma ejecutable en lenguaje maquina\nInterprete: Es un traductor que toma un programa fuente, lo traduce y a continuacin lo ejecuta.\nTraduccin y ejecucin lnea a lnea\nConcepto. 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).\n1.10 Consola de comandos.\nConcepto. 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.\nPrototipo Didctico de Fundamentos de Programacin Pgina 17\nInstituto Tecnolgico del Istmo UNIDAD 2 ALGORITMOS\n2.1 Anlisis de problemas\nLa 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.\nConstituyen 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.\nCaractersticas de un algoritmo: Un algoritmo debe ser Preciso e indicar el orden que debe seguir cada paso. Un algoritmo debe ser Definido, es decir, si se sigue un algoritmo dos veces, se debe obtener el mismo resultado. Un algoritmo debe ser Finito, es decir, si se sigue el algoritmo se debe de terminar en algn momento. La primera fase de la resolucin de un problema con computadora, esta fase requiere una clara solucin, donde entendamos exactamente lo que debe hacer el programa, el cual nos d el resultado deseado.\nIdentificar los datos de salida (resultado)\nLos 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.\nEjemplo de los elementos (entrada, proceso y salida). El clculo del rea de un rectngulo se puede dividir en: Entrada de datos (altura, base).\nPrototipo Didctico de Fundamentos de Programacin Pgina 19\nProceso: clculo del rea (= base x altura). Salida de datos (base, altura, rea).\nDiseo 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.\nEjemplo de diseo descendente y refinamiento paso a paso, basndonos en el problema de calcular el rea de un rectngulo.\nProblema de clculo de rea de un rectngulo\nAREA = Entrada ALTURA Entrada BASE BASE x ALTURA Salida ALTURA\n2.2 Representacin de algoritmos: grficas y pseudocdigos.\nPara 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.\nUn 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\nConector dentro de pgina, representa la continuidad del diagrama dentro de la misma pgina y sirve para enlazar dos partes cualesquiera de un ordinograma.\nConector fuera de pgina, representa la continuidad del diagrama en otra pgina.\nDecisin mltiple, dependiendo del resultado de la comparacin se seguir uno de los diferentes caminos.\nLneas de flujo o direccin, indica la secuencia en que se realizan las operaciones.\nLnea conectora, sirve de unin entre dos smbolos.\nTeclado, se utiliza en ocasiones en lugar del smbolo E/S.\nComentarios, se utilizan para aadir comentarios clasificadores a otros smbolos de diagrama de flujo.\nEl Pseudocdigo describe un algoritmo utilizando una mezcla de frases en lenguaje comn, instrucciones de programacin y palabras claves que definen las estructuras bsicas. Su objetivo es permitir que el programador se centre en los aspectos lgicos de la solucin de un problema. En otras palabras un pseudocdigo es aquel que sigue un proceso de ejecucin comn y lgico describiendo textualmente paso a paso cada una de las tareas a realizar dentro de una actividad determinada. Ejemplo de un pseudocdigo comn para asistir a clases. 1. Levantarse. 2. Baarse. 3. Vestirse. 4. Desayunar. 5. Cepillarse los dientes. 6. Salir de casa. 7. Tomar el autobs. 8. Llegar a la Universidad. 9. Buscar el aula. 10. Ubicarse en un asiento.\nEl 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.\nleer nombre, hora, precio Calcular salario hora * precio calcular impuesto 0.25 * salario calcular neto salario impuestos escribir nombre, salario, impuestos, neto\nPrototipo Didctico de Fundamentos de Programacin Pgina 24\nnombre del algoritmo accin 1 accin 2 accion3 fin Otro ejemplo es la representacin de la estructura condicional como vemos a continuacin.\nLos 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.\n2.3 Diseo de algoritmos aplicados a problemas.\nEjemplos 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.\nEntradas: salarios de los empleados Salidas: sueldos finales. Datos adicionales: aumentos del 10, 12 y 15 %. Clculos: Sueldo final = sueldo inicial + aumento Aumento = sueldo inicial * porcentaje/100 Definicin de variables: Sf1, Sf2, Sf3 = los sueldos finales S1, S2, S3 = salarios de los empleados Aum1, Aum2, Aum3 = aumentos\nAlgoritmo 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\nAlgoritmo en diagrama de flujo.\nAum1 S1 * 0.10\nAum2 S2 * 0.12\nAum3 S3 * 0.15\nSf1 S1 + Aum1\nSf2 S2 + Aum2\nSf3 S3 + Aum3\nEscribir (SF1, SF2, SF3)\nAlgoritmo Diagrama N-S.\nInicio Leer S1, S2, S3 Aum1 S1 * 0.10 Aum2 S2 * 0.12 Aum3 S3 * 0.15 Sf1 S1 + Aum1 Sf2 S2 + Aum2\nPrototipo Didctico de Fundamentos de Programacin Pgina 27\nSf3 S3 + Aum3 Escribir (SF1, SF2, SF3) Fin\n2.4 Diseo algortmico de funciones.\nLa 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.\nLos 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.\nPrograma principal Algoritmo principal\nSe dice que el programa principal invoca al subprograma, el subprograma realiza la tarea y luego devuelve el control (resultado) al programa principal.\nPrograma Llamada 1 Retorno1 Llamada 2 Retorno 2\nUn subprograma puede llamar a su vez a sus propios subprogramas.\nPrograma o programa principal Subprograma 1 Subprograma 1.1\nFunciones. 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:\nOtro ejemplo puede ser la definicin de la funcin trigonomtrica, cuyo valor es:\ndondesen(x) y cos(x) son las funciones seno coseno (normalmente funciones internas). La declaracin de la funcin es:\nObserve 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.\nPrototipo Didctico de Fundamentos de Programacin Pgina 31\nInvocacin a las funciones. Una funcin puede ser llamada de la siguiente forma:\nCada 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).\nabs (n) es la funcin valor absoluto de n a fin de considerar exponentes positivos y negativos.\nProcedimientos (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.\nEl procedimiento se llama mediante la instruccin:\nLa palabra llamar_a (call) es opcional y su existencia depende del lenguaje de programacin.\nmbito: 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.\nComunicacin 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:\nY la llamada al subprograma con: llamar_a nombre (A1, A2, , An) donde F1,F2, .., Fn son los parmetros y A1,A2, , An los parmetros actuales o reales. La clase de parmetro es: (E) Entrada (S) Salida (E/S) Entrada/Salida Existen 2 mtodos para establecer la correspondencia de parmetros: 1. Correspondencia posicional. La correspondencia se establece aparejando los parmetros reales y formales segn su posicin en la lista: as, Fi se corresponde con Ai, donde i = 1, 2, , n.. Este mtodo tiene algunas desventajas de legibilidad cuando el nmero de parmetros es grande. 2. Correspondencia por el nombre explcito. Tambin llamado mtodo de paso de parmetros por nombre, en este mtodo, en las llamadas se indican explcitamente la correspondencia entre los parmetros reales y formales; este mtodo se utiliza en Ada. Un ejemplo seria: SUB (Y = B, X = 30) ; Que hace corresponder el parmetro actual B con el formal Y, y el parmetro actual 30 con el formal X durante la llamada de SUB.\nPaso 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.\nEjempl de paso por valor: El mecanismo de paso se resume as: Valor primer parmetro: A = 5. Valor segundo parmetro: constante = 18. Valor tercer parmetro: expresin B * 3 + 4 = 25. Los valores 5, 18, 25 se transforman en los parmetros X, Y, Z, respectivamente, cuando se ejecuta el procedimiento. La llamada por valor no devuelve informacin al programa que llama.\nPaso 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.\nLa 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.\nInstituto Tecnolgico del Istmo UNIDAD 3 INTRODUCCIN A LA PROGRAMACIN\n3.1 Caractersticas del lenguaje de programacin.\nUna 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.\nPOR 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.\nPOR QU ES IMPORTANTE EL ESTUDIO DE DIFERENTES LENGUAJES O PARADIGMAS CUANDO AL FINAL SLO TRABAJAS CON UNOS POCOS?\nPrototipo Didctico de Fundamentos de Programacin Pgina 38\nHay muchas razones que justifican su estudio, entre las cuales las ms importantes son: Mejora el uso de lenguaje de programacin: si se conoce como estn implementadas las caractersticas en un lenguaje de programacin, se mejorar la habilidad para escribir programas eficientes. Incrementa el vocabulario de los elementos de programacin. Permite una mejor eleccin del lenguaje de programacin: el conocimiento de diversos lenguajes de programacin facilitan la eleccin del lenguaje ms adecuado para un proyecto determinado. Mejora la habilidad para desarrollar programas efectivos y eficientes: muchos lenguajes proporcionan caractersticas que, cuando se utilizan correctamente, aporta grandes beneficios a la programacin, cuando se utiliza de una manera incorrecta, puede ocasionar un gran costo computacional. Facilita el aprendizaje de un nuevo lenguaje de programacin: cuando se conoce las estructuras, tcnicas de implementacin y construccin de un lenguaje, es ms sencillo aprender otros lenguajes de programacin que tengan estructuras similares. Facilita el diseo de nuevos lenguajes de programacin: es posible que en el futuro tengamos que disear un lenguaje que se adapte a nuestras necesidades. Mientras ms lenguajes y paradigmas conozcamos, ms simple resultara el diseo y la implementacin.\nCARACTERSTICAS 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.\nTODOS LOS LENGUAJES DE PROGRAMACIN PERMITEN COMBINAR IDEAS SIMPLES EN IDEAS MS COMPLEJAS MEDIANTE LOS SIGUIENTES TRES MECANISMOS: Expresiones primitivas, que representan las entidades ms simples del lenguaje. Mecanismos de combinacin,con los que se construyen elementos compuestos a partir de elementos ms simples. Mecanismos de abstraccin, con los que dar nombre a los elementos compuestos y manipularlos como unidades.\nOTRAS 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.\nTcnica. 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\ndebe hacer el programa antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace. Claridad. Es muy importante que el programa sea lo ms claro y legible posible, para facilitar as su desarrollo y posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, as como cuidar el estilo en la edicin; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de creacin como en las fases posteriores de correccin de errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo cual la claridad es an ms necesaria para que otros programadores puedan continuar el trabajo fcilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar secciones de cdigo. Otros, por diversin o para impedir un anlisis cmodo a otros programadores, recurren al uso de cdigo ofuscado. Eficiencia. Se trata de que el programa, adems de realizar aquello para lo que fue creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita, pero hay otros recursos que tambin pueden ser de consideracin al obtener la eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza, trfico de red que genera, etc.). Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquella en la que se elabor. La portabilidad es una caracterstica muy deseable para un programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para sistemas GNU/Linux ejecutarse tambin en la familia de sistemas operativos Windows. Esto permite que el programa pueda llegar a ms usuarios ms fcilmente.\n3.2 Estructura bsica de un programa.\nComo 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.\nPRINCIPIO GENERAL. Un cargador:todo programa necesita ser cargado en la memoria por el sistema operativo. De esto se encarga el intrprete. Definicin de los datos: la mayora de los programas operan con datos y por lo tanto en el cdigo fuente debemos definir qu tipo de datos vamos a utilizar en el programa. Esto se realiza de manera diferente en los distintos lenguajes. Todos los lenguajes que usaremos tienen la posibilidad de crear una nueva definicin de datos simplemente al utilizar los datos. Veremos esto en la prxima seccin. Instrucciones:son la parte central del programa. Las instrucciones manipulan los datos que hemos definido, realizan clculos, muestran los resultados, etc.\nLA 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.\nProgramas 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.\n3.3 Traduccin de un programa: compilacin, enlace de un programa, errores en tiempo de compilacin.\nPara elaborar un programa debemos tomar en cuenta las dos siguientes fases: Fase de compilacin, montaje o enlace (link). Fase de ejecucin de un programa.\nFase 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.\nErrores 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\ncometidos con anterioridad. Con este tipo de errores no se puede obtener un programa objeto y por lo tanto tampoco el ejecutable. Advertencias y avisos (warnings).Indican que hay lneas de cdigo sospechosas que a pesar de no infringir ninguna regla sintctica, el compilador las encuentra susceptibles de provocar un error. Cuando se detecta un warning la compilacin no se detiene. Si en un programa fuente slo se detectan warnings, se podr obtener un programa objeto, que tras el linkado dar lugar a un programa ejecutable.\n3.4 Ejecucin de un programa.\nGeneracin 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.\nPasos 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.\n4. Si no hay errores se obtendr el cdigo fuente y el enlazador construir el archivo ejecutable. 5. Una vez obtenido el archivo ejecutable, ser el sistema operativo el encargado de colocar el programa en la memoria central y ejecutarlo. 6. Comprobar el funcionamiento del programa. 7. Si se detecta errores o un mal funcionamiento del programa, activar el depurador para trazar el programa y ejecutarlo sentencia a sentencia. 8. Una vez que hayamos encontrado la causa del error, volvemos al editor y lo corregimos. 9. El proceso de compilar, enlazar y ejecutar el programa, lo repetiremos hasta que no se produzcan ms errores.\nFases 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.\nEjecutar 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.\nPrototipo Didctico de Fundamentos de Programacin Pgina 46\nUn ltimo punto: los programas de este tema son basados en consola, no en ventana. Es decir, se ejecutan en una sesin de lnea de comandos. C++ es completamente compatible con la programacin de Windows. De hecho, es el lenguaje ms comnmente usado para el desarrollo de Windows. Sin embargo, ninguno de los programas en este tema utilizara la interfaz de usuario grfica (GUI) de Windows. La razn de esto es fcil de entender: los programas de Windows son, por su naturaleza, grande y complejo. La sobrecarga necesaria para crear incluso un mnimo esqueltico programa de Windows es de 50 a 70 lneas de cdigo. Para escribir programas de Windows que muestran las caractersticas de C++ requerira cientos de lneas de cdigo. En contraste, los programas basados en la consola son mucho ms cortos y son el tipo de programas que se utiliza normalmente para ensear programacin. Una vez que haya dominado C++, usted podr aplicar su conocimiento a la programacin de Windows sin ningn problema. Para crear un archivo de origen de C y compilarlo en la lnea de comandosVisual C++ 2008 incluye un compilador de C que se puede usar para crear cualquier cosa, desde programas de C bsicos hasta aplicaciones basadas en la API de Windows. Puede usar sus propios programas de C en lugar de escribir los se muestran en este tutorial una modo de ejemplo. Tambin puede usar cualquiera de los programas de ejemplo de cdigo de C incluido en el tema. De forma predeterminada, el compilador de Visual C++ trata todos los archivos que finalizan en .c como cdigo fuente de C, y todos los archivos finalizan en .cpp como cdigo fuente de C++. Para hacer que el compilador trate todos los archivos como cdigo fuente de C sin tener en cuenta la extensin del nombre de archivo, utilice la opcin /TC del compilador. Para crear un archivo de origen de C y compilarlo en lnea de comando sigue las siguientes instrucciones: 1. Haga clic en Inicio y escoja Todos los programas, Microsoft Visual Studio 2010 y Herramientas de Visual Studio; terminacin de prrafo, haga clic en Smbolo del sistema de Visual Studio 2010.En funcin de la versin de Windows del equipo y de la configuracin de seguridad del sistema, es posible que deba hacer clic con el botn secundario en Smbolo del sistema de Visual Studio 2008 y una continuacin, hacer clic en Ejecutar como administrador para ejecutar correctamente, la aplicacin se crea lo siguiente.\nPrototipo Didctico de Fundamentos de Programacin Pgina 47\n2. En el smbolo del sistema, escriba notepadsimple.c y presione Catalua.Haga clic en S cuando se le pida que cree un archivo. 3. En el Bloc de notas, escriba las lneas siguientes.\n4. 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.\n7. 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.\n3.5 Elementos del lenguaje: datos, literales y contantes, identificadores, variables, parmetros, operadores, entrada y salida de datos.\nDatos. 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).\nTipos 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:\nHay que tener en cuenta que esos rangos son los clsicos, ya en la prctica los rangos,sobretodo el de los enteros, dependen del computador y procesador empleados. Tiposnumricos. El tipo numrico es el conjunto de los valores numricos. Estos pueden representarse en dos formas distintas: Tipo numrico entero (integer). Tipo numrico real (real)\nEl 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\nEn 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:\nCierto o verdadero (true) y falso (false)\nEste 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.\nTipo carcter y Tipo cadena. El tipo carcter es el conjunto finito y orden de caracteres que la computadora reconoce. Un dato de tipo carcter contiene un solo carcter. Los caracteres que reconocen las diferentes computadoras no son estndar; sin embargo, la mayora reconoce los siguientes caracteres alfabticos y numricos.\nCaracteres alfabticos: (A, B, C, .., Z) (a, b, c, .., z)\nCaracteres numricos: (1, 2, , 9, 0) Caracteres especiales: (+, -, *, /, ^, ., ;,<, >, $, )\nEl 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\nLiterales. Cuando una variable se asigna a valores literales (17, 2.3, etc.) hay que tener en cuenta lo siguiente: Los nmeros se escriben tal cual (17, 34, 39). El separador de decimales es el punto (18.4 se interpreta como 18 coma4). Si un nmero entero se escribe anteponiendo un cero, se entiende que est en notacin octal. Si un nmero entero se escribe anteponiendo el texto 0x (cero equis), se entiende que es un nmero hexadecimal, el nmero 0x10 significa 16. En los nmeros decimales se admiten usar notacin cientfica: 1.23e+23 eso significa . Los caracteres simples van encerrados entre comillas simples, 'a'. Los textos strings van encerrados entre comillas, ''Hola''. Los enteros se pueden almacenar como caracteres 'A'o como enteros cortos, es ms 'A' es lo mismo que 65. Eso vale tanto para el tipo carcter como para el tipo entero.\nSecuencias 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:\nEso 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.\nLos caracteres especiales son:\nPrototipo Didctico de Fundamentos de Programacin Pgina 52\nConstantes. 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.\nIdentificadores. 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.\nPrototipo Didctico de Fundamentos de Programacin Pgina 53\nSon objetos cuyo valor puede ser modificado a lo largo de la ejecucin de un programa. Las variable llevan un nombre llamado identificador, este puede ser una cadena de letras y dgitos, que normalmente empieza con una letra. Si se intenta asignar un valor de un tipo a una variable de otro tipo se producir un error de tipo. Una variable se identifica por los siguientes atributos: nombre que lo asigna y tipo que describe el uso de la variable. Dependiendo del lenguaje de programacin, hay diferentes tipos de variables, tales como enteros, reales, carcter, lgicas y de cadenas.\nParmetros 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.\nLa salida por pantalla tras la ejecucin del programa anterior es la siguiente:\nSi hay varios parmetros formales del mismo tipo, los identificadores se separarn por comas y si son de distintos tipos, con los correspondientes caracteres de punto y coma, como se muestra a continuacin.\nLos 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.\nParmetros formales por Valor (o de entrada). Los parmetros formales por valor permiten la introduccin de informacin en el procedimiento. A continuacin un ejemplo.\nLos 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:\nPrototipo Didctico de Fundamentos de Programacin Pgina 55\nParmetros formales Variables (o de entrada/salida). Los parmetros formales variables permiten la introduccin y obtencin o salida de informacin en el procedimiento.\nEn 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).\nParmetros formales Variables sin Tipo. Los parmetros formales variables sin tipo tambin permita la introduccin y obtencin o salida de informacin en el procedimiento.\nLos 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.\nDonde a y b son parmetros por valor; c, d y e son parmetros variables y f y g son parmetro variables sin tipo.\nOperadores. Operadores: Son elementos que relacionan de forma diferente, los valores de una o ms variables y/o constantes. Es decir, los operadores nos permiten manipular valores.\nOperadores 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).\n7/2 = 3.5 12 Mod 7 = 5 4 + 2 * 5 = 14\nPrioridad de los operadores aritmticos. Todas las expresiones entre parntesis se evalan primero. Las expresiones con parntesis anidados se evalan de adentro as afuera, el parntesis ms interno se evala primero. Dentro de una misma expresin los operadores se evalan en el siguiente orden. 1. ^ exponenciacin. 2. *, / y Mod multiplicacin, divisin y modulo. 3. +, - suma y resta.\nLos operadores en una misma expresin con igual nivel de prioridad se evalan de izquierda a derecha. Ejemplo a continuacin.\nOperadores 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.\nOperadores relacionales > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que <> Diferente = Igual\nA continuacin unos ejemplos.\nEjemplos no lgicos.\nOperadores 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.\nPrioridad de los Operadores Lgicos: 1. NOT 2. AND 3. OR Prioridad de los Operadores en general: 1. 2. 3. 4. 5. () ^ *, /, Mod, Not +, -, And >, <, > =, < =, <>, =, Or\nA continuacin algunos ejemplos.\nEntrada y Salida de Datos (informacin). Las operaciones de entrada permiten leer determinados valores y asignarlos a determinadas variables, esto se conoce como operacin de lectura (read). Los datos de entrada se introducen al procesador mediante los dispositivos fsicos que son: teclado, tarjetas perforadas, unidades de disco, etc. Las salidas pueden aparecer en un dispositivo fsico de salido como: pantalla, impresora, etc. A esta operacin se le denomina escritura (write). En la escritura de algoritmo las acciones de lectura y escritura se representan por los formatos siguientes: Leer (lista de variables de entrada) Escribir (lista de expresiones de salida)\nAs, 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\nLeer en ingls es read y escribir en ingls es write o bien print, como suelen traerlos lo diferentes lenguajes de programacin.\n3.6 Errores en Tiempo de Ejecucin.\nComo cada lenguaje de programacin tiene unas reglas especiales (sintaxis) debe existir un compilador especfico para cada lenguaje de programacin.\nSi 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 en tiempo de ejecucin son los que se producen durante la ejecucin del programa. Son los ms difciles de encontrar, no son detectados por el compilador, ya que son errores de lgica, no de sintaxis.\nEjemplo de un programa que tiene errores de ejecucin.\nInstituto Tecnolgico del Istmo UNIDAD 4 CONTROL DE FLUJO\nSe 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.\nFigura 4.a Estructura secuencial\nLa estructura secuencial tiene una entra y una salida, su representacin grfica se muestra en la figura 4.b y 4.c.\nFigura 4.b pseudocdigo de una estructura secuencial.\nFigura 4.c Diagrama N-S de una estructura secuencial.\nEjemplos 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.\ninicio leer (A) leer (B) SA+B PA*B escribir (S, P) fin.\n4.2 Estructuras selectivas: simple, doble y mltiple.\nLa 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.\nEstructura selectiva simple. Se identifican porque estn compuestos nicamente de una condicin. La estructura si entonces (en ingls, if then) ejecuta la condicin y en tal caso, si la condicin es verdadera, entonces ejecuta la accin Si (o acciones si son varias), y si la condicin es falsa, entonces no hace nada. A continuacin se muestra las representaciones graficas de la estructura condicional simple.\nEstructuras alternativas simples: pseudocdigo, diagrama de flujo, diagrama N-S.\nEjemplo 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\nRepresentacin graficas de los resultados obtenidos del ejemplo antes mencionado.\nInicio Leer (Cal) Si Cal > 8 entonces Escribir (''aprobado'') Fin_si Fin\nEstructura de seleccin doble. Son estructuras lgicas que permiten controlar la ejecucin entre dos opciones o alternativas posibles, por naturaleza de esta estructura se debe ejecutar una o la otra, pero no ambas a la vez, es decir, son mutuamente excluyentes. Representacin en pseudocdigo a continuacin.\nEntonces, si una condicin C es verdadera, se ejecuta la accin S1 y si es falsa, se ejecuta la accin S2.\nEstructura de seleccin doble: representacin en diagrama de flujo.\nEstructura de seleccin doble: representacin en diagrama N-S.\nA continuacin ejemplos con laestructura de seleccin doble. Ejemplo 1. Dado como dato la calificacin de un alumno en un examen, escriba ''aprobado'' si su calificacin es mayor que 8 y ''reprobado'' en caso contrario.\nInicio Leer (cal) Si cal > 8 entonces Escribir (''aprobado'') Sino Escribir (''reprobado'') Fin_si Fin\nD i a g r a m a N S\nEjemplo 2. Dado como dato el sueldo de un trabajador, aplicar un aumento del 15% si sueldo es inferior a $100 y 12% en caso contrario, luego imprimir el nuevo sueldo del trabajador.\nInicio Leer (sue) Si sue< 100 entonces Nsuesue* 1.15 Sino Nsuesue* 1.12 Fin_si Escribir (Nsue) Fin Pseudocdigo Diagrama N-S\nEstructuraselectivamltiple. 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.\nA continuacin una representacin de la estructura selectiva mltiple .\nEjemplos 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.\n4.3 estructuras iterativas: repetir, mientras, desde/hasta.\nSon 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.\nA 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.\nRepresentacin grfica de bucle infinito\nA 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.\nRepresentacin grfica de bucle finito Prototipo Didctico de Fundamentos de Programacin Pgina 76\nBucles repetitivos: A continuacin, se muestran tres diseos de estructuras clnicas: las independientes son cuando los bucles se realizan uno primero hasta que se cumpla la condicin y solo en ese caso se entra al bucle que sigue. Los ciclos anidados, al entrar a una estructura de repeticin, dentro de ella se encuentra otra. La ms interna se termina de realizar y se contina con la externa hasta que la condicin se cumpla. Los bucles cruzados, los cuales no son convenientes de utilizar, se tiene que iniciamos un bucle y no se ha terminado cuando empezamos otro, luego utilizamos estructuras de salto (goto, incluye, requiere) para pasar al bucle externo y se quedan entrelazados.\nVeamos a continuacin grficamente el diseo de estas tres formas cclicas:\nEnseguida vemos el diseo de la estructura en diagrama de flujo.\nEstructura iterativa repetir. Se llama repetir a la estructura algortmica que se ejecuta un nmero definido de veces hasta que la condicin se torna verdadera.\nEjemplo 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.\nPrototipo Didctico de Fundamentos de Programacin Pgina 78\nEstructura iterativa mientras. Se llama mientras a la estructura algortmica que se ejecuta mientras la condicin evaluada resulte verdadera. Se evala la expresin booleana y, si es cierta, se ejecuta la instruccin especificada, llamada el cuerpo del bucle. Entonces se vuelve a evaluar la expresin booleana, y si todava es cierta se ejecuta de nuevo el cuerpo. Este proceso de evaluacin de la expresin booleana y ejecucin del cuerpo se repite mientras la expresin sea cierta, cuando se hace falsa, finaliza la repeticin.\nObservemos 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.\nPrototipo Didctico de Fundamentos de Programacin Pgina 80\nEjemplo con la estructura mientras. Calcular la suma de los cuadrados de los primeros 100 nmeros enteros y escribir el resultado.\nEstructura 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.\nEspaol Desde var = valor inicial hasta valor final hacer Acciones Fin_desde\nIngles Forvar = valor inicial to valor final do Accin End_for\nLa 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:\n<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\nAcumulador o totalizador: es una variable que suma sobre s misma un conjunto de valores, para que de esta manera, se tenga la suma de todo ellos en una solo variable. La diferencia entre un contador y un acumulador es que mientras el primero va aumentado de uno en uno, el acumulador va aumentando en una cantidad variable. A continuacin su representacin pseudocodificada:\n<Nombre del acumulador> <nombre del acumulador> + <valores variables>\nEjemplo con la estructura iterativa desde/hasta: Calcular la suma de los cuadrados de los primeros 100 enteros y escribir el resultado.\nPseudocdigo Inicio Suma Desde I = 1 hasta 100 hacer Suma suma + I * I Fin_desde Escriba (suma) Fin\n4.4 Diseo e implementacin de funciones.\nUna 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:\nLa 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.\nA continuacin ejemplo para cerrar con este tema. Mostramos un ejemplo de la declaracin de una funcin que no tiene declaraciones locales seria:\nInstituto Tecnolgico del Istmo UNIDAD 5 ARREGLOS\n5.1 Unidimensionales: conceptos bsicos, operaciones y aplicaciones.\nUn 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).\nUn 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\nPrototipo Didctico de Fundamentos de Programacin Pgina 88\nlos ndices. Un ndice no tiene por qu ser un valor constante, sino que puede ser tambin una variable o una expresin que al ser evaluada devuelva ese ndice. A la hora de definir un array siempre habr que dar el nombre del array, el rango de sus ndices y el tipo de los datos que contiene, y para hacer esa declaracin, se utiliza la siguiente nomenclatura. <nom_array>: array [LI .. LS] de <tipo> sueldo: array [1 .. 8] de real sueldo: array [1990 .. 1997] de real sueldo  100000 I: entero I 1992 Sueldo [I] Sueldo [I+2]\nOperaciones y aplicaciones con arreglos unidimensionales o vectores. 1. Asignacin de un dato a una posicin concreta del array: <nom_array>[indice] valor\nVentas  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]\nPrototipo Didctico de Fundamentos de Programacin Pgina 89\nfin desde desde i=1 hasta 12 escribir Ventas del mesi=ventas [i] fin desde 3. Recorrido o acceso secuencial de un array: Consiste en pasar por todas las posiciones del array para procesar su informacin. Desde i=1 hasta 12 Ventas [i] ventas [i] + 1000000 Fin desde 4. Actualizacin de un array: 1) Aadir datos: Es un caso especial de la operacin de insercin de un elemento en un array, pero el elemento lo metemos despus de la ltima posicin que contiene informacin vlida en el array. Para que esto se pueda hacer es necesario que si actualmente el array tiene K posiciones de informacin vlida, tenga un tamao de al menos K+1 para que pueda aadir otro elemento a continuacin de K. <nom_array>[K+1] valor 2) Insercin de datos: Consiste en introducir un elemento en el interior de un array para lo cual ser necesario desplazar todos los elementos situados a la derecha del que vamos a insertar una posicin a la derecha con el fin de conservar el orden relativo entre ellos. Para que se pueda insertar un nuevo elemento en el array si ya existen N elementos con informacin en el array, el array tendr que tener un tamao de cmo mnimo N+1 para poder insertar el elemento.\n(G) Siendo K la posicin en la que tengo que insertar el nuevo elemento y N el nmero de elementos vlidos en el array en el momento de la insercin y siempre suponiendo de N+1, el algoritmo de insercin ser: Desde i=N hasta K A[I+1] A[I] Fin desde A[K] valor 3) Borrar datos: Para eliminar un elemento de un array si ese elemento est posicionado al final del array, no hay ningn problema, simplemente si el tamao del array era N, ahora hay que considerar que el tamao del array es N1. Si el elemento a borrar ocupa cualquier otra posicin entonces tendr que desplazar todos los elementos situados a la derecha del que quiero borrar una posicin hacia la izquierda para que el array quede organizado.\nBorrar 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.\n5.2 Multidimensionales: aplicaciones. conceptos bsicos, operaciones y\nArreglo 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.\nArreglo 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.\nInstituto Tecnolgico del Istmo Glosario de trminos\nAnd: Y. Or: O. Not: NO. E/S: Entrada y Salida. Goto: Ir. Read: Leer. Write: Escribir. Open: Abrir. Linker: Enlazador. Byte: Expresin para mencionar una numeracin computacional. 8 bits. Bytecode: Expresin para mencionar una numeracin computacional. CLI: (Command line interface) interfaz de lnea de comando. Busg: Errores. Top Down: Programacin descendente. ANSI: Instituto norteamericano de normalizacin. N-S: Nassi-Schneiderman. SQL: Lenguaje de consulta estructurado. ASCII: (American Standard CodeforInformationInterchange; cdigo estndar americano para intercambio de informacin). Warnings: Advertencia. S.O.: Sistema operativo. C.P.U.: Unidad central de proceso. Is power programming: Es la programacin de alimentacin. Notepad simple.c: Bloc de notas simple.c.\nPrototipo Didctico de Fundamentos de Programacin Pgina 93\nIncludestdio.h: #include comando que ordena al compilador, stdio cabecera estndar E/S del programa C, C++. Printf: Funcin para mostrar una cadena con formato. Simple.c cl: Simple.c.cl. cl.exe: Error en cuestin. Dir: Comando de dos, es un comando usado para mostrar un listado de archivos y directorios. Array: Arreglo. Char: Carcter. Int: Entero. Float: Elemento flotante. Double: Doble. Bool: Lgico. Void: No existencia o no atribucin de un tipo en una variable o declaracin. String: Cadena. Backslash: Barra inclinada o invertida. Beep: Alarma. Var: Variable. Begin: Marcador de bloqueo. For: Palabra clave, iniciar un bucle iterativo. Writeln: Procedimiento, alimenta una nueva lnea, antes de finalizar. End: fin. Fin: fin. Proceduremodi: Procedimiento Mod: Modulo. Print: Instruccin para mandar a imprimir. Voidmain: Indica que no espera ningn valor.\nPrototipo Didctico de Fundamentos de Programacin Pgina 94\nScanf: Representa a una familia de funciones que analizan una entrada de datos con formato y cargan el resultado en los argumentos que se pasan por referencia a dicha funcin o funciones. End_for: Bucle controlado por una variable contador. Program: Programa. Nom_array: Nombre del arreglo. N: Nmero de veces. Update: Actualizar. GUI: (Graphical user interface), Interfaz grafica de usuario. .cpp: Definen el tipo de cdigo que hay escritos en el programa C, C++.\nEl 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.\nFundamentos 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.\nwww.jorgesanchez.net http://www.jorgesanchez.net/programacion/fpr.html http://www.monografias.com/trabajos19/algoritmos/algoritmos.shtml http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo http://www.google.es/#pq=programa+definicion+en+un+mapa+conce ptual&hl=es&cp=37&gs_id=8j&xhr=t&q=mapa+conceptual+fundamen tos+de+programacion&pf=p&sclient=psyab&source=hp&pbx=1&oq=mapa+conceptual+fundamentos+de+pro gra&aq=0w&aqi=qw1&aql=&gs_sm=&gs_upl=&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=88ed 68d63053d00d&biw=1232&bih=581\nAgradezco 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.\nGRACIAS Y QUE DIOS LOS BENDIGA POR SIEMPRE.\nДокументы, похожие на «Apuntes.fundamentos de Programacion»\nДругое от пользователя: Ramiro Sánchez\nLa PÃGina Web Se Llamara\nPaginas Para Ropa\nCurso de programación en lenguaje ensamblador\nElementos de Cinética Química. Gráficos


Actualización Clash of Clans Julio 2016 – TotalGame.es\nInicio / Noticias Videojuegos / Actualización Clash of Clans Julio 2016\nDescubre las nuevas incorporaciones del mes de Julio en Clash of Clans.\nBueno pues en la mañana de hoy hemos sufrido un parón en el cual los chicos de Supercell aprovecharon para actualizar su popular juego de estrategia para dispositivos móviles Clash of Clans.\nEn la actualización del mes de Julio del 2016 se han introducido importantes mejoras pero no tantas como se esperaba a pesar de que sus desarrolladores avisaron de que la actualización de verano no sería muy grande.\nEsto está bien para no romper el equilibro del juego y además tampoco hay que pasarse con tanto cambio con el que nos tienen acostumbrados últimamente y que no alteren el patio pues nos parece bien.\nOtro punto a tener en cuenta es que agosto esta a la vuelta de la esquina y los chicos de Supercell se irán de vacaciones y no tendremos ninguna actualización de contenido hasta su vuelta de vacaciones y estaremos un mes sin nada de actualizaciones.\nEn lo que respecta a la actualización del día hoy deciros que son mejoras para ayuntamientos a nivel 11.\nY es que en lo que respecta a los gigantes podremos subirlos un nivel más de lo que lo teníamos hasta ahora, llegando a un máximo de nivel 7.\nNos costara la investigación para aumentarlos de nivel 7,000,000 de elixir rosa , su resistencia sera de 1100, su daño por segundo 50 y su precio por unidad sera de 3.500 de rosa.\nPero eso no es todo, las torres de arqueras también suben de nivel, uno mas llegando a un máximo de nivel 14. Cabe recordar que es solo para ayuntamientos nivel 11.\nComo veis no faltaron a la verdad cuando dijeron que no sería muy grande la actualización de Julio de 2016 de Clash of Clans y es que para muchos usuarios esta se ha quedado muy corta sabiendo todo lo que hay por delante.\nAsí que hasta aquí hemos llegado, ya solo nos falta saber tu opinión sobre este nuevo contenido.\n¿Qué te parece esta nueva actualización corta o está bien?\n¿Y lo gigantes los sustituirnos por los golen o todavía no?


Boca Juniors y Corinthians empatan a un gol en final de Libertadores\nFacundo Roncaglia anotó el gol para los argentinos, mientras que Romarinho anotó para el equipo brasileño\njue 28 junio 2012 06:55 AM\nCorinthians de Brasil consiguió este miércoles un valioso empate 1-1 en su visita al argentino Boca Juniors en el partido de ida por la final de la Copa Libertadores de América.\nEl equipo argentino se puso en ventaja por intermedio del defensor Facundo Roncaglia a los 73 minutos, y para Corinthians igualó el delantero Romarinho a los 85, pocos minutos después de ingresar en reemplazo de Danilo.\nEl encuentro, con la presencia del astro Diego Maradona, se disputó en el estadio Alberto J. Armando ante 43,000 espectadores y fue dirigido por el árbitro chileno Enrique Osses. La revancha se disputará el 4 de julio en el estadio Pacaembú de Sao Paulo.\nLa clave del partido, que en el primer tiempo careció de opciones de gol, pasó por la capacidad de Boca para intentar quebrar a una férrea defensa brasileña que apenas había recibido tres goles hasta este partido en todo el certamen.\nLa estrategia del técnico Julio César Falcioni fue tratar de hilvanar el juego por el sector derecho de la defensa del Timao, el punto más vulnerable del Corinthians.\nBoca, que disputa su décima final de Copa Libertadores, avisó en el amanecer del partido con un cabezazo del zaguero Rolando Schiavi, que empalmó un tiro libre enviado desde el sector derecho por el talentoso mediocampista Juan Román Riquelme.\nCorinthians, en su primera final de Libertadores, llegó al arco contrario a los 8 minutos con un remate de Paulinho desde afuera del área que el arquero Agustín Orión envió al tiro de esquina con sus manos.\nA medida de que transcurrieron los minutos Boca bajó su producción y permitió el crecimiento del Corinthians en el mediocampo, donde prevaleció el dominio de Alex, Paulinho y Emerson por sobre la marca de Leandro Somoza y Walter Erviti.\nPero a los 31 minutos Boca, más decidido, llegó al área rival en una combinación por izquierda entre Erviti, Riquelme y Clemente Rodríguez, cuyo centro fue rematado defectuosamente por el delantero Pablo Mouche.\nEn otra acción de riesgo de Boca, Riquelme habilitó por derecha a Mouche y el centro alto y cruzado fue rematado de chilena por el delantero uruguayo Santiago Silva, pero la pelota fue despejada por el defensor Alessandro.\nEn el complemento Boca salió decidido a arriesgar y arrinconó contra su área al Corinthians, y después de un tiro de esquina sin consecuencias una combinación entre Erviti y Riquelme terminó con un remate del mediocampista que pasó por arriba del travesaño.\nA los 66 minutos Corinthians llegó al área de Boca con un cabezazo de Liedson -quien en el primer tiempo había reemplazado a Henrique- que pasó por arriba del travesaño tras un centro de Paulinho desde la derecha.\nPero a los 73 minutos llegó el gol de Boca. Un tiro de esquina fue cabeceado por Silva, un defensor despejó el balón sobre la línea de gol con la mano, y Roncaglia convirtió con un remate alto que no pudo despejar Cássio.\nAl verse en desventaja el técnico Tité ordenó a los 82 minutos el ingreso de Romarinho -quien venía de convertirle dos goles a Palmeiras en el torneo local-, y la decisión fue acertada porque el joven delantero puso el empate a los 85 y dejó mudos a los hinchas locales.\nEn el final del partido Boca contó con una posibilidad más. Un centro cruzado de Clemente Rodriguez terminó con un cabezazo de Lucas Viatri, pero el balón pegó en el travesaño.


Entrevista a Manuela Rodríguez Gallego, poeta y autora de "Mujeres: luces y sombras"\nPor JosuéEn Autores, entrevistaPublicado 9 septiembre, 2019 0 Comentario(s)\nV- Cuéntanos un poco más de ti\nR- Nací en 1968, trabajé hasta los 30 años como directora de una empresa, me casé y en 17 años me dediqué solo a mi casa. Me divorcié huyendo de un maltrato de años. Ahora vuelvo a trabajar y escribir de nuevo.\nPara recibir cómodamente en tu casa el libro de Manuela, no dudes en comprar «Mujeres: luces y sombras» en la web de la Editorial viveLibro\nV- ¿Como nace en ti la pasión por la poesía y cuando has decidido a lanzarte a publicar?\nR- Escribo poesía desde que tengo recuerdo, en la juventud escribí incluso para la radio y ahora que soy libre de nuevo decidí publicar mis experiencias.\nV-¿Como surge la idea de “mujeres: luces y sombras”?\nR- Para sacar de mi todo lo que aún me estaba haciendo daño y por solidaridad a las mujeres que no han tenido la suerte de escapar como yo.\nV-¿Que van a encontrar los lectores en este libro?\nR- Dolor, pero también esperanza para escapar de una relación tóxica y dolorosa.\nV- En todo el proceso de escritura ¿Qué ha sido lo más fácil y lo más complicado a la hora de dar forma?\nR- A “mujeres: luces y sombras” Este libro lo tenía dentro fue solo darle forma.\nV-¿Como te decantas por el título para este libro? ¿Barajaste otras opciones?\nR- Se me ocurrió mientras pasaba mis poemas y me pareció el adecuado\nV-¿Quiénes son tus referentes literarios?\nR- Sobre todo Neruda, Lorca y la gallega Rosalía de Castro. Pero mi primer poeta ha sido Becquer.\nV- ¿Que te gusta leer en tus ratos libres?\nR- Mucha novela y poesía a partes iguales.\nV- ¿Qué dices a los lectores para que se lleven a casa “Mujeres: luces y sombras?\nR- Que van a ver el sufrimiento real se muchas mujeres, pero el sabor será agridulce por que el final es de esperanza y fuerza para luchar y salir adelante.