Está en la página 1de 52

Instituto Tecnológico de Atitalaquia

Materia: Programación Revisión:


Carrera:
Básica
Ingeniaría en Página 1 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

INSTITUTO TECNOLÓGICO DE ATITALAQUIA

MANUAL DE PRACTICAS DE PROGRAMACIÓN BÁSICA DE LA CARRERA DE


INGENIERÍA MECATRÓNICA

Nombre del Alumno: _________________________________________

Grado y Grupo: ______________________________________________

Catedrático titular: ___________________________________________

Periodo Escolar: ________________________


Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 2 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

ÍNDICE
PRESENTACIÓN ............................................................................................................ 3
INTRODUCCIÓN............................................................................................................. 4
Práctica 1. Edición y compilación de un programa y el uso de la función printf() y scanf()
........................................................................................................................................ 6
Práctica 2. Programas Secuenciales ............................................................................. 11
Práctica 3. Programas con Decisión Simple (if) ............................................................. 15
Práctica 4. Programas con Decisión Compuesta (if-else) ............................................. 17
Práctica 5. Programas Selectivos Múltiples (switch) ..................................................... 20
Práctica 6. Programas con el ciclo mientras (while- do while) ....................................... 23
Práctica 7. Programas con el ciclo desde (for) .............................................................. 26
Práctica 8. Programas con el uso de arreglos (arrays unidimensionales) ..................... 28
Práctica 9. Programas con el uso de matrices (arrays multidimensionales) .................. 31
Práctica 10. Programas con el uso de funciones de paso por valor .............................. 31
Práctica 11. Programas con el uso de funciones de paso por referencia ...................... 37
Práctica 12. Programas con el uso del modo gráfico .................................................... 40
Práctica 13. Manipulación del puerto paralelo ............................................................... 43
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 3 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

PRESENTACIÓN

La Academia de Mecatrónica establece la creación de manuales de prácticas de las


diversas asignaturas que contemplan horas practica dentro de los créditos asignados,
con lo cual se contribuye a fomentar lo siguiente:
1. Colaborar en la construcción del perfil profesional del estudiante de la carrera de
Ingeniería Mecatrónica.
2. Desarrollar en el alumno lógica de programación relevante en su carrera.
3. Que el alumno sea capaz de vincular la teoría de la asignatura con su práctica.
4. Colaborar con el desarrollo de su destreza para elaborar programas.
5. Sensibilizar su actuar cotidiano, para el trabajo en equipo.
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 4 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

INTRODUCCIÓN

El presente manual de prácticas de la asignatura de Programación Básica, es


desarrollado con base al nuevo modelo educativo de los Institutos Tecnológicos basado
en competencias específicas y genéricas, donde se pretende que el alumno de
Ingeniería Mecatrónica, desarrolle habilidades, actitudes, destrezas y valores
reforzando los principios teóricos utilizando la computadora como herramienta de
desarrollo de uno de los ejes de la carrera.
Entando en una sociedad demandante del uso de tecnología surge la carrera de
Ingeniería Mecatrónica con el afán de satisfacer las necesidades imperantes de la
sociedad.
Las competencias del SNEST a desarrollar en la realización de cada una de las
prácticas son las siguientes:

Competencias específicas:

Plantear metodológicamente la solución de problemas susceptibles de ser


computarizados a través del manejo de técnicas estructuradas de diseño y formulación
de algoritmos.

Competencias genéricas:

