apuntes.fundamentos de programacion

120
Instituto Tecnológico del Istmo Prototipo Didáctico de Fundamentos de Programación Página 1 Prot otip o Didá ctic o de Fund amen

Upload: ramiro-sanchez-cruz

Post on 30-Jul-2015

306 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Introducción…………………………………………………………………………

Prototipo Didáctico de Fundamentos de Programación Página 1

Prototipo Didáctico

de Fundamentos de

Prog

5

6

Page 2: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Introducción de cada unidad……………………………………………………...

Objetivo del Prototipo Didáctico…………………………………………………...

Unidad I

Conceptos básicos…………………………………………………………………

1.1 Clasificación del software de: sistema y aplicación……………………….

1.2 Algoritmo………………………………………………………………………..

1.3 Lenguaje de programación…………………………………………………...

1.4 Programa………………………………………………………………………..

1.5 Programación…………………………………………………………………..

1.6 Paradigmas de programación………………………………………………..

1.7 Editores de texto………………………………………………………………..

1.8 Compiladores e Intérpretes…………………………………………………...

1.9 Ejecutables……………………………………………………………………..

1.10 Consola de línea de comandos…………………………………………….

Unidad 2

Algoritmos…………………………………………………………………………...

2.1 Análisis del problema………………………………………………………….

2.2 Representación de algoritmos: gráfica y pseudocódigo…………………..

2.3 Diseño de algoritmos aplicados a problemas……………………………....

2.4 Diseño algorítmico de funciones…………………………………………….

Unidad 3

Prototipo Didáctico de Fundamentos de Programación Página 2

Prototipo Didáctico

de Fundamentos de

Prog

7

8

8

10

11

13

14

14

15

15

17

17

21

18

18

28

25

Page 3: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Introducción a la programación…………………………………………………..

3.1 Características del lenguaje de programación……………………………..

3.2 Estructura básica de un programa…………………………………………...

3.3 Traducción de un programa: compilación, enlace de un programa,

errores en tiempo de compilación………………………………………………..

3.4 Ejecución de un programa…………………………………………………....

3.5 Elementos del lenguaje: datos, literales y constantes, identificadores,

variables, parámetros, operadores, entrada y salida de datos………………..

3.6 Errores en tiempo de ejecución……………………………………………...

Unidad 4

Control de flujo……………………………………………………………………...

4.1 Estructuras secuenciales……………………………………………………..

4.2 Estructuras selectivas: simple, doble, múltiple……………………………..

4.3 Estructuras iterativas: repetir, mientras, hasta/desde……………………...

4.4 Diseño e implementación de funciones……………………………………

Unidad 5

Arreglos.............................................................................................................

5.1 Unidimensionales: conceptos básicos, operaciones y aplicaciones……

5.2 Multidimensionales: conceptos básicos, operaciones y aplicaciones….

Prototipo Didáctico de Fundamentos de Programación Página 3

38

43

41

38

63

49

45

75

68

65

65

85

87

87

92

Page 4: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Glosario de términos……………………………………………………………….

Conclusiones……………………………………………………………………….

Bibliografía…………………………………………………………………………..

Prototipo Didáctico de Fundamentos de Programación Página 4

93

96

97

Page 5: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Prototipo Didáctico de Fundamentos de Programación Página 5

Introducción

El prototipo didáctico que se presenta, expone la materia de fundamentos de programación de la manera más sencilla y práctica, para que el alumno o usuario tenga las herramientas básicas que lo encaminen al mundo de la programación.

En este prototipo, se nos darán las herramientas para resolver problemas comunes y simples de la vida cotidiana y también algunas aplicaciones de la ingeniería no muy sofisticados.

Recordando que, este prototipo fue creado para conocer lo básico de laprogramación, como, comprender los conceptos básicos de la misma, aprender el diseño de algoritmos, poder escribir expresiones aritméticas y lógicas en un lenguaje de programación y familiarizarnos con el manejo de consola.

Así también, 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 programación es la base principal de la programación, como lo es, el cimiento de una casa.

Page 6: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Prototipo Didáctico de Fundamentos de Programación Página 6

Introducción de cada unidad

Introducción de la unidad 1

En la unidad 1 conoceremos y comprenderemos los conceptos básicos que son usados en la programación.

Introducción de la unidad 2

En la unidad 2 explicaremos los conceptos básicos para la formulación de algoritmos, así como sus ventajas y desventajas, resolveremos y analizaremos problemas de la vida cotidiana e investigaremos los métodos más usuales para representar un algoritmo.

Introducción de la unidad 3

En la unidad 3 conoceremos las características del lenguaje de programación, también la estructura básica de un programa, analizaremos las fases de traducción de un programa, veremos también, como ejecutar un programa, estudiaremos los distintos elementos de un lenguaje y veremos porque hay errores en tiempo de ejecución.

Introducción 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; también veremos como diseñar e implementar las funciones.

Introducción de la unidad 5

En la unidad 5 conoceremos el uso y funcionamiento de arreglo unidimensionales y multidimensionales.

Page 7: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

UNIDAD I

CONCEPTOS BASICOS

Prototipo Didáctico de Fundamentos de Programación Página 7

Objetivo del Prototipo Didáctico

Introducir al estudiante en la programación con la finalidad de obtener las bases conceptuales para abordar las siguientes unidades temáticas.

Dar solución a problemas cotidianos utilizando el razonamiento lógico.

Obtener y aplicar herramientas necesarias para diseñar e implementar soluciones en un lenguaje de programación, utilizando los conceptos adquiridos.

Identificar, comprender, seleccionar e implementar la estructura de control más adecuada a un problema específico, así como el diseño de bloques de códigos reutilizables, dado que es común encontrar en la práctica problemas cuyas operaciones están condicionadas o deban ejecutarse un número repetido de veces

Conocer arreglos para una gran variedad de propósitos que proporcionan un medio conveniente de agrupar variables relacionadas y organizar datos de una manera que puedan ser fácilmente procesados.

Page 8: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

1.1 Clasificación del software de: sistemas y aplicación.

Se clasifican como veremos en el mapa conceptual de la página 9:

Software de sistema Software de aplicación

Software de Sistema: es el conjunto de programas indispensables para que la maquina funcione; se denominan también programas del sistema; (Luis Joyanes Aguilar). Esto programas son básicamente:

El sistema operativo: Windows Xp, Windows Vista, Windows 7, Linux, etc. Los editores de texto: Archivos de texto o texto plano. Los compiladores e intérpretes: Traductores de lenguajes de programación. Programas de utilidad: Microsoft office.

Software de aplicación: conjunto de instrucciones de computadora escritas con un lenguaje de programación, las cuales dirigen al hardware para que efectué actividades específicas de procesamiento de datos y de información que proporcionan funcionalidad al usuario; (Luis Joyanes Aguilar).Estos programas básicamente son:

Una aplicación de procesamiento de texto (Word). Una hoja de cálculo (Excel). Una aplicación para hacer diagramas o gráficos, representaciones visuales

(PowerPoint). Software que manipulan el hardware de la computadora como la resolución

de nuestra pantalla.

Prototipo Didáctico de Fundamentos de Programación Página 8

Clasificación de software

Page 9: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

1.2 Algoritmo.

Concepto.

Prototipo Didáctico de Fundamentos de Programación Página 9

Software de sistema Software de aplicación

Hacen funcionar a la maquina

Dirigen el hardware

El sistema operativo.

Editores de texto.

Compiladores e intérpretes.

Programas de utilidad.

Una aplicación de procesamiento de texto.

Una hoja de cálculo.

Representaciones visuales.

Software que manipulan la máquina.

Ejemplos

Ejemplos

Sistema operativo Windows Xp

Archivos de texto

Traductores de lenguaje

Microsoft office

Word

Excel

PowerPoint

Page 10: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Es una serie de pasos organizados o secuencias que nos describen el proceso que debemos seguir, para darle solución a un problema específico. (Luis J. A.).

1.3 Lenguaje de Programación.

Concepto.

Prototipo Didáctico de Fundamentos de Programación Página 10

Algoritmo Describe cómo resolver un problema

Problema

Técnicas de resolución de

problemas

Lenguaje natural

Pseudocódigo

Lenguaje de programación

Se pueden hacer

Están formados por

Escritos en

Se utilizan en

Se escribe usando

Se construye usando

Maneja

De un

Datos

Programas

Instrucciones

Graficas

Page 11: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Lenguaje artificial que sirve para escribir programas que permitan la comunicación usuario/maquina. (Luis Joyanes Aguilar).

Son estructuras simbólicas que nos permiten disponer de los dispositivos de una computadora. (Felipe Ramírez).

Los principales tipos de lenguaje utilizados son:

Leguaje máquina. Lenguaje de bajo nivel (ensamblador). Lenguaje de alto nivel.

Instrucciones a la computadora

El término instrucción (operación realizable) se suele referir al lenguajemáquinay bajo nivel, reservando el término sentencia o proposición para los lenguajes de alto nivel, las instrucciones básicas y comunes de los lenguajes de programación son las siguientes:

o Instrucciones de entrada / salida:instrucciones de transferencia de

información y datos entre dispositivos periféricos (teclado, impresora, unidad de disco, etc.) y la memoria central.

o Instrucciones aritmético / lógicas: instrucciones que ejecutan

operacionesaritméticas (suma, resta, multiplicación, división, potenciación) y lógicas (and, or, not, etc.).

o Instrucciones selectivas: instrucciones que permiten la selección de tareas

alternativas en función de los resultados de diferentes expresiones condicionales.

o Instrucciones repetitivas: instrucciones que permiten la repetición de

secuencias de instrucciones un número determinado o indeterminado de veces.

Lenguaje máquina.

Son aquellos que están escritos en lenguaje directamente comprensible por la máquina, ya que sus instrucciones son cadenas binarias (0 y 1).

Ventaja: no necesita ser traducido

Desventaja: casi no lo recomiendan, dificultad y lentitud en la codificación, poca fiabilidad, y solo se pueden ejecutar en el mismo procesador.

Prototipo Didáctico de Fundamentos de Programación Página 11

Page 12: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Lenguaje de bajo nivel.

Conocidotambién como ensamblador, las instrucciones en este lenguaje se conocen como nemotécnicos (abreviaturas) y requieren una fase de traducción al lenguaje máquina.

Ventajas: es más fácil que el lenguaje máquina en la codificación y la velocidad de cálculo.

