68
PLAN 06 / NMS IN FORMÁTICA III Julio 2009 1 BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA NIVEL MEDIO SUPERIOR INFORMÁTICA III Primera Parte MATERIAL DIDÁCTICO MANUAL DE PRÁCTICAS Y ANTOLOGÍA JULIO DE 2009 ÁREA DE CIENCIAS EXACTAS ACADEMIA GENERAL DE INFORMÁTICA 32 SESIONES DE 100 MIN NOMBRE DEL ALUMNO (A): NÚMERO DE COMPUTADORA: GRADO Y GRUPO: NOMBRE DEL PROFESOR (A): ESCUELA:

MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

Embed Size (px)

Citation preview

Page 1: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 1

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA

NIVEL MEDIO SUPERIOR

INFORMÁTICA III

Primera Parte

MATERIAL DIDÁCTICO

MANUAL DE PRÁCTICAS Y ANTOLOGÍA

JULIO DE 2009

ÁREA DE CIENCIAS EXACTAS

ACADEMIA GENERAL DE INFORMÁTICA

32 SESIONES DE 100 MIN

NOMBRE DEL ALUMNO (A): NÚMERO DE COMPUTADORA: GRADO Y GRUPO: NOMBRE DEL PROFESOR (A): ESCUELA:

Page 2: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 2

PRESENTACIÓN DEL MANUAL PARA EL ALUMNO El presente MANUAL DE PRÁCTICAS Y ANTOLOGÍA de Informática III para el

alumno constituye la parte final del desarrollo del aprendizaje, en el área de

Informática, del Plan de Estudios vigente (plan 06) del Nivel Medio Superior para

el tercer año del bachillerato Universitario. Este primer manual de un total de dos

para todo el ciclo escolar, apoyará al estudiante en el aprendizaje del lenguaje de

programación C y del uso del lenguaje de hipertexto HTML.

El Manual está estructurado de la siguiente manera:

Presentación del Manual para los alumnos

Programa

Unidades por semestre con sus respectivos mapas conceptuales, objetivos y contenidos que están desarrolladas en lecciones. Al inicio de cada lección se definen los conceptos más relevantes, seguidas de diversas actividades de aprendizaje, además de ejemplos codificados en lenguaje de programación con sus comentarios correspondientes para explicar su funcionamiento.

Bibliografía de referencia y de consulta de alumnos y facilitadores (maestros).

Este material está diseñado para ayudar al estudiante en la solución de

situaciones problémicas que se presenten de manera cotidiana y que se puedan

resolver a través del diseño de un programa de computadora, con ello el

estudiante desarrollará sus habilidades y destrezas para analizar el problema y

plantear una solución. El material presenta al principio conceptos básicos y poco a

poco va subiendo de nivel para una mejor comprensión. Se aborda una

metodología que permite al estudiante reconocer el problema y proponer una

solución viable desde la perspectiva de un lenguaje común pero estructurado y

después de un lenguaje de programación de computadora.

Es recomendable que en cada programa que desarrolle, haga primero el

algoritmo o el diagrama de flujo para crear un programa más eficiente y que el

tiempo de codificación y ejecución no sea excesivo.

Page 3: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 3

DISEÑO ESTRUCTURACIÓN Y ACTUALIZACIÓN POR INTEGRANTES DE LA

ACADEMIA GENERAL DE COMPUTACIÓN:

Autores :

Profesores:

José Caselín Rosas

Javier Díaz Sánchez

Mónica Campos Sánchez

Maricela Sánchez Hernández

Ma. De los Ángeles Sánchez de los Santos

COLABORADORES

Profesores:

Alma Rosa Catalán Alarcón

Edgar Juárez Isasmendi

Briseyda Bravo

Ma. De Lourdes Carreón Sánchez

María Griselda Inés García Ávila

Alberto Vega Báez

Lucero Aranda Ortiz

Alejandra Reyes Vélez

Óscar López Gámez

Jorge Sandoval Robles

Ma. Del Pilar Beatriz Guevara Castillo

Flaviano Pérez Romero

Page 4: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 4

INFORMÁTICA III PROGRAMA

OBJETIVO GENERAL DE LA MATERIA Desarrollar las potencialidades cognitivas, valorativas y actitudinales mediante el uso adecuado de la computadora como herramienta esencial, en un contexto de situaciones problémicas y trabajo interdisciplinario a nivel aplicativo, para continuar estudios superiores como persona sensible, crítica y que participe en la construcción de un mundo más humano.

OBJETIVO GENERAL DEL CURSO Utilizar el lenguaje de programación C para resolver problemas en general, a través de funciones simples e interactivas que permitan la resolución modular del problema y así disminuir la complejidad del mismo, a nivel reproductivo –aplicativo. Utilizar herramientas de programación gráfica para crear un entorno visual. Utilizar las herramientas de Internet para elaborar trabajos académicos en donde se comparta y se actualice la información a través de cometarios. Diseñar páginas web utilizando el lenguaje de hipertexto HTML para publicar información de tipo general a través de internet.

RELACIÓN CON EL PERFIL DE EGRESO DEL BACHILLERATO: CONTRIBUCIÓN Y LOGROS El Plan de estudios 06 del Nivel Medio Superior busca que “… Los alumnos que egresan de la Institución han logrado un conocimiento y comprensión de sí mismos, una formación académica que les ha familiarizado con los avances científicos y tecnológicos, que les permite una visión interdisciplinaria e integral, que los hace sensibles a las problemáticas sociales, económicas, políticas, éticas, estéticas y ecológicas, que los prepara para su ingreso al nivel superior; capaces de interactuar en equipo, con una actitud fraterna, libre, justa, pacífica, tolerante y de respeto a la pluralidad….” Por lo tanto, la asignatura de Informática busca incidir, para que nuestros egresados logren:

• Escribir y hablar correctamente. • Escuchar y preguntar para comprender y apreciar los puntos de vista de

otros. • Leer y comprender la información presentada en sus diversas formas. • Identificar las capacidades y limitaciones de los recursos tecnológicos

informáticos contemporáneos y emergentes y evaluar el potencial de estos sistemas y servicios al conducir la vida personal, en el aprendizaje permanente y para satisfacer las necesidades en el ámbito laboral.

Page 5: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 5

• Desarrollar destrezas de información sencillas: uso de una herramienta, como el catálogo de una biblioteca.

• Desarrollar destrezas de información compuestas: combinación de destrezas y herramientas de información.

• Demostrar y defender comportamientos éticos y legales en el uso de tecnología informática y de la información entre compañeros, familiares y en la comunidad en la que se vive.

• Usar herramientas y recursos tecnológicos para administrar y comunicar información personal y académica.

• Usar de manera natural, rutinaria y eficiente las fuentes de información en línea para satisfacer necesidades de colaboración e investigación.

• Seleccionar y aplicar herramientas tecnológicas para el análisis de información, la resolución de problemas y la toma de decisiones en el ámbito del aprendizaje.

UNIDADES UNIDAD 0. CONCEPTOS GENERALES DE PROGRAMACIÓN UNIDAD I. SENTENCIAS DE DECISIÓN. UNIDAD II. SENTENCIAS DE REPETICIÓN. UNIDAD III. CREACIÓN DE FUNCIONES. UNIDAD IV. INTRODUCCIÓN A GRAFICADO. UNIDAD V. COMO COMPARTIR EL CONOCIMIENTO CON OTROS USUARIOS PRESENTACIÓN DE LAS UNIDADES UNIDAD 0. CONCEPTOS GENERALES DEPROGRAMACIÓN Se presentan conceptos de programación básicos para determinar a nivel general el nivel de conocimientos que tienen los estudiantes, se incluyen también conceptos teóricos fundamentales para que el estudiante tenga bases más sólidas para las unidades siguientes, por lo mismo permite nivelar a los estudiantes reforzando o repasando temas nuevos o que no dominan. UNIDAD I. SENTENCIAS DE DECISIÓN Se presentan las sentencias de decisión básicas y anidadas, así como el selector múltiple, aún cuando el estudiante para esta primera unidad ya debe tener conocimientos básicos del lenguaje de programación c, se han agregado algunas prácticas básicas para retomar lo que se estudió en el año anterior. Se agregan además conceptos básicos que no se abordaron en el curso anterior para que el estudiante inicie su aprendizaje del lenguaje de programación C en un nivel más avanzado y con situaciones problémicas más complejas. UNIDAD II. SENTENCIAS DE REPETICIÓN En esta unidad se ve le necesidad de realizar tareas repetitivas dentro de la solución de un problema, para ello se utilizan diversas estructuras de repetición que dependiendo de las necesidades del problema se utiliza la más adecuada.

Page 6: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 6