Competencias instrumentales
Capacidad de análisis y síntesis
Capacidad de organizar y planificar
 Conocimientos básicos de la carrera
 Comunicación oral y escrita en su propia lengua
 Habilidades básicas de manejo de la computadora
 Habilidades de gestión de información(habilidad para buscar y analizar
información proveniente de fuentes diversas
 Solución de problemas
 Toma de decisiones.

Competencias interpersonales
 Trabajo en equipo
 Capacidad de trabajar en equipo interdisciplinario
 Compromiso ético
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 5 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Competencias sistémicas
 Capacidad de aplicar los conocimientos en la práctica
 Habilidades de investigación
 Capacidad de aprender
 Capacidad de adaptarse a nuevas situaciones
 Habilidad para trabajar en forma autónoma
 Capacidad para diseñar y gestionar proyectos
 Preocupación por la calidad
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 6 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

FECHA: ____________________

Práctica 1. Edición y compilación de un programa y el uso de la función printf() y


scanf()

COMPETENCIA A DESARROLLAR
Diseñar e implementar programas básicos.

PROPÓSITO
Introducción a la edición básica de un programa, su compilación y su ejecución y .

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.
 Conocimiento de los conceptos de compilación.
 Conocimiento de tipos de variables.

MARCO TEÓRICO

Las fases de un programa se pueden resumir en:

1. Edición.- editar el código fuente del programa.


2. Compilación.- convertir el código fuente en código objeto
3. Enlazado.- enlazar el código objeto para obtener el código ejecutable
4. Ejecución.- ejecutar el programa
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 7 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Componentes de un programa en C

La estructura básica de un programa en C es la siguiente:

#include<stdlib.h> Archivos de cabecera


#include<stdio.h>

/* Inicia programa principal */ Comentario


s
main()
{
int a,b; Declaración de variables
printf(―Introduzca su nombre...‖);
printf(―\nTeclee un entero...‖);
scanf(―%d‖,&a); Cuerpo del programa
printf(―\nTeclee otro entero...‖);
scanf(―%d‖,&b);
printf(―El resultado es…%d‖,suma(a,b));
getch();
}

La directiva #include

Por medio de esta directiva se indica al compilador cuáles son los archivos de cabecera
que deberá incluir en la compilación del programa, con la finalidad de indicarle donde
están los prototipos e implementación de las funciones que se utilizarán en dicho
programa.

La función main()

La función main() en un programa en C significa el cuerpo del programa o el programa


principal, ya que es la primer función que el enlazador busca para ejecutar; si la función
main() no tiene parámetros, significa que solamente la utilizaremos para decirle al
programa cuándo y cómo debe hacer las cosas, pero, si tiene parámetros, es decir, si
desde la línea de comando se llama con valores de entrada, la cosa cambia, y nos
ocuparemos de la función main() con parámetros más adelante.

La función scanf
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 8 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

La función scanf captura cualquier tipo de dato introducido por el teclado, y para esto,
es necesario incluir en su llamada a función el formato o tipo de dato que se pretende
leer por teclado, ejemplo:

scanf(―%d‖,&x);

En este caso, se especifica una entrada de tipo decimal o entero (―%d‖), mientras que el
operador de indirección (&) indica que se debe guardar el valor en la localidad de
memoria x, en otras palabras, indica que se recibirá un valor entero y se debe
almacenar en la variable x. Ahora bien, los tipos de formato más usados para la
instrucción scanf son:

%d, %i Entero decimal con signo


%f Número real o flotante
%c Dato tipo caracter
%s Dato tipo cadena
%u Sin signo

La función printf

La función printf es la contraparte de la función scanf, ya que mientras scanf lee datos
desde el teclado, la función printf los escribe, es decir, provee la salida en pantalla, esta
función también utiliza los formatos de scanf, con la particularidad de que printf puede
modificar la salida de los datos, por ejemplo, si se declara una variable entera, y se le
asigna el valor 65, y al momento de imprimir el valor de la variable se especifica una
salida de tipo caracter, la salida será el caracter ―A‖ (el 65 equivale a la letra A en el
código ASCII).

scanf(―%d‖,&x); /* Se lee la variable como entera */

printf(―%c‖,x); /* Se escribe como caracter */


Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 9 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

La función getch()

Obtiene el siguiente caracter del flujo stdin (entrada estándar). Proporciona entrada de
caracteres sin almacenamiento temporal y sin réplica. El prototipo para getch () está en
el archivo de encabezado conio.h, de la manera siguiente:
getch ();

Comentarios /* */
La línea o línea que se ubican dentro de los comentarios no son tomadas en cuenta por
el compilador.

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
 Computadora Personal

PROCEDIMIENTO

1. Identifica los elementos de la pantalla del editor.

2. Accesa al editor e identifica los elementos que lo integran, la edición, la


compilación y la ejecución de un programa.

3. Personaliza el editor con las configuraciones correspondientes.

4. Programa que imprime mensajes y el valor de una variable:

a. Coloca las librerías correspondientes y declara la función main()


b. Coloca los corchetes de inicio y fin { }.
c. Dentro de los corchetes, escribe un título al programa con la función printf:

printf(―Mi primer programa en c‖);

d. Guarda el programa con el nombre de practica-1.


e. Compila el programa.
f. Ejecuta el programa.
g. Identifica el funcionamiento de las siguientes palabras reservadas dentro
de la función printf:

printf(―\n Mi primer programa en c \n\n‖);


printf(―\a‖);

printf(―Probando la función printf\r\r‖);


Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 10 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

\a Alerta
\b Espacio atrás
\f Salto de página
\n Salto de línea
\r Retorno de carro
\t Tabulador horizontal
\v Tabulador vertical

h. En cada prueba compila y ejecuta el programa.


i. Declara variables de diferentes tipos:
int a,b,suma;
float d;
char e;
double f;
j. Introduce el siguiente código el cual sumará 2 números:
printf (―Introduce el primer valor:‖);
scanf(―%d‖,&a);

printf (―Introduce el segundo valor:‖);


scanf(―%d‖,&b);
suma=a+b;
printf(―El resultado de la suma es:%d‖,suma);
getch( );

k. Prueba los diferentes tipos de datos.


%d El dato se convierte a entero decimal.
%O El dato entero se convierte a octal.
%X El dato entero se convierte a hexadecimal.
%U El dato entero se convierte a entero sin signo.
%C El dato se considera de tipo carácter.
%f El dato se considera de tipo float
%S El dato ha de ser una cadena de caracteres.
%If El dato se considera de tipo double.

l. Entrega el código fuente y el programa ejecutable a tu profesor.

CONCLUSIONES

BIBLIOGRAFÍA
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 11 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Práctica 2. Programas Secuenciales

COMPETENCIA A DESARROLLAR
Aplicar las estructuras de decisión y control en programas.

PROPÓSITO
Elaboración de programas secuenciales.

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.

MARCO TEÓRICO

Delimitación de bloques de código (uso correcto de las llaves)

En la programación estructurada, a menudo se tienen que delimitar bloques de código


para indicar al programa el conjunto de instrucciones que se deben ejecutar en
determinado momento, para esto, se utilizan las llaves, la manera correcta de usar las
llaves es la siguiente, si un bloque de código consiste en sólo una línea, las llaves no
son necesarias, pero si dicho bloque de código consta de más de una línea, el uso de
las llaves es imprescindible.

Declaraciones globales

Las declaraciones globales indican al compilador que las funciones definidas por el
usuario o variables así declaradas son comunes a todas las funciones de su programa.
Las declaraciones globales se sitúan antes de la función main ( ). Si se declara global
una variable Grado-clase del tipo int Grado-clase; cualquier función de su programa,
incluyendo main ( ), puede acceder a la variable Grado-clase. de declaraciones de
función. Las declaraciones de función se denominan prototipos

Tipos de datos en C

C no soporta un gran número de tipos de datos predefinidos, pero tiene la capacidad


para crear sus propios tipos de datos. Todos los tipos de datos simples o básicos de C
son, esencialmente, números.

Los tipos de datos fundamentales en C son:

 Enteros: (números completos y sus negativos), de tipo int.


Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 12 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

 Variantes de enteros: tipos short, long y unsigned.


 Reales: números decimales, tipos float, double o long double.
 Caracteres: letras, dígitos, símbolos y signos de puntuación, tipo char.

char, int , float y double son palabras reservadas, o más específicamente,


especificadores de tipos. Cada tipo de dato tiene su propia lista de atributos que definen
las características del tipo y pueden variar de una máquina a otra. Los tipos char, i nt y
doubl e tienen variaciones o modijcadores de tipos de datos, tales como short, long,
signed y unsigned, para permitir un uso más eficiente de los tipos de datos.

Entradas y salidas

Los programas interactúan con el exterior, a través de datos de entrada o datos de


salida. La biblioteca C proporciona facilidades para entrada y salida, para lo que todo
programa deberá tener el archivo de cabecera stdio . h . En C la entrada y salida se lee
y escribe de los dispositivos estándar de entrada y salida, se denominan s t d i n y
stdout respectivamente. La salida, normalmente, es a pantalla del ordenador, la entrada
se capta del teclado.

En el archivo stdio . h están definidas macros, constantes, variables y funciones que


permiten intercambiar datos con el exterior. A continuación se muestran las más
habituales y fáciles de utilizar.

Operadores y operandos

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

1. Operadores Aritméticos: Los operadores aritméticos permiten la realización de


operaciones matemáticas con los valores (variables y constantes). Los
operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales.
Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el
resultado es real.

Operadores Aritméticos
+ Suma
- Resta
* Multiplicación
/ División
Mod Modulo (residuo de la división entera)
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 13 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

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

1.- ^ Exponenciación
2.- *, /, mod Multiplicación, división, modulo.
3.- +, - Suma y resta.

2. Operadores Relaciónales:

 Se utilizan para establecer una relación entre dos valores.


 Compara estos valores entre si y esta comparación produce un resultado de
certeza o falsedad (verdadero o falso).
 Los operadores relaciónales comparan valores del mismo tipo (numéricos o
cadenas)
 Tienen el mismo nivel de prioridad en su evaluación.
 Los operadores relaciónales tiene menor prioridad que los aritméticos.

Operadores Relaciónales
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
<> Diferente
= Igual

3. Operadores Lógicos:

 Estos operadores se utilizan para establecer relaciones entre valores lógicos.


 Estos valores pueden ser resultado de una expresión relacional.

Operadores Lógicos
And Y
Or O
Not Negación

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
 Computadora Personal
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 14 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

PROCEDIMIENTO

Elabora los siguientes programas:

1. Diseñar un programa que calcule el área y el perímetro de un triángulo


rectángulo dada la base y la altura.

2. Una persona ha trabajado 38 horas en una semana y gana $48.00 la hora. La


tasa de impuestos es del 16% de su paga bruta. Se desea saber cuál es la paga
bruta, el descuento por impuesto y la paga neta del trabajador.

3. Dada una cantidad en pesos, obtener la equivalencia en dólares, asumiendo que


la unidad cambiaría es un dato desconocido que se debe solicitar.

4. Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente
desea saber cuánto deberá pagar finalmente por su compra, al introducir el
monto total.

5. Un alumno desea saber cuál será su calificación final en la materia de


Programación. Dicha calificación se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales, solicitar cada
calificación parcial.
30% de la calificación del examen final.
15% de la calificación de un trabajo final.

6. Realizar un programa que calcule la edad de una persona con base a la lectura
del año de nacimiento.

7. El dueño de una tienda compra un artículo a un precio determinado. Obtener el


precio en que lo debe vender para obtener una ganancia del 30%.

8. Escribir un programa que lea 4 datos en las variables x, y, z y w, calcule e


imprima su producto, suma y media aritmética.

CONCLUSIONES

BIBLIOGRAFÍA
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 15 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Práctica 3. Programas con Decisión Simple (if)

COMPETENCIA A DESARROLLAR
Aplicar las estructuras de decisión y control en programas.

PROPÓSITO
Elaboración de programas con decisión simple.

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.
 Manejo de programas secuenciales.

MARCO TEÓRICO

La sentencia if

La sentencia if es usada para evaluar una expresión lógica que puede tomar valores de
1 y 0, es decir, verdadero o falso, la sentencia if se conoce como estructura de
selección simple, ya que si se cumple la condición especificada entre los paréntesis, se
ejecuta un bloque de código, y si no se cumple, no se ejecuta nada, su sintaxis es la
siguiente:

if (condición)
{
Bloque de instrucciones
}

Ejemplo:

if (x==0)
{
printf(―El número es 0‖);
}

En este ejemplo, si la condición (x==0) se cumple, se imprime el mensaje ―El número es


0‖ y si no se cumple no pasa nada.

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 16 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

 Computadora Personal

PROCEDIMIENTO

Elabora los siguientes programas

1. En un almacén se hace un 20% de descuento a los clientes cuya compra supere


los $1000 ¿Cuál será la cantidad que pagara una persona por su compra?

2. Hacer un programa que calcule el total a pagar por la compra de camisas. Si se


compran tres camisas o mas se aplica un descuento del 20% sobre el total de la
compra.

3. Calcular el total que una persona debe pagar en una llantera, si el precio de cada
llanta es de $800 si se compran menos de 5 llantas y de $700 si se compran 5 o
más.

4. En un supermercado se hace una promoción, mediante la cual el cliente obtiene


un descuento dependiendo de un número que se escoge al azar. Si el numero
escogido es menor que 74 el descuento es del 15% sobre el total de la compra,
si es mayor o igual a 74 el descuento es del 20%. Obtener cuánto dinero se le
descuenta. Se solicita el número y el monto total de la compra.

5. En una escuela la colegiatura de los alumnos se determina según el número de


materias que cursan. El costo de todas las materias es el mismo. Se ha
establecido un programa para estimular a los alumnos, el cual consiste en lo
siguiente: si el promedio obtenido por un alumno en el último periodo es mayor o
igual que 9, se le hará un descuento del 30% sobre la colegiatura y no se le
cobrara IVA; si el promedio obtenido es menor que 9 deberá pagar la colegiatura
completa, la cual incluye el 10% de IVA Obtener cuanto debe pagar un alumno.

CONCLUSIONES

BIBLIOGRAFÍA
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 17 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Práctica 4. Programas con Decisión Compuesta (if-else)

COMPETENCIA A DESARROLLAR
Aplicar las estructuras de decisión y control en programas.

PROPÓSITO
Elaboración de programas con estructura de decisión múltiple.

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.
 Dominio en la elaboración de programas secuenciales.
 Dominio en la elaboración de programas con decisión simple.

MARCO TEÓRICO

Si la condición se evalúa como verdadera, se ejecuta una secuencia de instrucciones,


mientras que si la condición se evalúa como falsa se ejecuta otra secuencia de
instrucciones; su sintaxis es la siguiente:

if (condición)
{
Bloque de instrucciones 1
}
else
{
Bloque de instrucciones 2
}

Ejemplo:

if (x==0)
{
printf(―El número es 0‖);
printf(―\a‖);
}
else
printf(―Es un número diferente de 0‖);

Es posible anidar sentencias if para hacer una selección todavía más compleja, es
decir, dentro de un if puede ir otro, y dentro de éste, otro más, etc...
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 18 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Ejemplo:

if (x==0)
{
printf(―El número es 0‖);
printf(―\a‖);
}
else
if(x<0)
printf(―Es un número negativo‖);
else
printf(―Es un número positivo‖);

En este ejemplo, si el número es 0, se visualizará un mensaje indicándolo, pero si no es


cero, se establece una segunda condición para saber si se trata de un número negativo
o positivo.

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
 Computadora Personal

PROCEDIMIENTO

Elabora los siguientes programas:

1. Hacer un programa para deducir si un número es cero, positivo o negativo.

2. Hacer un programa que lea 4 números y a continuación de como salida el mayor


de ellos.

3. Determinar la cantidad de dinero que recibirá un trabajador por concepto de las


horas extras trabajadas en una empresa, sabiendo que cuando las horas de
trabajo exceden de 40, el resto se consideran horas extras y que estas se pagan
al doble de una hora normal cuando no exceden de 8; si las horas extras
exceden de 8 se pagan las primeras 8 al doble de lo que se pagan las horas
normales y el resto al triple. Se debe solicitar el costo por hora y el número de
horas trabajadas.

4. El IMSS requiere clasificar a las personas que se jubilaran en el año de 2012.


Existen tres tipos de jubilaciones: por edad, por antigüedad joven y por
antigüedad adulta. Las personas adscritas a la jubilación por edad deben tener
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 19 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

60 años o más y una antigüedad en su empleo de menos de 25 años. Las


personas adscritas a la jubilación por antigüedad joven deben tener menos de 60
años y una antigüedad en su empleo de 25 años o más. Las personas adscritas
a la jubilación por antigüedad adulta deben tener 60 años o más y una
antigüedad en su empleo de 25 años o más.
Determinar en qué tipo de jubilación, quedara adscrita una persona al introducir
su edad

5. En una fábrica de computadoras se planea ofrecer a los clientes un descuento


que dependerá del número de computadoras que compre. Si las computadoras
son menos de cinco se les dará un 10% de descuento sobre el total de la
compra; si el número de computadoras es mayor o igual a cinco pero menos de
diez se le otorga un 20% de descuento; y si son 10 o más se les da un 40% de
descuento. El precio de cada computadora es de $11,000.

6. En un juego de preguntas a las que se responde ―Si‖ o ―No‖ gana quien responda
correctamente las tres preguntas. Si se responde mal a cualquiera de ellas ya no
se pregunta la siguiente y termina el juego. Las preguntas son:
a) Colon descubrió América?
b) La independencia de México fue en el año 1810?
c) The Doors fue un grupo de rock Americano?

