programación i

43
Universidad Autónoma del Carmen Escuela Preparatoria Unidad Académica Campus II CUADERNO DE TRABAJO OPTATIVA: PROGRAMACIÓN I Ciclo escolar: Agosto -Diciembre 2014 Recopilado y presentado por: L.I. Josefina de la Cruz Cruz [email protected] L.I. Adriana Alejandra Arcos Rodríguez [email protected] L.I. Leidy del Carmen de la Cruz Méndez [email protected] L.I. Everardo Arcos Heredia [email protected] ALUMNO: 5°____ Cd. Del Carmen, Campeche, Agosto de 2014.

Upload: josefina-de-la-cruz

Post on 02-Apr-2016

215 views

Category:

Documents


1 download

DESCRIPTION

Material de la primera secuencia didáctica

TRANSCRIPT

Page 1: Programación I

Universidad Autónoma del Carmen

Escuela Preparatoria

Unidad Académica Campus II

CUADERNO DE TRABAJO

OPTATIVA:

PROGRAMACIÓN I

Ciclo escolar:

Agosto -Diciembre 2014

Recopilado y presentado por:

L.I. Josefina de la Cruz Cruz

[email protected]

L.I. Adriana Alejandra Arcos Rodríguez

[email protected]

L.I. Leidy del Carmen de la Cruz Méndez

[email protected]

L.I. Everardo Arcos Heredia

[email protected]

ALUMNO: 5°____

Cd. Del Carmen, Campeche, Agosto de 2014.

Page 2: Programación I

2

Contenido

Introducción. ....................................................................................................................................... 4

OBJETIVO ............................................................................................................................................. 4

Actividad 1 : Cuadro comparativo ................................................................................................... 5

Rúbrica de evaluación ..................................................................................................................... 7

1.1. Definición de programa. ........................................................................................................ 10

1.1.1 Datos. ................................................................................................................................... 11

1.1.2 Operaciones. ........................................................................................................................ 11

1.1.3 Estructura de control. .......................................................................................................... 11

1.1.3.1 Estructuras secuenciales. .............................................................................................. 12

1.1.3.2 Estructuras de decisión. ................................................................................................ 12

1.1.3.3 Estructuras de repetición. ............................................................................................. 12

El mundo de Karel ............................................................................................................................. 13

Primeras instrucciones y programas ................................................................................................. 13

Primer programa ........................................................................................................................... 14

Gramática .................................................................................................................................. 15

Errores ........................................................................................................................................... 16

Apagón ...................................................................................................................................... 16

La instrucción iterate ..................................................................................................................... 17

1.2 Características básicas de un programa. ..................................................................................... 19

Actividad 2 : Cuestionario ............................................................................................................ 20

Rúbrica de evaluación ................................................................................................................... 21

1.3 Ciclo de desarrollo de programas. .............................................................................................. 22

1.3.1 Análisis. ................................................................................................................................. 22

1.3.2 Diseño. .................................................................................................................................. 22

1.3.3 Selección de la interfaz......................................................................................................... 22

1.3.4 Codificación. ......................................................................................................................... 22

1.3.5 Prueba y depuración. ........................................................................................................... 23

1.3.6 Documentación. ................................................................................................................... 23

1.3.6.1 Documentación interna. ............................................................................................... 23

1.3.6.2 Documentación externa. ............................................................................................... 23

Page 3: Programación I

3

1.4 Definición de lenguaje. ................................................................................................................ 23

Actividad 3 : Relación de columnas .............................................................................................. 25

Rúbrica de evaluación ................................................................................................................... 26

1.5 Definición de algoritmo. .............................................................................................................. 27

1.6 Definición de lenguaje algorítmico. ............................................................................................ 31

1.7 Características de los algoritmos ................................................................................................ 31

Actividad 4 : Solución a problemas ............................................................................................. 32

Rúbrica de evaluación ................................................................................................................... 33

1.8 Pseudocódigo. ............................................................................................................................ 34

1.9 Diagramas de flujo. ..................................................................................................................... 35

SECUENCIA DIDÁCTICA ...................................................................................................................... 37

Page 4: Programación I

4

BLOQUE 1

FUNDAMENTOS DE PROGRAMACIÓN

Introducción.

La computadora, se ha convertido en algo necesario hoy en día, sirviéndonos en algunos casos como

un simple procesador de textos, a llegar a convertirse en una herramienta poderosa que permite

realizar los cálculos más sofisticados, en un tiempo muy corto y con una precisión muy elevada. Es

así que por más pequeño que sea un negocio este cuenta con un programa de acuerdo a las

características de este, el mismo que le permita realizar una contabilidad, facturación, pedidos,

etc.

En este cuaderno de trabajo conocerás los conceptos básicos que te permitan entender la

importancia de los algoritmos en la solución de problemas y las características que deben tener para

que funcionen y den la solución adecuada.

OBJETIVO:

Conocer la terminología básica de la programación y elementos que intervienen en la solución de

problemas de la vida cotidiana así como proponer soluciones matemáticas.

Page 5: Programación I

5

INTRODUCCIÓN

A lo largo de nuestra vida nos enfrentamos con situaciones a las que llamamos problemas, como

son: el pasar un examen, la carrera que debemos estudiar o situaciones familiares o sociales en las

que tenemos que tomar una decisión, pero ¿cuál es la definición de problema?

En la actualidad las computadoras son una herramienta que utilizamos a diario para dar solución a

una infinidad de problemas cotidianos. Imagina, ¿cuáles problemas podrías solucionar con una

computadora?, ¿de qué manera la computadora nos ayuda a solucionarlos?

Para comenzar realiza lo siguiente:

Actividad 1 : Cuadro comparativo Grupo: Calificación

Nombre del alumno: Fecha:

TÉRMINOS DEFINICIÓN 1 DEFINICIÓN 2 DEFINICIÓN 3 CONCLUSIÓN

PROBLEMA

FUENTE

ALGORITMO

FUENTE

SISTEMA

Page 6: Programación I

6

FUENTE

CODIGO

FUENTE

INFORMACIÓN

FUENTE

DATO

FUENTE

Page 7: Programación I

Rúbrica de evaluación Fecha:

Nombre del alumno: Semestre: 5° Grupo: Nombre de la evidencia: Cuadro comparativo

Nombre de la secuencia: Fundamentos de programación Valor: 5 ptos.

Indicadores valor Criterios

3 2 1 0 Valor obtenido

Conceptos 3

Escribió tres definiciones diferentes de cada concepto. Definió cada concepto citando autor y libro.

Escribió tres diferentes definiciones para cada concepto.

Escribió sólo algunas definiciones.

No realizó nada

Estructura

Valor 2 1 0 Valor obtenido

2

Respetó el formato establecido para la actividad. Redactó con sus palabras lo que comprendió de cada concepto.

Respetó levemente el formato establecido para la actividad. Cubrió algunos puntos de la actividad.

No realizó nada

Total

Page 8: Programación I

Resolución de problemas por computadoras:

La principal razón para que las personas aprendan lenguajes de programación es utilizar un ordenador como una

herramienta para la resolución de problemas. Tres fases pueden ser identificadas en el proceso de resolución:

1. Análisis del problema.

2. Diseño del algoritmo

3. Resolución del algoritmo en la computadora

Análisis del problema:

El primer paso para encontrar la solución a un problema es el análisis del mismo. Se debe examinar

cuidadosamente el problema a fin de obtener una idea clara sobre lo que se solicita y determinar los datos

necesarios para conseguirlo.

Diseño del algoritmo:

Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la

resolución de un problema dado y expresado en lenguaje natural, por ejemplo el castellano, Todo algoritmo debe

ser:

Preciso: Indicando el orden de realización de cada uno de los pasos.

Definido: Si se sigue el algoritmo varias veces proporcionándole (consistente) los mismos datos, se deben

obtener siempre los mismos resultados.

Finito: Al seguir el algoritmo, este debe terminar en algún momento, es decir tener un número finito de

pasos.

Para diseñar un algoritmo se debe comenzar por identificar las tareas más importantes para resolver el problema

y disponerlas en el orden en el que han de ser ejecutadas. Los pasos en esta primera descripción pueden requerir

una revisión adicional antes de que podamos obtener un algoritmo claro, preciso y completo.

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce

como método descendente (top-down).

Resolución de un problema

Análisis del problema

Diseño del algoritmoResolución del

problema con la computadora

Page 9: Programación I

En un algoritmo se deben de considerar tres partes:

Entrada: información dada al algoritmo, es decir, lo que se necesita para resolver el problema.

Proceso: operaciones o cálculos para encontrar la solución al problema.

Salida: resultados finales de los procesos realizados.

Ejemplo: Identifica las entradas, los procesos y las salidas para fabricar muebles de madera.

Resolución del problema mediante computadora:

Una vez que el algoritmo está diseñado y representado gráficamente mediante una herramienta de

programación (diagrama de flujo, pseudocódigo ) se debe pasar a la fase de resolución práctica del problema con

la computadora.

Ejercicio.

1. Elaborar las operaciones aritméticas básicas de dos números

Entrada proceso Salida

Materias primas

Diseñar el mueble,

cortar, lijar, armar

Muebles terminados

. . .

ENTRADA PROCESO SALIDA

Page 10: Programación I

2. Determinar el promedio de las calificaciones que se obtuvieron de matemáticas, español e inglés en un

periodo.

3. Un maestro desea saber qué porcentaje de hombres y que porcentaje de mujeres hay en un grupo de

estudiantes.

1.1. Definición de programa.

Un programa es un conjunto de instrucciones escritas en un determinado lenguaje que dirigen a un ordenador

para la ejecución de una serie de operaciones, con el objetivo de resolver un problema que se ha definido

previamente.

Los elementos de un programa:

• Datos (variables)

• Operaciones (instrucciones, códigos o funciones)

• Estructuras de Control

. . .

. . .

ENTRADA PROCESO SALIDA

ENTRADA PROCESO SALIDA

Page 11: Programación I

1.1.1 Datos.

La información es el resultado de recabar datos, estructurarlos y convertirlos en una forma útil o inteligible para

tomar decisiones y actuar de modo adecuado hasta alcanzar ciertos objetivos específicos. Por ejemplo, un

documento con texto e imágenes, una factura, una tabla de conversiones, etc.

La importancia de la información radica en el proceso que permite cambiar una materia prima (los datos), a fin

de obtener resultados finales útiles para el ser humano. En ese sentido, se podría establecer un cierto paralelismo

entre una computadora y una máquina- herramienta, ya que ésta, al igual que aquélla, trata una materia prima

–en su caso, a través de una serie de procesos de mecanizado-, hasta transformarla en algo (una pieza) útil para

el hombre.

En la información destacan tres elementos muy importantes: los datos, la utilidad y las acciones.

El dato es un concepto básico elemental que es susceptible de ser captado por la mente, es decir, son los hechos,

la materia prima de la información. Los datos se representan por medio de símbolos, los cuales son utilizados

por las personas para comunicar hechos y conceptos. Queda claro que los datos no son objetos sólidos que se

puedan almacenar y propagar, sino que deben adaptarse de una manera adecuada para que la información no

vaya a perderse. Si los datos se comunican en forma oral, adoptarán la forma de fonemas (señales audibles) de

un idioma determinado; en el telégrafo los datos toman la forma de señales eléctricas; en un casete los datos

serán señales magnéticas, y en las fibras ópticas la transmisión de datos se efectúa con señales luminosas. Otro

buen ejemplo, aunque antiguo, son las señales de humo.

1.1.2 Operaciones. Las operaciones corresponden a los procedimientos o acciones que se ejecutan sobre los datos. Las más comunes

son: definición de estructuras de datos, lectura / escritura de datos y operaciones aritméticas.

1.1.3 Estructura de control. La estructura es el modo en que se pueden agrupar y organizar las acciones de un programa.

Las estructuras se clasifican en:

• Simples o Secuenciales

• Condicionales (Decisión)

• Cíclicas (Repetición)

Page 12: Programación I

1.1.3.1 Estructuras secuenciales.

La estructura secuencial es aquella en la que una acción (instrucciones)

sigue a otra en secuencia. Las tareas suceden de tal modo que la salida de una