Desventajas: cada máquina tiene su propio lenguaje lo que lo hace dependiente de la máquina y no se puede ejecutar en otra; se necesita un proceso de traducción para el programa escrito originalmente en ensamblador llamado programa fuentey el programa que se obtiene al traducirlo se llama lenguaje objeto.

Lenguaje de alto nivel.

Es independiente de la máquina, las instrucciones del programa de la computadora no depende del diseño del hardware, lo que hace que estos programas sean transportables.

Ventajas:

El tiempo de preparación de los programadores es más rápida que con los otros lenguajes de programación.

La escritura del programa se basan en reglas sintácticas similares a los lenguajes humanos (pueden ser READ, WRITE, OPEN, etc.).

Las modificaciones y puestas a punto de los programas son más fáciles. Son más económicos los programas. Transportabilidad.

Desventajas:

El proceso de traducción es muy largo y ocupan más recursos. aprovecha menos los recursos internos de la máquina. Aumento de ocupación de la memoria. El tiempo de ejecución de los programas es mucho mayor.

1.4 Programa.

Prototipo Didáctico de Fundamentos de Programación Página 12

Page 13: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Concepto.

Conjunto de instrucciones que controlan (dirigen) a una computadora, formalmente programa de computadora es un conjunto de instrucciones internas utilizadas para ejecutarse en una computadora y que produzcan un resultado concretó. (Luis Joyanes Aguilar).

Un programa tiene 3 partes:

Entrada de datos: normalmente se ejecuta a través de instrucciones de lectura, y en lo que se le pide al usuario la información que el programa va a necesitar para ejecutarse y se hace a través de lectura.

Acción 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 distinguirán 2 partes: Declaración de variables. Instrucciones del programa.

Instrucciones y tipos:

Para que una instrucción se ejecute tiene que ser llevada a la memoria. En cuanto al orden de ejecución, 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 instrucción a otra.

Nunca se deben hacer saltos no lineales.

Tipos de instrucciones:

Inicio y fin. Asignación (dar un valor a una variable). Lectura/escritura (introducir o sacar información por dispositivos E/S). Instrucciones de bifurcación (alternan el orden de ejecución del programa,

salto a otra instrucción que no es la siguiente).

Prototipo Didáctico de Fundamentos de Programación Página 13

Page 14: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Bifurcación incondicional (el salto se produce siempre y cuando el programa vaya a esa instrucción, GOTO (ir a)).

Bifurcación condicional (se ejecutan un conjunto de instrucciones u otras dependiendo del valor devuelto al evaluar una condición).

1.5 Programación.

Concepto.

Se refiere al proceso en el cual se desarrolla o escribe un programa, esto se refiere a expresar el algoritmo en un lenguaje de programación. (Luis Joyanes Aguilar).

Es la habilidad de pensar de manera razonada, sistemática y ordenada, que nos hace capaces de inferir algoritmos abstractos y soluciones a problemas de negocios, que fácilmente puedan ser implementados a través de códigos escritos en un lenguaje de programación determinado. (Felipe Ramírez).

1.6 Paradigmas de programación.

¿Qué es paradigma?

Es la manera como percibimos el mundo: (agua para el pez); el paradigma nos explica el mundo y nos ayuda a predecir su comportamiento.

Concepto.

Conjunto de patrones conceptuales que moldean la forma de resolver y pensar un problema, diseñar un algoritmo y estructurar un programa. Es decir, va a ser tenido en cuenta el armado del programa.

Prototipo Didáctico de Fundamentos de Programación Página 14

Page 15: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Se le puede entender como un estilo de programación marcado como un conjunto de criterios para manejar el programa.

1.7 Editores de texto.

Concepto.

Programa que permita crear y modificar archivos digitales compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor.

Los editores de texto son incluidos en el sistema operativo o en algún paquete de software instalado y se usan cuando se deben crear o modificar archivos de texto como archivos de configuración, scripts o el código fuente de un programa.

1.8 Compiladores e Intérpretes.

Compilador:

Proceso de traducción que convierte un programa fuente escrito en un lenguaje de alto nivel a un programa objeto en código máquina 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.

La compilación y sus fases:

Prototipo Didáctico de Fundamentos de Programación Página 15

Programa fuente Compilador Programa objeto

Page 16: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Para poder traducir el programa objeto a código maquina debemos usar un programa llamado montador o enlazador (linker).

El proceso de montaje nos conduce a un programa en lenguaje maquina directamente ejecutable.

Interprete:

Es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta.

Prototipo Didáctico de Fundamentos de Programación Página 16

Programa fuente

Compilador (traductor)

Programa ejecutable en lenguaje maquina

Programa objeto

Enlazador

Page 17: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

1.9 Ejecutables.

Concepto.

Es tradicionalmente un archivo binario cuyo contenido se interpreta por el ordenar como un programa.

Generalmente, contiene instrucciones en código máquina de un procesador en concreto, pero también pueden contener bytecodes que requieren un intérprete para ejecutarlo. Además suele contener llamadas a funciones específicas de un sistema operativo.

Los ejecutables pueden ser portable (se pueden ejecutar en varias computadoras) o no portables (destinadas a una computadora especifica).

1.10 Consola de comandos.

Concepto.

Es un método que permite a las personas dar instrucciones a algún programa informático por medio de una línea de texto simple.

Su acrónimo en inglés es CLI (Command line Interface),encontradasen las interfaces graficas de diversos sistemas operativos, para ejecutar aplicaciones a través de un intérprete de comandos.

UNIDAD 2

ALGORITMOS

Prototipo Didáctico de Fundamentos de Programación Página 17

Programa fuenta

Interprete Traducción y ejecución línea

a línea

Page 18: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

2.1 Análisis de problemas

La principal razón para que las personas aprendan a programar en general y los lenguajes de programación en particular es utilizar la computadora como una herramienta principal para resolver problemas.La resolución de un problema se divide en las siguientes fases:

Análisis de sistema. Diseño de algoritmo. Codificación. Compilación y ejecución. Verificación. Depuración. Mantenimiento. Documentación.

Constituyen el ciclo de vida del software y las faces o etapas son:

Análisis. El problema se analizas teniendo presente la especificación de los requisitos dados por la persona que encargo el programa.

Diseño. Una vez analizado el problema, se diseña una solución que conducirá a un algoritmo que resuelva el problema.

Codificación (implementación). La solución se escribe en la sintaxis de lenguaje de alto nivel (por ejemplo C) y se obtiene un programa.

Compilación, ejecución y verificación . El programa se ejecuta, se comprueba rigurosamente y se elimina todo los errores (denominados busg en inglés) que puedan aparecer.

Depuración 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.

Documentación. Escritura de las diferentes fases de ciclo de vida del software, esencialmente el análisis, diseño y codificación, unidos a manuales de usuarios y de referencias, así como normas para el mantenimiento.

Características de un algoritmo:

Un algoritmo debe ser Preciso e indicar el orden que debe seguir cada paso.

Prototipo Didáctico de Fundamentos de Programación Página 18

Page 19: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

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 algún momento.

La primera fase de la resolución de un problema con computadora, esta fase requiere una clara solución, donde entendamos exactamente lo que debe hacer el programa, el cual nos dé el resultado deseado.

Los elementos que conforman un algoritmo son:

Entrada: los datos iniciales que posee el algoritmo antes de ejecutarse. Proceso: acción que lleva acabo el algoritmo. Salida: resultado final que obtiene el problema.

Ejemplo de los elementos (entrada, proceso y salida).

El cálculo del área de un rectángulo se puede dividir en:

Entrada de datos (altura, base).

Proceso: cálculo del área (= base x altura).

Salida de datos (base, altura, área).

Prototipo Didáctico de Fundamentos de Programación Página 19

Análisis de problema

Definir y entender el problema

Identificar los datos de entrada

Identificar los datos de salida

(resultado)

Page 20: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Diseño de un algoritmo.

La solución de un problema complejo puede requerir muchos pasos, esto hace necesariamente que dividamos el problema en subproblemas para que así sea más sencillo resolverlo.

Este método se denomina divide y vencerás y es aplicable a la resolución de problemas complejos dividiéndolo en subproblemas y a continuación dividir estos subproblemas en otros de nivel más bajo.

Este método se conoce técnicamente como diseño descendente (top-down) o modular.

El proceso de romper el problema en cada etapa y expresar cada paso en forma más detallada se denomina refinamiento sucesivo.

Cada subprograma es resuelto mediante un módulo (subprogramas) que tiene un solo punto de entrada y un solo punto de salida.

Un programa principal también se le puede llamar (módulo de nivel más alto) y los subprogramas (módulo de nivel más bajo).

Los programas estructurados tienen un diseño modular. Al método de romper el programa enmódulos más pequeños se llama

programación modular. Los módulos pueden ser planeados, codificados, comprobados y

depurados independientemente (incluso por diferentes programadores). El proceso que convierte los resultados del análisis de problema en un

diseño modular con refinamientos sucesivos que permitan una posterior traducción a un lenguaje, se denomina diseño de algoritmo.

Ejemplo de diseño descendente y refinamiento paso a paso, basándonos en el problema de calcular el área de un rectángulo.

Prototipo Didáctico de Fundamentos de Programación Página 20

A = b * aa

b

Page 21: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

2.2 Representación de algoritmos: gráficas y pseudocódigos.

Para representar un algoritmo se debe utilizar algún método que permitan independizar dicho algoritmo del lenguaje de programación elegido. Esto permitirá que un algoritmo pueda ser codificado indistintamente en cualquier lenguaje de programación.

Los métodos más usuales para representar de un algoritmo son:

Diagrama de flujo. Diagrama N-S(Nassi-Schneiderman) Lenguaje de especificación de algoritmo: Pseudocódigo. Lenguaje español. Formulas.

Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de cómo debe realizarse los pasos en la computadora para producir un resultado. Esta

Prototipo Didáctico de Fundamentos de Programación Página 21

Problema de cálculo de área de un rectángulo

Calculo del áreaEntrada de datos

Salida AREA Entrada ALTURA

Salida de resultados

AREA =

BASE x ALTURA

Salida ALTURA

Salida BASE Entrada BASE

Page 22: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

representación gráfica se da cuando varios símbolos se relacionan entre sí mediante líneas 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 normalización (ANSI).

SÍMBOLODESCRIPCIÓN

Prototipo Didáctico de Fundamentos de Programación Página 22

Indica el inicio y el final de nuestro diagrama de flujo.

Indica la entrada y salida de datos.