7. Elabora un programa que lea tres números diferentes y determine el numero


medio del conjunto de los tres números (el número medio es aquel numero que
no es ni mayor, ni menor).

8. Elabora un programa para resolver una ecuación de primer grado ax+b=0


a. a<> 0 x=-b/a
b. a=0, b=0, entonces solución indeterminada
c. a=0, b<>0, entonces solución imposible

CONCLUSIONES

BIBLIOGRAFÍA
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 20 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Práctica 5. Programas Selectivos Múltiples (switch)

COMPETENCIA A DESARROLLAR
Aplicar las estructuras de decisión y control en programas.

PROPÓSITO
Elaboración de programas selectivos múltiples.

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.
 Dominio en la elaboración de programas secuenciales.
 Dominio en la elaboración de programas con decisión simple.
 Dominio en la elaboración de programas con decisión compuesta.

MARCO TEÓRICO

La sentencia switch – case

Esta sentencia es la utilizada para evaluar las llamadas ―opciones de abanico‖, de


donde se saca una de varias opciones, es decir, switch permite múltiples ramificaciones
con una sola expresión a evaluar. Es más eficiente que utilizar muchos if anidados. Un
enunciado switch evalúa una expresión. Su sintaxis es la siguiente:

switch ( selector )
{
case valor posible 1: acciones 1;break; *
*
*
*
case valor posible n: acciones n; break;
default: /* Opcional */
acciones a realizar si ninguna opción es la correcta
}

La sentencia break provoca que el control del programa dentro del switch termine, es
decir, si se encuentra un valor para la expresión, se ejecutan las acciones
correspondientes, y si se encuentra un break, el bloque switch-case termina, y las
instrucciones para los otros valores correspondientes al selector se ignoran.
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 21 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
 Computadora Personal

PROCEDIMIENTO

Elabora los siguientes programas:

1. Calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si