es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. Por

ejemplo:

1.1.3.2 Estructuras de decisión.

Controlan el flujo de un programa ejecutando las acciones en función del

cumplimiento de condiciones específicas. Por ejemplo:

1.1.3.3 Estructuras de repetición.

Son aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una

cantidad específica de veces (pasos). Esta cantidad puede ser fija (previamente determinada por el

programador) o puede ser variable (estar en función de algún dato del programa).

Ejemplo:

Hacer un programa que pregunte y escriba en la pantalla el nombre de 3 usuarios utilizando estructuras cíclicas.

Proceso Central

Proceso Inicial

Proceso final

Proceso inicial

Proceso Central

Central

Condición

Proceso final

Central

Page 13: Programación I

El mismo programa sin el Ciclo:

Inicio

Preguntar Nombre

Escribir Nombre

Preguntar Nombre Escribir Nombre Preguntar Nombre Escribir Nombre

Fin

El mundo de Karel Karel es un robot que podemos controlar por medio de un programa para que realice cierto trabajo. El mundo

de Karel consta de los siguientes elementos:

1.

o Calles (horizontales) y avenidas (verticales) que se cruzan en esquinas. o Paredes impenetrables

colocadas entre dos esquinas.

o Beepers removibles colocados en las esquinas que emiten un sonido (su grosor es irrelevante).

o Bolsa de beepers (beeper_bag) que Karel lleva consigo.

2.

o Karel nuestro protagonista siempre está en una esquina y mirando al norte, sur, este u oeste. A través de tres cámaras puede ver si se encuentra una pared entre él y las esquinas más cercanas (enfrente, a su derecha y a su izquierda). Su oído le permite detectar el sonido de beepers en la esquina donde se encuentra.

La manera de comunicarse con Karel es por medio de un programa. El problema principal es que lo único que

Karel puede hacer es seguir lo que le indiquemos "al pié de la letra". Karel no piensa y no puede darse cuenta de

lo que queremos que haga si no sabemos cómo decírselo, para eso es necesario aprender su lenguaje.

2 Primeras instrucciones y programas

Primeras instrucciones y programas Realizar un trabajo o tarea específica con Karel consiste en llevarlo de una situación original a una final a través

de la ejecución de instrucciones. Comenzaremos con las instrucciones básicas.

• Cambio de posición o move: hace un paso en la dirección que está apuntando (puede causar error

"apagón" si hay una pared enfrente).

o turnleft: gira a su izquierda 90º (siempre se puede).

• Manipulando beepers o pickbeeper: recoge un beeper de la esquina donde está parado (puede causar

error "apagón" si no hay ningún beeper en la esquina).

Page 14: Programación I

o putbeeper: deposita un beeper en la esquina (puede causar error "apagón" si la bolsa de beepers de Karel está vacía).

• Terminando

o turnoff: es el comando que finaliza y apaga a Karel.

IMPORTANTE: Las nuevas funciones deben tener diferentes nombres y NO llamarse igual a una de las

funciones básicas.

Primer programa Para realizar un programa es necesario escribir con un formato que Karel pueda entender. El código de un

programa para Karel debe tener el siguiente formato:

class program { [<Definiciones de funciones>] program()

{ <Definiciones de las instrucciones a ejecutar> turnoff() ; }

}

Código 2.1.1 Estructura básica de un programa.

En la sección de "definiciones de funciones" declaramos los diferentes procedimientos (funciones) que

emplearemos en la ejecución del programa. Por otro lado, Toda función va seguida de de paréntesis "("

Primer programa

")" y las llaves "{" y "}", estas llaves contienen el código a ejecutar por la función. En particular, la función principal

(y la única que ejecuta Karel al activarse) se llama "program" y dentro de esta función se ponen las instrucciones

que Karel ejecutará al momento de echar a correr el programa. Las palabras reservadas (esto significa que no

puedes emplearlas para nombrar una función) de Karel son:

• class program: con esta palabra comienza el programa

• program: después de esta palabra comenzaran los comandos e instrucciones del programa

Un ejemplo: queremos que Karel, siendo que se encuentra apuntando al este en la calle 2, avenida 2 (Ver figura

2.1.1), realice la tarea de llevar el beeper que se encuentra en la calle 2, avenida 4, a la calle 4, avenida 5, y debe

moverse una cuadra más al norte antes de apagarse (Como en la figura 2.1.2).

Page 15: Programación I

Figura 2.1.1 Karel frente a un beeper Figura 2.1.2 Karel después de

seguir las instrucciones

class program { program() { move();

move(); pickbeeper() ; turnleft(); move(); move(); putbeeper(); move(); turnoff() ; }

}

Código 2.1.2 Ejemplo de primer programa.

Primer programa

Al ejecutar el programa, Karel revisa que el programa no tenga errores y luego procede a llevar a cabo cada una

de las siguientes instrucciones entre los paréntesis: { y } de la función program() hasta que encuentra un

turnoff() o hasta que se produce un error "apagón".

Gramática

Es muy importante respetar las reglas de puntuación y gramática para no confundir a Karel. Hay cuatro tipos de

palabras o símbolos que Karel entiende:

• Puntuación (sólo el punto y coma " ; " después de cada comando).

• instrucciones nativas de Karel. o move

o turnleft o

putbeeper o

pickbeeper o

turnoff

• Palabras reservadas o if, else o

iterate o while o define

Page 16: Programación I

o { o

} o

&&

o ||

o !

• Pruebas

o frontIsClear, frontIsBlocked, leftIsClear, leftIsBlocked, rightIsClear, rightIsBlocked o

nextToABeeper, notNextToABeeper o anyBeepersInBeeperBag, noBeepersInBeeperBag o

facingNorth, facingSouth, facingEast, facingWest, notFacingNorth, notFacingSouth, notFacingEast,

notFacingWest

2.2 Errores

Errores Hay varios tipos de dificultades con las que podemos toparnos al escribir un programa. Una de las partes más

complicadas de la programación es el detectar dónde están las fallas de nuestros programas.

Afortunadamente, Karel puede mostrarnos algunos errores en nuestro programa.

Apagón

