Beruflich Dokumente
Kultur Dokumente
Í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
INTRODUCCIÓN
Competencias específicas:
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: ____________________
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
Componentes de un programa en C
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 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:
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).
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
\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
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
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
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
Entradas y salidas
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.
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
1.- ^ Exponenciación
2.- *, /, mod Multiplicación, división, modulo.
3.- +, - Suma y resta.
2. Operadores Relaciónales:
Operadores Relaciónales
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
<> Diferente
= Igual
3. Operadores Lógicos:
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
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.
6. Realizar un programa que calcule la edad de una persona con base a la lectura
del año de nacimiento.
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
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‖);
}
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
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.
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
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
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‖);
MATERIAL
Programa de edición y compilación de un leguaje estructurado
Computadora Personal
PROCEDIMIENTO
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?
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
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
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
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.
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
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
}
El ciclo do-while
do
{
bloque de instrucciones
}while(condición);
MATERIAL
Programa de edición y compilación de un leguaje estructurado
Computadora Personal
PROCEDIMIENTO
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
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
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
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:
MATERIAL
Programa de edición y compilación de un leguaje estructurado
Computadora Personal
PROCEDIMIENTO
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
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
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();
}
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
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.
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
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
#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();
}
MATERIAL
Programa de edición y compilación de un leguaje estructurado
Computadora Personal
PROCEDIMIENTO
Elabora los siguientes programas:
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.
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.
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
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
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
}
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ó.
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...
MATERIAL
Programa de edición y compilación de un leguaje estructurado
Computadora Personal
PROCEDIMIENTO
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 %.
(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.
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
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
2. Realizar un programa que lea tres valores enteros por teclado y calcule el valor
máximo. Utilizar funciones.
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
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
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
#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;
}
#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();
}
#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
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
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
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:
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
Ejemplo:
Palabra = inport(puerto);
outport (puerto,Palabra);
Byte = inportb (puerto);
outportb (puerto,Byte);
#include <dos.h>
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..
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);
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.
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
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.
Creando programas
Outport(puerto,valor);
#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;
}
#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:
d) Realiza un programa que al presionar una tecla vaya prendiendo cada uno de
los led’s.
CONCLUSIONES
BIBLIOGRAFÍA