UNIDAD III. CREACIÓN DE FUNCIONES Dada la complejidad que presenta la solución de algunas situaciones problémicas, se implementa una estrategia para reducir el grado de dificultad que implica tal situación, para ello se inserta el concepto de funciones, que es un medio para resolver una situación problémica mediante una estrategia denominada stepwise, que permite la reutilización de código. UNIDAD IV. INTRODUCCIÓN AL GRAFICADO Un lenguaje de programación de nivel medio como es el C tiene características que lo hacen ser un lenguaje potente ya que permite manipular directa o indirectamente los dispositivos físicos, uno de ellos es por ejemplo la salida de video, que permite mostrar gráficos simples pero que el usuario controla de forma absoluta, por tanto se introducen las sentencias gráficas básicas que permiten al estudiante conocer su funcionamiento y determinar su aplicación en el contexto en el que se encuentre. UNIDAD V. COMO COMPARTIR EL CONOCIMIENTO CON OTROS USUARIOS Las TIC´s juegan un papel determinante en el desarrollo de cualquier ser humano y de cualquier sociedad, ante esta perspectiva surge la necesidad de compartir conocimientos e información que nos obligan a utilizar otro tipo de recursos alternos a los convencionales, por ello se introducen conceptos como Webcast y Weblog, que permiten comunicarnos y publicar información a través de internet, sin embargo, dada la limitante de este recurso, se incluyen elementos de codificación del lenguaje de hipertexto HTML para que se diseñen mecanismos de comunicación más versátiles y de un diseño propio. CONTENIDO DE LAS UNIDADES UNIDAD 0 CONCEPTOS GENERALES DEPROGRAMACIÓN Objetivo de la Unidad

Demostrar el nivel de conocimientos previos del lenguaje de programación C y

profundizar en conceptos generales a través del diseño, y programación de

diversos proyectos.

Lección I

0.1.1 Solución de un problema

Lección 2

0.1.2 Programa en lenguaje C

0.1.2.1 Codificación de un programa

0.1.2.2 Compilar y ejecutar

Lección 3

0.1.3 Variables e identificadores

Page 7: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 7

Lección 4

0.1.4 Actividades

UNIDAD I SENTENCIAS DE DECISIÓN Objetivo de la Unidad

Elaborar programas de acuerdo a las soluciones algorítmicas planteadas a un

problema que incluya la toma de decisiones a nivel aplicativo

Lección I

1.1.1. Estructura simple (if <condición>)

Lección 2