Símbolo de proceso y nos indica la asignación de un valor en la memoria y/o la ejecución de una operación aritmética.

Símbolo de decisión indica la realización de una comparación de valores.

Indica la salida de información por impresora.

Conector fuera de página, representa la continuidad del diagrama en otra página.

Conector dentro de página, representa la continuidad del diagrama dentro de la misma página y sirve para enlazar dos partes cualesquiera de un ordinograma.

Se utiliza para representar los subprogramas.

Page 23: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

El Pseudocódigo describe un algoritmo utilizando una mezcla de frases en lenguaje común, instrucciones de programación y palabras claves que definen las estructuras básicas. Su objetivo es permitir que el programador se centre en los aspectos lógicos de la solución de un problema.

Prototipo Didáctico de Fundamentos de Programación Página 23

Indica la salida de información en la pantalla o monitor.

Líneas de flujo o dirección, indica la secuencia en que se realizan las operaciones.

Decisión múltiple, dependiendo del resultado de la comparación se seguirá uno de los diferentes caminos.

Comentarios, se utilizan para añadir comentarios clasificadores a otros símbolos de diagrama de flujo.

Teclado, se utiliza en ocasiones en lugar del símbolo E/S.

Línea conectora, sirve de unión entre dos símbolos.

Page 24: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

En otras palabras un pseudocódigo es aquel que sigue un proceso de ejecución común y lógico describiendo textualmente paso a paso cada una de las tareas a realizar dentro de una actividad determinada.

Ejemplo de un pseudocódigo común para asistir a clases.

1. Levantarse.2. Bañarse.3. Vestirse.4. Desayunar.5. Cepillarse los dientes.6. Salir de casa.7. Tomar el autobús.8. Llegar a la Universidad.9. Buscar el aula.10.Ubicarse en un asiento.

El Diagrama N-S (Nassi-Schneiderman) también conocido como diagrama de Chapin, es como un diagrama de flujo en las que se omiten las flechas de unión y las cajas (rectángulos) son contiguas (cercanos o próximos); las acciones se escriben en las cajas, que se leerán siempre de arriba – abajo al igual que los diagramas de flujos, también se pueden escribir diferentes acciones en una caja.

Ejemplo de diagrama N-S.

leernombre, hora, precioCalcularsalario ← hora * preciocalcularimpuesto ← 0.25 * salariocalcularneto ← salario – impuestosescribirnombre, salario, impuestos, neto

nombre del algoritmo‹acción 1›‹acción 2›

Prototipo Didáctico de Fundamentos de Programación Página 24

Page 25: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

‹accion3›…fin

Otro ejemplo es la representación de la estructura condicional como vemos a continuación.

Los métodos de lenguaje en español y las formular no suelen ser fáciles de transformar en programas, ya que el método de lenguaje en español es muy extenso y confuso, y en el método de las formulas no es frecuente que un algoritmo pueda ser expresado por una simple formula.

2.3 Diseño de algoritmos aplicados a problemas.

Ejemplos de algoritmos aplicados a problemas.

Ejemplo.

Leer el sueldo de tres empleados y aplicarles un aumento del 10,12 y 15 % respectivamente. Desplegar el resultado.

Entradas: salarios de los empleados

Salidas: sueldos finales.

Datos adicionales: aumentos del 10, 12 y 15 %.

Cálculos:

Prototipo Didáctico de Fundamentos de Programación Página 25

Page 26: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Sueldo final = sueldo inicial + aumento

Aumento = sueldo inicial * porcentaje/100

Definición de variables:

Sf1, Sf2, Sf3 = los sueldos finales

S1, S2, S3 = salarios de los empleados

Aum1, Aum2, Aum3 = aumentos

Algoritmo en pseudocódigo.

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

Algoritmo en diagrama de flujo.

Prototipo Didáctico de Fundamentos de Programación Página 26

S1, S2, S3

Inicio

Page 27: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Algoritmo Diagrama N-S.

2.4 Diseño algorítmico de funciones.

La programación modular es uno de los métodos de diseño más flexible y potente para mejora la productividad de un programa. Esto quiere decir que el programa se divide en módulos (partes independientes) las cuales ejecutan una única

Prototipo Didáctico de Fundamentos de Programación Página 27

Fin

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)

InicioLeer S1, S2, S3Aum1 ← S1 * 0.10Aum2 ← S2 * 0.12Aum3 ← S3 * 0.15Sf1 ← S1 + Aum1Sf2 ← S2 + Aum2Sf3 ← S3 + Aum3Escribir (SF1, SF2, SF3)Fin

Page 28: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

actividad o tarea y se codifican independientemente de otros módulos. Cada módulo se analiza, se codifica y se pone a un punto por separado.

Cada programa tiene un módulo que es el programa principal que controla todo, se pasa el control a los submódulos (subprogramas) para que ellos puedan ejecutar sus funciones.

Cada submódulo devuelve el control al módulo principal cuando haya completado su tarea. Si la tarea asignada a cada submódulo es muy difícil, esta deberá romperse en otros módulos más pequeños. El proceso sucesivo de subdivisión de módulos continua hasta que cada módulo tenga solamente una tarea específica que realizar, estas tareas pueden ser entradas, salidas, manipulación de datos, control de otros módulos o alguna combinación de datos.

Un módulo puede transferir temporalmente (bifurcación) el control a otro modulo, sin embargo, cada módulo debe devolver el control al módulo del cual se recibió originalmente el control.

Los módulos son independientes y no pueden tener acceso a cualquier otro modulo, con excepción al módulo al que llama y sus propios submodulos; sin embargo los resultados producidos por un módulo pueden ser utilizados por cualquier otro modulo cuando se transfiera a ellos el control.

Prototipo Didáctico de Fundamentos de Programación Página 28

Programa principal

Subprograma 1 Subprograma 2 Subprograma 3

Algoritmo principal

Subalgoritmo 1 Subalgoritmo2 Subalgoritmo 3

Page 29: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Se dice que el programa principal invoca al subprograma, el subprograma realiza la tarea y luego devuelve el control (resultado) al programa principal.

Un subprograma puede llamar a su vez a sus propios subprogramas.

Funciones.

La función en una estructura que no depende de nadie similar a los módulos, la diferencia radica en que la función se usa para devolver un solo valor de un tipo de

Prototipo Didáctico de Fundamentos de Programación Página 29

Llamada 1

Retorno1

Llamada 2

Retorno 2

Programa

Algoritmo

Subprograma

Subalgoritmo

Programa o programa principal

Subprograma 1

Subprograma 1.1

Subprograma 2

Page 30: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

datos simple a punto de referencia. La función se relaciona en detallar su nombre en una expresión, como si fuera una variable ordinaria de tipo simple.

Las funciones se dividen en estándares y definidas por el usuario:

Estándares: Son funciones proporcionadas por cualquier lenguaje de programación de alto nivel, y se dividen el alfabéticas y aritméticas.

Definido por el usuario: son funciones establecidas por el programador con el objetivo de realizar alguna función específica, por lo general se usa cuando se trata de hacer algún cálculoque se valla ocupar en varias ocasiones en la parte principal de un algoritmo.

Declaración de funciones.

Consta de una cabecera que comenzara con el tipo de valor devuelto por la función, seguido de la palabra funcióny del nombre y argumento de la función, seguido del cuerpo de la función que es una serie de instrucciones, cuya ejecución (acción) hará que se asigne un valor al nombre de la función; esto determina el resultado que se ha de devolver al programa.

La declaración de la función será:

Prototipo Didáctico de Fundamentos de Programación Página 30

Page 31: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Otro ejemplo puede ser la definición de la función trigonométrica, cuyo valor es:

tan (x )=sen (x )cos ( x)

dondesen(x) y cos(x) son las funciones seno coseno (normalmente funciones internas). La declaración de la función es:

Observe que se incluye un comentario para describir la función. Es buena práctica incluir documentación que describa brevemente lo que hace la función, lo que representa sus parámetros o cualquier otra información que explique la definición de la función.

Invocación a las funciones.

Una función puede ser llamada de la siguiente forma:

Prototipo Didáctico de Fundamentos de Programación Página 31

Page 32: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Cada vez que se llama a una función desde el algoritmo principal se establece automáticamente una correspondencia entre los parámetros formales y los actuales. Debe haber el mismo número de parámetros actúale como formales en la declaración de la función, anticipando una correspondencia (relación) uno a uno de izquierda a derecha.

Una llamada a la función implica los siguientes pasos:

1. A cada parámetro formal se le asigna el valor real de su correspondencia parámetro actual.

2. Se ejecuta el cuerpo de acciones de la función.3. Se devuelve el valor de la función al nombre de la función y se retorna al

punto de llamada.

Aquí un ejemplo de los pasos de una llamada a la función.

Definición de la función: y = xn (potencia n de x).

abs (n) es la función valor absoluto de n a fin de considerar exponentes positivos y negativos.

Prototipo Didáctico de Fundamentos de Programación Página 32

Page 33: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Procedimientos (subrutinas).

Un procedimiento o subrutina es un subprograma que ejecuta un proceso específico. Ningún valor está asociado con el nombre del procedimiento; por consiguiente, no puede ocurrir en una expresión.

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 continuación se devuelve el control al programa que llamo.

La declaración de un procedimiento es similar a la de funciones.

El procedimiento se llama mediante la instrucción:

La palabra llamar_a (call) es opcional y su existencia depende del lenguaje de programación.

Ámbito: Variables Locales y Globales.

Las variables utilizadas en los programas principales y sub programas se clasifican en dos tipos:

Variable local: las variables permanecen activas durante todo el programa. Se crean al iniciarse este y se destruye o desaparece de la memoria al finalizar.

Prototipo Didáctico de Fundamentos de Programación Página 33

Page 34: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Variable global: las variables son creadas cuando el programa llega a la función o procedimiento en la que está definida. Al finalizar la función 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 móduloen que ha sido declarada. Dos variables locales pueden tener el mismo nombre, siempre y cuando estén declaradas en funciones o procedimientos diferentes.

Comunicación con Subprogramas: paso de parámetros.

Cuando un programa llama a un subprograma, la información se comunica a través de la lista de parámetros y se establece una correspondencia automática entre los parámetros formales y actuales.

Los parámetros actuales son ‹‹sustituidos›› o ‹‹utilizados›› en lugar de los parámetros formales.

La declaración del subprograma se hace con:

Y la llamada al subprograma con:

llamar_a nombre (A1, A2, … , An)