este se le asigna como un porcentaje de su salario mensual que depende de su
antigüedad en la empresa de acuerdo con la sig. tabla:
Tiempo Utilidad
Menos de 1 año 5 % del salario
1 año o mas y menos de 2 años 7% del salario
2 años o mas y menos de 5 años 10% del salario
5 años o mas y menos de 10 años 15% del salario
10 años o mas 20% del salario

2. En una tienda de descuento se efectúa una promoción en la cual se hace un


descuento sobre el valor de la compra total según el color de la bolita que el
cliente saque al pagar en caja. Si la bolita es de color blanco no se le hará
descuento alguno, si es verde se le hará un 10% de descuento, si es amarilla un
25%, si es azul un 50% y si es roja un 100%. Determinar la cantidad final que el
cliente deberá pagar por su compra. se sabe que solo hay bolitas de los colores
mencionados.

3. Una frutería ofrece las manzanas con descuento según la siguiente tabla:
NUM. DE KILOS COMPRADOS % DESCUENTO
0 - 2 0%
2.01 - 5 10%
5.01 - 10 15%
10.01 en adelante 20%
Determinar cuánto pagara una persona que compre manzanas es esa frutería.

4. Tomando como base los resultados obtenidos en un laboratorio de análisis


clínicos, un medico determina si una persona tiene anemia o no, lo cual depende
de su nivel de hemoglobina en la sangre, de su edad y de su sexo. Si el nivel de
hemoglobina que tiene una persona es menor que el rango que le corresponde,
se determina su resultado como positivo y en caso contrario como negativo. La
tabla en la que el médico se basa para obtener el resultado es la siguiente:
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 22 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

EDAD NIVEL HEMOGLOBINA


0 - 1 mes 13 - 26 g%
> 1 y < = 6 meses 10 - 18 g%
> 6 y < = 12 meses 11 - 15 g%
> 1 y < = 5 años 11.5 - 15 g%
> 5 y < = 10 años 12.6 - 15.5 g%
> 10 y < = 15 años 13 - 15.5 g%
mujeres > 15 años 12 - 16 g%
hombres > 15 años 14 - 18 g%

5. Una institución educativa estableció un programa para estimular a los alumnos


con buen rendimiento académico y que consiste en lo siguiente:
a) Si el promedio es de 9.5 o más y el alumno es de preparatoria, entonces este
podrá cursar 55 unidades y se le hará un 25% de descuento.
b) Si el promedio es mayor o igual a 9 pero menor que 9.5 y el alumno es de
preparatoria, entonces este podrá cursar 50 unidades y se le hará un 10% de
descuento.
c) Si el promedio es mayor que 7 y menor que 9 y el alumno es de preparatoria,
este podrá cursar 50 unidades y no tendrá ningún descuento.
d) Si el promedio es de 7 o menor, el numero de materias reprobadas es de 0 a
3 y el alumno es de preparatoria, entonces podrá cursar 45 unidades y no
tendrá descuento.
e) Si el promedio es de 7 o menor, el numero de materias reprobadas es de 4 o
más y el alumno es de preparatoria, entonces podrá cursar 40 unidades y no
tendrá ningún descuento.
f) Si el promedio es mayor o igual a 9.5 y el alumno es de profesional, entonces
podrá cursar 55 unidades y se le hará un 20% de descuento.
g) Si el promedio es menor de 9.5 y el alumno es de profesional, entonces podrá
cursar 55 unidades y no tendrá descuento.

Obtener el total que tendrá que pagar un alumno si la colegiatura para alumnos
de profesional es de $300 por cada cinco unidades y para alumnos de
preparatoria es de $180 por cada cinco unidades.

CONCLUSIONES

BIBLIOGRAFÍA
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 23 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Práctica 6. Programas con el ciclo mientras (while- do while)

COMPETENCIA A DESARROLLAR
Aplicar las estructuras de decisión y control en programas.

PROPÓSITO
Elaboración de programas con el ciclo mientras (while)

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.
 Dominio en la elaboración de programas secuenciales.
 Dominio en la elaboración de programas con decisión simple.
 Dominio en la elaboración de programas con decisión compuesta.

MARCO TEÓRICO

El ciclo while

Este ciclo ejecuta un bloque de instrucciones mientras una condición determinada sea
correcta. Su sintaxis es la siguiente:

while(condición)
{
bloque de instrucciones
}

Cuando la ejecución de un programa llega al ciclo while, sucede lo siguiente:

a) Es evaluada la expresión de la condición.


b) Si la condición se evalúa como falsa (es decir, a cero), el ciclo while termina, y la
ejecución pasa al primer enunciado que se encuentre a continuación de los
enunciados del while.
c) Si la condición se evalúa como verdadera (esto es, 1), se ejecutan los
enunciados (bloque de instrucciones) del while.
d) La ejecución regresa al paso 1.

Es decir, se evalúa la expresión de la condición, y de resultar cierta, se ejecuta el


bloque de instrucciones del while, mientras que, si dicha condición se evalúa como
falsa, la ejecución del ciclo termina.
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 24 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

El ciclo do-while

El ciclo do-while es muy similar al while, es decir, también ejecuta un bloque de


instrucciones mientras una condición determinada sea verdadera, pero tiene una
diferencia principal con respecto al while: en el ciclo while la expresión se evalúa antes
de ejecutar el ciclo, mientras que en el do-while, primero se ejecuta el bloque de
instrucciones y luego se evalúa la condición. Su sintaxis es la siguiente:

do
{
bloque de instrucciones
}while(condición);

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
 Computadora Personal

PROCEDIMIENTO

Elabora los siguientes programas utilizando cualquiera de las dos estructuras:

1. Hacer un programa para determinar cuántos hombres y cuantas mujeres se


encuentran en un grupo de n personas, suponiendo que los datos son extraídos
alumno por alumno. Se debe introducir el número total de alumnos e ir
preguntado si es hombre o mujer.

2. Hacer un programa para calcular el promedio de edades de hombres, mujeres y


de todo un grupo de alumnos. Cada vez que se pregunte una edad consultar si
es el último alumno.

3. Hacer un programa para calcular el promedio de un alumno que tiene 5


calificaciones en la materia de programación.

4. Una compañía de seguros tiene contratados a n vendedores. Cada uno hace tres
ventas a la semana. Su política de pagos es que un vendedor recibe un sueldo
base, y un 10% extra por comisiones de sus ventas. El gerente de su compañía
desea saber cuánto dinero obtendrá en la semana cada vendedor por concepto
de comisiones por las tres ventas realizadas, y cuanto tomando en cuenta su
sueldo base y sus comisiones.
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 25 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

5. En una empresa se requiere calcular el salario semanal de cada uno de los n


obreros que laboran en ella. El salario se obtiene de la siguiente forma:
Si el obrero trabaja 40 horas o menos se le paga $20 por hora
Si trabaja más de 40 horas se le paga $20 por cada una de las primeras 40 horas
y $25 por cada hora extra.

6. Encontrar el menor valor de un conjunto de n números dados.

7. Encontrar el mayor valor de un conjunto de n números dados.

CONCLUSIONES

BIBLIOGRAFÍA
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 26 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Práctica 7. Programas con el ciclo desde (for)

COMPETENCIA A DESARROLLAR
Aplicar las estructuras de decisión y control en programas.

PROPÓSITO
Elaboración de programas con el ciclo for.

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.
 Dominio en la elaboración de programas secuenciales.
 Dominio en la elaboración de programas con decisión simple.
 Dominio en la elaboración de programas con decisión compuesta.

MARCO TEÓRICO

El ciclo for

El ciclo for ejecuta un bloque de instrucciones n veces, es recomendable la utilización


de este ciclo cuando se conoce el número de iteraciones o repeticiones de una tarea,
es decir, cuando se sabe el número de veces que se va a repetir algo. Su sintaxis es la
siguiente:

for(valor inicial; condición de paro; incremento o actualización)


{
bloque de instrucciones
}