Si Karel se ve impedido de realizar alguna de sus instrucciones básicas, entonces se apaga por si mismo. Esto es

un error imputable al que escribió el programa y es mejor apagarse que comenzar a hacer más tonterías. Las

instrucciones que puede ocasionar un apagón son:

• move: genera un apagón si se le ordena a Karel que avance y existe una pared frente a él

• putbeeper: genera un apagón cuando se le pide a Karel que ponga un beeper y su beeper_bag se encuentra vacía

• pickbeeper: genera un apagón cuando se le pide a Karel que recoja un beeper pero no existe alguno en tal posición

Page 17: Programación I

Instrucciones que se repiten

Las instrucciones que realizan ciclos permiten que Karel realice un cierto número de veces una determinada

instrucción o un bloque de instrucciones delimitado por "{" y "}".

La instrucción iterate En lugar de escribir una instrucción repetidas veces, podemos decirle a Karel exactamente el número de veces

que queremos que repita cierta instrucción. Esto se hace con la siguiente sintaxis:

iterate(<número>) <instrucción>[{Bloque}]

Código 3.1.1 Sintaxis de la instrucción iterate.

Donde el número determina la cantidad de veces que se repetirá. El comando que queremos que se repita debe

estar en la línea de abajo (instrucción). En caso de haber más de una instrucción ponemos un bloque. Por

ejemplo:

iterate(3) turnleft() ; iterate(4)

{ turnleft() ; move(); }

Código 3.1.2 Ejemplo de la instrucción iterate con una y dos instrucciones respectivamente.

Las ventajas de usar la instrucción iterate son muchas, y entre ellas se cuenta el hecho de que si uno requiere

cambiar el código de la instrucción o bloque ejecutado varias veces, en este caso sólo se debe cambiar el

bloque una vez. Por ejemplo, si tenemos el programa que recoge 5 beepers en fila, tendríamos:

program() { pickbeeper(); move();

pickbeeper(); move();

La instrucción iterate

pickbeeper(); move(); pickbeeper(); move(); pickbeeper(); move(); turnoff() ; }

Código 3.1.3 Programa sin instrucción iterate.

Pero si ahora quisiéramos que recogiera 2 beeper en vez de uno, tendríamos que insertar una instrucción

pickbeeper antes de cada paso. Este cambio se reduce aumentar un pickbeeper dentro del bloque del iterate:

iterate(4) { pickbeeper(); pickbeeper(); move(); } pickbeeper() ;

pickbeeper() ;

Page 18: Programación I

Código 3.1.4 Utilizando un iterate para simplificar nuestro código.

O incluso, en pos de la claridad, agregar un último paso:

iterate(5) { pickbeeper(); pickbeeper(); move(); }

Código 3.1.5 Otra forma de ejecutar nuestra tarea.

Page 19: Programación I

1.2 Características básicas de un programa. Las características que describen a un buen programa son: funcional, modular, legible y claro.

Funcional: Es la característica mínima en un programa, significa que debe proporcionar los

resultados esperados, esto, es operar adecuadamente o simplemente funcionar.

Modular: Es modular cuando se divide en pequeños módulos para hacerlo fácil

comprensión para el programador.

Legibilidad: Es la característica que facilita la lectura del programa y se logra estableciendo

reglas en el formato del código que le dé uniformidad. Por ejemplo, utilizar sangrías para

identificar las estructuras de control y colocar etiquetas o comentarios que ayude s interpretar

o recordar el porqué de las instrucciones.

Claro: La claridad de un programa puede observarse cuando está en ejecución y se refiere a los

textos, letreros, comentarios o identificadores colocados como ayuda durante la codificación.

Page 20: Programación I

Actividad 2 : Cuestionario Grupo: Calificación

Nombre del alumno: Fecha:

1. _______________ Los datos entran a través del teclado, ratón, escáner, otras computadoras,

etc.

2. Un __________________ es un conjunto de instrucciones escritas en un determinado

lenguaje que dirigen a un ordenador para la ejecución de una serie de operaciones.

3. La_______________ es el resultado de recabar datos, estructurarlos y convertirlos en

una forma útil o inteligible.

4. Puede observarse en un programa cuando está en ejecución y se refiere a los textos, letreros,

comentarios o identificadores colocados como ayuda durante la codificación

______________________.

5. Los datos se utilizan para hacer los cálculos y/o cambios correspondientes, se transforman y se

almacenan después ______________________.

6. Las ___________________ corresponden a los procedimientos o acciones que se ejecutan

sobre los datos.

7. El ________________________ es un concepto básico elemental que es susceptible de ser

captado por la mente, es decir, son los hechos, la materia prima de la información.

8. El resultado en forma de datos puede verse a través de la pantalla, impresora, enviarse a otra

computadora, etc. ____________________.

9. _____________________ significa que debe proporcionar los resultados esperados, esto,

es operar adecuadamente o simplemente funcionar.

10. Cuando se divide en pequeños módulos para hacerlo fácil comprensión para el programador

_____________________.

11. Es la característica que facilita la lectura del programa y se logra estableciendo reglas en el

formato del código que le dé uniformidad ____________________.

Page 21: Programación I

Rúbrica de evaluación Fecha:

Nombre del alumno: Semestre: 5° Grupo: Nombre de la evidencia: Cuestionario

Nombre de la secuencia: Fundamentos de programación Valor: 5 ptos.

Indicadores valor Criterios

5 4 3 0 Valor obtenido

Conceptos 5

Escribe todos los conceptos básicos de la programación.

Describe más de la mitad de los conceptos básicos de la programación.

Describe sólo 3 conceptos básicos de la programación.

No realizó nada.

Total

Page 22: Programación I

1.3 Ciclo de desarrollo de programas. La razón por Ia cual las personas se ven obligadas a aprender a programar, es por Ia necesidad de

utilizar las computadoras como una herramienta para Ia solución de problemas. Básicamente se

deben realizar los siguientes pasos para resolver problemas mediante Ia utilización de

computadoras (Joyanes, 1999):

De esto surge Ia necesidad de estudiar una metodología aprobada para aplicarla como apoyo

durante la resolución de problemas mediante sistemas de cómputo.

Cuando tiene un problema y necesita solucionarlo utilizando la computadora debe seguir los