donde F1,F2, …….., Fn son los parámetros y A1,A2, ………, An los parámetros actuales o reales.

La clase de parámetro es:

(E) Entrada (S) Salida (E/S) Entrada/Salida

Existen 2 métodos para establecer la correspondencia de parámetros:

Prototipo Didáctico de Fundamentos de Programación Página 34

Page 35: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

1. Correspondencia posicional. La correspondencia se establece aparejando los parámetros reales y formales según su posición en la lista: así, Fi se corresponde con Ai, donde i = 1, 2, ……, n.. Este método tiene algunas desventajas de legibilidad cuando el número de parámetros es grande.

2. Correspondencia por el nombre explícito. También llamado método de paso de parámetros por nombre, en este método, en las llamadas se indican explícitamente la correspondencia entre los parámetros reales y formales; este método se utiliza en Ada. Un ejemplo seria:

SUB (Y =› B, X =› 30) ;

Que hace corresponder el parámetro actual B con el formal Y,y el parámetro actual 30 con el formal X durante la llamada de SUB.

Paso o Parámetro por Valor.

Son los parámetros que pueden recibir valores pero que no pueden devolverlos. Es una variable global que se conecta con una variable local mediante el envío de su valor, después de lo cual ya no hay relación. Lo que le sucede a la variable local no afectará a la global. Cuando un parámetro actual se pasa por valor, el subprograma hace una copia del valor de éste en una posición de memoria idéntica en tamaño pero distinta en ubicación a la del parámetro actual y la asigna al parámetro formal correspondiente. Como el subprograma trabaja a partir de sus parámetros formales, si durante la ejecución se modifica el valor de un parámetro formal correspondiente a un paso por valor, el contenido de la posición de memoria del parámetro actual no se verá alterado.

Ejempló de paso por valor:

El mecanismo de paso se resume así:

Valor primer parámetro: A = 5.Valor segundo parámetro: constante = 18.Valor tercer parámetro: expresión B * 3 + 4 = 25.

Los valores 5, 18, 25 se transforman en los parámetros X, Y, Z, respectivamente, cuando se ejecuta el procedimiento. La llamada por valor no devuelve información al programa que llama.

Prototipo Didáctico de Fundamentos de Programación Página 35

Page 36: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Paso o Parámetro por Referencia.

Son los que pueden recibir y devolver valores. Son variables globales que se conectan con una local a través de su contenido; al establecerse dicha conexión las variables se convierten en sinónimos, lo que afecte a la variable local le sucederá a la variable global.

Ejemplo:

Prototipo Didáctico de Fundamentos de Programación Página 36

Page 37: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

La primera llamada en (1) produce que los parámetros 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 modificación de x o y en el procedimiento afectará también al programa principal.

UNIDAD 3

INTRODUCCIÓN A LA PROGRAMACIÓN

3.1 Características del lenguaje de programación.

Una vez que se has visto cómo tratar un problema y como escribir un algoritmo que lo modelase se verá a continuación las herramientas que se dispone, los

Prototipo Didáctico de Fundamentos de Programación Página 37

Page 38: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

lenguajes de programación para programar un algoritmo, como construir un programa, y como programarlo utilizando un pseudocódigo.

¿Cuál es el propósito de un lenguaje de programación?

Los lenguajes de programación pueden ser de propósito general o específicos.

Lenguajes de programación específicos: C, C++, Java, visual Basic, Pascal, etc.

Los lenguajes de programación específicos: SQL, PROMELA, etc.

¿POR QUÉ LA DIVERSIDAD DE LENGUAJES DE PROGRAMACIÓN?

En primer lugar existen distintos tipos de lenguajes de programación, porque cada uno de ellos está especificado para resolver un grupo de problemas con características similares.

En segundo lugar, los lenguajes de programación 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 filosofía de programación novedosa.

Por último, las compañías que diseñan software están muy interesadas en tener muchos lenguajes de programación en el mercado porque esto les reportará más beneficios económicos.

¿POR QUÉ ES IMPORTANTE EL ESTUDIO DE DIFERENTES LENGUAJES O PARADIGMAS CUANDO AL FINAL SÓLO TRABAJAS CON UNOS POCOS?

Hay muchas razones que justifican su estudio, entre las cuales las más importantes son:

Mejora el uso de lenguaje de programación: si se conoce como están implementadas las características en un lenguaje de programación, se mejorará la habilidad para escribir programas eficientes.

Incrementa el vocabulario de los elementos de programación. Permite una mejor elección del lenguaje de programación: el

conocimiento de diversos lenguajes de programación facilitan la elección del lenguaje más adecuado para un proyecto determinado.

Mejora la habilidad para desarrollar programas efectivos y eficientes: muchos lenguajes proporcionan características que, cuando se utilizan

Prototipo Didáctico de Fundamentos de Programación Página 38

Page 39: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

correctamente, aporta grandes beneficios a la programación, cuando se utiliza de una manera incorrecta, puede ocasionar un gran costo computacional.

Facilita el aprendizaje de un nuevo lenguaje de programación: cuando se conoce las estructuras, técnicas de implementación y construcción de un lenguaje, es más sencillo aprender otros lenguajes de programación que tengan estructuras similares.

Facilita el diseño de nuevos lenguajes de programación: es posible que en el futuro tengamos que diseñar un lenguaje que se adapte a nuestras necesidades. Mientras más lenguajes y paradigmas conozcamos, más simple resultara el diseño y la implementación.

CARACTERÍSTICAS COMUNES DE LOS LENGUAJES DE PROGRAMACIÓN.

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 programación se ejecutan en un computador y tienen una determinada semántica que define cuál será el resultado de la ejecución 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 abstracción para definir nuevos tipos de datos a partir de los primitivos o nuevas funciones y procedimientos.

TODOS LOS LENGUAJES DE PROGRAMACIÓN PERMITEN COMBINAR IDEAS SIMPLES EN IDEAS MÁS COMPLEJAS MEDIANTE LOS SIGUIENTES TRES MECANISMOS:

Expresiones primitivas, que representan las entidades más simples del lenguaje.

Mecanismos de combinación,con los que se construyen elementos compuestos a partir de elementos más simples.

Mecanismos de abstracción, con los que dar nombre a los elementos compuestos y manipularlos como unidades.

OTRAS CARACTERÍSTICAS.

Prototipo Didáctico de Fundamentos de Programación Página 39

Page 40: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Implementación.

La implementación de un lenguaje es la que provee una manera de que se ejecute un programa para una determinada combinación de software y hardware. Existen básicamente dos maneras de implementar un lenguaje:

Compilación e Interpretación.

Compilación: es el proceso que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz interpretar. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente.

Interpretación: es una asignación de significados a las fórmulas bien formadas de un lenguaje formal. Como los lenguajes formales pueden definirse en términos puramente sintácticos, sus fórmulas bien formadas pueden no ser más que cadenas de símbolos sin ningún significado. Una interpretación otorga significado a esas fórmulas.

Técnica.

Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una serie de detalles.

Corrección. 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é debe 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 más 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 edición; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de creación como en las fases posteriores de corrección de errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo cual la claridad es aún más necesaria para que otros programadores puedan continuar el trabajo fácilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar secciones de código. Otros, por diversión o para impedir un análisis cómodo a otros programadores, recurren al uso de código ofuscado.

Prototipo Didáctico de Fundamentos de Programación Página 40

Page 41: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Eficiencia. Se trata de que el programa, además 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 también pueden ser de consideración al obtener la eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza, tráfico 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 característica muy deseable para un programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para sistemas GNU/Linux ejecutarse también en la familia de sistemas operativos Windows. Esto permite que el programa pueda llegar a más usuarios más fácilmente.

3.2 Estructura básica de un programa.

Como ya se ha visto, cuando se escribe un programa lo que se trata de hacer es indicarle a la computadora cómo 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.

PRINCIPIO GENERAL.

Un cargador:todo programa necesita ser cargado en la memoria por el sistema operativo. De esto se encarga el intérprete.

Definición de los datos: la mayoría de los programas operan con datos y por lo tanto en el código 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 definición de datos simplemente al utilizar los datos. Veremos esto en la próxima sección.

Instrucciones:son la parte central del programa. Las instrucciones manipulan los datos que hemos definido, realizan cálculos, muestran los resultados, etc.

Prototipo Didáctico de Fundamentos de Programación Página 41

Page 42: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

LA MAYORÍA DE LOS PROGRAMAS SIGUEN UNA DE DOS ESTRUCTURAS:

Programas por lote.

Estos se ejecutan típicamente desde una línea de comando o automáticamente desde otra aplicación y tienden al siguiente patrón:

Inicialización interna de los datos. Lectura de los datos ingresados. Procesamiento de los datos. Visualización o ejecución de los resultados.

Programas controlados por eventos.

La mayor parte de las interfaces responden a eventos. Los programas controlados por eventos son generalmente así:

Inicialización interna de los datos. Lectura de los datos ingresados. Procesamiento de los datos. Visualización o ejecución de los resultados.

3.3 Traducción de un programa: compilación, enlace de un programa, errores en tiempo de compilación.

Para elaborar un programa debemos tomar en cuenta las dos siguientes fases:

Fase de compilación, montaje o enlace (link). Fase de ejecución de un programa.

Fase de compilación 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 máquina.

Prototipo Didáctico de Fundamentos de Programación Página 42

Page 43: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Las etapas por las que debe pasar un programa escrito en un lenguaje de programación, 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 programación). Necesita ser traducido a código máquina para poder ser ejecutado.

Compilador: Programa encargado de traducir los programas fuentes escritos en un lenguaje de alto nivel a lenguaje máquina y de comprobar que las llamadas a las funciones de librería se realizan correctamente.

Programa (o código) objeto: Es el programa fuente traducido (por el compilador) a código máquina. Aún no es directamente ejecutable.

Programa Ejecutable: Traducción completa a código máquina, 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 código máquina de las funciones de las librerías (archivos de biblioteca) usadas en el programa y realizar el proceso de montaje, que producirá un programa ejecutable .exe. Las librerías son una colección de código (funciones) ya programado y traducido a código máquina, listo para utilizar en un programa y que facilita la labor del programador.

A continuación mostramos una imagen de cómo se desenvuelven las etapas de un programa.

Prototipo Didáctico de Fundamentos de Programación Página 43

Page 44: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Errores en tiempo de compilación.

Si el programa fuente es sintácticamente correcto, el compilador generará el código objeto, en caso contrario mostrará una lista con los errores encontrados, no generándose ningún programa objeto, para que procedamos a su depuración.