Donde el valor inicial se asigna a una variable de tipo entero llamada ―variable
centinela‖, cuya función es la de contar y controlar el número de iteraciones del ciclo.

Ejemplo:

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


{
printf(―*‖);
}
Donde se establece como variable centinela la variable i y se inicializa con 0, la
condición de paro del ciclo es que i no sea menor que 10, y el incremento o
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 27 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

actualización de i es un incremento de 1 en 1, el ciclo for anterior se lee así: ―se inicia i


con 0, mientras que i sea menor que 10, i se incrementa en 1‖.

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
 Computadora Personal

PROCEDIMIENTO

Elabora las siguientes prácticas:

1. Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de


Programación.

2. Leer 10 números e imprimir cuantos son positivos, cuantos negativos y cuantos


neutros. Solicitar número por número.

3. Suponga que se tiene un conjunto de calificaciones de un grupo de 10 alumnos.


Realizar un programa para calcular la calificación media y la calificación mas
baja de todo el grupo.

4. Hacer un programa para calcular y dar como salida la tabla de multiplicar de un


número cualquiera. Se debe visualizar el multiplicando, el multiplicador y el
producto.

5. En un centro de verificación de automóviles se desea saber el promedio de


puntos contaminantes de los primeros 25 automóviles que lleguen. Asimismo se
desea saber los puntos contaminantes del carro que menos contamino y del que
más contamino.

6. En la Cámara de Diputados se levanta una encuesta con todos los integrantes


con el fin de determinar qué porcentaje de los n diputados está a favor del
Tratado de Libre Comercio, que porcentaje está en contra y que porcentaje se
abstiene de opinar.

7. El profesor de una materia desea conocer la cantidad de sus alumnos que no


tienen derecho al examen de nivelación. Diseñe un algoritmo que lea las
calificaciones obtenidas en las 5 unidades por cada uno de los 40 alumnos y
escriba la cantidad de ellos que no tienen derecho al examen de nivelación.

CONCLUSIONES
BIBLIOGRAFÍA
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 28 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Práctica 8. Programas con el uso de arreglos (arrays unidimensionales)

COMPETENCIA A DESARROLLAR
Aplicar arreglos y archivos en programas.

PROPÓSITO
Elaborar programas utilizando arreglos.

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.
 Dominio en la elaboración de programas secuenciales.
 Dominio en la elaboración de programas con decisión simple.
 Dominio en la elaboración de programas con decisión compuesta.
 Dominio en la elaboración programas con ciclos (for, while, do-while)

MARCO TEÓRICO

Un arreglo es una colección de posiciones de almacenamiento de datos, del mismo tipo


y con el mismo nombre, pero con una dirección única, o índice. Cada posición del
arreglo comúnmente es llamada elemento del arreglo. Los arreglos se clasifican en
unidimensionales y multidimensionales, aunque hablando de multidimensionales, se
usan casi exclusivamente los bidimensionales, ya que el uso de más índices o
dimensiones en un arreglo hacen su uso más complejo, de cualquier forma, aquí hay
una representación de los más comunes:

Los arreglos unidimensionales en C se declaran así:

[tipo] [nombre del arreglo] [[dimensión]];

Ejemplo:

int Arreglo[10];

En este ejemplo, se declara el arreglo Arreglo, de tipo entero, con 10 elementos, algo
muy importante que se debe recordar a la hora de trabajar con arreglos, es que sus
direcciones o posiciones de memoria comienzan en 0, es decir, si el arreglo tiene 10
elementos, sus direcciones serán 0,1,2...9. Ahora bien, si se desea hacer referencia a
algún elemento del arreglo, se especifica el nombre del arreglo y entre corchetes su
dirección, y como la dirección de los arreglos es un entero, también podemos poner
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 29 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

como índice una variable, lo cual es muy útil cuando se desea, por ejemplo, llenar el
arreglo con valores leídos por teclado.

Ejemplo:

#include <stdio.h>
#include <stdlib.h>
int i, A[100];
main()
{
printf(―Introduzca los valores para el arreglo...‖);
for (i=0; i<100; i++)
scanf(―%d‖, &A[I]);
printf(―\n Los valores introducidos son…‖);
for (i=0; i<100; i++)
printf(―\n %d‖, A[I]);
getch();
}

Y su salida sería más o menos así:

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
 Computadora Personal
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 30 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

PROCEDIMIENTO

Elabora los siguientes programas:

1. Calcular el promedio de 10 valores almacenados en un vector. Determinar


además cuantos son mayores que el promedio, imprimir el promedio, el número
de datos mayores que el promedio y una lista de valores mayores que el
promedio.

2. Llenar dos vectores A y B de 8 elementos cada uno, sumar el elemento uno del
vector A con el elemento uno del vector B y así sucesivamente hasta 8
almacenar el resultado en un vector C, e imprimir el vector resultante.

3. Llenar un vector de 10 elementos, imprimir la posición y el valor del elemento


mayor almacenado en el vector. Suponga que todos los elementos del vector son
diferentes.

4. Almacenar 10 números en un vector, imprimir cuantos son ceros, cuántos son


negativos, cuantos positivos. Imprimir además la suma de los negativos y la
suma de los positivos.

5. Almacenar 10 números en un vector, almacenarlos en otro vector en orden


inverso al vector original e imprimir el vector resultante.

6. Se tienen almacenados en la memoria dos vectores M y N de 5 elementos cada


uno. Hacer un programa que escriba la palabra ―Iguales‖ si ambos vectores son
iguales y ―Diferentes‖ si no lo son. Serán iguales cuando en la misma posición de
ambos vectores se tenga el mismo valor para todos los elementos.

7. Se tiene el vector A con 5 elementos almacenados. Diseñe un programa que


escriba ―SI‖ si el vector esta ordenado ascendentemente o ―NO‖ si el vector no
está ordenado

8. Diseñe un programa que lea dos vectores A y B de 8 elementos cada uno y


multiplique el primer elemento de A con el último elemento de B y luego el
segundo elemento de A por él séptimo elemento de B y así sucesivamente. El
resultado de la multiplicación almacenarlo en un vector C.

CONCLUSIONES

BIBLIOGRAFÍA
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 31 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Práctica 9. Programas con el uso de matrices (arrays multidimensionales)

COMPETENCIA A DESARROLLAR
Aplicar arreglos y archivos en programas.

PROPÓSITO
Elaborar programas utilizando matrices.

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.
 Dominio en la elaboración de programas secuenciales.
 Dominio en la elaboración de programas con decisión simple.
 Dominio en la elaboración de programas con decisión compuesta.
 Dominio en la elaboración programas con ciclos (for, while, do-while)
 Dominio en la elaboración de programas con vectores.

MARCO TEÓRICO

Las matrices son arreglos bidimensionales, y generalmente se conoce a estos índices


como filas y columnas, o utilizando los índices más comunes para matrices en las
matemáticas, i,j.

Los índices i,j representan el número de fila y columna, respectivamente, ahora,


veamos un ejemplo:

#include <stdio.h>
#include <stdlib.h>
int i,j, M[3][3];
main()
{
printf("Introduzca los valores para la matriz...\n");
/* Se abren dos ciclos, uno para las filas y uno para las columnas */
for (i=0; i<3; i++)
for (j=0; j<3; j++)
scanf("%d", &M[i][j]);
printf("\nLos valores introducidos son...\n");
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
printf("%d", M[i][j]);
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 32 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

printf("\n");
}
getch();
}

En este caso, se declara una matriz de 3 * 3, es decir, una matriz de 3 filas y 3


columnas, para este ejemplo, la matriz se ha llenado usando el método llamado
―llenado por fila mayor‖, que consiste en llenar la matriz empezando por llenar filas,
mientras que el método ―llenado por columna mayor‖ consiste en llenar la matriz
empezando por las columnas.

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
 Computadora Personal