siguientes pasos:

1.3.1 Análisis. Una vez que se ha comprendido lo que se desea del computador, es necesario definir:

a) Los datos de entrada.

b) Cuál es la información que se desea producir (salida).

c) Los métodos y fórmulas que se necesitan para procesar los datos.

Una recomendación muy práctica es el que nos pongamos en el lugar del computador y

analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los

resultados esperados.

1.3.2 Diseño. Las características de un buen algoritmo son las siguientes: a) Debe poseer un punto particular de inicio. b) Debe ser definido, no debe permitir dobles interpretaciones. c) Debe ser flexible, soportando la mayoría de variantes que se puedan presentar en la definición del problema. d) Debe ser finito en tamaño y tiempo de ejecución.

1.3.3 Selección de la interfaz. La interfaz del programa es el componente mediante el cual el usuario y la computadora se comunica, por lo que se deben de definir y colocar los elementos necesarios para que el usuario proporcione los datos de entrada, controle o manipule el programa y se despliegue la salida.

1.3.4 Codificación. La codificación es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o pseudocódigo), en una serie de instrucciones detalladas ó en un código reconocible por la computadora. La serie de instrucciones detalladas se le conoce como código fuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel.

Page 23: Programación I

1.3.5 Prueba y depuración. Los errores humanos dentro de la programación de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solución sin errores se le llama depuración. La depuración o prueba resulta una tarea tan creativa como el mismo desarrollo de la solución, por ello se debe considerar con el mismo interés y entusiasmo. Resulta conveniente observar los siguientes principios al realizar una depuración, ya que de este trabajo depende el éxito de nuestra solución.

1.3.6 Documentación. Es la guía o comunicación escrita en sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra. Por ello la documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). La documentación se divide en tres partes: Documentación Interna Documentación Externa Manual del Usuario

1.3.6.1 Documentación interna.

Son los comentarios o mensaje que se añaden al código fuente para hacer más claro el entendimiento de un proceso.

1.3.6.2 Documentación externa.

Se define en un documento escrito los siguientes puntos: Descripción del Problema (Enunciado). Nombre del Autor (Analista, Programador). Algoritmo (Diagrama de flujo o Pseudo código). Diccionario de Datos (Descripción de variables). Código Fuente (Programa).

1.4 Definición de lenguaje. Es una serie de símbolos que sirven para transmitir uno ó más mensajes (ideas) entre dos entidades diferentes. A la transmisión de mensajes se le conoce comúnmente como comunicación. La comunicación es un proceso complejo que requiere una serie de reglas simples, pero indispensables para poder llevarse a cabo. Las dos principales son las siguientes:

Los mensajes deben correr en un sentido a la vez

Deben existir forzosamente 4 elementos: Emisor, Receptor, Medio de Comunicación y mensaje.

Page 24: Programación I

Lenguaje de Programación Un lenguaje de programación: Es un conjunto de símbolos, caracteres y reglas (programas) que le permiten a las personas comunicarse con la computadora. Los lenguajes de programación tienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada/salida, cálculo, manipulación de textos, lógica/comparación y almacenamiento/recuperación. Los lenguajes de programación se clasifican en lo siguiente: Lenguaje Máquina: Son aquellas cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el programa: Las instrucciones en lenguaje máquina se expresan en términos de la unidad de memoria más pequeña el bit (dígito binario 0 ó 1). Ejemplo:

0000 0001 1010 0001

1000 1001 1001 1010

0011 1010 1001 1100

0111 0100 0111 0000

1110 1001 0010 0000

Lenguaje de bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas. El código representa normalmente datos e instrucciones para manipularlos. Los lenguajes de bajo nivel permiten crear programas muy rápidos, pero que a menudo son difíciles de aprender. Cabe destacar que los programas escritos en un lenguaje de bajo nivel son específicos para cada procesador. Si se lleva el programa a otra máquina con diferente arquitectura de procesador se debe rescribir el programa desde el principio.

Nota: Mnemónicos – diferentes instrucciones que posee el procesador. Consisten de dos partes: una abreviatura de la instrucción y argumentos, ejemplo: MOV B, A – la abreviatura MOV sugiere la instrucción mueve. La instrucción mueve el contenido del registro A hacia el registro B.

Lenguaje de alto nivel: Los lenguajes de programación de alto nivel (VISUAL BASIC, C, C++, PASCAL, ASEMBLER, FORTRAN, COBOL y otros) son aquellos en los que las instrucciones o sentencias para la computadora están escritas con palabras similares al lenguaje humano (generalmente en inglés), lo que facilita la escritura y comprensión del programa. Existe también una relación compleja entre los lenguajes de alto nivel y el código máquina.

Page 25: Programación I

Cada programa puede traducirse del lenguaje de programación (de alto nivel) al lenguaje de la computadora (máquina). Esto se hace a través de compiladores (traductores) que transforman el programa en un lenguaje de más alto nivel para que la computadora pueda comprenderlo y ejecutarlo.

Actividad 3 : Relación de columnas

Grupo: Calificación

Nombre del alumno: Fecha:

A. Lenguaje de bajo nivel ( ) Ejemplo de ella son 00010110

B. Comunicación ( ) Conjunto de símbolos caracteres y reglas que permiten la comunicación persona – máquina.

C. Lenguaje de programación ( ) Serie de símbolos que sirven para transmitir mensajes, ideas.

D. Lenguaje máquina ( ) Las instrucciones o sentencias están escritas con palabras similares al lenguaje humano

E. Lenguaje ( ) Proceso complejo formado por: emisor, receptor, medio de comunicación y mensaje.

F. Lenguajes de alto nivel ( ) Permiten crear programas muy rápidos pero difíciles de entender y aprender.

Page 26: Programación I

Rúbrica de evaluación Fecha:

Nombre del alumno: Semestre: Grupo: Nombre de la evidencia: relación de columnas

Nombre de la secuencia: Valor: 5 ptos.

Indicadores valor Criterios

3 2 1 0 Valor obtenido

Conceptos 3

Relaciona correctamente todos los conceptos con sus definiciones de tipos de lenguajes