Los compiladores emiten mensajes de error o de advertencia durante las fases de compilación, de enlace o de ejecución de un programa.

Los errores en tiempo de compilación son los que se producen antes de la ejecución del programa, durante el proceso de compilación del programa.

Los errores que se pueden producir en la fase de compilación son:

Errores fatales. Son raros e indican errores internos del compilador. Cuando ocurre la compilación se detiene inmediatamente.

Errores de sintaxis. Son los errores típicos de sintaxis, no detienen la compilación sino que al finalizar ésta se mostrará la lista con todos los errores encontrados. Algunos errores suelen ser consecuencia de otros cometidos 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 líneas de código sospechosas que a pesar de no infringir ninguna regla sintáctica, el compilador las encuentra susceptibles de provocar un error. Cuando se detecta un warning la compilación no se detiene. Si en un programa fuente sólo se detectan warnings, se podrá obtener un programa objeto, que tras el linkado dará lugar a un programa ejecutable.

3.4 Ejecución de un programa.

Generación de código ejecutable.

Prototipo Didáctico de Fundamentos de Programación Página 44

Page 45: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

La fase final del compilador es la generación de código ejecutable. Toma como entrada la representación intermedia del programa fuente y produce como salida un programa objeto equivalente.

Las exigencias tradicionalmente impuestas a un compilador son duras. El código de salida debe ser correcto y de gran calidad, lo que significa que debe utilizar de forma eficaz los recursos de la computadora. Además, el propio generador de código debe ejecutarse eficientemente.

Matemáticamente, el problema de generar código óptimo es indecidible. En la práctica, hay que conformarse con técnicas heurísticas que generan código bueno pero no siempre óptimo. La elección de las heurísticas es importante, ya que un algoritmo de generación de código cuidadosamente diseñado puede producir fácilmente código que sea más rápido que el producido por un algoritmo diseñado precipitadamente.

Pasos para la elaboración y ejecución de un programa.

Los pasos a seguir los podemos resumir de la siguiente manera:

1. Escribir el código 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.4. Si no hay errores se obtendrá el código 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 más errores.

Fases de ejecución de un programa.

Una vez que tenemos el programa en lenguaje máquina, para poderlo ejecutar hay que introducirlo en la memoria, y se efectúan las siguientes fases:

Prototipo Didáctico de Fundamentos de Programación Página 45

Page 46: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

1. Una utilidad del S.O. llamada cargador colocará el programa, y sus datos de entrada, en memoria principal, preparándolo para su ejecución.

2. El S.O. le pasa el control a la C.P.U. para que comience la ejecución del programa, realizando la Unidad de Control los siguientes pasos (fases):

Captación de la instrucción: Lee de la Memoria Principal la instrucción a ejecutar.

Ejecución de la instrucción: Interpreta la instrucción leída y envía señales de control a las unidades que deban intervenir en su ejecución. Tras dicha ejecución se establece cuál será la siguiente instrucción a ejecutar.

Ejecutar programa en C++.

Después de que se ha compilado un programa en C++, está listo para ejecutarse. Desde la salida de un compilador de C++ es código ejecutable objeto, para ejecutar el programa, simplemente escriba su nombre en la línea de comandos. Por ejemplo, para ejecutar Ejemplo1.exe use esta línea de comandos:

C:\...>Sample

Cuando se ejecuta, el programa muestra el siguiente resultado:

C++ ispowerprogramming.

Un último punto: los programas de este tema son basados en consola, no en ventana. Es decir, se ejecutan en una sesión de línea de comandos. C++ es completamente compatible con la programación de Windows. De hecho, es el lenguaje más comúnmente usado para el desarrollo de Windows.

Sin embargo, ninguno de los programas en este tema utilizara la interfaz de usuario gráfica (GUI) de Windows. La razón de esto es fácil de entender: los programas de Windows son, por su naturaleza, grande y complejo. La sobrecarga necesaria para crear incluso un mínimo esquelético programa de Windows es de 50 a 70 líneas de código. Para escribir programas de Windows que muestran las características de C++ requeriría cientos de líneas de código. En contraste, los programas basados en la consola son mucho más cortos y son el tipo de programas que se utiliza normalmente para enseñar programación. Una vez que haya dominado C++, usted podrá aplicar su conocimiento a la programación de Windows sin ningún problema.

Para crear un archivo de origen de C y compilarlo en la línea de comandosVisual C++ 2008 incluye un compilador de C que se puede usar para crear cualquier

Prototipo Didáctico de Fundamentos de Programación Página 46

Page 47: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

cosa, desde programas de C básicos 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. También puede usar cualquiera de los programas de ejemplo de código de C incluido en el tema.

De forma predeterminada, el compilador de Visual C++ trata todos los archivos que finalizan en .c como código fuente de C, y todos los archivos finalizan en .cpp como código fuente de C++. Para hacer que el compilador trate todos los archivos como código fuente de C sin tener en cuenta la extensión del nombre de archivo, utilice la opción /TC del compilador.

Para crear un archivo de origen de C y compilarlo en línea 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; terminación de párrafo, haga clic en Símbolo del sistema de Visual Studio 2010.En función de la versión de Windows del equipo y de la configuración de seguridad del sistema, es posible que deba hacer clic con el botón secundario en Símbolo del sistema de Visual Studio 2008 y una continuación, hacer clic en Ejecutar como administrador para ejecutar correctamente, la aplicación se crea lo siguiente.

2. En el símbolo del sistema, escriba notepadsimple.c y presione Cataluña.Haga clic en Sí cuando se le pida que cree un archivo.

3. En el Bloc de notas, escriba las líneas siguientes.

4. En el menú Archivo, haga clic en Guardar para crear un archivo de origen de C.

5. Cierre el Bloc de notas.6. En el símbolo del sistema, escriba simple.c cl y presione Enter.El

compilador cl.exe género un programa ejecutable, Simple.exe.Puede ver el nombre del programa ejecutable, en las líneas de información de salida que muestra el compilador.

Prototipo Didáctico de Fundamentos de Programación Página 47

Page 48: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

7. Para ver una lista de todos los archivos del directorio \simple\, escriba dir simple.* y presione Enter.El archivo .obj es un archivo de formato intermedio.

8. Para ejecutar Simple.exe, escriba simple y presione Enter.El programa mostrará este texto y se cerrará; Se trata de un programa C nativo.

9. Para cerrar la ventana de símbolo del sistema, escriba salir y presione Enter.

3.5 Elementos del lenguaje: datos, literales y contantes, identificadores, variables, parámetros, operadores, entrada y salida de datos.

Datos.

El primer objetivo de toda computadora es el manejo de la información o datos.

Estos datos pueden se cifras de ventas de un supermercado o las calificaciones de una clase o información asignada por el usuario a un problema específico.

Un dato es la expresión 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 están compuestos de otra estructura de datos, los más usado son: enteros, reales, carácter (char) y los de tipo lógico (boolean).

Prototipo Didáctico de Fundamentos de Programación Página 48

Page 49: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Los datos estructurados no tienen limitaciones o restricciones en el tamaño de memoria ocupada que son propias de las estructuras estáticas. Los más comunes son: array (vector/matriz), registro, archivo (fichero), conjunto, cadena (string).

Tipos de Datos.

Al declarar variables se necesita indicar cuál es el tipo de datos de las variables, los tipos básicos permitidos por el lenguaje c++son los que se muestran en la siguiente tabla:

Hay que tener en cuenta que esos rangos son los clásicos, ya en la práctica los rangos,sobretodo el de los enteros, dependen del computador y procesador empleados.

Tiposnuméricos.

El tipo numérico es el conjunto de los valores numéricos. Estos pueden representarse en dos formas distintas:

Tipo numérico entero (integer). Tipo numérico real (real)

El tipo entero es un subconjunto finito de los números enteros. Los números enteros son números completos, no tienen componentes fraccionarios o decimales y pueden ser positivos o negativos.

Ejemplo de números enteros:

5 6-15 420 17

Prototipo Didáctico de Fundamentos de Programación Página 49

Page 50: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

1340

100

En aplicaciones científicas se requiere una presentación especial para manejar números, es ahí donde entra la representación en coma flotante es una generalización de notación científica. Un ejemplo seria:

3.02579 x10−11representación de notación exponencial.

En estas expresiones se consideran la mantisa (parte decimal) al número real y el exponente (parte potencial) el de la potencia de diez.

Tipos lógicos (booleanos)

El tipo lógico también llamado booleano, es aquel dato que solo puede tomar uno de los dos valore:

Este tipo de datos se utiliza para representar las alternativas (si/no) a determinadas condiciones, por ejemplo, cuando se pide si un valor entero es par, la respuesta será verdadera o falsa, según sea par o impar.

Tipo carácter y Tipo cadena.

El tipo carácter es el conjunto finito y orden de caracteres que la computadora reconoce. Un dato de tipo carácter contiene un solo carácter.

Los caracteres que reconocen las diferentes computadoras no son estándar; sin embargo, la mayoría reconoce los siguientes caracteres alfabéticos y numéricos.

Prototipo Didáctico de Fundamentos de Programación Página 50

Cierto o verdadero (true) y falso (false)

Caracteres alfabéticos: (A, B, C, ….., Z) (a, b, c, ….., z)

Caracteres numéricos: (1, 2, …, 9, 0)

Caracteres especiales: (+, -, *, /, ^, ., ;,<, >, $, …)

Page 51: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

El tipo cadena (string) de caracteres es una sucesión de caracteres que se encuentran delimitados por una comilla (apóstrofo)o dobles comillas, según el tipo de lenguaje de programación. La longitud de una cadena de caracteres es el número 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 clasificación de los tipos de datos:

Literales.

Cuando una variable se asigna a valores literales (17, 2.3, etc.) hay que tener en cuenta lo siguiente:

Los números se escriben tal cual (17, 34, 39). El separador de decimales es el punto (18.4 se interpreta como 18 coma4). Si un número entero se escribe anteponiendo un cero, se entiende que

está en notación octal. Si un número entero se escribe anteponiendo el texto 0x (cero equis), se

entiende que es un número hexadecimal, el número 0x10 significa 16. En los números decimales se admiten usar notación científica: 1.23e+23

eso significa 1,23 .1023. Los caracteres simples van encerrados entre comillas simples, 'a'. Los textos strings van encerrados entre comillas, ''Hola''.

Prototipo Didáctico de Fundamentos de Programación Página 51