1.2.1 Estructura doble (if <condición 1> else <condición 2>

1.2.2 Estructura anidada (un if dentro de otro if)

Lección 3

1.3.1. Estructura selectiva múltiple (switch – case)

Lección 4

1.4.1 Ejercicios

UNIDAD II SENTENCIAS DE REPETICIÓN Objetivo de la Unidad

Elaborar programas de acuerdo a las soluciones algorítmicas planteadas a un

problema que incluya la ejecución de tareas iterativas a nivel aplicativo

Lección 5

2 .1 El ciclo for

Lección 6

2. 2 El ciclo while

Page 8: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 8

Lección 7

2. 3 El ciclo do-while

Lección 8

2.4 Ejercicios

UNIDAD III CREACIÓN DE FUNCIONES

Objetivo de la Unidad

Disminuir la complejidad de un programa a través de funciones simples integradas

en un programa principal a nivel aplicativo

Lección 9

3.1 Estructura, creación y uso de funciones

Lección 10

3.3 Tipos de funciones (void, int, float) y paso de parámetros.

Lección 11

3.4 Ejercicios

UNIDAD IV INTRODUCCIÓN AL GRAFICADO (8 SESIONES)

Objetivo de la Unidad

Diseñar objetos en movimiento mediante sentencias de la biblioteca gráfica a nivel

creativo.

Lección 12

4.1 Protocolos para trabajar en ambiente gráfico

4.3 Creación de figuras geométricas básicas

Page 9: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 9

UNIDAD V COMO COMPARTIR EL CONOCIMIENTO CON OTROS USUARIOS

(INTERNET II)

Objetivo de la unidad

Utilizar las herramientas de Internet para elaborar trabajos académicos en

donde se comparta, se actualice y se difunda información a utilizando

herramientas ya establecidas y de diseño propio.

Lección 13

5.1. Introducción a HTML.

Lección 14

5.2. Estructura de un documento HTML

Lección 15

5.3.1 Introducción a las TIC

5.3.2 Uso del e-mail

Lección 16

5.4.1 Webtools

5.4.2 WebQuest

5.4.3 Webblog

Lección 17

5.5.1 Actividades.

ACTIVIDADES Y EXPERIENCIAS DE APRENDIZAJE POR UNIDAD

UNIDAD 0. CONCEPTOS GENERALES DE PROGRAMACIÓN Se realizan varios programas para recordar conceptos de programación

desde la estructura hasta los comandos básicos para guardar, compilar y ejecutar.

Se conoce la diferencia ente tipos de datos. Se describen detalladamente la utilidad de las funciones printf() y scanf(),

incluyendo los tipos de carácter. Se utilizan sentencias básicas de formato de texto para diferenciar

resultados. UNIDAD I. SENTENCIAS DE DECISIÓN.

Page 10: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 10

Se introducen sentencias simples y anidadas para resolver problemas que incluyan la toma de decisiones.

Se utiliza la sentencia de selección múltiple “switch” para elegir una opción de entre varias y evitar así el uso excesivo de sentencias de decisión simple.

Se inserta la tabla de operaciones lógicas para entender la estructura de las sentencias de decisión.

UNIDAD II. SENTENCIAS DE REPETICIÓN. Se resuelven problemas que requieran la ejecución de tareas repetitivas a

través de los ciclos ó sentencias de repetición: for, while, do-while, dependiendo de la necesidad del contexto en el que se encuentre.

Se retoma la implementación de algoritmos y diagramas de flujo para facilitar la comprensión de sentencias de repetición.

Se desarrollan varios ejercicios para que el estudiante utilice el ciclo apropiado para cada situación problémica.

UNIDAD III. CREACIÓN DE FUNCIONES. Se aprende a crear funciones para disminuir la complejidad de un

programa. Se crean diferentes funciones y se reutilizan en diferentes partes del

programa. Se introduce el concepto de argumento de una función, destacando la necesidad de utilizarlo.

Se crean programas mejor estructurados con una esquema modular incluyendo funciones.

UNIDAD IV. INTRODUCCIÓN A GRAFICADO. Se conocen las librerías necesarias para crear gráficos. Se conocen las sentencias para crear figuras geométricas básicas. Se crean programas con gráficos incluyendo colores en líneas y en

rellenos. Se utiliza la tabla de colores para crear figuras en dos y tres dimensiones

con tramas y rellenos diversos. UNIDAD V. COMO COMPARTIR EL CONOCIMIENTO CON OTROS USUARIOS

Page 11: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 11

UNIDAD 0 CONCEPTOS GENERALES DE PROGRAMACIÓN

Objetivo de la Unidad

Demostrar el nivel de conocimientos previos del lenguaje de programación C y

profundizar en conceptos generales a través del diseño, y programación de

diversos proyectos.

Lección 1.

Solución a un problema

A partir de un problema el estudiante encontrará la solución por medio de un

esquema gráfico y escrito, reconociendo operaciones a realizar, así como la

entrada y salida de datos que la solución requiere.

Actividades:

Problema

Necesitamos obtener el promedio final de una materia, sabiendo que las

calificaciones están distribuidas en 4 parciales.

Solución

Para dar respuesta al problema planteado, necesitamos 4 variables de entrada

para recibir los datos numéricos y una variable de salida para recibir el resultado,

esta última variable es el promedio; mismo que ha sido derivado de una operación

matemática.

Variables de Entrada y Salida: Las variables necesitan un nombre propio y único

para su correcto manejo (sintaxis) e identificación.

Veamos un esquema gráfico de forma general para visualizar nuestra idea

Nombres otorgados a las entradas (identificadores): calf1, calf2, calf3, calf4

Salida: promedio

Page 12: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 12

Proceso (Matemático):

Lección 2.

Programa en Lenguaje C

A partir de la solución encontrada al problema en la sección previa, el estudiante

realizará la codificación del programa correspondiente.

Actividades:

Para realizar un programa que pueda obtener el promedio de calificaciones a

través del lenguaje C, será necesario revisar las siguientes consideraciones:

Se requiere de un nombre propio (identificador) para cada variable de entrada y

salida; también considere que en un futuro proyecto determinará nombres a

variables temporales o auxiliares, todos estos nombres que identifican a cada

elemento siguen reglas definidas por una sintaxis.

Para nuestro caso se han determinado los siguientes nombres:

Entrada: calf1, calf2, calf3, calf4

Salida: promedio

Ahora es necesario determinar el tipo de datos a manejar, una calificación puede

contener decimales o valores enteros, por ello existen tipo adecuados para las

entradas y salidas de datos en un lenguaje de programación, en este programa

utilizaremos el tipo float, porque es capaz de manipular decimales.

• calf1

• calf2

• calf3

• calf4

Entradas

•p=(calf1+calf2+calf3+calf4)/4

Proceso

• Imprimir P

Salida

Page 13: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 13

Para el procesamiento de la información; cada una de las entradas será sumada,

luego esa suma total es dividida y puesta en la variable llamada "promedio". En

lenguaje C, el uso de los signos de agrupación y de operación determina la

correcta precedencia y un resultado óptimo.

¿Qué es la precedencia?

Es el orden en el que se ejecutan los operadores

Con signos de agrupación

Sin signos de agrupación

Después de establecer los elementos anteriores, se da paso al proceso de

codificación, donde necesitaremos instrucciones y funciones propias del lenguaje,

las instrucciones y los nombres de tales funciones se denominan palabras

reservadas, que nunca serán consideradas como identificadores de nuestras

variables.

int

9, 10, 5

Enteros

float

8.8, 9, 10

Reales

8 6 9 10 (8+6+9+10)/4 8.25

8 6 9 10 8+6+9+10/4 25.5

Page 14: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 14

Borrado de pantalla y

reubicación del cursor

Declaración de variables

Un programa necesita de comentarios para facilitar su comprensión, con ello se

puede identificar al autor, el uso y enfoque del código, y la utilización de variables,

bibliotecas y funciones.

Codificación del Programa

// Autor: J Díaz © 2010

/* Programa para Obtener el Promedio de 4 Calificaciones */

//BUAP

//Materia: Informática III

#include "stdio.h"

#include "conio.h"

void main(void)

{

float calf1, calf2, calf3,calf4,promedio;

clrscr();

printf("Dame la calificación del primer parcial \n");

scanf("%f",&calf1)

printf("Dame la calificación del segundo parcial \n");

scanf("%f",&calf2)

printf("Dame la calificación del tercer parcial \n");

scanf("%f",&calf3)

printf("Dame la calificación del cuarto parcial \n");

printf("Dame el primer parcial \n");

scanf("%f",&calf1)

8

Memoria (PC)

Inclusión de las librerías:

Estándar de

entrada/Salida, y de

Pantalla

Uso de comentarios

Inicio de la función

principal “main”

Se utiliza la función

printf para presentar

textos en pantalla y la

función scanf para

ingresar los datos a las

variables

Se realiza el proceso

matemático y se asigna

un resultado a la

variable de salida

Page 15: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 15

A través de la función

“printf” se presenta el

resultado de la

operación guardado en

la variable promedio Realiza una pausa en espera de una

instrucción del usuario

scanf("%f",&calf4)

promedio:=(calf1+calf2+calf3+calf4)/4;

printf("Promedio: %f",promedio);

getch();

}

Compilar y Ejecutar

Durante la codificación es importante guardar constantemente la información, para

ello utilice la siguiente secuencia:

File Save as… [nombre.cpp] (Nombre no mayor a 8 caracteres )

En caso de Guardar en Memoria Flash USB, determine la letra asignada

por su computadora.

En la compilación se realiza el proceso de verificación de sintaxis e interpretación

de las estructuras, por ello aparecerán mensajes que denotan errores y

advertencias con sus posibles causas.

Palabras Claves

Palabras Clave: estas palabras son propias del lenguaje, por lo que no pueden

utilizarse como identificadores y cada una de ellas realiza una función específica.

Palabras Clave

Auto Break case char continue Default

Compilar F9

Ejecutar

Ctrl+F9

Page 16: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 16

Do Double else enum extern float For

Goto If int long register Return

Short Sizeof static struct switch

Typedef Union unsigned void while

Tipos de Datos

Tipo Longitud Rango

unsigned char 8 bits 0 a 255

char 8 bits -128 a 127

enum 16 bits -32,768 a 32,767

unsigned int 16 bits 0 a 65,535

short int 16 bits -32,768 a 32,767

int 16 bits -32,768 a 32,767

unsigned long 32 bits 0 a 4,294,967,295

long 32 bits -2,147,483,648 a 2,147,483,647

float 32 bits 3.4 * (10**-38) a 3.4 * (10**+38)

double 64 bits 1.7 * (10**-308) a 1.7 * (10**+308)

long double 80 bits 3.4 * (10**-4932) a 1.1 * (10**+4932)

Lección 3.

Declaración de Variables e Identificadores

Conocerá la importancia de la declaración de variables en un programa y

aprenderá a crear los identificadores necesarios para cada variable, utilizará los

operadores aritméticos y aprenderá la importancia de los componentes de las

funciones de entrada y salida, así como la utilidad de los comentarios dentro de un

programa.

Actividades:

En un problema existen; variables, constantes y funciones construidas por el

usuario, las cuales deben tener un nombre y se conoce por identificador, está

constituido por letras o secuencias de letras y números para ser diferenciadas.

Variables

Las variables deben ser declaradas antes de usarlas, para ello se determina el

tipo de dato para almacenar la información y a continuación uno o más

Page 17: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 17

identificadores1 (el nombre de cada una de las variables), cuando use varios

identificadores para un mismo tipo use comas (,) para separarlos.

Así se compone un identificador

BNF

letra_mina | b |...| z

letra_mayA | B |...| Z

letrasletra_min | letra_may

digito0 | 1 |...| 9

tipochar | short | int | long | unsigned char | unsigned short | unsigned |

unsigned long | float | double

identificador(letra | _)(letra | _ | digito)*

tipo identificador (, identificador)*;

int calf1,calf2;

float promedio;

Notación: * cero o más ítems

Nota: El lenguaje C diferencia mayúsculas de minúsculas en cada identificador.

Comentarios

Al escribir un programa es importante la documentación del mismo, existen dos

formas de generar comentarios. El primero es usar los delimitadores /* y */:

1 Para Turbo C son significativos solo 32 caracteres en un identificador

Page 18: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 18

/* un comentario */ /**************** /*

*un comentario un comentario

****************/ */

o bien, por cada línea se anteponen dos diagonales (//) previas al texto:

// un comentario //******************* //

//un comentario //un comentario

//******************* //

Entradas y salidas básicas

printf (“cadenas %tipo_de_datos”,lista de argumentos);

Considerada como la salida estándar. Es una función de la

biblioteca estándar <stdio.h>, que imprime en pantalla.

scanf(“%tipo_dato”,&argumento);

Lectura estándar de datos. También función de <stdio.h>

Constantes y caracteres de printf y scanf

De acuerdo al tipo de datos que vamos a utilizar en la funciones printf(); y scanf(),

se debe especificar el carácter de formato asociado.

printf(“ cadena %carácter ”,argumento);

Carácter Formato Asociado (tipo de dato)

%c Carácter (un solo carácter)

%d Entero decimal

%e Punto Flotante en notación Científica

%f Punto flotante

%g Formato e o f (el más corto)

Page 19: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 19

%s Cadena de caracteres

scanf(“ %carácter ”,&argumento);

Carácter Formato Asociado (tipo de dato)

%c Carácter (un solo carácter)

%d Entero decimal

%f Punto Flotante

%lf Punto flotante (Double)

%s Cadena de caracteres

Operadores

Un operador es un símbolo que indica al compilador un tratamiento específico

para los elementos, existen las siguientes clases de operadores: aritméticos,

relacionales, lógicos y sobre bits.

Operadores Aritméticos Precedencia

Operador Acción

- sustracción o negativo (unario)

+ Suma

* multiplicación

/ división

% división módulo

-- decremento

++ incremento

Mas alta ++ --

-

* / %

Mas baja + -

Page 20: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 20

Lección 4.

Actividades

Realizará las actividades que refuercen sus conocimientos de la unidad

correspondiente

Actividades

1. Formule las variables de entrada y salida de las siguientes ecuaciones

Fórmula de la distancia: )()( 1212),(

22

21 yyxxPPd

Punto medio de un segmento de recta:

2

)(,

2

)( 2121 yyxx

Pendiente: 21

21

xx

yy

x

ym

Forma punto-pendiente: )( 11 xxmyy

2. Expresar el área de la superficie de un cubo como una función de su volumen y viceversa.

Área Cubo: 26LA , Volumen Cubo: 3LV

3. Expresar el volumen de una esfera como una función del área de su superficie.

Área Esfera: 24 rA , Volumen Esfera: 3

4

3 rV

4. Realice un programa que calcule el volumen de un cono: hrV 2

2

1

5. Investigue sobre el conjunto de números: Naturales, Enteros, Racionales, Irracionales, Reales, Complejos, su dominios, alcances y usos.

6. Realice un programa para calcular : 2,3 y 4

Page 21: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 21

UNIDAD I SENTENCIAS DE DECISIÓN

Objetivo de la Unidad

Elaborar programas de acuerdo a las soluciones algorítmicas planteadas a un

problema que incluya la toma de decisiones a nivel aplicativo.

Lección 1

Estructura simple (if <condición>) Resolverá situaciones problémicas que requieran la toma de decisiones mediante estructuras comparativas simples.

Actividades:

Estructuras de control selectivo

Cuando un programa necesita “tomar” decisiones a ciertas condiciones o datos, se implementa la estructura if(condición)sentencia; como la forma más simple. En ella la computadora analiza el resultado de la condición sólo en términos de falso o verdadero, si la condición es verdadera realiza la siguiente sentencia delimitada por punto y coma (;), de lo contrario salta hasta la segunda sentencia, de cualquier forma esta última se realizará ya que el compilador es secuencial. Puede aplicar mayor control en la toma de decisiones, sólo agregando la palabra reservada else (“en otro caso”), para indicar la “segunda opción”, pero se dará el caso en que su código va más allá de una simple línea, tal vez sean 10 o 20 o más, entonces debe usar los paréntesis para agrupar las sentencias. Y porque no, quizás el programa necesite varias condiciones subsecuentes, entonces tendrá que crear ifs anidados. Mostraremos unos ejemplos a continuación:

Problema

Necesitamos determinar si una persona es mayor o menor de edad, a partir de la información necesaria, enviando un mensaje ilustrativo Solución

Habrá una variable que recibirá la edad, después se hace una comparación en donde se determina que se mostrará.

Page 22: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 22

If (condición) sentencia; #include “stdio.h” void main(void) { int edad; printf(“Dame tu edad”); scanf(“%d”,&edad);

if (edad >=18)

printf(“\n Mayor de edad”); printf(“Después de evaluar se continúa”); }

If (condición) sentencia else sentencia; #include “stdio.h” void main(void) { int edad;

printf(“\n Dame tu edad”);

scanf(“%d”,&edad);

if (age >=18)

printf( “\nMayor de Edad ” ); else

printf( “\n Menor de edad” );

printf(“\n Después de evaluar se continúa”);

} Lección 2. Estructura doble (if <condición 1> else <condición 2> Utilizará estructuras de decisión más complejas, operadores lógicos y comparativos, para la optimización del funcionamiento de un programa. Actividades:

edad>=18

Siguiente Instrucción

Es Mayor

22 años 1

7 añ

os

22 años 17 años

Si No

22 años 17

años

22 años 17 años

Si No

edad >=18

Siguiente Instrucción

Es Mayor Es Menor

Page 23: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 23

Problema

Necesitamos un programa para determinar según la edad, cuál será la película apropiada para la persona. Estas son las condiciones:

Edad

Menor de 5 años “Bee una abeja”

De 5 a 12 años, “Peter Pan”

Mayor de 12 a 17, “Harry Potter”

Mayor de 18, “Tango”

Solución

Necesitamos leer la edad, después evaluar a través de una comparativa en la que pueden existir intervalos, estos a su vez, son elaborados con operadores relacionales y operadores lógicos.

Page 24: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 24

If (condición) sentencia else sentencia; (anidados) #include “stdio.h” void main(void) { int edad;

printf(“\n Dame tu edad: ”);

scanf(“%d”,&edad);

if (edad <5)

printf( “\n Bee, una Abeja” );

else

if ((edad >=5) && (edad <=12))

printf( “\n Peter Pan” );

else

if ((edad>12) && (edad<17))

printf( “\n Harry Potter” );

else

printf( “\n Tango” );

printf(“\n Después de evaluar se continúa”);

}