PROCEDIMIENTO
Elabora los siguientes programas:

1. Hacer un programa que almacene números en una matriz de 3 * 3, e imprimir la


suma de los números almacenados en la matriz.

2. 2Hacer un programa que llene una matriz de 5 * 5 y determine la posición


(renglón, columna) del número mayor almacenado en la matriz. Los números
almacenados deben ser diferentes.

3. Hacer un programa que llene una matriz de 3 * 3. Calcular la suma de cada


renglón y almacenarla en un vector, la suma de cada columna y almacenarla en
otro vector.

4. Hacer un programa que llene una matriz de 4 * 4. Sumar las columnas e imprimir
que columna tuvo la máxima suma e imprimir los resultados.

5. Hacer un programa que llene una matriz de 4 * 4 y que almacene la diagonal


principal en un vector y que imprima el vector resultante.

6. Hacer un programa que llene una matriz de 5 * 5 y que imprima cuantos de los
números almacenados son ceros, cuántos son positivos y cuántos son negativos.

7. Dadas dos matrices de 4*4 , calcular: A + B; A - B; A x B.

CONCLUSIONES
BIBLIOGRAFÍA
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 33 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Práctica 10. Programas con el uso de funciones de paso por valor

COMPETENCIA A DESARROLLAR
Aplicar funciones y procedimientos en programas.

PROPÓSITO
Elaborar programas con funciones y procedimientos logrando optimizar el código.

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.
 Dominio en la elaboración de programas secuenciales.
 Dominio en la elaboración de programas con decisión simple.
 Dominio en la elaboración de programas con decisión compuesta.
 Dominio en la elaboración programas con ciclos (for, while, do-while)
 Dominio en la elaboración de programas con vectores.
 Dominio en la elaboración de programas con matrices.

MARCO TEÓRICO

Funciones y Procedimientos

Esta es la parte de la programación estructurada que le da el nombre de ―estructurada‖,


ya que es la programación que permite dividir el problema en módulos, para resolver
problemas, a dichos módulos se les conoce como funciones y procedimientos.

Funciones tipo void o procedimientos

Las funciones tipo void o procedimientos las podemos entender como subprogramas o
subrutinas que realizan una tarea específica, pero que no devuelven ningún valor. Su
sintaxis es así:

void nombre_del_procedimiento(parámetros)
{
bloque de instrucciones
}

En este caso, los parámetros son opcionales, de no haber parámetros, se recomienda


poner la palabra void entre los paréntesis.
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 34 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Es necesario que elaboremos nuestras propias funciones, a medida que lo vamos


necesitando, la utilización de funciones reduce considerablemente la cantidad de código
que se escribe en un programa. Hablando de funciones, podemos distinguir dos tipos
principales: las funciones simples y las funciones con parámetros.

Funciones simples

Las funciones simples son aquellas que no reciben parámetros pero que pueden
devolver un valor, para declarar una función simple se debe especificar el tipo de dato
que va a devolver (cualquier tipo de dato en C). Ejemplo:

#include <stdio.h>
#include <stdlib.h>
int suma(); /*Prototipo de función */
int n,m;
main()
{
printf("La suma es...%d",suma());
getch();
}
int suma()
{
printf("Introduzca un entero...");
scanf("%d",&n);
printf("Introduzca otro entero...");
scanf("%d",&m);
return (m+n);
}

En este ejemplo, la función suma() que es de tipo entero, devuelve la suma de dos
números capturados en esa misma función, el valor de la suma se devuelve al main(),
ya que fue la función que la llamó.

Funciones con parámetros

La utilización de funciones con parámetros es tal vez la forma más lógica de utilizar las
funciones, no son otra cosa que funciones que reciben valores o datos para poder
calcular el valor que devolverán. Ejemplo:

#include <stdio.h>
#include <stdlib.h>
int suma(int a, int b);
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 35 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

int n,m;
main()
{
printf("Introduzca un entero...");
scanf("%d",&n);
printf("Introduzca otro entero...");
scanf("%d",&m);
printf("La suma es...%d",suma(n,m));
getch();
}
int suma(int a, int b)
{
return (a+b);
}

En este ejemplo, los valores para las variables n y m se leen desde el main(), y se
pasan a la función suma() como parámetros. Observemos que los nombres para los
parámetros que recibe suma() son a y b, esto se llama paso de parámetros por valor...

Paso de parámetros por valor

En el ejemplo anterior, las variables que se leen en el main() se llaman n y m, mientras


que los valores que recibe la función suma() se llaman a y b, esto es una paso de
parámetros por valor, o paso de parámetros por copia, ya que la función suma() copia
los valores de n y m en a y b, respectivamente.

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
 Computadora Personal

PROCEDIMIENTO

Elabora los siguientes programas

1. Realizar un programa con una función llamada par, que toma un número entero
como parámetro, y devuelve un 1 si es par, dentro del programa principal este
uno se debe convertir en un mensaje de par. En caso de ser impar devuelve un 0
y en el programa principal se debe convertir en el mensaje de impar. NOTA: Para
saber si un número entero es par, al dividirlo entre 2 su resto debe ser 0. Para
saber el residuo se utiliza la operación %.

2. Realizar un programa con el siguiente menú:


Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 36 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

(1) Ceros
(2) Consecutivos
(3) Salir
3. Cada opción debe llamar a una función diferente, una función llamada ceros, que
debe colocar ceros a una matriz de 3 x 4. Y una función llamada consecutivos,
que asigna valores consecutivos a la matriz y debe mostrar el contenido de las
celdas de la matriz en pantalla.

4. Realizar un programa que llame a la función tabla reciba el valor introducido por
el usuario y regrese la tabla de multiplicar deseada.

5. Hacer un programa con la función ordena que me ordene los valores


introducidos de un vector de 5 números enteros.

6. Realiza un programa que obtenga la serie de Fibonacci mediante una función, el


programa principal debe pedir la cantidad de números que se desean visualizar.

1,1,2,3.5.8.13

CONCLUSIONES

BIBLIOGRAFÍA
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 37 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Práctica 11. Programas con el uso de funciones de paso por referencia

COMPETENCIA A DESARROLLAR
Aplicar funciones y procedimientos en programas.

PROPÓSITO
Elaborar programas con funciones y procedimientos logrando optimizar el código.

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.
 Dominio en la elaboración de programas secuenciales.
 Dominio en la elaboración de programas con decisión simple.
 Dominio en la elaboración de programas con decisión compuesta.
 Dominio en la elaboración programas con ciclos (for, while, do-while)
 Dominio en la elaboración de programas con vectores.
 Dominio en la elaboración de programas con matrices.
 Dominio en la elaboración de programas con funciones con paso por valor

MARCO TEÓRICO

En el paso de parámetros por valor, la función que recibe los parámetros copia el valor
de esos parámetros en variables propias de la función, mientras que en el paso de
parámetros por referencia, la función que recibe dichos parámetros, no recibe valores,
sino direcciones, ¿confuso?, un poco. Veamos un ejemplo:

#include <stdio.h>
#include <stdlib.h>
int suma(int *a, int *b);
main()
{
int n,m;
printf("Introduzca un valor para n...");
scanf("%d",&n);
printf("Introduzca un valor para m...");
scanf("%d",&m);
printf("\nLa suma es...%d",suma(&n,&m));
printf("\nLos valores de n y m después de la función son...%d y %d",n,m);
getch();
}
int suma(int *a, int *b)
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 38 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

{
int total; /*Variable local*/
total=*a+*b;
*a=0;
*b=0;
return total;
}

Y su salida es:

En este ejemplo, la función suma() recibe dos direcciones como parámetros, y utiliza los
valores almacenados en esas direcciones para hacer sus cálculos, una vez realizado el
cálculo, la función suma() asigna 0 a las variables n y m, pero ¿cómo es posible, si n y
m son variables locales del main()?, esto es posible porque los cambios que se le
hagan a las variables que se reciben como parámetros en las funciones con paso de
parámetros por referencia, se hacen en ésa variable, sin importar si son variables
locales o globales. Por lo que podemos concluir que la ventaja de pasar parámetros por
referencia es que podemos afectar el valor de las variables que se pasan como
parámetros, y esto, en el paso de parámetros por valor no es posible.

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
 Computadora Personal

PROCEDIMIENTO

Elabora los siguientes programas:


Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 39 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

1. Hacer un programa que maneje paso de parámetros por referencia y en cada


opción debe llamar a una función, las operaciones se hacen con 2 números, el
menú se debe ciclar hasta que le des en la opción de salir.
MENU
1 --> Sumar
2--> Restar
3 --> Multiplicar
4 --> Dividir
5--> Factorial
6 --> Salir

2. Realizar un programa que lea tres valores enteros por teclado y calcule el valor
máximo. Utilizar funciones.

3. Realizar un programa que solicite un número entero por teclado y a continuación


visualice por pantalla todos los números primos entre 1 y el número introducido.
Utilizar funciones.

4. Crear el programa en el que se introduce un número entero y se crea una


pirámide de asteriscos. Por ejemplo si se introduce el 6, el resultado sería:
*
***
*****
*******
*********
***********
5. Hacer un programa que pasar tres argumentos reales a una función que
devolverá el menor de ellos.

6. Hacer un programa que contenga una función reciba como argumento el importe
de una compra y devuelva la cantidad final a pagar, teniendo en cuenta que los
descuentos son del 5% cuando se compra más de $300.00, del 10% cuando se
compra más de $500.00 y del 12% para cantidades mayores de $500.00, escribe
un programa que pregunte al usuario la cantidad comprada y le indique el
importe a pagar.

CONCLUSIONES

BIBLIOGRAFÍA
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 40 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Práctica 12. Programas con el uso del modo gráfico

COMPETENCIA A DESARROLLAR
Utilizar herramientas básicas de graficación.

PROPÓSITO
Entender y practicar la elaboración de programas en modo gráfico.

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.
 Dominio en la elaboración de programas secuenciales.
 Dominio en la elaboración de programas con decisión simple.
 Dominio en la elaboración de programas con decisión compuesta.
 Dominio en la elaboración programas con ciclos (for, while, do-while)
 Dominio en la elaboración de programas con vectores.
 Dominio en la elaboración de programas con matrices.
 Dominio en la elaboración de programas con funciones con paso por valor
 Dominio en la elaboración de programas con funciones con paso por referencia.

MARCO TEÓRICO

El modo gráfico consiste en poder hacer figuras y tener la posibilidad de manejar


colores.
En Dev C++ se requiere la librería que tiene como objetivo emular la librería graphics.h
de Borland C++ y facilitar algunas funciones del Mouse.

Pasos a seguir
1. Instalar la aplicación en donde se incluyen las librerías.
2. Da click en archivo---nuevo proyecto
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 41 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

3. Selecciona la opción Console Graphics Aplication

Y al momento de crear el proyecto podrás agregar un Archivo fuente.


Notas: En la codificación es importante cerrar el modo grafico.

Ejemplo de programa que dibuja una línea:

#include <winbgim.h>
int main()
{
initwindow(400,300);// Abre una ventana gráfica de 400x300 pixeles
moveto(0,0); // Pone el cursor en 0,0
lineto(400,400); // Dibuja una línea desde 0,0 hasta 50,50
while(!kbhit()); // Espera a que el usuario presione una tecla
closegraph(); // Cierra la ventana gráfica
return 0;
}

Ejemplo de programa que dibuja figuras:

#include<winbgim.h>
main()
{
initwindow(640,480);
circle(100,100,30);
moveto(50,50);
lineto(100,50);
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 42 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

lineto(100,100);
lineto(50,100);
lineto(50,50);
rectangle(100,100,200,200);
while(!kbhit());
closegraph();
}

Ejemplo de programa que escribe un mensaje

#include <winbgim.h>
int main()
{
initwindow(400,300);
settextstyle(0,0,2);
setcolor(RED);
outtextxy(20,100,"Bienvenido al modo grafico");
setcolor(GREEN);
while(!kbhit());
closegraph();
return 0;
}

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
 Computadora Personal
 Librerías para modo gráfico.

PROCEDIMIENTO

1. Activa el modo gráfico.


2. Elabora un programa con figuras con movimiento en donde utilices el modo
gráfico.
3. Elabora un programa que permita graficar funciones.

CONCLUSIONES

BIBLIOGRAFÍA
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 43 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Práctica 13. Manipulación del puerto paralelo

COMPETENCIA A DESARROLLAR
Diseñar e implementar programas con manejo de puertos.

PROPÓSITO
Elaborar programas que sean útiles para manipular el puerto paralelo.

CONOCIMIENTOS PREVIOS
 Estructura general de un programa en lenguaje estructurado.
 Conocimiento de palabras reservadas del lenguaje.
 Dominio en la elaboración de programas secuenciales.
 Dominio en la elaboración de programas con decisión simple.
 Dominio en la elaboración de programas con decisión compuesta.
 Dominio en la elaboración programas con ciclos (for, while, do-while)
 Dominio en la elaboración de programas con vectores.
 Dominio en la elaboración de programas con matrices.
 Dominio en la elaboración de programas con funciones con paso por valor
 Dominio en la elaboración de programas con funciones con paso por referencia.
 Dominio en la elaboración de programas en modo grafico.

MARCO TEÓRICO

Puerto paralelo

El puerto paralelo de la computadora, conocido como LPT, nos permitía (antes de la


aparición de las impresoras USB) conectar las impresoras.
Con la aparición del USB, este puerto ha caído en desuso, pero por suerte, las
computadoras todavía lo traen.

El puerto paralelo consta de un conector DB-25 hembra, también conocido como


Centronics, nombre de la empresa que lo desarrolló.
Está formado por 25 contactos, dispuestos en 2 filas.

Ya que no lo utilizamos para la impresora, podemos aprovecharlo para controlar


dispositivos de una forma muy sencilla, más sencilla que por el puerto serie.
El puerto paralelo posee 8 líneas de datos, líneas de masa y varias auxiliares para
permitir el control de dispositivos externos.
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 44 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Los pines desde el 2 hasta el 9, corresponden a las líneas de datos, los cuales forman
un valor en binario. Utilizaremos el terminal 18 como masa de datos.
El estado High de cada pin, o sea, la presencia de una tensión del orden de los 5V,
corresponde a los siguientes valores decimales:

2=1, 3=2, 4=4, 5=8, 6=16, 7=32, 8=64, 9=128

Las comunicaciones en paralelo se realizan mediante la transferencia simultánea de


todos los bits que constituyen el dato (byte o palabra). Presentan la ventaja de que la
transmisión puede ser más rápida. Sin embargo, las comunicaciones en paralelo no
pueden ser implementadas para grandes distancias debido a que no es viable la
conexión física de todas las líneas necesarias.

Su esquema es el siguiente:

Trabajando con c

El lenguaje C permite tanto la lectura como la escritura de los puertos paralelo. Para
leer el puerto existen las instrucciones inport e inportb, mientras que para escribir están
las instrucciones outport y outportb.
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 45 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

La sintaxis de estas instrucciones es la siguiente:


unsigned inport (unsigned portid);
unsigned char inportb (unsigned portid);
void outport (unsigned portid, unsigned value);
void outportb (unsigned portid, unsigned char value);

Ejemplo:

Palabra = inport(puerto);
outport (puerto,Palabra);
Byte = inportb (puerto);
outportb (puerto,Byte);