Datos

Numéricos Carácter

Real

Lógico

Entero

Page 52: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Los enteros se pueden almacenar como caracteres 'A'o como enteros cortos, es más 'A' es lo mismo que 65. Eso vale tanto para el tipo carácter como para el tipo entero.

Secuencias de escape.

En el caso de los caracteres, hay que tener en cuenta que hay una serie de caracteres que son especiales. Por ejemplo como almacenamos en una variable char el símbolo de la comilla simple, si la propia comilla simple sirve para delimitar, es decir:

Eso no se puede hacer ya que el compilador entiende que hay una mala delimitación 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 minúscula.

Los caracteres especiales son:

Prototipo Didáctico de Fundamentos de Programación Página 52

Page 53: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Constantes.

Las constantes son objetos cuyo valor permanece por siempre a lo largo de la ejecución 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 mayoría de los lenguajes de programación permiten diferentes tipos de constantes, que suelen ser las siguientes: enteras, reales, caracteres y lógicas, y representan datos de ese tipo.

Identificadores.

Son las palabras creadas por los programadores para darle nombre a los objetos y demás 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 función, ya sea definida por el usuario o de las bibliotecas propias del programa.

Variables.

Son objetos cuyo valor puede ser modificado a lo largo de la ejecución de un programa. Las variable llevan un nombre llamado identificador, este puede ser una cadena de letras y dígitos, 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 programación, hay diferentes tipos de variables, tales como enteros, reales, carácter, lógicas y de cadenas.

Parámetros o argumentos.

Los parámetros o argumentos son un mecanismo para pasar datos del programa principal a un procedimiento y viceversa. Los parámetros de la llamada para

Prototipo Didáctico de Fundamentos de Programación Página 53

Page 54: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

ejecutar la rutina se llaman parámetros reales, mientras que los parámetros en la declaración de rutina se llaman parámetros formales.

A continuación se muestra un ejemplo de programación con un procedimiento que tiene un parámetro.

La salida por pantalla tras la ejecución del programa anterior es la siguiente:

Si hay varios parámetros formales del mismo tipo, los identificadores se separarán por comas y si son de distintos tipos, con los correspondientes caracteres de punto y coma, como se muestra a continuación.

Los parámetros pueden ser de cualquier tipo predefinido o ya declarado en la definición de tipos, incluso pueden ser funciones o procedimientos. Asimismo pueden existir parámetros formales de distintas clases.

Los parámetros formales se clasifican en:

Parámetros formales por Valor (o de entrada). Parámetros formalesVariables (o de entrada/salida).

Prototipo Didáctico de Fundamentos de Programación Página 54

Page 55: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Parámetros formales Variables sin Tipo.

Parámetros formales por Valor (o de entrada).

Los parámetros formales por valor permiten la introducción de información en el procedimiento. A continuación un ejemplo.

Los vales son introducidos en la llamada a la subrutina mediante el parámetro real que puede ser una constante, una variable o una expresión con un valor determinado. Al empezar a ejecutarse la subrutina se reserva espacio en la memoria para el parámetro formal al que, en un principio, se le asigna el mismo valor que el parámetro real. Posteriormente los valores que vayan tomando durante la ejecución de la subrutina, el parámetro real y formal serán independientes. Una vez terminada de ejecutar la subrutina se dejara libre de uso el espacio de memoria correspondiente al parámetro formal.

Ejemplo de un programa que incluye un procedimiento con un parámetro formal por valor:

Prototipo Didáctico de Fundamentos de Programación Página 55

Page 56: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Parámetros formales Variables (o de entrada/salida).

Los parámetros formales variables permiten la introducción y obtención o salida de información en el procedimiento.

En este caso la información que pasamos no es un valor del parámetro real sino la dirección de memoria en la que se almacena el valor del parámetro real. Este espacio de la memoria es compartido con el parámetro formal durante la ejecución del procedimiento. Es decir, cualquier cambio en el parámetro formal afectara al real y viceversa, de forma que el valor final del parámetro formal en la subrutina lo conserva el parámetro real al terminar de ejecutarse la subrutina.

Los parámetros reales que corresponden a parámetros variables (nunca constantes ni expresiones) que pueden tener o no un valor al hacer la llamada a la subrutina. Por ejemplo, los parámetros variables se pueden utilizar para asignar un valor por primera vez a variables globales (inicialización de variables).

Parámetros formales Variables sin Tipo.

Prototipo Didáctico de Fundamentos de Programación Página 56

Page 57: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Los parámetros formales variables sin tipo también permita la introducción y obtención o salida de información en el procedimiento.

Los procedimientos que declaran este tipo de parámetros formales se llaman de forma similar a los anteriores, pero pueden emplear parámetros reales de cualquier tipo, de forma que los parámetros formales asumen los tipos correspondientes de aquellos.

Un ejemplo de procedimiento con parámetros formales de diversos tipos es el siguiente.

Donde a y b son parámetros por valor; c, d y e son parámetros variables y f y g son parámetro variables sin tipo.

Operadores.

Operadores: Son elementos que relacionan de forma diferente, los valores de una o más variables y/o constantes. Es decir, los operadores nos permiten manipular valores.

Operadores Aritméticos: Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores (variables y constantes).Los operadores aritméticos 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.

Prototipo Didáctico de Fundamentos de Programación Página 57

+ Suma

- Resta

* Multiplicación

/ División

Mod Modulo (residuo de la división entera).

Page 58: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Ejemplos:

Prioridad de los operadores aritméticos.

Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis anidados se evalúan de adentro así afuera, el paréntesis más interno se evalúa primero.

Dentro de una misma expresión los operadores se evalúan en el siguiente orden.

1. ^ exponenciación.2. *, / y Mod multiplicación, división y modulo.3. +, - suma y resta.

Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izquierda a derecha. Ejemplo a continuación.

Prototipo Didáctico de Fundamentos de Programación Página 58

7/2 = 3.5

12 Mod 7 = 5

4 + 2 * 5 = 14

Page 59: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Operadores Relacionales.

Se utilizan para establecer una relación entre dos valores. Compara esto valores entre si y esta comparación produce un resultado de

certeza o falsedad (verdadero o falso). Los operadores relacionales comparan valores del mismo tipo (numéricos o

cadenas). Tiene el mismo nivel de prioridad en su evaluación. Los operadores relacionales tienen menor prioridad que los aritméticos.

A continuación unos ejemplos.

Prototipo Didáctico de Fundamentos de Programación Página 59

> Mayor que

< Menor que

>= Mayor o igual que

<= Menor o igual que

<> Diferente

= Igual

Operadores relacionales

Page 60: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Ejemplos no lógicos.

Operadores Lógicos.

Estos operadores se utilizan para establecer relaciones entre valores lógicos. 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 expresión relacional.

Prototipo Didáctico de Fundamentos de Programación Página 60

Page 61: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Ejemplo:

Prioridad de los Operadores Lógicos:

1. NOT2. AND3. OR

Prioridad de los Operadores en general:

1. ( )2. ^3. *, /, Mod, Not4. +, -, And5. >, <, > =, < =, <>, =, Or

A continuación algunos ejemplos.

Prototipo Didáctico de Fundamentos de Programación Página 61

Page 62: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Entrada y Salida de Datos (información).

Las operaciones de entrada permiten leer determinados valores y asignarlos a determinadas variables, esto se conoce como operación de lectura (read). Los datos de entrada se introducen al procesador mediante los dispositivos físicos que son: teclado, tarjetas perforadas, unidades de disco, etc.

Las salidas pueden aparecer en un dispositivo físico de salido como: pantalla, impresora, etc. A esta operación se le denomina escritura (write).

En la escritura de algoritmo las acciones de lectura y escritura se representan por los formatos siguientes:

Así, por ejemplo:

Prototipo Didáctico de Fundamentos de Programación Página 62

Leer (lista de variables de entrada)

Escribir (lista de expresiones de salida)

Page 63: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

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 - o escribir en el dispositivo de salida - el mensaje 'hola Abimael'.

Leer en inglés es read y escribir en inglés es write o bien print, como suelen traerlos lo diferentes lenguajes de programación.

3.6 Errores en Tiempo de Ejecución.

Como cada lenguaje de programación tiene unas reglas especiales (sintaxis) debe existir un compilador específico para cada lenguaje de programación.

Si el programa fuente es sintácticamente correcto, el compilador generará el código objeto, en caso contrario mostrará una lista con los errores encontrados, no generándose ningún programa objeto, para que procedamos a su depuración

Los compiladores emiten mensajes de error o de advertencia durante las fases de compilación, de enlace o de ejecución de un programa:

Los errores en tiempo de compilación son los que se producen antes de la ejecución del programa, durante el proceso de compilación del programa.

Los errores en tiempo de ejecución son los que se producen durante la ejecución del programa. Son los más difíciles de encontrar, no son detectados por el compilador, ya que son errores de lógica, no de sintaxis.

Ejemplo de un programa que tiene errores de ejecución.

Prototipo Didáctico de Fundamentos de Programación Página 63

Page 64: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

UNIDAD 4

CONTROL DE FLUJO

4.1 Estructuras secuenciales.

Se caracteriza por que una acción se ejecuta de tras de la otra (la instrucción sigue a otra en secuencia). Dentro de este tipo podemos encontrar operaciones de inicio/fin, inicialización de variables, operaciones de asignación, calculo, sumarización, 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 continuación figura 4.a que representa una estructura secuencial.

Prototipo Didáctico de Fundamentos de Programación Página 64

Page 65: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

La estructura secuencial tiene una entra y una salida, su representación gráfica se muestra en la figura 4.b y 4.c.

Prototipo Didáctico de Fundamentos de Programación Página 65

Figura 4.a Estructura secuencial

Figura 4.b pseudocódigo de una estructura secuencial.

Page 66: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Ejemplos usando la estructura secuencial.

Ejemplo 4.1. Calculo de la suma y producto de dos números.

La suma S de dos números es S = A + B. El pseudocódigo y el diagrama de flujo correspondiente se muestran a continuación.

Pseudocódigo:

Diagrama de flujo:

Prototipo Didáctico de Fundamentos de Programación Página 66

inicio

leer (A)

leer (B)

S ← A + B

P ← A * B

escribir (S, P)

fin.

Page 67: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Diagrama N-S.

4.2 Estructuras selectivas: simple, doble y múltiple.

La especificación formal de algoritmos tiene realmente utilidades cuando el algoritmo requiere una instrucción. Este es el casi cuando existe un numero de posibles alternativas resultantes de la evaluación de una determinada condición.