4 años 17

años

Siguiente Instrucción

Si No

Bee, una

abeja

edad <5

edad >=5 &&

edad <=12 Si No

Peter Pan

17

años

edad >12 &&

edad <=17

Harry Potter Tango

Si No

17

años

4 años 17 años

Page 25: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 25

Nota: Es importante aclarar, que la instrucción if o else, solo ejecuta EXCLUSIVAMENTE una sentencia (una línea de código), por lo que será necesario usar paréntesis para agrupar a un conjunto, por ejemplo:

if (edad >=18)

{

textcolor(8);

cprintf( “\nMayor de Edad ” );

} else

{

textcolor(8); cprintf( “\nMayor de Edad ” );

}

El escalonador de if-else-if

El uso de este escalonador se debe a la necesidad de excesivas comparativas, en el se siguen las misma acciones que un if (condición) sentencia; else sentencia;. De hecho la computadora evalúa las expresiones en forma descendente, y tan pronto encuentra una condición verdadera dentro de las comparaciones, ejecuta la sentencia o sentencias y salta el resto de la escalera.

Ejercicio de Aula

Dados dos números

determinar, cual es el mayor

de estos o si son iguales.

Dados los lados de un

triángulo determinar si es

equilátero, escaleno o

isósceles.

If (condición)

sentencia;

else if (condición)

sentencia;

else if (condición)

sentencia;

else if (condición)

sentencia;

.

.

else

sentencia;

Page 26: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 26

Operadores relacionales

Operador Significado

> Mayor que

>= Mayor que o igual

< Menor que

<= Menor que o igual

== Igual

!= No igual

Operadores Lógicos

Lógica :: ^̂ (Y), vv (O), ~~ (Negación),

En lenguaje C : && (Y), || (O), ! (Negación)

Tablas de Verdad

Conjunción

P Q P ^ Q

V V V

V F F

F V F

F F F

Disyunción

P Q P v Q

V V V

V F V

F V V

F F F

Negación

P ~ P

V F

F V

Atención: Cuando use este tipo de operadores verifique que ambos símbolos se

encuentre escritos, ya que al estar sólo uno de ellos, se aplican operaciones sobre

bits y no operaciones lógicas.

Page 27: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 27

Actividades

Realice los siguientes programas: (Debe diseñar primero, el algoritmo diagrama de

flujo correspondiente a cada programa).

1. Que obtenga el resultado de las siguientes funciones por intervalos. Nota: La función recibirá un valor para x, y genera un resultado según las condiciones cumplidas.

2,2

20,2

0,2

)(

xx

xx

xx

xf

1,12

20,3

0,

)(

2

xx

x

xx

xf

2. Que decida a través de un mensaje en pantalla, cuando un número es positivo, negativo o cero.

3. Que obtenga la función de valor absoluto

0,

0,

aa

aaa

4. Que obtenga las soluciones y casos de la ecuación cuadrática:

a

acbbx

2

42 , para los casos:

a) a=0, b=0 b) 042 acb , 042 acb , 042 acb

Nota: debe existir solución para números complejos.

5. Que determine la longitud esperada en centímetros de un feto humano, la función lineal que usará es L=1.5t-6.7, donde t >= 12. Considere restricciones con un mínimo para t de 12 semanas y un máximo de 42 semanas.

6. La comisión internacional para la caza de ballenas, decreta que el peso

W (en toneladas largas de 22400 libras) de una ballena azul adulta se determina por la función W=3.51L-192, donde L es la longitud en pies, L debe ser mayor que o igual a 70 pies. El programa determinará el peso de la ballena.

7. Realice la siguiente función:

ddoouubbllee ccoonnvveerr__FFCC((ddoouubbllee ggrraaddooss,, cchhaarr ttiippoo)) Esta función convertirá

una determinada temperatura dado el número de grados y la primera

letra correspondiente a su escala a los grados de su escala contraria,

siguiendo la correspondencia Fahrenheit a Celsius y viceversa:

conver_FC(100,’C’) 212 (Grados Fahrenheit). C=(5/9)*(F-32).

Page 28: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 28

Lección 3.

Estructura selectiva múltiple (switch – case)

Aprenderá a utilizar la sentencia de decisión múltiple como alternativa a la

sentencia de decisión simple, cuando el uso de esta última resulte excesivo.

Actividades:

Selector Múltiple (Switch)

Es una alternativa al escalonador if-else-if, tiene el mismo objetivo pero su sintaxis es muy reducida y entendible. A esta sentencia se le conoce como bifurcación múltiple. En esta sentencia en la parte superior se encuentra el elemento a comparar de una lista descendiente de constantes, por lo que el sistema lee y compara en la lista predeterminada y al encontrar una coincidencia se ejecuta la sentencia o bloque de sentencias, su estructura es: switch(valor) { case constante1:

sentencia(s);

break;

case constante2:

sentencia(s);

break;

case constante3:

sentencia(s);

break;

default:

sentencia(s);

}

Sentencias

Switch( valor )

Sentencias Sentencias

Sentencias

Constante1

Constante2 Constante3

default

Page 29: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 29

Cuando no existe coincidencia alguna en el listado de constantes, se tiene la instrucción default: que significa, caso por omisión o caso predeterminado; esta última instrucción es totalmente opcional, sin embargo la apertura y cierre de paréntesis para agrupar a la lista son obligatorias.

Problema

Se desea realizar un programa que funcione como una calculadora para procesar dos valores. Solución

Se necesitan dos variables de entrada, una variable para almacenar el resultado de una operación, y una variable de tipo char, que funcionara como receptor de la operación que se desea realizar y que se considera parte del menú.

Page 30: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 30

#include "stdio.h" #include "conio.h" void menu(void) { clrscr(); printf("\n+: suma"); printf("\n-: resta"); printf("\nx: producto"); printf("\n/: división"); } void main(void) { float a,b; char c; menu(); printf("\n Primer valor: "); scanf("%f",&a); printf("\n Segundo valor: "); scanf("%f",&b); printf("\n Operación: "); scanf("%c",&c); scanf("%c",&c);

switch(c)

{

case '+': printf("\n%.2f + %.2f = %.4f",a,b,a+b);

break;

case '-': printf("\n%.2f - %.2f = %.4f",a,b,a-b);

break;

case 'x': printf("\n%.2f * %.2f = %.4f",a,b,a*b);

break;

case '/': printf("\n%.2f / %.2f = %.4f",a,b,a/b);

break;

default:

printf("\nError");

} printf("\n Después de evaluar se continúa"); getch(); getch(); }

Cuando ocupe constantes de tipo carácter use comilla

simple ´a´, recordando que distingue Mayúsculas de

minúsculas. Si usa constantes numéricas inclúyalas en la

lista de manera normal: case 1:

Page 31: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 31

Funcionamiento de switch en el programa

Actividades

1. Amplíe la calculadora de tal forma que se puedan realizar operaciones de

trigonometría, raíz cuadrada y cúbica.

„+‟ : a+b

C (tipo char)

Siguiente Instrucción

„x‟ : a+b

Default:

C x a 5 b 4

9

Se realiza la lectura del carácter

Seguido a esto, se lleva el valor

hacia switch, donde se realizar una

comparativa con cada uno de los

elementos hasta encontrar la

IGUALDAD y se ejecuta la

instrucción o instrucciones

Page 32: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 32

UNIDAD II Sentencias de repetición

Objetivo de la Unidad

Elaborar programas de acuerdo a las soluciones algorítmicas planteadas a un

problema que incluya la ejecución de tareas iterativas a nivel aplicativo

Lección 1

El ciclo for

Utilizará el ciclo de repetición For para implementar tareas repetitivas en donde se

conozca el número de veces que se ejecutará la tarea.

Actividades:

Es muy común encontrar en los algoritmos operaciones que se deben ejecutar un

número repetido de veces. El conjunto de instrucciones que se ejecuta

repetidamente se llama ciclo. Todo ciclo debe terminar de ejecutarse luego de un

número finito de veces, por lo que es necesario en cada repetición del mismo,