Las instrucciones que terminan en b ese refieren a la lectura o escritura de un byte,


mientras que las que no terminan en esta letra se refieren a una palabra (dos byte). La
variable puerto debe contener la dirección de memoria del puerto paralelo, este valor
puede ser 378h, 3BCh ó 278h. Por último no hay que olvidar colocar la siguiente
directiva del preprocesador que le indica al C que se usarán las funciones inport,
outport, inportb u outportb, declaradas en el archivo dos.h.

#include <dos.h>

Lectura del puerto

Para recoger información procedente de un puerto hardware (lectura del puerto), C


proporciona las funciones inport e inportb. Son muy similares; la única diferencia radica
en que inportb lee un byte cada vez mientras que inport lee una palabra (2 bytes).
Estas funciones se declaran de la siguiente manera:
int inport(int puerto_dir);

unsigned char inportb(int puerto_dir);

donde:
puerto_dir es la dirección del puerto hardware de la cual se quiere leer.
y devuelven un dato de tipo int (2 bytes) o de tipo unsigned char (1 byte),
respectivamente..

En el siguiente ejemplo vamos a obtener un byte del puerto paralelo (bidireccional)


instalado en el PC (en la dirección de E/S 378h):
#include <stdio.h>
#include <dos.h>
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 46 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

main()
{
unsigned char valor;
int puerto = 0x378; /* dirección del puerto paralelo */

valor = inportb(puerto);
printf("Byte leído del puerto %d = 0x%X\n", puerto, valor);
}

Escritura en el puerto
Para enviar información a un puerto hardware (escritura en el puerto), TurboC
proporciona las funciones outport e outportb. Son muy similares; la única diferencia
radica en que outportb envía un byte cada vez mientras que outport envía una palabra
(2 bytes).
Estas funciones se declaran de la siguiente manera:
void outport(int puerto_dir, int valor);

void outportb(int puerto_dir, unsigned char valor);

donde:
• puerto_dir es la dirección del puerto hardware en la cual se quiere escribir;
• valor es el byte o la palabra que se envía al puerto.

y no retornan ningún valor.

En el siguiente ejemplo vamos a enviar la letra C al primer puerto paralelo bidireccional


instalado en el PC (en la dirección de E/S 378h):
#include <stdio.h>
#include <dos.h>

main()
{
unsigned char valor = 'C' ;
int puerto = 0x378; /* dirección del puerto paralelo */

outportb(puerto, valor);
printf("Valor %c enviado al puerto %d\n", valor, puerto);
}
Esquema de conexión
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 47 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

Activación de puertos en xp

USERPORT. Driver para acceder al puerto paralelo en Windows NT/2000/XP. Windows


NT, 2000 y XP no permiten acceder al hardware de forma tan sencilla como lo hacen
las versiones 95, 98 y ME. La ejecución, en Winlogo y MSWLogo, de primitivas tan
básicas como Escribepuerto y Leepuerto, no funcionan en estos sistemas operativos.

Para poder leer y escribir en el puerto paralelo es necesario un driver (archivo *.sys)
que comunique el software con dispositivo hardware.

Aquí se muestra el proceso a seguir para instalar el driver que permita acceder al
Winlogo y MSWLogo con el puerto paralelo.

1. Descargar la utilidad denominada USERPORT.:


2. Descomprimir el archivo en una carpeta del disco duro. No importa el
nombre
3. Copiar el archivo "userport.sys" en la carpeta de sistema
C:\WINDOWS\SYSTEM32\DRIVERS
4. Ejecuta el archivo UserPort.exe
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 48 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

5. Para iniciar el driver, acciona el botón START


6. Si se desea detener la ejecución, se puede desactivar el driver con el
botón STOP.

El direccionamiento de los puertos, está indicado en el cuadro de diálogo


del USERPORT. En él hace referencia a los rangos habituales que se
asigna a los puertos en un PC. Si el direccionamiento del puerto no
coincide con los que allí aparecen, se puede añadir un nuevo rango de
direcciones escribiéndolas en notación hexadecimal.

7. Ahora ya solo queda arrancar Winlogo o MSWLogo (o cualquier otro


lenguaje de programación que acceda a los puertos) y utilizar de forma
transparente las primitivas Escribepuerto y Leepuerto.

Creando programas

Para crear el programa en C, en el header deben incluir la librería <conio.h>.


La función para enviar un dato al puerto es:

Outport(puerto,valor);

Donde puerto es su dirección en hexadecimal y valor es un número entre 0 y 255.


En Windows XP es necesario generar esta función dos veces, para que el valor llegue a
la salida.
Un ejemplo, enviando un 1 al puerto:
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 49 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

#include<conio.h>
void main()
{
int puerto=0x378;
outport(puerto,1);
}
Arrancando un motor

#include<stdio.h>
#include<conio.h>
#include<dos.h>

main()
{
Int x,y;
outport(0x378,0x00); //———STOP MOTOR
for (int x=0; x<=10000; x++) // este for hace la función de un delay o sleep los cuales
{ //se detenienen un lapso de tiempo
for (int y=0; y<=10000; y++)
{
}
}
outport(0x378,0x01);//———MOVE MOTOR(CCW)
for (int x=0; x<=10000; x++) // este for hace la función de un delay o sleep los cuales
{ //se detenienen un lapso de tiempo
for (int y=0; y<=10000; y++)
{
}
}
outport(0x378,0x02);//———MOVE MOTOR(CW)
for (int x=0; x<=10000; x++) // este for hace la función de un delay o sleep los cuales
{ //se detenienen un lapso de tiempo
for (int y=0; y<=10000; y++)
{
}
}
outport(0x378,0x03);//———MOVE MOTOR(Break!)
for (int x=0; x<=10000; x++) // este for hace la función de un delay o sleep los cuales
{ //se detenienen un lapso de tiempo
for (int y=0; y<=10000; y++)
{
}
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 50 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

}
return 0;
}

Haciendo un corrimiento con for

#include<stdio.h>
#include<conio.h>
#include <dos.h>
main()
{
int d,x,y;
clrscr();
for (d=0; d<256;d++)
{
outport(0x378,d);
printf("%d",d);
for (int x=0; x<=10000; x++) // este for hace la función de un delay o sleep los
cuales
{ //se detiene en un lapso de tiempo
for (int y=0; y<=10000; y++)
{
}
}
}
}

MATERIAL
 Programa de edición y compilación de un leguaje estructurado
 Computadora Personal con puerto paralelo (o se puede usar un adaptador)
 Programa userport
 Protoboard
 Soldadura
 8 leds
 8 resistencias 220 ohms.
 Cautín
 1 mtr. de cable telefónico de al menos 10 hilos.
 Conector db25 macho.
 Pinzas para pelar cable.
Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 51 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

PROCEDIMIENTO

1. Soldar cada pin del conector con el cable únicamente los pines que trasmiten
datos y la tierra, sigue el siguiente esquema:

2. Ensambla la protoboard con los leds y las resistencias siguiendo el siguiente


esquema:

3. Conecta el cable al puerto paralelo.


Instituto Tecnológico de Atitalaquia
Materia: Programación Revisión:
Carrera:
Básica
Ingeniaría en Página 52 de 52
Clave de la Mecatrónica.
asignatura: MTD-1024

4. Ejecuta el userport para desproteger al puerto

5. Puedes utilizar el mismo editor de c

6. Elabora los siguientes programas:

a) Parpadeo de todos los led’s de forma simultánea durante 10 veces.

b) Encendido secuencial ascendente – descendente durante 6 veces.

c) Realiza un programa que al momento de presionar 0 te de cómo salida el 0


binario, el 1 el uno binario y si sucesivamente hasta el 32.

d) Realiza un programa que al presionar una tecla vaya prendiendo cada uno de
los led’s.

CONCLUSIONES

BIBLIOGRAFÍA