Relaciona más de la mitad de los conceptos y definiciones de tipos de lenguajes

Solo cumple con la mitad y menos de los puntos establecidos

Presentación de resultados

valor 2 1 0 Valor obtenido

2

Presenta la actividad limpia, respetando el formato y tiempo establecido.

Presenta la información sólo cumpliendo al menos uno de los requisitos establecidos

Incumple con lo anterior establecido

Total

Page 27: Programación I

1.5 Definición de algoritmo. ¿Qué es un algoritmo?

La palabra algoritmo se deriva de la traducción al latín de la palabra árabe “alkhowarizmi”, nombre

de un matemático y astrónomo árabe que escribió un tratado sobre la manipulación de

números y ecuaciones en el siglo IX.

Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para

dar solución a un problema específico. Es un procedimiento matemático o lógico para lograr un fin

determinado. Antes de escribir el programa debe tener muy claro el algoritmo que mostrará los

pasos a seguir para resolver el problema. Los algoritmos tienen una entrada de datos, un

procedimiento a seguir y una salida de datos.

Un algoritmo debe contener instrucciones de control que nos permitan decirle al procesador

paso a paso que hacer y cuando terminar la tarea.

¿Por qué necesitamos algoritmos?

Los problemas complejos deben ser divididos en partes más simples.

Cada problema simple puede ser solucionado aparte.

Utilizando algoritmos se puede identificar más claro la ruta para solucionar el problema,

lo que nos ahorra tiempo.

Tipos de algoritmos:

- Son aquellos en los que se describen los pasos utilizando palabras.

- Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del

proceso.

En otras palabras, un algoritmo es la receta para elaborar o alcanzar algo. En la vida diaria podemos

encontrar muchos ejemplos. Veamos a continuación tres de ellos.

Una receta de cocina es un muy buen ejemplo. A continuación se muestra una receta para freír

chuletas.

Page 28: Programación I

RECETA DE COCINA

1. Tener listos los ingredientes

2. Encender el fuego

3. Colocar la sartén sobre el fuego

4. Poner aceite en la sartén

5. Agregar las chuletas y dejarlos freír

durante unos minutos hasta que doren

según gusto

6. Retirar las chuletas

7. Apagar el fuego

Como todas las recetas, primero pide los ingredientes necesarios y después (dentro del apartado

“modo de prepararse”) indica que hacer con ellos hasta convertirlos en comida. Observe que

importante es que el orden de los pasos sea lógico: si antes de poner el aceite pone las chuletas en

la sartén, tenga por seguro que obtendrá unas chuletas quemadas.

El segundo ejemplo señala las actividades de una persona. Cada una de ellas está estrictamente

colocada en un horario específico, acorde con las necesidades de esa persona.

AGENDA

7:00 Levantarse

7:15 Bañarse

7:30 Desayunar

7:45 Llevar a los niños al colegio

8:30 . . .

Por último se presentan seis pasos de la operación de un equipo de sonido. El orden de estos pasos

ha sido marcado por el fabricante para asegurar la mejor calidad en la reproducción del sonido. Si

usted los altera quizás no descomponga el aparato, pero puede no obtener lo mejor del mismo.

MANEJO DE UN ESTÉREO

1. Ajuste al mínimo la perilla de volumen.

2. Encienda el aparato con el interruptor de poder.

3. Oprima la tecla de la función deseada: CD, sintonizador, tocacintas.

4. Ajuste lentamente el regulador de volumen hasta alcanzar el nivel sonoro deseado.

5. Ajuste el balance estereofónico.

6. Ajuste la tonalidad en el ecualizador.

Page 29: Programación I

Otro ejemplo.

ALGORITMO PARA COMPRAR LOS BOLETO DE ENTRADA AL CINE.

1. Inicio

2. Seleccionar la película

3. Llegar al lugar de proyección de la película

4. Revisar la cartelera

5. Hacer la cola de pago

6. Esperar el turno

7. Solicitar la película.

Si la hay

8. Entregar el dinero

9. Esperar por los boletos y la diferencia de pago

10. Retirarse

Si no hay la película

11. Escoger otra película o retirarse

12. Fin

Ejercicio.

1. Revisa estos algoritmos, compáralos e identifica las características de ambos.

A) Algoritmo para preparar un huevo estrellado:

a. Inicio

b. Preparar los ingredientes c. Preparar los utensilios

d. Poner una sartén con un poco de grasa a calentar en la estufa

e. Quebrar el huevo y vaciarlo en la sartén f. Agregar un poco de sal

g. Esperar que esté cocido h. Servir

i. Fin

B) Algoritmo que compare dos números y determinar cuál es mayor

a. Inicio

b. Conocer el número 1

c. Conocer el número 2

d. Si el número1>número2 entonces Escribir (El primer número es mayor)

e. Si no Escribir (El segundo número es mayor)

f. Fin

Identifica las características que sean semejantes en ambos algoritmos, escríbelas a

continuación:

Page 30: Programación I

2. Ordena las siguientes listas en secuencia lógica:

A)

• Salir de casa

• Dirigirme a la escuela

• Levantarme

• Vestirme

• Asearme

• Tender la cama

• Desayunar

• Ponerme los zapatos

• Peinarme

• Lavarme los dientes

• Tomar los útiles

• Llegar a la escuela

B)

• Pagarlo

• Solicitar un producto

• Salir de casa

• Si tiene el producto, preguntar

Costo; Si no, salir y caminar hacia

otra tienda

• Regresar a casa

• Caminar hacia la tienda

Si analizas la actividad anterior te darás cuenta de que lo que acabas de ordenar son dos

algoritmos que dan solución a problemas de la vida cotidiana.

3. Responde la siguiente pregunta y compara con tus compañeros la respuesta, si hay diferencias

entre sus respuestas lleguen a una sola conclusión.

¿Cuál es el problema que solucionan los algoritmos anteriores?

a._________________________________________________

b._________________________________________________

a)

b)

c)

d)

e)

f)

g)

h)

i)

j)

k)

l)

Page 31: Programación I

1.6 Definición de lenguaje algorítmico. Es una serie de símbolos y reglas que se utilizan para describir de manera explícita un proceso, estos lenguajes algorítmicos pueden ser: (a) Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (diagrama de flujo). (b) No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocódigo).