evaluar las condiciones necesarias para decidir si debe seguir ejecutándose o debe

detenerse. En todo ciclo, siempre debe existir una condición de parada o fin de

ciclo.

En algunos algoritmos podemos establecer que el ciclo se repetirá un número

definido de veces. Llamaremos PARA (en inglés FOR) a la sentencia repetitiva que

se ejecuta un número definido de veces.

En esta unidad haremos uso del símbolo para representar la asignación de

un valor a una variable.

Page 33: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 33

repetir

FELICITAR Y

ENTREGAR

MEDALLA

¿Jugador es

igual a

jugador 5?

Finaliza

premiación

Si jugador no es

igual a jugador 5,

que pase el

siguiente jugador

jugadores

Ejemplo 1.

Tomemos como primer ejemplo la entrega de medallas a los 5 jugadores de un

equipo campeón de beisbol por parte del presidente del torneo.

Ciclo de repetición PARA (FOR). En forma de algoritmo

Algoritmo: Entrega de medallas a un equipo de beisbol.

1.- Inicio

2.- PARA jugador 1 hasta jugador 5 repetir

2.1 Felicitar jugador

2.2 Colocarle medalla

Fin PARA

Page 34: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 34

Problema 1: Construya un diagrama de flujo tal que, dados los sueldos de 10

trabajadores de una empresa, obtenga el total de la nómina de la misma.

Explicación de las variables.

SUE1, SUE2, SUE3, SUE4, SUE5, SUE6, SUE7, SUE8, SUE9, SUE10. Variables

de tipo real. Representan los sueldos de los empleados.

NOMINA: Variable de tipo real. Almacena la suma de los sueldos de todos los

trabajadores.

Problema 2: ¿Qué sucedería si en lugar de tener 10 empleados, la empresa

tuviera 100 ó 1000?

Se puede resolver con una estructura repetitiva, de tal forma que el ciclo se ejecute

tantas veces como empleados tenga la empresa.

El diagrama de flujo 1.3 es más claro y más general que el diagrama 1.2.

Modificando la condición (i <= 10), podemos utilizar esta solución para N

empleados (i <=N). Donde N nos representa en este caso un dato que puede ser

un valor mayor a 10.

Explicación de las variables.

i: Es una variable de tipo entero que representa la variable contador del ciclo.

Cuenta el número de veces que ha de repetirse una determinada acción. El

contador toma un valor inicial (1) y se incrementa en una unidad en cada

repetición del ciclo.

Diagrama de flujo 1.2 INICIO

SUE1, SUE2, SUE3, SUE4, SUE5, SUE6,

SUE7, SUE8, SUE9, SUE10

NOMINA SUE1+SUE2+SUE3+SUE4+SUE5+SUE6+SUE7+SUE8+SUE9+SUE10

FIN

Page 35: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 35

nomina: Es una variable de tipo real que representa un acumulador. Este se

utiliza cuando debemos obtener el total acumulado de un conjunto de

cantidades, generalmente se inicializa en cero.

sueldo: Es una variable de tipo real. Representa el sueldo del trabajador.

Lección 2.

En la siguiente tabla podemos observar el

seguimiento del algoritmo para los

sueldos: $1500, $890, $700, $950, $2300,

$1650, $1800, $1400, $760, $900.

Tabla 1.1 I sueldo nomina+sueldo nomina

0

1 1500 0+1500 1500

2 890 1500+890 2390

3 700 2390+700 3090

4 950 3090+950 4040

5 2300 4040+2300 6340

6 1650 6340+1650 7990

7 1800 7990+1800 9790

8 1400 9790+1400 11190

9 760 11190+760 11950

10 900 11950+900 12850 11

Sentencia

repetitiva

PARA

VERDADER

O

INICIO

FALSO

sueldo

nomina nomina + sueldo

i i+1

FIN

i = 1

nomina = 0

nomina

i < = 10

Diagrama de flujo 1.3

Inicia el ciclo

Finaliza el ciclo Valor que

se imprime

Page 36: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 36

Algoritmo y Codificación en lenguaje “C”

Algoritmo: Calcular la nómina a un grupo

de 10 empleados.

i: variable de tipo entero.

sueldo y nomina: variables de tipo real.

1.- Inicio

2.- i 1 y nomina 0

3.- Para i= 1 hasta 10 hacer

Leer sueldo

nomina nomina + sueldo

Incrementar i i+1

4.- Fin Para

5.- Escribir nomina

6.- Fin

/*Codificación en C */

#include <stdio.h>

#include <conio.h>

void main () {

clrscr();

int i;

float sueldo, nomina;

nomina=0;

for (i=1;i<=10;i++)

{

printf("Introduce sueldo de empleado:");

scanf("%f",&sueldo);

nomina = nomina+sueldo;

}

printf("Nomina=%f", nomina);

getch();

}

Page 37: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 37

Lección 2

El ciclo While

Utilizará el ciclo de repetición While para implementar tareas repetitivas que

se ejecutarán siempre y cuando cumplan con una condición inicial.

Actividades:

En algunos algoritmos no podemos establecer el número de veces que ha de

ejecutarse el ciclo. Llamaremos MIENTRAS (en inglés WHILE) a la sentencia

repetitiva que se ejecuta mientras la condición resulta verdadera, la sentencia

MIENTRAS termina cuando la condición es falsa.

Ejemplo 2. ¿Qué hacer para ver la película Harry Potter?. En este ejemplo se hace

uso del ciclo de repetición MIENTRAS (WHILE).

repetir

repetir

Si no hay

fila

Ver

cartelera

¿Proyectan

Harry Potter?

Ir al

cine

Si no

proyectan

Harry Potter

Decidir otra

actividad

¿Hay fila

para

formarse

en ella?

Mientras

haya

personas

delante

Avanzar

en fila ¿ Hay

boletos?

Si no hay

boletos

refunfuñar

Comprar

una

entrada

Pasar a sala

Localizar

asiento

Mientras

proyectan

película

Ver película

Abandonar cine

Volver a

casa

Page 38: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 38

Algoritmo: ¿Qué hacer para ver la película Harry Potter?.

1.- Inicio

2.- Ver la cartelera de cines en el periódico

3.- Si proyectan Harry Potter entonces

3.1 Ir al cine

Si_no

3.2 Decidir otra actividad

3.3 Ir al paso 7

Fin_si

4.- Si hay fila entonces

4.1 Formarse en ella

4.2 Mientras haya personas delante hacer

4.2.1 Avanzar en la fila

Fin_mientras

Fin_si

5.- Si hay boletos entonces

5.1 Comprar una entrada

5.2 Pasar a la sala

5.3 Localizar el asiento

5.4 Mientras proyectan la película hacer

5.4.1 Ver la película

Fin_mientras

5.5 Abandonar el cine

Si_no

5.6 Refunfuñar

Fin_si

Page 39: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 39

6.- Volver a casa

7.- Fin

En el algoritmo anterior existen palabras que incluyen los conceptos importantes de

selección (expresadas por si_entonces, si_no if_then_else) y de repetición

(expresadas con mientras, hacer mientras en ingles, while, do-while). Otro

aspecto a considerar es el método elegido para describir los algoritmos: empleo de

indentación (sangrado) en escritura de algoritmos.

Ejemplo 3. Preparar una taza de té. Ciclo de repetición MIENTRAS (WHILE).

repetir

repetir

Tomar

tetera

Llenarla

de agua

Encender

fuego

Poner

tetera

en

fuego

Esperar

Mientras

no hierva

el agua

Mientras

no esta

hecho el

Verter

té en

taza

Esperar Tomar

bolsa de

Introducirla

en la tetera

Page 40: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 40

Algoritmo: Preparar una taza de té.

1.- Inicio.

2.- Tomar la tetera.

3.- Llenarla de agua.

4.- Encender el fuego.

5.- Poner la tetera en el fuego.

5.1 Mientras no hierva el agua

5.1.1 Esperar

Fin mientras

6.- Tomar la bolsa de té.

7.- Introducirla en la tetera.

7.1 Mientras no está hecho el té.

7.1.1 Esperar

Fin mientras

8.- Verter té en la taza.

9.- Fin.

Ejemplo 5.

Diseñar un algoritmo para calcular la velocidad media (en m/s) de los corredores

de una carrera de 1500 metros. La entrada serán parejas de números (minutos,

segundos) que darán el tiempo de cada corredor. Por cada corredor se imprimirá el

tiempo en minutos y segundos, así como la velocidad media. El ciclo se ejecutará

hasta que demos una entrada de 0,0 que será la marca de fin de entrada de datos.

Page 41: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 41

Algoritmo

Algoritmo: Calcular la velocidad media (en m/s) de los corredores de una carrera de 1500

metros.

1.- Inicio

2.- Distancia 1500

3.- Leer (m, s)

3.1 Mientras m != 0 ó s != 0 hacer

3.1.1 Tiempo s + m*60

3.1.2 v distancia/tiempo

3.1.3 Escribir (m, s, v)

3.1.4 Leer(m, s)

Fin mientras

4.- Fin

Leer

minutos

(m),

segundos

(s)

Mientras

m diferente de cero

ó

s diferente de cero

Realizar

operaciones:

tiempo = s*m*60

v=distancia/tiempo

Escribir minutos

(m), segundos (s) y

velocidad (v).

Leer minutos (m) y

segundos (s)

repetir

Page 42: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 42

Problema 1: Supongamos que debemos obtener la suma de los gastos que

hicimos en nuestro último viaje, pero no sabemos exactamente cuántos fueron.