Prototipo Didáctico de Fundamentos de Programación Página 67

Page 68: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Estas estructuras se identifican porque en la fase de solución de un problema existe algún punto en el cual es necesario establecer una pregunta, para decidir si ciertas acciones deban realizarse o no.

Las condiciones se especifican usando expresiones lógicas. La representación de una estructura selectiva se hace con palabras en pseudocódigo (if - then - else o en español si - entonces - sino) y en flujograma (figura geométrica) en forma de un rombo o bien con un triángulo en el interior de una caja rectangular.

Las estructuras selectivas o alternativas son:

Simples. Dobles. Múltiples.

Estructura selectiva simple.

Se identifican porque están compuestos únicamente de una condición. La estructura si – entonces (en inglés, if – then) ejecuta la condición y en tal caso, si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias), y si la condición es falsa, entonces no hace nada.

A continuación se muestra las representaciones graficas de la estructura condicional simple.

Prototipo Didáctico de Fundamentos de Programación Página 68

Estructuras alternativas simples: pseudocódigo, diagrama de flujo, diagrama N-S.

Page 69: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Ejemplo usando estructuras selectivas simples.

Construir un algoritmo tal, que dado como dato la calificación de un alumno en un examen, escriba ''aprobado'' en caso de que esa calificación fuese mayor que 8.

Salidas: mensaje de aprobado si se cumple la condición.

Entradas: calificación.

Datos adicionales: un alumno aprueba si la calificación es mayor que 8.

Variables: Cal = calificación

Representación graficas de los resultados obtenidos del ejemplo antes mencionado.

Prototipo Didáctico de Fundamentos de Programación Página 69

Inicio

Leer (Cal)

Si Cal > 8 entonces

Escribir (''aprobado'')

Fin_si

Fin

Diagrama de flujo

Pseudocódigo

Page 70: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Estructura de selección doble.

Son estructuras lógicas que permiten controlar la ejecución 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.

Representación en pseudocódigo a continuación.

Entonces, si una condición C es verdadera, se ejecuta la acción S1 y si es falsa, se ejecuta la acción S2.

Prototipo Didáctico de Fundamentos de Programación Página 70

Diagrama N-S

Page 71: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

A continuación ejemplos con laestructura de selección doble.

Ejemplo 1.

Dado como dato la calificación de un alumno en un examen, escriba ''aprobado'' si su calificación es mayor que 8 y ''reprobado'' en caso contrario.

Prototipo Didáctico de Fundamentos de Programación Página 71

Estructura de selección doble: representación en diagrama de flujo.

Estructura de selección doble: representación en diagrama N-S.

Inicio

Leer (cal)

Si cal > 8 entonces

Escribir (''aprobado'')

Sino

Escribir (''reprobado'')

Fin_si

Fin

Pseudocódigo

Diagrama de flujo

Page 72: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Ejemplo 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.

Estructuraselectivamúltiple.

Prototipo Didáctico de Fundamentos de Programación Página 72

Diagrama N-S

Inicio

Leer (sue)

Si sue< 100 entonces

Nsue←sue* 1.15

Sino

Nsue←sue* 1.12

Fin_si

Escribir (Nsue)

Fin

Pseudocódigo Diagrama N-S

Page 73: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Con frecuencia es necesario que exista más de dos elecciones posibles. Esto situación se resuelve usando la estructura selectiva múltiple, así te evitaras una serie de problemas de escritura y de legibilidad.

Usando la estructura de decisión múltiple se evaluara una expresión que podrá tomar '' n '' valores distintos, 1, 2, 3, ………., n y según que elija uno de estos valores en la condición, se realizara una de las '' n '' o lo que es igual, el flujo del algoritmo seguirá sólo un determinado camino entre las '' n '' posibles.

Esta estructura se representa por un selector el cual si tomael valor 1 ejecutara la acción 1, si toma el valor 2 ejecutara la acción 2, si toma el valor N realizara la acción N.

A continuación una representación de la estructura selectiva múltiple

.

Ejemplos con la estructura selectiva múltiple.

Ejemplo 1.

Diseñar un algoritmo tal que dado como dato dos variables de tipo entero, obtengan el resultado de la siguiente función.

Prototipo Didáctico de Fundamentos de Programación Página 73

Page 74: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

4.3 estructuras iterativas: repetir, mientras, desde/hasta.

Son operaciones que se deben ejecutar un número repetido de veces. El conjunto de instrucciones que se ejecutan repetidamente cierto número de veces, se llama ciclo, bucle o lazo.

Iteración significa cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle.

Fases de un programa cíclico:

1. Entrada de datos e instrucciones previas.

Prototipo Didáctico de Fundamentos de Programación Página 74

Pseudocódigo Diagrama de flujo

Diagrama N-S

Page 75: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

2. Lazo o bucle.3. Instrucciones finales o reto del proceso.4. Salida de resultado.

A continuación un ejemplo de bucle infinito.

En este diagrama de flujo, el bucle se estará repitiendo indefinidamente ya que no existe ninguna condición que nos permita finalizar en algún momento.

A continuación un ejemplo de un bucle finito.

Es este ejemplo, el bucle finalizara cuando se cumpla la condición de que N sea igual a cero. Esto quiere decir, que existe una condición que nos permitirá en algún momento finalizar.

Prototipo Didáctico de Fundamentos de Programación Página 75

Representación gráfica de bucle infinito

Page 76: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Bucles repetitivos:

A continuación, se muestran tres diseños de estructuras clínicas:

las independientes son cuando los bucles se realizan uno primero hasta que se cumpla la condición y solo en ese caso se entra al bucle que sigue.

Los ciclos anidados, al entrar a una estructura de repetición, dentro de ella se encuentra otra. La más interna se termina de realizar y se continúa con la externa hasta que la condición 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.

Veamos a continuación gráficamente el diseño de estas tres formas cíclicas:

Enseguida vemos el diseño de la estructura en diagrama de flujo.

Prototipo Didáctico de Fundamentos de Programación Página 76

Representación gráfica de bucle

Page 77: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Estructura iterativa repetir.

Se llama repetir a la estructura algorítmica que se ejecuta un número definido de veces hasta que la condición se torna verdadera.

Prototipo Didáctico de Fundamentos de Programación Página 77

Representación grafica

Representación pseudocodificada

Page 78: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Ejemplo con la estructura iterativa repetir.

Calcular la suma de los cuadros de los primeros 100 números enteros y escribe el resultado.

Solución: las reglas para la construcción 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 condición estará colocada al final del bucle, para que primero ejecutemos la instrucción y luego preguntamos si la condición se cumple. Esto quiere decir, que en esta estructura el bucle se realizara por lo menos una vez; también observaremos que la condición está al revés, porque el bucle se repite hasta que la condición se cumpla.

Prototipo Didáctico de Fundamentos de Programación Página 78

Pseudocódigo

Diagrama N-S

Page 79: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Estructura iterativa mientras.

Se llama mientras a la estructura algorítmica que se ejecuta mientras la condición evaluada resulte verdadera. Se evalúa la expresión booleana y, si es cierta, se ejecuta la instrucción especificada, llamada el cuerpo del bucle.

Entonces se vuelve a evaluar la expresión booleana, y si todavía es cierta se ejecuta de nuevo el cuerpo. Este proceso de evaluación de la expresión booleana y ejecución del cuerpo se repite mientras la expresión sea cierta, cuando se hace falsa, finaliza la repetición.

Prototipo Didáctico de Fundamentos de Programación Página 79

Diagrama de flujo

Representación grafica

Page 80: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Observemos el diagrama de flujo, que se necesita una variable contadora (un índice), para llevar la cuenta de las veces que entramos al cuerpo del ciclo. También 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 condición. Cuando se cumple la condición, se sale del ciclo.

Ejemplo con la estructura mientras.

Calcular la suma de los cuadrados de los primeros 100 números enteros y escribir el resultado.

Prototipo Didáctico de Fundamentos de Programación Página 80

Representación pseudocodificada

Pseudocódigo

Diagrama N-S

Page 81: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Estructura iterativa desde/hasta.

Prototipo Didáctico de Fundamentos de Programación Página 81

Diagrama de flujo

Page 82: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Se usa frecuentemente cuando se conoce de antemano el número de veces que se ejecutarán las acciones de un bucle. Enseguida se muestra una de sus características, en su representación gráfica.

Representación pseudocodificada:

La estructura desde/hasta se le conoce como repetitiva, para usar esta estructura en algoritmos debemos hacer uso de contadores y de algunas veces de acumuladores, cuyo breve concepto daremos a continuación.

Contador: es una variable cuyo valor aumenta o disminuye en una cantidad constante cada vez que se produce un determinado suceso o acción. Los contadores se utilizan con la finalidad de contar acciones internas del bucle; deben realizar una operación de inicialización y posteriormente las sucesivas de incremento o decremento del mismo. La inicialización consiste en asignarle al contador un valor. Se situará antes y fuera del bucle.

Prototipo Didáctico de Fundamentos de Programación Página 82

Español

Desde var = valor inicial hasta valor final hacer

Acciones

Fin_desde

Ingles

Forvar = valor inicial to valor final do

Acción

End_for

Page 83: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

A continuación su representación pseudocodificada:

Acumulador 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 continuación su representación pseudocodificada:

Ejemplo con la estructura iterativa desde/hasta:

Calcular la suma de los cuadrados de los primeros 100 enteros y escribir el resultado.

Prototipo Didáctico de Fundamentos de Programación Página 83

<nombre>¬ nombre del contador > + <valor constante>

Si en vez de incremento es decremento se coloca un menos en lugar del más.

Ejemplo: i = i + 1

<Nombre del acumulador> ¬ <nombre del acumulador> + <valores variables>

Inicio

Suma

Desde I = 1 hasta 100 hacer

Suma ← suma + I * I

Fin_desde

Escriba (suma)

Fin

Pseudocódigo

Page 84: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

4.4 Diseño e implementación de funciones.

Una función es un subprograma que recibe, como argumentos o parámetros, datos de tipo numérico o no numérico, y devuelve un único resultado.Las funciones incorporadas al sistema se denominan funciones internas, o intrínsecas; las funciones definidas por el usuario se llaman funciones externas. El algoritmo o programa invoca la función con el nombre de esta última en una expresión seguida de una lista de argumentos que deben coincidir en cantidad, tipo y orden con los de la función que fue definida.