1.7 Características de los algoritmos Las características fundamentales que debe cumplir un algoritmo son:

PRECISIÓN: Indica el orden de realización de cada paso dentro del proceso.

DEFINICION: Indica la exactitud y consistencia de los pasos descritos en el proceso, si el algoritmo se prueba dos veces, en estas dos pruebas, se debe obtener el mismo resultado.

FINITUD: Indica el número razonable de pasos, los cuales deben conllevar a la finalización del proceso y producir un resultado en un tiempo finito.

Page 32: Programación I

Actividad 4 : Solución a problemas

Grupo: Calificación

Nombre del alumno: Fecha:

Realiza el análisis y algoritmo que dé solución a los siguientes casos, sigue los pasos de la metodología de desarrollo de algoritmos.

1. Obtener el área de un triángulo.

Identificar el problema

Plantear y elegir solución

Desarrollar algoritmo Evaluar o comprobar su funcionamiento.

2. Calcular el precio al que se va a vender un producto una vez que se sabe cuál es el costo y que desea obtener una ganancia o utilidad del 10%.

Identificar el problema

Plantear y elegir solución

Desarrollar algoritmo Evaluar o comprobar su funcionamiento.

Page 33: Programación I

Rúbrica de evaluación Fecha:

Nombre del alumno: Semestre: Grupo: Nombre de la evidencia: Reporte de la actividad

Nombre de la secuencia: Valor: 5ptos.

Indicadores valor Criterios

3 2 1 0 Valor obtenido

Metodología de desarrollo

algoritmos 3

Identifica el problema.

Plantea y elige una solución matemática.

Desarrolla el algoritmo.

Comprueba su funcionamiento.

Cumple solo dos criterios establecidos anteriormente

Cumple al menos un criterio establecido.

No hizo nada

Presentación de resultados

valor 2 1 0 Valor obtenido

2

Respeta el formato establecido y el tiempo para la entrega.

Cumple sólo un criterio establecido

No cumple nada

Total

Page 34: Programación I

3. Calcular el tiempo promedio que una persona corre siguiendo misma ruta los lunes,

miércoles y viernes, y cronometra los tiempos obtenidos.

Identificar el problema

Plantear y elegir solución

Desarrollar algoritmo Evaluar o comprobar su funcionamiento.

1.8 Pseudocódigo. Concepto Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar. Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos. Ventajas de utilizar un Pseudocódigo a un Diagrama de Flujo

Ocupa menos espacio en una hoja de papel.

Permite representar en forma fácil operaciones repetitivas complejas.

Es muy fácil pasar de pseudocódigo a un programa en algún lenguaje de programación.

Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación. 1.8.2. Uso del pseudocódigo

Page 35: Programación I

1.9 Diagramas de flujo. Concepto 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 deben de realizarse los pasos en la computadora para producir resultados. Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante líneas que indican el orden en que se deben de ejecutar los procesos. Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI).

1.9.2. Símbolos más usados.

SÍMBOLO

DESCRIPCIÓN

Indica el inicio y final de nuestro diagrama de flujo

Indica la entrada y salida de datos (lectura)

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 que indica la realización de una

comparación de valores.

Page 36: Programación I

Se utiliza para representar los subprogramas

Conector dentro de página. Representa la continuidad

del diagrama dentro de la misma página

Conector fuera de página. Representa la continuidad

del diagrama en otra página

Indica la salida de información por impresora

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

Líneas de flujo y dirección. Indican la secuencia en que se realizan las operaciones.

Page 37: Programación I

UNIVERSIDAD AUTÓNOMA DEL CARMEN COORDINACIÓN DE LA FUNCIÓN ACADÉMICA

SECUENCIA DIDÁCTICA IDENTIFICACIÓN

Departamento: Comunicación Academia: Informática

Unidad de Aprendizaje: Programación I Semestre: Quinto Área de formación: Propedéutica

Bloque(s) : I. Fundamentos de programación. Número de secuencia: 1/ 3

Período de aplicación: Inicio: Agosto Valor de la secuencia: Duración en horas

Término: Septiembre 30 % 16 horas

Propósito de la secuencia didáctica:

Conoce la terminología básica de la programación y elementos que intervienen en la solución de problemas de la vida cotidiana así como propone

soluciones matemáticas.

CONTENIDOS DE APRENDIZAJE

Declarativos Procedimental Actitudinal

1.1 Definición de programa. 1.1.1 Datos. 1.1.2 Operaciones. 1.1.3 Estructura de control.

1.1.3.1 Estructuras secuenciales. 1.1.3.2 Estructuras de decisión.

Resuelve el cuestionario de diagnóstico.

Indaga sobre los conceptos básicos de

algoritmos, programas, problema, datos e

información.

Elabora algoritmos para solucionar problemas

de los ámbitos escolar y cotidiano.

Mantiene una actitud crítica y reflexiva en la

elaboración de algoritmos.

Valora la importancia de seguir una metodología.

Promueve el empleo de algoritmos para solucionar

problemas.

Page 38: Programación I

1.1.3.3 Estructuras de repetición.

1.2 Características básicas de un programa. 1.3 Ciclo de desarrollo de programas.

1.3.1 Análisis. 1.3.2 Diseño. 1.3.3 Selección de la interfaz. 1.3.4 Codificación. 1.3.5 Prueba y depuración. 1.3.6 Documentación.

1.3.6.1 Documentación interna. 1.3.6.2 Documentación externa.

1.4 Definición de lenguaje. 1.5 Definición de algoritmo. 1.6 Definición de lenguaje algorítmico. 1.7 Características de los algoritmos 1.8 Pseudocódigo.

1.8.1. Concepto 1.8.2. Uso del pseudocódigo

1.9 Diagramas de flujo. 1.9.1. Concepto. 1.9.2. Símbolos más usados.

Aplica una metodología para resolver un

problema.

Identifica el problema a resolver. Plantea

alternativas de solución.

Procesa (analiza y sintetiza) la información

obtenida a través de fuentes de información

impresa y/o electrónica; para resolver el

cuaderno de trabajo y el portafolio de

evidencias.