INICIO

sumagastos = 0

gasto

gasto <> 0

NO

SI

sumagastos = sumagastos+gasto

gasto

FIN

sumagastos

Sentencia repetitiva

MIENTRAS

Diagrama de flujo 1.5

Page 43: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 43

Explicación de las variables.

sumagastos: Es una variable de tipo real. Es un acumulador, acumula los gastos

efectuados.

gasto: Es una variable de tipo real. Su valor en la primera lectura debe ser

verdadero, es decir distinto de 0. Su valor se modifica en cada repetición del ciclo.

Cuando la variable gasto tome el valor de 0, entonces el ciclo se detendrá y a

continuación se imprimirá la suma de los gastos efectuados.

En la siguiente tabla podemos observar el seguimiento del algoritmo para los

siguientes gastos: $2528, $3500, $1600, $1850, $150, 0.

Tabla 1.2

gasto sumagastos+gasto sumagastos

0

2528 0+2528 2528

3500 2528+3500 6028

1600 6028+1600 7628

1850 7628+1850 9478

150 9478+150 9628 0

A continuación presentamos el algoritmo correspondiente del total de gastos de un

viaje.

gasto y sumagastos son variables de tipo real.

Algoritmo: Total de gastos de un viaje.

1.- Inicio

2.- sumagastos 0

3.- Leer gasto

4.- Mientras gasto sea diferente de 0 hacer

sumagastos sumagastos+gasto

Leer gasto

5.- Fin Mientras

Finaliza el ciclo

Inicia el ciclo

Valor que

se imprime

Page 44: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 44

6.- Escribir sumagastos

7.- Fin

Codificación en lenguaje C: Total de gastos de un viaje.

#include <stdio.h>

#include <conio.h>

void main(){

clrscr(); // limpia pantalla

float sumagastos, gasto;

sumagastos=0;

printf("Introduce gasto: ");

scanf("%f",&gasto);

while(gasto != 0){

sumagastos=sumagastos+gasto;

printf("\nIntroduce gasto: ");

scanf("%f",&gasto);

}

printf("\nEl gasto total del viaje es de: %0.2f",sumagastos);

getch();

}

Page 45: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 45

Lección 3.

El ciclo do-while

Utilizará el ciclo de repetición Do-While para implementar tareas repetitivas que se

ejecutarán al menos una vez y continuará su ciclo siempre y cuando cumplan con

una condición específica.

Actividades:

Con la sentencia repetitiva HACER-MIENTRAS todas las sentencias en el interior

del ciclo se ejecutan al menos una vez antes de que la condición se evalúe.

Entonces, si la condición es verdadera las sentencias que están dentro del ciclo se

ejecutan una vez más. El proceso continúa hasta que la condición evaluada toma el

valor falso.

Ejemplo 4. Endulzar mi café. Ciclo de repetición HACER MIENTRAS (DO-WHILE).

Algoritmo: Endulzar mi café.

1.- Inicio

2.- Tomar la cafetera

3.- Llenar mi taza con café

3.1 Hacer

3.1.1 Verter cucharadita de azúcar en el café

3.1.2 Disolver azúcar en el café

3.1.3 Probar sabor del café

repetir

Tomar

cafetera

Llenar taza

con café

Vertir

cucharadita

de azúcar en

el café.

Disolver

azúcar en

el café

Probar

sabor del

café

Mientras

sabor del

café sea

amargo

Page 46: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 46

Mientras sabor de café sea amargo

4.- Fin

Problema 3.

Supóngase que en una reciente elección hubo dos candidatos (con identificadores

1 y 2). Se desea saber, mediante un programa, el número total de ciudadanos que

votaron. El funcionario electoral tecleará los votos de manera desorganizada, tal y

como se obtuvieron en la elección, el final de datos está representado por un cero.

Observe, la siguiente lista de votos: 1,2,2,1,2,1,1,2,1,1,2,2,1,0

Donde 1 representa un voto para el candidato 1 y 2 un voto para el candidato 2.

Vamos a representar mediante un diagrama de flujo el problema anterior.

Sentencia repetitiva

HACER MIENTRAS

NO

INICIO

contadorvotos= -1

voto

SI

contadorvotos = contadorvotos+1

FIN

contadorvotos

voto <> 0

Page 47: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 47

Explicación de las variables.

contadorvotos: Es una variable de tipo entero. Es un acumulador, acumula los

votos de cada persona. La razón de inicializar la variable en -1, se debe a que si

leemos un voto que sea cero, la operación contadorvotos=contadorvotos+1 lo

contara como un voto mas y por eso desde el inicio lo estamos eliminando.

voto: Es una variable de tipo entero. Lee el valor 1 ó 2 que representan el voto para

el candidato respectivo. Su valor se modifica con cada lectura de voto al repetirse

el ciclo. Cuando la variable voto tome el valor de 0, entonces el ciclo se detendrá e

imprimirá cuantas personas votaron.

Tabla 1.3

voto contadorvoto+1 contadorvoto

-1

1 -1+1 0

2 0+1 1

2 1+1 2

1 2+1 3

2 3+1 4

1 4+1 5

1 5+1 6

2 6+1 7

1 7+1 8

1 8+1 9

2 9+1 10

2 10+1 11

1 11+1 12

0 12+1 13 Valor que

se imprime Finaliza el ciclo

Inicia el ciclo

Page 48: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 48

Algoritmo: Número total de ciudadanos que votaron.

1.- Inicio

2.- contadorvotos -1

3.- Hacer

Leer voto

contadorvotos contadorvotos+1

4.- Mientras voto sea diferente de cero

5.- Escribir contadorvotos

6.- Fin

/* Codificación en leguaje C */

#include <stdio.h>

#include <conio.h>