A continuación explicaremos como se hace la declaración de funciones:

En primer lugar, la cabecera, en la que hay que indicar el tipo del valor que devuelve la función. Por este motivo la llamada a una función debe ir incluida adecuadamente en una expresión. El tipo de dato que devuelve una función puede ser ordinal, real, cadena o puntero.En segundo lugar, en el cuerpo de la función hay que indicar mediante una sentencia de asignación el valor que debe devolver la función. El primer término de esta sentencia de asignación es el identificador de la función y el segundo término, una constante, variable o expresión compatible con el tipo de dato que devuelva la función. Aparte de esto, todo lo dicho anteriormente para los procedimientos sirve para las funciones.

A continuación el esquema de declaración de una función:

Prototipo Didáctico de Fundamentos de Programación Página 84

Diagrama de flujo

Page 85: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

La invocación o llamada de una función ya la hemos estudiado en el capítulo 2.4 de este prototipo didáctico, al igual que la declaración de una función por eso seremos honestos al afirmar que ya hemos estudiado estos temas.

A continuación ejemplo para cerrar con este tema.

Mostramos un ejemplo de la declaración de una función que no tiene declaraciones locales seria:

Prototipo Didáctico de Fundamentos de Programación Página 85

Page 86: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

UNIDAD 5

ARREGLOS

5.1 Unidimensionales: conceptos básicos, operaciones y aplicaciones.

Un arreglo (array) es una colección de datos del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre común. Para referirse a un determinado elemento de un array se deberá utilizar un índice, que especifique su posición relativa en el array. Un arreglo es una colección finita, homogénea y ordenada de elementos.

Finita: Todo arreglo tiene un límite; es decir, debe determinarse cuál será el número máximo de elementos que podrán formar parte del arreglo.

Homogénea: Todos los elementos del arreglo deben ser del mismo tipo.

Ordenada: Se puede determinar cuál es el primer elemento, el segundo, el tercero y así sucesivamente.

Los arreglos se clasifican de acuerdo con el número de dimensiones que tienen. Así se tienen los:

- Unidimensionales (vectores).

- Bidimensionales (tablas o matrices).

- Multidimensionales (tres o más dimensiones).

Prototipo Didáctico de Fundamentos de Programación Página 86

Page 87: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Un array unidimensional, o lineal, o vector, es un conjunto finito y ordenado de elementos homogéneos.

Es finito porque tiene un número determinado de elementos. Homogéneo 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 posición 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 números

Prototipo Didáctico de Fundamentos de Programación Página 87

Representaciones grafica

Representación grafica

Page 88: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

enteros. Para referenciar un elemento de un array usaremos el nombre del array y entre corchetes [ ] el índice que determina la posición de ese elemento en el array.

El rango o longitud de un vector o array lineal es la diferencia entre el índice de valor máximo y el índice de valor mínimo de ese array + 1. Normalmente los índices comienzan a enumerarse, es decir, el valor mínimo 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 través de los índices. Un índice no tiene por qué ser un valor constante, sino que puede ser también una variable o una expresión 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 declaración, 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 [1992] 100000

I: entero

I 1992

Sueldo [I]

Sueldo [I+2]

Operaciones y aplicaciones con arreglos unidimensionales o vectores.

1. Asignación de un dato a una posición concreta del array:

<nom_array>[indice] valor

Ventas [3] 800000

Prototipo Didáctico de Fundamentos de Programación Página 88

Page 89: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

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]

fin 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 información.

Desde i=1 hasta 12

Ventas [i] ventas [i] + 1000000

Fin desde

4. Actualización de un array:

1º) Añadir datos:

Es un caso especial de la operación de inserción de un elemento en un array, pero el elemento lo metemos después de la última posición que contiene información válida en el array.

Para que esto se pueda hacer es necesario que si actualmente el array tiene K posiciones de información válida, tenga un tamaño de al menos K+1 para que pueda añadir otro elemento a continuación de K.

<nom_array>[K+1] valor

2º) Inserción de datos:

Prototipo Didáctico de Fundamentos de Programación Página 89

Page 90: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

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 posición 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 información en el array, el array tendrá que tener un tamaño de cómo mínimo N+1 para poder insertar el elemento.

(G)

Siendo K la posición en la que tengo que insertar el nuevo elemento y N el número de elementos válidos en el array en el momento de la inserción y siempre suponiendo de N+1, el algoritmo de inserción 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 ningún problema, simplemente si el tamaño del array era N, ahora hay que considerar que el tamaño del array es N−1.

Si el elemento a borrar ocupa cualquier otra posición entonces tendré que desplazar todos los elementos situados a la derecha del que quiero borrar una posición hacia la izquierda para que el array quede organizado.

Borrar J.

Suponiendo que el número de elementos validos actualmente es N y que quiero borrar el elemento de la posición K.

Desde i=K hasta N−1

Prototipo Didáctico de Fundamentos de Programación Página 90

Page 91: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

A[I] A[I+1]

Fin desde

Para indicar que el número de elementos validos es N, podríamos indicarlo como N N−1.

5.2 Multidimensionales: conceptos básicos, operaciones y aplicaciones.

Arreglo Bidimensional:

Es un conjunto de datos homogéneo, 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. También 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 número de filas de la matriz.

N: es el número de columnas de la matriz.

Arreglo multidimensional:

Un arreglo multidimensional es un array de 3 ó más dimensiones. Si tenemos un array de N dimensiones, cada dimensión de tamaño d1,d2,..,dN, el número 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 posición dentro de una dimensión, siempre según el orden de declaración.

En memoria, el array se sigue almacenando en posiciones consecutivas.

La declaración de un array multidimensional sería:

Nom_array: array [LI1..LS1,LI2..LS2,LI3..LS3,LIN..LSN] de tipo

Prototipo Didáctico de Fundamentos de Programación Página 91

Page 92: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Nom_array [I1,I2,I3,IN]

LI1 <= I1 <= LS2

LIN <= I2 <= LSN.

Glosario de términos

And: Y.

Or: O.

Not: NO.

E/S: Entrada y Salida.

Goto: Ir.

Read: Leer.

Write: Escribir.

Open: Abrir.

Linker: Enlazador.

Byte: Expresión para mencionar una numeración computacional. 8 bits.

Bytecode: Expresión para mencionar una numeración computacional.

CLI: (Command line interface) interfaz de línea de comando.

Busg: Errores.

Top – Down: Programación descendente.

ANSI: Instituto norteamericano de normalización.

N-S: Nassi-Schneiderman.

SQL: Lenguaje de consulta estructurado.

Prototipo Didáctico de Fundamentos de Programación Página 92

Page 93: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

ASCII: (American Standard CodeforInformationInterchange; código estándar americano para intercambio de información).

Warnings: Advertencia.

S.O.: Sistema operativo.

C.P.U.: Unidad central de proceso.

Is power programming: Es la programación de alimentación.

Notepad simple.c: Bloc de notas simple.c.

Includestdio.h: #include comando que ordena al compilador, stdio cabecera estándar E/S del programa C, C++.

Printf: Función para mostrar una cadena con formato.

Simple.c cl: Simple.c.cl.

cl.exe: Error en cuestión.

Dir: Comando de dos, es un comando usado para mostrar un listado de archivos y directorios.

Array: Arreglo.

Char: Carácter.

Int: Entero.

Float: Elemento flotante.

Double: Doble.

Bool: Lógico.

Void: No existencia o no atribución de un tipo en una variable o declaración.

String: Cadena.

Backslash: Barra inclinada o invertida.

Beep: Alarma.

Var: Variable.

Begin: Marcador de bloqueo.

Prototipo Didáctico de Fundamentos de Programación Página 93

Page 94: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

For: Palabra clave, iniciar un bucle iterativo.

Writeln: Procedimiento, alimenta una nueva línea, antes de finalizar.

End: fin. Fin: fin.

Proceduremodi: Procedimiento

Mod: Modulo.

Print: Instrucción para mandar a imprimir.

Voidmain: Indica que no espera ningún valor.

Scanf: 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 función o funciones.

End_for: Bucle controlado por una variable contador.

Program: Programa.

Nom_array: Nombre del arreglo.

N: Número de veces.

Update: Actualizar.

GUI: (Graphical user interface), Interfaz grafica de usuario.

.cpp: Definen el tipo de código que hay escritos en el programa C, C++.

Prototipo Didáctico de Fundamentos de Programación Página 94

Page 95: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Prototipo Didáctico de Fundamentos de Programación Página 95

Conclusiones

El propósito de este trabajo es que el alumno o usuario que tenga o no conocimientos en la computación, pueda llegar a involucrarse en el inmenso mundo de la programación,

Es decir, se busca encaminar a los alumnos hacia lo que es programación, para que en un futuro que deseen aprender un determinado lenguaje de programación tengan las bases necesarias y fundamentales para poder empezar programar.

Así pues, buscamos empapar al alumno o usuario, de todos los conceptos y herramientas básicas que lo ayuden desde un inicio a llegar hacer un buen programador.

Page 96: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Prototipo Didáctico de Fundamentos de Programación Página 96

Bibliografía

Fundamentos de programación: Algoritmos y Estructura de datos. Luis Joyanes Aguilar; Primera y Segunda Edición, McGRAW-HILL.

Fundamentos de programación: Algoritmos, Estructura de datos y Objetos. Luis Joyanes Aguilar; Tercera Edición, McGRAW-HILL.

Introducción a la programación: Algoritmos y su implementación en VB.NET, C#, JAVA y C++. Felipe Ramírez; Segunda Edición, Alfaomega.

www.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+conceptual&hl=es&cp=37&gs_id=8j&xhr=t&q=mapa+conceptual+fundamentos+de+programacion&pf=p&sclient=psy-ab&source=hp&pbx=1&oq=mapa+conceptual+fundamentos+de+progra&aq=0w&aqi=q-w1&aql=&gs_sm=&gs_upl=&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=88ed68d63053d00d&biw=1232&bih=581

Page 97: Apuntes.fundamentos de Programacion

Instituto Tecnológico del Istmo

Prototipo Didáctico de Fundamentos de Programación Página 97

AGRADECIMIENTOS

Agradezco a DIOS, JESUCRISTO y ESPÍRITU SANTO, que han esto conmigo en la elaboración de este prototipo, dándome la sabiduría 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 tía Jisela porque siempre estuve en sus oraciones y su amor estuvo conmigo.

A mi familia López Cerqueda y Cruz Gálvez, 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 didáctico 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.