Muestra iniciativa para aprender de forma

autónoma mediante consulta de bibliografía y cursos

gratuitos en línea.

Promueve el aprendizaje colaborativo y solicita o

brinda apoyo a sus compañeros para desarrollar

algoritmos.

Es responsable en la entrega de actividades.

Competencias genéricas y atributos que se promueven:

Page 39: Programación I

1. Se conoce y valora a sí mismo y aborda problemas y retos teniendo en cuenta los objetivos que persigue. 1.4. Analiza críticamente los factores que influyen en su toma de decisiones.

4. Escucha, interpreta y emite mensajes pertinentes en distintos contextos mediante la utilización de medios, códigos y herramientas apropiadas. 4.1. Identifica las ideas clave en un texto o discurso oral e infiere conclusiones a partir de ellas 4.5. Maneja las tecnologías de la información y la comunicación para obtener información y expresar ideas.

5. Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos. 5.1. Sigue instrucciones y procedimientos de manera reflexiva, comprendiendo como cada uno de sus pasos contribuye al alcance de un

objetivo. 6. Sustenta una postura personal sobre temas de interés y relevancia general, considerando otros puntos de vista de manera crítica y reflexiva.

6.1. Elige las fuentes de información más relevantes para un propósito específico y discrimina entre ellas de acuerdo a su relevancia y confiabilidad. 6.4. Estructura ideas y argumentos de manera clara, coherente y sintética.

7. Aprende por iniciativa e interés propio a lo largo de la vida.

7.3. Articula saberes de diversos campos y establece relaciones entre ellos y su vida cotidiana. 8. Participa y colabora de manera efectiva en equipos diversos.

8.1. Propone maneras de solucionar un problema o desarrollar un proyecto en equipo, definiendo un curso de acción con pasos específicos. 8.2. Aporta puntos de vista con apertura y considera los de otras personas de manera reflexiva. 8.3. Asume una actitud constructiva, congruente con los conocimientos y habilidades con los que cuenta dentro de distintos equipos de trabajo.

Competencias disciplinares básicas:

Competencias disciplinares extendidas:

1. Utiliza la información contenida en diferentes textos para orientar sus intereses en ámbitos diversos.

10. Analiza los beneficios e inconvenientes del uso de las tecnologías de la información y la comunicación para la optimización de las actividades

cotidianas.

Page 40: Programación I

11. Aplica las tecnologías de la información y la comunicación en el diseño de estrategias para la difusión de productos y servicios, en beneficio del

desarrollo personal y profesional.

Actividades de Enseñanza - Aprendizaje

Fases

Apertura

Duración de la actividad: 2 horas

Evaluación

Profesor Entre estudiantes Autodirigidas Evidencia Instrumentos

de Evaluación

Porcentaje

Realiza un encuadre que

describa el objetivo de la

unidad curricular de

aprendizaje, la forma de

trabajo y los criterios de

evaluación.

Se le entrega el Cuaderno de Trabajo y la Antología de la asignatura de Programación I, mismo que será de apoyo para las secuencias de aprendizaje.

Aplica una evaluación diagnostica para conocer los términos relacionados con la programación.

Resuelve la evaluación escrita

Evaluación diagnóstica

Desarrollo Duración de la actividad: 12 horas

Page 41: Programación I

Evaluación

Profesor Entre estudiantes Autodirigidas Evidencia Instrumentos

de Evaluación

Porcentaje

Describe la importancia de analizar un problema para proponer soluciones destacando los elementos necesarios para aplicar algoritmos.

Realiza el cuadro comparativo

Investiga en diferentes

fuentes cada uno de los

términos.

Cuadro

comparativo

Rúbrica

5%

Realiza un cuestionario de conceptos básicos.

Comprende los conceptos básicos de la programación.

Cuestionario

Hoja de respuesta

5%

Explica los tipos de lenguaje de programación.

Relaciona los diferentes tipos de lenguaje en la computación.

Analiza las diferencias de los tipos de lenguajes de programación en base a su material didáctico.

Relación de columnas

Hoja de respuesta

5%

Explica la solución de un problema con entradas, procesos y salidas así como sus características que lo distinguen.

Resuelve problemas de la

vida cotidiana y matemáticos.

Propone alternativas de solución a un problema.

Reporte de la actividad

Rúbrica 5%

Page 42: Programación I

Cierre

Duración de la actividad: 2 horas

Evaluación

Profesor Entre estudiantes Autodirigidas Evidencia Instrumentos

de Evaluación

Porcentaje

Aplica una evaluación del cierre del bloque.

Aplica los conocimientos adquiridos hasta el momento en el bloque I.

Programa integrador

Rúbrica

10%

ACTIVIDADES TRANSVERSALES:

Descripción de la actividad: Unidades de aprendizaje con las que se vincula:

Material y equipo de apoyo:

Sala de Cómputo,

Equipo de Cómputo,

Cañón,

Pintarrón,

Pintagis,

Cuaderno de Trabajo,

Antología,

USB,

Plumones.

Page 43: Programación I

Fuentes de información

Básicas:

Kernighan, B. y Ritchie, D. (2003). El lenguaje de programación C. Segunda Edición. México: Pearson Educación, 2003.

Joyanes, L. (2003). Fundamentos de programación libro de problemas. Algoritmos estructura de datos y objetos, Tercera Edición, España: Mc Graw

Hill.

Complementarias: Joyanes, L. (2005). Algoritmos, Programación y Estructura de dato. Serie Schaum. España: McGraw-Hill/Interamericana .Méndez Giron, A. (2013).

Méndez, A. (2013). Diseño de algoritmos y su programa en C. México: Alfaomega..

WEB: Wikilibros. (s.f.). Recuperado el 10 de Enero de 2014, de http://es.wikibooks.org/wiki/ Programaci%C3%B3n_en_C

Google Libros. (s.f.). Recuperado el 9 de Enero de 2014, de

http://books.google.com.mx/books?id=H9zwxk6jsMoC&printsec=frontcover&dq=programando+en+c&hl=es&sa=X&ei=Ze7dUrXSE8rHsATx-

ICAAg&redir_esc=y#v=onepage&q=programando%20en%20c&f=false