void main(){

clrscr();

int contadorvotos;

int voto;

contadorvotos=-1;

do {

printf("Introduce voto: ");

scanf("%i",&voto);

contadorvotos=contadorvotos+1;

}while(voto != 0);

printf("El numero de ciudadanos que votaron es de: %i

",contadorvotos);

getch();

}

Page 49: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 49

Observando los ejemplos anteriores nos damos cuenta que cualquier ciclo de

repetición PARA, MIENTRAS y HACER MIENTRAS consta de las siguientes

partes:

Variable de Control. El valor de esta variable se evalúa en la condición

lógica para determinar si se finaliza o se repite una vez más el ciclo. Es

importante que se le asigne un valor inicial verdadero. Si el valor de la

variable de control es falso, entonces el ciclo no se ejecuta.

Ejemplos de variables de control.

i 1 respuesta “SI” continuar verdadero

Condición Lógica. La evaluación de la variable de control en esta

condición permite decidir cuándo finalizara la ejecución del ciclo. La

condición se evalúa al inicio de los ciclos PARA y MIENTRAS; y se evalúa al

final, en el caso del ciclo HACER MIENTRAS.

Ejemplos de condiciones lógicas.

i <= 10 respuesta = “SI” continuar = verdadero

Conjunto de Instrucciones. Son las instrucciones que se encuentran

dentro del ciclo y que se ejecutaran repetidamente.

Modificación de la Variable de Control. Se refiere a una instrucción en la

cual se asigna un nuevo valor a la variable de control para que vuelva a ser

evaluada en la condición lógica.

Ejemplos de modificación de la variable de control.

i i+1 i i-1 i i+5 respuesta “NO” continuar falso

Page 50: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 50

Actividades

Crear los siguientes programas: (Debe diseñar primero el algoritmo o diagrama de flujo).

1. Que calcule el factorial de un número. Recordemos que el factorial de un número N responde a la fórmula

N!=N*(N-1)*(N-2)*(N-3)*…………………………………………3*2*1

Es decir si queremos obtener el factorial de 5 es:

5!=5*4*3*2*1=120

2. Que muestre la tabla de multiplicar de un número x, con el siguiente formato de salida: X * 1 = X X * 2 = Y Etc.

3. Que calcule la potencia de un número xy usando for. 4. Que muestre los número de 0 a 100, con incrementos de z. 5. Que obtenga las siguientes sumatorias eligiendo el máximo posible en

lugar de infinito.

51

1

.,)5)(4(

1sol

kkk

,

43

1

1

31 ., sol

k

k

,

31

110

3 ., solk

k

6. Que obtenga las sumatorias anteriores eligiendo los índices inicial y

final, es decir el valor de k y un número final.

Page 51: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 51

UNIDAD III Creación de Funciones

Objetivo de la Unidad

Disminuir la complejidad de un programa a través de funciones simples integradas

en el programa principal a nivel aplicativo.

Lección 9.

Estructura, creación y uso de funciones

Aprenderá la importancia de crear funciones para disminuir la complejidad de un

programa.

Problema

Un concepto importante en la programación es la división de un proyecto en

pequeños elementos, estos elementos que funcionan como módulos exclusivos para

una tarea adoptan el nombre de funciones; las funciones reciben o generan datos

que serán utilizados en el programa principal.

Veamos un ejemplo en el que la división en varios módulos es primordial; el caso es

el siguiente, se desea ver el promedio de cuatro parciales a través de dos formas,

promedio como media aritmética y como promedio ponderado, donde este último

está determinado por porcentajes que suman el 100%.

Media Aritmética: (calf1 + calf2+ calf3+ alf4)/4

Promedio Ponderado: calf1*porcent1+ calf2*porcent2+ calf3*porcent3+

calf4*porcent4

Para solucionar este caso considere realizar 2 funciones, a las que llamaremos

Media_arit() y Media_pond()

Inicia el programa en

"main()" llamando a las

funciones

Media_arit

Recibe los datos:

c1,c2

prom=(c1+c2)/2

Media_pond

Recibe los datos:

c1,c2,porc1, porc2,

prom=c1*porc1+c2*porc2

se presentan los resultados en la función principal

"main"

Page 52: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 52

Procesamiento de la función Media_arit:

Codificación:

#include “stdio.h”

#imclude “conio.h”

void Media_arit(void) {

float c1, c2,c3, c4, prom;

printf("Calificación 1");

scanf("%f",&c1);

printf("Calificación 2");

scanf("%f",&c2);

prom=(c1+c2)/2;

printf(“El resultado es %f”, prom);

}

void Media_pond(void) {

float c1, c2, porc1, porc2, prom;

printf("Calificación 1");

• printf("Calificación 1");

• scanf("%f",&c1);

• printf("Calificación 2");

• scanf("%f",&c2);

Entradas

• prom=(c1+c2+c3+c4)/4

Proceso•printf("Promedio %f",

prom);

Salida

Las funciones reciben y regresan valores, pueden

entrar diferentes tipos de datos y generar salidas de

otro tipo. En nuestro caso el tipo void significa valor

nulo, es decir, no sale nada, no entra nada.

Toda función tiene un cuerpo delimitado

por {llaves}, donde cada variable tiene un

alcance único en este espacio.

Estructura

tipo nombre_función( argumentos-tipo)

Void Media_arit(void)

Page 53: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 53

scanf("%f",&c1);

printf("Calificación 2");

scanf("%f",&c2);}

printf(“Porcentaje en decimal: *50%+-> 0.5”);

printf("Porcentaje Calf1: ");

scanf("%f",&pond1);

printf("Porcentaje Calf2");

scanf("%f",&pond2);

prom=(c1*porc1+c2*porc2);

printf(“El resultado es %f”, prom);

}

void main(void)

{

Clrscr();

Media_arit();

Media_pond();

}

La ejecución del programa será secuencial, iniciando en la función “main”, ahí el

programa ejecutará cada una de las funciones que encuentre, ingresando a la

estructura respectiva hasta terminar y continuar con la siguiente.

Lección 10.

Tipos de funciones (void, int, float)

Aprenderá a utilizar distintos tipos de función, incluyendo los argumentos como

elementos que permiten aumentar la utilidad de una función.

El programa busca a

“main()” y se ejecuta

secuencialmente

1

2

Page 54: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 54

Actividades:

Una característica importante de las funciones es la capacidad que tienen para

reciben argumentos(valores) y devolver algún tipo de valor, por ejemplo, se realiza

una función que da por resultado el cubo de un número, utilizando otra función que

multiplica 2 números;

#include “stdio.h”

#include “conio.h”

int multiplica (int a, int b)

{

return a*b;

}

int cubo(int number)

{

return multiplica(multiplica(number,number),number);

}

Así trabaja la función “cubo”, con el valor de x igual a 4

Cubo(4) multiplica( multiplica( 4,4) , 4)

void main(void)

{

int x, resultado;

printf("Numero: ");

scanf("%d",&x);

resultado=cubo(x);

printf("\nCubo es %d", resultado);

getch();

}

1

2

Se pasa como

argumento el valor

de la variable “x”

en la función

cubo(x).

16

4

64

16

resultado

Page 55: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 55

Definición de funciones

Una estrategia para la solución de problemas complejos es la división del mismo

problema en problemas más pequeños –esta técnica se denomina comúnmente

divide y vencerás-; este método es conocido como diseño descendente, es

decir la resolución comienza con una descomposición modular, hasta llegar a un

refinamiento sucesivo (stepwise). Por lo que será necesario crear módulos o

funciones que responderán a determinados sucesos o peticiones. De hecho una de

las ventajas más importante de la modulación es la reutilización del código, ya

que se deben crear funciones con propósitos generales, en la programación

orientada a objetos la reutilización es totalmente clara, aquí se crean objetos dentro

de clases capaces de adaptarse a mejoras generadas por un proceso llamado

herencia.

De hecho la base de la programación en C es la función, por lo que la necesidad de

crear funciones satisface al proceso de modulación. En este lenguaje todas las

funciones están en el mismo nivel externo, no puede anidar funciones internas para

una función específica, es decir no debe haber una función dentro de otra

función, un problema puede tener un o más módulos, puede tener una o más

funciones en un o más archivos; sin embargo existe una función que es el punto de

inicio o de entrada del programa, esta función es main(), el resto de las funciones

generadas se llamas desde el interior de main() o del interior de otras según la

dependencia de las mismas. Además todas las funciones deben devolver un

“valor” de cualquier tipo, desde uno definido hasta un creado por el usuario, usa

return para devolver un valor, de hecho al usar esta instrucción la función produce

una salida inmediata; pero cuando la función no necesite devolver un valor usa

void ya que este indica “sin valor”.

Como organizar las funciones

C es un lenguaje de funciones, en donde una función específica denominada main() indica el punto de ejecución. Sin embargo las funciones deben ser estructuradas según su dependencia de otras; podrá editar las funciones de forma desorganizada, pero cuando una función necesite del resultado de otra el compilador le indicará este tipo de dependencias no satisfechas. Por tanto, las funciones principales deberán estar ubicadas en la parte superior de las funciones dependientes, nótese que estamos atendiendo a un proceso de diseño descendente.

Page 56: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 56

Argumentos y resultados de funciones

Una función puede contener distintos tipos de datos como argumentos (parámetros

de entrada) y devolver un tipo totalmente distinto a los anteriores; por ello se debe

analizar con sumo detalle los parámetros de entrada y resultados. El siguiente

ejemplo muestra una función que tiene como parámetros de entrada 4 números de

tipo entero, y por salida el promedio de los mismos en tipo flotante (real).

#include <stdio.h>

#include <conio.h>

float promedio(int a, int b, int c, int d)

{

return (float(a+b+c+d))/4;

}

void main(void)

{

int a,b,c,d;

clrscr();

printf("4 numeros separados por espacios: ");

scanf("%d %d %d %d", &a,&b,&c,&d);

printf("\nPromedio: %.2f", promedio(a,b,c,d));

getch();

}

Los argumentos de una función

deben estar separados por comas, y

antecedidos por un tipo de dato.

Se está aplicando un cast, esto es, “convertir” la

salida en otro tipo de dato. Sin esto, se genera

una división entera.

Declaración de variables locales de tipo entero, recuerde ser explícito en el tipo

de datos a leer y devolver; además se debe tener en cuenta que al declarar

variables locales estas sólo existen en sus funciones, por lo que no existe

ninguna relación entre las variables locales de main() y las de promedio()

La lectura de varios elementos, sólo

las variables son separadas por comas,

los tipos pueden variar según sus

necesidades.

Para que el resultado se muestre

con dos decimales, use

.nDECIMALES

Page 57: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 57

Lección 11.

Ejercicios

Realizará ejercicios que refuercen su aprendizaje en el uso de funciones

Actividades:

1. Realice las siguientes funciones:

ddoouubbllee ppootteenncciiaa((ddoouubbllee bbaassee,, ddoouubbllee eexxppoonneennttee)) xy basado en logaritmo natural y el número exponencial

ddoouubbllee rraaiicceess((ddoouubbllee rraaddiiccaannddoo,, ddoouubbllee rraaddiiccaall)) yx basado en

logaritmo natural y el número exponencial.

ddoouubbllee ggrraadd22rraadd((ddoouubbllee ggrraaddooss)) Convertir grados a radianes.

ddoouubbllee rraadd22ggrraadd((rraaddiiaanneess ggrraaddooss)) Convertir radianes a grados.

Page 58: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 58

UNIDAD IV INTRODUCCIÓN AL GRAFICADO

Objetivo de la Unidad

Diseñar objetos en movimiento mediante sentencias de la biblioteca gráfica a

nivel creativo.

Lección 12

Protocolos para trabajar en ambiente gráfico

Aprenderá los elementos necesarios y su configuración para desarrollar un

programa que incluya componentes gráficos.

Actividades:

Un lenguaje de programación permite interactuar de forma gráfica con el usuario a

través de librerías preestablecidas que preparan a la computadora para el entorno.

Se pueden crear figuras geométricas básicas y complejas mediante estructuras

propias o personalizadas por el usuario.

El uso de funciones matemáticas aplicadas a estructuras propias del lenguaje,

permite visualizar elementos de tipo abstracto, es el caso de usar funciones

trigonométricas para el ploteo de puntos generadores de formas curvas.

Ejemplo1. A continuación mostramos la configuración del compilador turbo c para que un programa que traza una línea se pueda visualizar. Para que Turbo C pueda realizar la compilación y ejecución de funciones gráficas, esta necesita ser activada: OptionsLinker..Libraries..

Page 59: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 59

Lección 13

Creación de figuras geométricas básicas

A continuación incluya las siguientes

librerías al código:

#include <graphics.h>

#include <stdlib.h>

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

int main(void)

{

/* Proceso de auto detección de video*/

int gdriver = DETECT, gmode, errorcode;

/* Inicializa el modo gráfico */

initgraph(&gdriver, &gmode, "");

/* Resultado de la inicialización*/

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Error modo gráfico: %s\n",

grapherrormsg(errorcode));

printf("Salir (enter):");

getch();

exit(1);

}

/*Si el modo se inicializa correctamente */

/* Dibuja un rectángulo/

rectangle(0, 0, getmaxx(), getmaxy());

getch();

/*cierra el modo gráfico/

closegraph();

return 0;

}

Para inicializar el modo gráfico en C,

se debe detectar la tarjeta de video

disponible y su resolución.

La función

initgraph(&gdriver,&gmode,””); inicializa

el modo gráfico con la tarjeta detectada

(DETECT) y la resolución disponible

(gmode). La cadena de caracteres

siguiente solo indica la ruta (path) de los

controladores de dicha tarjeta.

Por esta razón necesitamos cambiar el

path BIN de Turbo C por BGI, usando:

FileChange dir...

La pantalla logra una resolución de 640 x 350 en casos VGA

o EGA a 16 colores. Use la función getmaxx() y getmaxy()

para conocer los límites superior e inferior de la pantalla.

Page 60: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 60

Lección 13

Creación de figuras geométricas básicas

Desarrollará programas con componentes gráficos, a través de las librerías

preestablecidas.

Actividades:

Utilizando Sentencias de Dibujo y Forma Rellenas

Cuando se dibujan formas rellenas de una elipse, un sector o una barra; el relleno

es sólido, no existe una trama, y si deseamos personalizar nuestro relleno en base

a una trama, es necesario declara un arreglo que albergará 8 caracteres, los cuales

según su secuencia de bits diseñará un mapa para la trama:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main(void)

{

int midx,midy,radioy,radiox;

char trama[8] = {0xff, 0x07, 0x02, 0x02, 0x02, 0x02, 0x07, 0xff};

int gdriver = DETECT, gmode, errorcode;

initgraph(&gdriver, &gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Error: %s\n", grapherrormsg(errorcode));

printf("Presione cualquier tecla...");

getch();

exit(1);

}

midx=getmaxx()/2;

midy=getmaxy()/2;

rectangle(0,0,getmaxx(),getmaxy());

circle(midx,midy,100);

radioy=60;

radiox=80;

setfillpattern(trama,BLUE);

fillellipse(midx,midy,radiox,radioy);

setcolor(BLUE);

radiox=radioy=120;

11111111

00000111

00000010

00000010

00000010

00000010

00000111

11111111

oxff

ox07

ox02

ox02

ox02

ox02

ox07

oxff

Page 61: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 61

ellipse(midx,midy,0,270,radiox,radioy);

setcolor(YELLOW);

setfillstyle(SOLID_FILL,4);

radiox=radioy=50;

sector(midx,midy,0,270,radiox,radioy);

getch();

/*cierra el modo gráfico/

closegraph();

return 0;

}

Código para dibujar una línea

line(x1,y1,x2,y2); en las coordenadas x1,y1 (inicio) ,x2,y2 (final)

Ejemplo: line(0,0,100,10);

Código para dibujar un punto

putpixel(x1,y1,color); en las coordenadas x1,y1 con un color

Ejemplo: putpixel(100,100,BLUE);

Código para obtener el valor máximo de puntos en los ejes X y Y de la

pantalla

getmaxx(); Devuelve la coordenada máxima para X de la pantalla (límite superior)

getmaxy(); Devuelve la coordenada máxima para Y de la pantalla (límite inferior)

Código para imprimir texto

Actividad de Aula:

1. Realice la fig (2a), use circle(); arc(); pieslice(); fillellipse(); sector();

2. Dibuje el Sistema Solar

Page 62: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 62

outtextxy(x,y,”cadena”); en las coordenadas x,y

Ejemplo: outtextxy(10,20,”Impresión de texto”);

Código para trazar una barra

bar3d(x1,y1, x2,y2); en las coordenadas x1,y1 (inicio) ,x2,y2 (final)

Ejemplo: bar(10,320,100,400);

Código para trazar una barra 3D

bar3d(x1,y1, x2,y2, Profundidad <25%> (x2-x1)/4, Mostrar profundidad(s/n)<1,0>);

Ejemplo: bar3d(10,200,100,300,50,1);

Código para trazar un círculo

circle(cx,cy,radio); Dibuja un circulo con centro en cx yc y y radio.

Ejemplo: circle(200,200,100);

Código para trazar una barra 3D

rectangle(x1,y1,x2,y2); Dibuja un rectángulo en las coordenadas x1,y1 (inicio) ,x2,y2 (final).

Ejemplo: rectangle(10,200,100,300,50,1);

Funciones para cambiar colores

setcolor(c); Cambia el color (Primer Plano)

setbkcolor(c); Cambia el color de fondo

cleardevice(c); Limpia la pantalla

Page 63: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 63

Tabla de Colores

setcolor(): esta función cambia el color de la línea de dibujo (contorno). La tabla también muestra su disponibilidad para el primer y segundo plano.

Constante Valor Primer Plano Segundo Plano (fondo)

BLACK 0 SI SI

BLUE 1 SI SI

GREEN 2 SI SI

CYAN 3 SI SI

RED 4 SI SI

MAGENTA 5 SI SI

BROWN 6 SI SI

LIGHTGRAY 7 SI SI

DARKGRAY 8 NO SI

LIGHTBLUE 9 NO SI

LIGHTGREEN 10 NO SI

LIGHTCYAN 11 NO SI

LIGHTRED 12 NO SI

LIGHTMAGENTA 13 NO SI

YELLOW 14 NO SI

WHITE 15 NO SI

BLINK 128 NO Modo texto

Cambiar La Trama De Relleno De Figuras Sólidas

Para cambiar la trama de relleno usa la función setfillpattern(pattern, BLUE); la cual como se puede ver necesita definir un color de relleno. Si se desea tramas predefinidas se debe usar la constantes del cuadro inferior, y definir un estilo de llenado con setfillstyle(SOLID_FILL,COLOR); también se necesita un color para rellenar.

Constante Valor Llenar con...

EMPTY_FILL 0 Color de fondo

SOLID_FILL 1 Color (sólido)

LINE_FILL 2 ---

LTSLASH_FILL 3 ///

SLASH_FILL 4 ///

BKSLASH_FILL 5 \\\

LTBKSLASH_FILL 6 \\\

HATCH_FILL 7 Trama ligera

XHATCH_FILL 8 Trama cruzada

INTERLEAVE_FILL 9 Líneas entrelazadas

WIDE_DOT_FILL 10 Pts ampliamente espaciados

Page 64: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 64

CLOSE_DOT_FILL 11 Pts estrechamente espaciados

USER_FILL 12 Trama predefinida (usuario)

Descripción de elementos para la generación de elipses, sectores y arcos.

ellipse(x,y,0,360,radiox,radioy); Dibuja una Elipse (contorno) fillellipse(x,y,radiox,radioy);Dibuja una Elipse (llena sector(x,y,0,360,radiox,radioy);Dibuja un sector (lleno) (x,y) Centro de la elipse radiox Eje Horizontal radioy Eje Vertical AInicio Ángulo de inicio Afinal Ángulo de FINAL Los ángulos son grados: [0,360] arc(x,y,AInicio, AFinal,radio); Dibuja un arco

pieslice(x,y,AInicio, AFinal,radio); Dibuja un trozo de pie (arco relleno)

Page 65: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 65

Actividades

1. Realizar la grafica de las funciones seno y coseno en un solo plano

Para poder usar funciones

trigonométricas incluya la

librería <math.h>: los resultados

y los argumentos de las

funciones son considerados en

radianes.

2. Realiza la grafica de un círculo usando las funciones seno y coseno

3. Realizar la gráfica de una roseta usando las funciones seno y coseno.

Utilice ecuaciones paramétricas para trazar formas tan complejas como

esta:

Page 66: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 66

BIBLIOGRAFIA

1.- CAIRÓ Osvaldo, “METODOLOGÍA DE LA PROGRAMACIÓN ALGORITMOS, DIAGRAMAS DE

FLUJO Y PROGRAMAS”

ALFAOMEGA

MÉXICO, 1995

476 PAGINAS.

2.- SANTOS MANUEL, PATIÑO ISMAEL, CARRASCO RAUL, “FUNDAMENTOS DE

PROGRAMACIÓN”

ALFAOMEGA RA-MA

MÉXICO 2006

317 PAGINAS.

3.- JOYANES AGUILAR LUIS, “FUNDAMENTOS DE PROGRAMACION, ALGORITMOS,

ESTRUCTURAS DE DATOS Y OBJETOS”

MCGRAWHILL 3era EDICION.

ESPAÑA, 2003

1004 PAGINAS.

4.- KENDALL E. KENNETH AND JULIE, “ANALISIS Y DISEÑO DE SISTEMAS”

6ta EDICIÓN

PEARSON EDUCACIÓN

MÉXICO, 2005

726 PAGINAS.

Page 67: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 67

Bibliografía Javier Díaz

Lenguaje C Introducción a la programación

Al Kelley, Ira Pohl

Addison-Wesley Iberoamericana

SITESA, México. DF. 1987

Lecciones de Cálculo

Introducción a la derivada

Allan B. Cruse

Milliane Lehman

Fondo Educativo Interamericano

Cálculo con Geometría analítica

Denis G Zill

Grupo Editorial Iberoamerica

Software: Turbo C++ version 3.0

Borland International Inc. 1990, 1992 ©

Page 68: MANUAL DE PRÁCTICAS Y ANTOLOGÍA - INICIOdavidclases.weebly.com/uploads/1/4/7/0/14703736/material_didctico... · En esta unidad se ve le necesidad de realizar tareas repetitivas

PLAN 06 / NMS INFORMÁTICA III

Julio 2009 68