Sei sulla pagina 1di 70

Manual de prácticas

Manual de Prácticas
Principios de
Programación

Programa Educativo de:


Mantenimiento Industrial

Elaboró:
Erick D. Flores Ojeda
Luis Rolando Guarneros Nolasco
Aprobó:
Gonzalo Malagón González
Fecha de Aprobación:
Septiembre del 2012
Manual de prácticas

Contenido

Contenido ....................................................................................................................................... 2
UNIDAD 1 – Lógica de Programación ............................................................................................ 3
“Algoritmos” ........................................................................................................................... 3
“Diagramas de flujo” ............................................................................................................... 8
Unidad 2 – Fundamentos de Programación ................................................................................... 17
“Tipos de datos” ........................................................................................................................ 17
Enteros .................................................................................................................................. 18
Flotantes................................................................................................................................ 18
Caracteres ............................................................................................................................. 19
“Operadores y expresiones” ...................................................................................................... 25
“Decisión y repetición” ............................................................................................................. 41
“Funciones” .............................................................................................................................. 49
Unidad 3 - Tópicos específicos...................................................................................................... 58
“Arreglos” ................................................................................................................................. 58
Práctica Proyecto Final “Control de puerto paralelo haciendo uso del lenguaje de programación
C” ............................................................................................................................................. 65

2
Manual de prácticas

UNIDAD 1 – Lógica de Programación


“Algoritmos”
Objetivo

El alumno resolverá problemas de ingeniería a un nivel básico analizando el problema para identificar los
datos que se requieren, así como dar las instrucciones adecuadas para obtenerlo

Resumen del tema / habilidad a tratar

La práctica se desarrolla para asegurar el logro de la capacidad de análisis y diseño usando la simbología de
diagramas de flujo para la solución de problemas, con esta práctica fortalece la parte integral del alumno
para conocer la importancia de análisis y diseño en programación de alto nivel.

Qué vas a aprender… Qué deberías saber…

El alumno formulará la solución a Lógica básica.


problemas, mediante el uso de algoritmos,
para su implementación con un lenguaje
de programación.
Comprender los conceptos de entradas y
salidas de un problema.

Introducción
los elementos con los que contamos para

P ara la realización de un programa se debe


llevar una serie de pasos, lo que se considera
ya una metodología, de manera generalizada se
realizarlo, etc.

Elaborar el Algoritmo
deben considerar los siguientes pasos: Análisis
del problema, Elaborar el Algoritmo, Codificación El algoritmo son las instrucciones para resolver el
del algoritmo, Depuración de código y problema. Puede ser de texto (Pseudocódigo) o
Mantenimiento de programa. gráfico (Diagrama de Flujo).

De los cuales por el momento nos concierne los Así bien, si definimos a un Algoritmo sería: La
dos primeros pasos, Análisis del problema y secuencia de pasos o instrucciones para resolver
Elaborar el Algoritmo. un problema dado.

Análisis del problema Existen dos tipos de algoritmos:


Consiste en estudiar minuciosamente el 1. Alfanuméricos -cualitativos
problema que queremos solucionar, 2. Numéricos -cuantitativos
considerando los requerimientos que se piden y

3
Manual de prácticas

Características: varias cosas, puede no cumplir con este


punto. Es por eso que se han definido los
Un solo inicio, un solo fin. lenguajes de programación o lenguajes
Secuencia de las instrucciones de computación para especificar
Número de instrucciones finito algoritmos, ya que en ellos el significado
de cada palabra es uno y sólo uno.
Sus pasos deben estar definidos con precisión de 3. Entrada: Se considera como entrada el
forma que no existan ambigüedades que den conjunto de datos o información
origen a elegir una opción equivocada. Los requerida para resolver un problema
algoritmos son finitos; es decir, su ejecución dado. No cualquier grupo de datos se
termina en un número determinado de pasos. La puede considerar como entrada en el
mayoría de los algoritmos de utilidad al procedimiento señalado.
programador poseen 3 partes principales: 4. Salida: La salida es un conjunto de
resultados que se obtienen al aplicar el
algoritmo al conjunto de datos de
entrada.
5. Efectividad: Un algoritmo debe llevar a la
solución del problema planteado, en
otras palabras, se puede decir que todas
las operaciones que efectúa el algoritmo,
deben ser lo suficientemente simples
para que en principio, se puedan ejecutar
con papel y lápiz y al final obtener el
resultado deseado.
Los algoritmos cumplen con las siguientes cinco
características: Además, los algoritmos se pueden representar
gráficamente a través de un diagrama de flujo.
1. Finitud: Un algoritmo debe terminar
después de ejecutar un número finito de
pasos. Materiales y reactivos
2. Definición: Cada paso en un algoritmo
debe estar definido con precisión, esto 1. Manual de prácticas
es, la acción a seguir no debe ser 2. Plumón
ambigua, sino rigurosamente 3. Borrador
especificada. Un algoritmo descrito en un
lenguaje como inglés o español, en el
cual una misma palabra puede significar

Desarrollo de la Práctica

Metodología ó Técnica.

a) Análisis del problema: Analice los siguientes problemas

• Obtener la suma de A y B, donde A y B se solicitan al usuario, mostrar el resultado.


• Obtener la división de A y B, donde A y B se solicitan al usuario, mostrar el resultado.

4
Manual de prácticas

b) Desarrolle los Algoritmos: Escriba la secuencia de los algoritmos para los problemas planteados.

Algoritmo: Suma de Dos Valores


Variables necesarias: A, B, C, tipo real
Inicio
Mostrar “Favor de Teclear Dos Números”
Leer A
Leer B
Hacer C <- A + B
Mostrar C
Fin del Algoritmo

Algoritmo: División de Dos Valores

Variables necesarias: A, B, C, tipo real


Inicio
Mostrar “Favor de Teclear Dos Números”
Leer A, B
Si B < > 0 entonces
Hacer C <- A / B
Mostrar C
En caso contrario
Mostrar “La división no se puede llevar a cabo”
Fin de Sí
Fin del algoritmo

c) Modifique el algoritmo con nuevos parámetros. Modifique el algoritmo agregando nuevos


procesos o selecciones que indiquen una nueva salida

Resultados Se deberá presentar un reporte que incluya lo siguiente:

a) Algoritmos diseñados
b) Diagrama de flujo generado.
c) Resultados y observaciones al modificar el diagrama con nuevos valores

Evaluación Teórica

1. Todo algoritmo de utilidad cuenta con estos tres partes:

a) Inicio, operaciones y Fin b) Entrada de datos, Proceso de Datos y Salida de resultados

c) Usuarios, Creadores y Computadora d) Todas las Anteriores

5
Manual de prácticas

2. Esta característica de un algoritmo dice que tiene cada uno de los pasos bien definidos, y no se
prestan a diferentes interpretaciones independientemente de quién lo lea.

a) Determinismo b) Precisión c) Finitud d) Todas las Anteriores

3. Es una secuencia finita de pasos bien determinados que sirven para resolver un problema:

a) Software b) Programa c) Algoritmo d) Diagrama

4. La característica de este tipo de algoritmo se refiere a que no importa las veces que se ejecute el
algoritmo, siempre debe llegar al mismo resultado.

a) Precisión b) Determinista ó Predictivo c) Finitud d) Definición

5. ¿Cuáles son las 3 características principales de todo algoritmo?

a) Precisión, Determinismo y Orden b) Precisión, Determinismo y Secuencia

c) Precisión, Determinismo y Cualitativo d) Precisión, Determinismo y Finitud

Evaluación Práctica

OBJETIVO El alumno resolverá problemas de ingeniería a un nivel básico analizando el


problema para identificar los datos que se requieren, así como dar las instrucciones
adecuadas para obtenerlo
NOMBRE DEL
ALUMNO
INSTRUCCIONES A continuación se presentan los criterios que van a ser verificados en el desempeño
del alumno.
De la siguiente lista marque con una  aquellas actividades que cumple el alumno
durante el desarrollo de la práctica.

ACTIVIDAD CUMPLE NO CUMPLE


El algoritmo presenta entrada de datos, procesamiento de datos ☐ ☐
y Salida de resultados.
Cada paso del algoritmo esta definido con precisión. ☐ ☐
El algoritmo lleva a la solución del problema planteado, todas las ☐ ☐
operaciones se pueden ejecutar con papel y lápiz y se obtiene el
resultado planteado.
Se presenta al menos 2 corridas de escritorio del algoritmo. ☐ ☐
El algoritmo cumple con la característica de Finitud. ☐ ☐

6
Manual de prácticas

CALIFICACIÓN FECHA PROFESOR

Conclusión

El análisis de la problemática haciendo uso de algoritmos permite ver las entradas procesos y salidas que se
necesitan para realizar una operación o actividad de un problema planteado. Por lo que su comprensión
deberá ser eficaz para lograr el fin.

Bibliografía o Normas de referencia

Joyanes, Aguilar Luis McGraw-


(2006) Programación en C++ Madrid España
Hill
Joyanes, Aguilar Luis , Lucas
Programación en C++, serie McGraw-
Sánchez García (2006) Madrid España
SCHAUM Hill

Reglas de Seguridad e Higiene a Considerar

a) Reglas acceso a laboratorio:


b) EL alumno y profesor deberán portar credencial de forma visible con portagafete (No se permite
pegar con diurex, clip, etc).
c) Presentación personal de acuerdo al reglamento institucional. (ropa adecuada, cabello corto, sin
piercing, no se permite el uso de short ni minifalda, bermudas)
d) Es motivo de cancelación de la práctica o de participación en ella cuando el alumno:
e) Plagio de prácticas (Se cancelará a los alumnos involucrados).
f) Falte al reglamento del centro de cómputo.
g) Uso indebido del equipo de cómputo.
h) Uso de aplicaciones que no sean necesarias para el desarrollo de la práctica.

7
Manual de prácticas

“Diagramas de flujo”
Objetivo

El alumno resolverá problemas de ingeniería a un nivel básico analizando el problema para identificar los
datos que se requieren, así como dar las instrucciones adecuadas para obtenerlo.

Resumen del tema / habilidad a tratar

La práctica se desarrolla para asegurar el logro de la capacidad de análisis y diseño usando la simbología de
diagramas de flujo para la solución de problemas, con esta práctica fortalece la parte integral del alumno
para conocer la importancia de análisis y diseño en programación de alto nivel.

Qué vas a aprender… Qué deberías saber…

El alumno formulará la solución a Desarrollar algoritmos para la solución de


problemas, mediante el uso de algoritmos y problemas.
diagramas de flujo, para su Comprender los conceptos de entradas y
implementación con un lenguaje de salidas de un problema.
programación.

Identificar los elementos empleados en


diagramas de flujo.

Analizar la validez de un diagrama de flujo


como solución correcta a un problema

Introducción

P ara la realización de un programa se debe


llevar una serie de pasos, lo que se considera
ya una metodología, de manera generalizada se
Diagrama de Flujo

Es la representación gráfica del flujo lógico de


deben considerar los siguientes pasos: Análisis datos que se utilizarán en la formulación de un
del problema, Elaborar el Algoritmo, Codificación programa. El diagrama de flujo se dibuja antes de
del algoritmo, Depuración de código y que el programa se escriba para asegurar que las
Mantenimiento de programa. instrucciones se integraran lógicamente. Antes de
la codificación del programa es conveniente que
se revise el diagrama de flujo, se recomienda que
el programador se asegure completamente de los
requisitos del usuario para realizar esta tarea de
manera satisfactoria.

8
Manual de prácticas

La ventaja de utilizar un diagrama de flujo es que


se le puede construir independientemente del
lenguaje de programación, pues al momento de
llevarlo a código se puede hacer en cualquier
lenguaje. Dichos diagramas se construyen
utilizando ciertos símbolos de uso especial como
son rectángulos, óvalos, pequeños círculos, etc.;
estos símbolos están conectados entre sí por
flechas conocidas como líneas de flujo.

Un diagrama de flujo consta de un conjunto de


símbolos con diferentes significados susceptibles
de ser conectados entre si.
Estructuras básicas
En todo diagrama de flujo podemos encontrar los
siguientes elementos: Cualquier programa con un solo punto de
entrada y un solo punto de salida puede
a) Inicio de proceso. resolverse con tres tipos de estructuras básicas
b) Especificación de la alimentación de de control: Secuencial, alternativa y repetitiva.
datos para efectuar el proceso.
c) Acciones aplicables a los datos. • Secuencial
d) Obtención de resultados.
e) Fin del proceso.
Es aquella que ejecuta las acciones
Para cada una de estas actividades existen sucesivamente unas a continuación de otras sin
símbolos específicos que denotan los elementos posibilidad de omitir ninguna, y naturalmente sin
o acciones que se tomarán en el proceso. bifurcaciones (saltos a subrutinas). Todas estas
estructuras tendrán una entrada y una salida.
Nota: Estos han sido normalizados por el Instituto
Norteamericano de Normalización (ANSI).

Alternativa

Es aquella en la que únicamente se realiza una


alternativa dependiendo del valor de una
determinada condición o predicado. Las

9
Manual de prácticas

estructuras alternativas también llamadas - Alternativa múltiple:


condicionales pueden ser de tres tipos: Simple,
doble o múltiple. Se adopta cuando la condición puede tomar n
valores distintos. Según se elija uno de estos
- Alternativa simple: valores en la condición se realizara una de las n
acciones. Esta estructura propuesta por Hoare, es
Son aquellas en donde la existencia o la case del lenguaje Pascal o case de los Basic
cumplimiento de la condición implica la ruptura estructurados (Case = estructura de casos).
de la secuencia y la ejecución de una
determinada acción.

Repetitiva o iterativa
Son aquellas en las que las acciones se ejecutan
un número determinado de veces y dependen de
un valor predefinido o el cumplimiento de una
determinada expresión lógica. Un bucle o lazo es
- Alternativa doble: el conjunto de acciones a repetir. En
consecuencia es preciso disponer de estructuras
Es aquella que permite la elección entre dos algorítmicas que permitan describir una iteración
acciones o tratamientos en función de que se de forma cómoda. Las tres estructuras mas
cumpla o no determinada condición. usuales dependiendo de que la condición se
encuentre al principio o al final de la iteración
son: Estructura mientras, repetir hasta y
estructura para.

10
Manual de prácticas

Estructura Mientras Reglas para la creación de Diagramas

El bucle mientras determina la repetición de un 1. Los Diagramas de flujo deben escribirse de


grupo de instrucciones mientras la condición se
cumpla. Esta estructura se conoce normalmente arriba hacia abajo, y/o de izquierda a
como While. derecha.
2. Los símbolos se unen con líneas, las cuales
tienen en la punta una flecha que indica la
dirección que fluye la información procesos,
se deben de utilizar solamente líneas de
flujo horizontal o verticales (nunca
diagonales).
3. Se debe evitar el cruce de líneas, para lo cual
se quisiera separar el flujo del diagrama a un
sitio distinto, se pudiera realizar utilizando
los conectores. Se debe tener en cuenta que
solo se vana utilizar conectores cuando sea
estrictamente necesario.
4. No deben quedar líneas de flujo sin conectar
Estructura Mientras (While)
5. Todo texto escrito dentro de un símbolo
debe ser legible, preciso, evitando el uso de
Estructura Hacer – Mientras muchas palabras.
6. Solo los símbolos de decisión pueden y
El número de iteraciones del grupo de
instrucciones se ejecuta una o varias veces hasta deben tener más de una línea de flujo de
que la condición no se cumpla. Esta condición se salida.
ejecuta al menos una vez. A esta estructura
también se le conoce como Do While.
Secuencia

Entendemos por secuencia la ejecución o


realización de pasos o acciones en el desarrollo
de un algoritmo, siguiendo el orden establecido.

Programa

Se le llama programa a la serie de instrucciones


escritas en alguno de los lenguajes, por medio de
los cuales se logra que la computadora realice
todas las operaciones o decisiones señaladas en
dichas instrucciones.
Estructura Hacer Mientras (Do While)

11
Manual de prácticas

Podemos distinguir dos tipos de programa: Pseudocódigo

1. Programa fuente: es el conjunto de El pseudocódigo de puede definir como un


instrucciones escritas en algún lenguaje lenguaje de especificaciones de algoritmos. El
de computadora, las cuales han sido pseudocódigo no es realmente un código sino
transcritos para ser interpretadas por una imitación y una versión abreviada de
algún dispositivo de lectura. instrucciones reales para las computadoras.
2. Programa objeto: es el conjunto de
instrucciones que componen un
programa fuente y que han sido Materiales y reactivos
traducidas al lenguaje maquina por
medio del compilador correspondiente. 1.- Aplicación RAPTOR-para diseño de algoritmos
2.- Manual de prácticas
Un compilador es un programa que traduce el 3.- Plumón
programa fuente a programa objeto. 4.- Borrador

Un compilador independiente se requiere para


cada lenguaje de programación. Éste efectúa sólo
la traducción, no ejecuta el programa. Una vez
compilado el programa, el resultado en forma de
programa objeto será directamente ejecutable.

Desarrollo de la Práctica

1. Obtener la suma de A y B, donde A y B se solicitan al usuario, mostrar el resultado.

2. Obtener la división de A y B, donde A y B se solicitan al usuario, mostrar el resultado

Metodología ó Técnica.

a. Análisis del problema: Analice los siguientes problemas:

Obtener la suma de A y B, donde A y B se solicitan al usuario, mostrar el resultado.

Obtener la división de A y B, donde A y B se solicitan al usuario, mostrar el resultado.

b) Diagrama de flujo: Haciendo uso de la aplicación RAPTOR instalada, ejecutar el programa y diseñar el
diagrama de flujo en base al algoritmo planteado.

12
Manual de prácticas

Algoritmo del problema 1


Algoritmo: Suma de Dos Valores
Variables necesarias: A, B, C, tipo real
Inicio
Mostrar “Favor de Teclear Dos Números”
Leer A
Leer B
Hacer C <- A + B
Mostrar C
Fin del Algoritmo

Diagrama de Flujo:

Algoritmo del problema 2

Algoritmo: División de Dos Valores


Variables necesarias: A, B, C, tipo real
Inicio
Mostrar “Favor de Teclear Dos Números”
Leer A
Leer B
Si B == 0 entonces
Mostrar “Error de división por cero”

13
Manual de prácticas

De lo contrario
Hacer C <- A / B
Mostrar C
Fin del Algoritmo

Diagrama de flujo

d) Ejecución. En la opción Play del RAPTOR ejecute el diagrama de flujo para revisar que la
salida sea correcta.

e) Modifique el diagrama con nuevos parámetros. Modifique el diagrama agregando nuevos


procesos o selecciones que indiquen una nueva salida

Resultados Se deberá presentar un reporte que incluya lo siguiente:

a) Algoritmos diseñados
b) Diagrama de flujo generado.
c) Resultados y observaciones al modificar el diagrama con nuevos valores

14
Manual de prácticas

Evaluación Teórica

1. En un diagrama de flujo, este símbolo representa la entrada de datos desde el teclado.

a) Círculo b) Óvalo c) Rombo d) Trapecio

2. En la simbología de diagramas de flujo, éste símbolo representa la toma de decisiones.

a) Círculo b) Óvalo c) Rombo d) Trapecio

3. En el programa Raptor, este símbolo representa el inicio y el fin.

a) Círculo b) Óvalo c) Rombo d) Trapecio

4. En la simbología de diagramas de flujo, determinan el flujo del diagrama:

a) Conectores b) Curvas c) líneas d) Flechas

5. Son la representación gráfica de la solución algorítmica de un problema:

a) Software b) Diagrama de Flujo c) programa d) Algoritmo

Evaluación Práctica

OBJETIVO El alumno resolverá problemas de ingeniería a un nivel básico analizando el


problema para identificar los datos que se requieren, así como dar las instrucciones
adecuadas para obtenerlo
NOMBRE DEL
ALUMNO
INSTRUCCIONES A continuación se presentan los criterios que van a ser verificados en el desempeño
del alumno.
De la siguiente lista marque con una  aquellas actividades que cumple el alumno
durante el desarrollo de la práctica.

ACTIVIDAD CUMPLE NO CUMPLE


El diagrama utiliza la simbología adecuada para la entrada de datos ☐ ☐
Trabajar adecuadamente en el entorno del programa Raptor ☐ ☐
Declara las variables adecuadas ☐ ☐
Muestra los resultados haciendo uso de la simbología Raptor ☐ ☐
El diagrama se ejecuta sin errores ☐ ☐

15
Manual de prácticas

CALIFICACIÓN FECHA PROFESOR

Conclusión

El análisis de la problemática haciendo uso de algoritmos y diagramas de flujo permite ver las entradas
procesos y salidas que se necesitan para realizar una operación o actividad de un problema planteado. Por
lo que su comprensión deberá ser eficaz para lograr el fin.

Bibliografía o Normas de referencia

Joyanes, Aguilar
Luis (2006) Programación en C++ Madrid España McGraw-Hill

Joyanes, Aguilar
Luis , Lucas Programación en C++,
(2006) Madrid España McGraw-Hill
Sánchez García serie SCHAUM

Reglas de Seguridad e Higiene a Considerar

a) Reglas acceso a laboratorio:


b) EL alumno y profesor deberán portar credencial de forma visible con portagafete (No se permite
pegar con diurex, clip, etc).
c) Presentación personal de acuerdo al reglamento institucional. (ropa adecuada, cabello corto, sin
piercing, no se permite el uso de short ni minifalda, bermudas)
d) Es motivo de cancelación de la práctica o de participación en ella cuando el alumno:
e) Plagio de prácticas (Se cancelará a los alumnos involucrados).
f) Falte al reglamento del centro de cómputo.
g) Uso indebido del equipo de cómputo.
h) Uso de aplicaciones que no sean necesarias para el desarrollo de la práctica.

16
Manual de prácticas

Unidad 2 – Fundamentos de Programación


“Tipos de datos”

Objetivo

Al finalizar la práctica el alumno seleccionará los tipos de datos adecuados para el almacenamiento y
procesamiento de datos y construirá expresiones con operadores, constantes y variables para la solución
de problemas

Resumen del tema / habilidad a tratar

La práctica se desarrolla para asegurar el logro de la capacidad de desarrollo en lenguaje de programación


que involucra a los temas de tipos de datos, operadores y expresiones, con esta práctica fortalece la parte
integral del alumno para conocer la importancia de la manipulación de los datos en un lenguaje de alto
nivel.

Qué vas a aprender… Qué deberías saber…

Describir las características de los tipos de Formular la solución a problemas, mediante el


datos, operadores y expresiones disponibles en uso de algoritmos y diagramas de flujo, para su
un lenguaje de alto nivel. implementación con un lenguaje de
programación.
Seleccionar los tipos de datos adecuados para
almacenamiento y procesamiento de datos. Identificar los elementos empleados en
diagramas de flujo.
Construir expresiones con operadores,
constantes y variables para la solución de Analizar la validez de un diagrama de flujo
problemas. como solución correcta a un problema

Introducción
Tipos de datos comunes son: enteros, números
Tipos de Datos de coma flotante (decimales), cadenas
alfanuméricas, fechas, horas, colores, coches o

U n tipo de dato es un atributo de una parte de


los datos que indica al ordenador (y/o al
programador) algo sobre la clase de datos sobre
cualquier cosa que se nos ocurra. Por ejemplo, en
Java, el tipo "int" representa un conjunto de
enteros de 32 bits cuyo rango va desde el -
los que se va a procesar. Esto incluye imponer 2.147.483.648 al 2.147.483.647, así como las
restricciones en los datos, como qué valores operaciones que se pueden realizar con los
pueden tomar y qué operaciones se pueden enteros, como la suma, resta y multiplicación. Los
realizar. colores, por otra parte, se representan como tres
bytes denotando la cantidad de rojo, verde y azul,

17
Manual de prácticas

y una cadena de caracteres representando el Sólo a modo de ejemplo, la representación en


nombre del color; las operaciones permitidas memoria de un -8 en una variable de 2 bytes,
incluyen la adición y sustracción, pero no la entera, con signo sería la siguiente:
multiplicación.
1111111111111000

Enteros
Flotantes
Los enteros son el tipo de dato más primitivo en
C. Se usan para representar números enteros. Se denomina flotantes a los tipos de datos que
Pero siempre se pueden encontrar otras representan a los números reales, ya que utilizan
aplicaciones para los números enteros. En un sistema de representación basado en la
general se pueden usar para representar técnica de coma flotante, que permite operar con
cualquier variable discreta. números reales de diversas magnitudes,
mediante un número decimal llamado mantisa y
Los tipos de datos enteros son: short, int, long y un exponente que indica el orden de magnitud.
long long.
El tipo de dato flotante en lenguaje C sólo tiene
Es decir que para el lenguaje C existen diferentes dos tamaños: el float y el double, que son 4 bytes
tamaños de números enteros que, según el y 8 bytes respectivamente. Se los puede utilizar
compilador y la plataforma de hardware, pueden tanto para representar números decimales, como
tener desde 1 byte hasta 8 bytes. para representar números enteros con un orden
de magnitud muy grande.
Además, el lenguaje C hace la distinción de si el
entero es con signo o sin signo (signed o La forma de declarar una variable flotante es
unsigned). La forma de declarar un entero es con escribiendo en una línea uno de los tipos de
uno de los tipos de datos que sean enteros según datos flotantes y a continuación el nombre de la
el tamaño que se quiera. En caso de que no se variable y tal vez algún valor que se les quiera
declare si es con signo o sin signo, se toma con dar.
signo.
Algunos ejemplos:
Algunos ejemplos de declaraciones de enteros:
float a;
int a; double a = 1e23;
unsigned int a; double a = 3.1416;
signed long a; float a = 4e-9;
signed long long a = 10000000; double a = -78;

Todos los números son representados en Hay que tener en cuenta que aunque los valores
memoria mediante una cadena de bits. En el caso flotantes son más convenientes para algunas
de los números con signo, el bit más significativo aplicaciones, hay casos en los que se prefieren los
es el que se usa para representar el signo. La enteros. Esto se debe a que los números flotantes
representación de los números negativos se no necesariamente tienen soporte de hardware,
realiza mediante el complemento a dos, que es en particular en las plataformas integradas. Una
una técnica que permite operar con los números alternativa que se utiliza en estas situaciones es
negativos de forma lógica. interpretar los enteros como decimales de forma

18
Manual de prácticas

que 150 se interprete como 1.5 y 2345 como Resumen de Tipos de Datos:
23.45.
Tipo Bytes Desde Hasta
Caracteres
void Es nulo (NULL) no retorna nada
Los caracteres se representan utilizando el tipo
char, que tiene sólo 1 byte de tamaño. Este tipo
signed 1 -128 127
se utiliza para representar los 255 caracteres de
char
la tabla de caracteres del sistema. El tipo char es
también un tipo entero, ya que puede tomar unsigned 1 0 255
valores de 0 a 255. char

En cuanto a la forma de declarar variables de tipo signed 2 -32768 32767


char es la misma forma que con los otros tipos. short
unsigned 2 0 65535
char a; short
char a = 's';
char a = 48; signed int 2 -32768 32767

Se le puede asignar un número a una variable unsigned 2 0 65535


char, ya que se trata de un tipo entero. En int
algunas situaciones particulares se utiliza el tipo
char para contadores, porque permite que signed 4 - 2147483647
ocupen sólo un byte en memoria. long 2147483648

unsigned 4 0 4294967295
Es importante notar que con la llegada de la
codificación UTF-8, los caracteres de los diversos long
idiomas pueden ocupar 1, 2, 3 o 4 bytes, de modo float 4 3,4x10-38 3,4x1038
que el tipo char ya no alcanza para la
representación de todos los caracteres. Por ello, double 8 1,7x10-308 1,7x10308
el estándar C99 introduce el tipo wchar que
long 10 3,4x10-4932 3,4x104932
puede ocupar más de 1 byte, según sea necesario
double
para la codificación utilizada por el sistema.

Nota sobre los tipos de datos: Si omitimos las


palabras “signed” o “unsigned” al declarar un tipo
de dato, el compilador automáticamente asume
por default que es un tipo “signed”; es decir que
si al declarar el tipo de dato simplemente
colocamos, por ejemplo, “int”, entonces el
compilador asumirá que hemos declarado un
“signed int”

19
Manual de prácticas

Caracteres de conversión más usados de scanf(); Secuencias de Escape:


y printf();:
Carácter Código Valor
Carácter Significado ASCII
%c El dato es carácter Campana (alerta) \a 007
%d El dato es entero Retroceso (espacio atrás) \b 008
%e El dato es valor en coma flotante Tabulador horizontal \t 009
%f El dato es valor en coma flotante Nueva línea \n 010
%g El dato es valor en coma flotante Tabulador vertical \v 011
%h El dato es entero corto Nueva página \f 012
%i El dato es entero decimal, octal o Retorno de carro \r 013
hexadecimal
Comillas (“) \” 034
%o El dato es octal
Interrogación (?) \? 039
%s El dato es cadena de caracteres,
Barra invertida \\ 063
seguido de espacio en blanco y del
carácter fin de línea (\0) Fin de línea \0 092
%u El dato es entero decimal sin signo Número octal \ooo 000
%x El dato es entero hexadecimal
Materiales y reactivos
Ejemplo:
1.- Aplicación Visual Studio con C++ para
int a,b; creación y ejecución del programa.
char letra; 2.- Manual de prácticas
float area; 3.- Plumón
printf(“%c ,%i, %f, %i”,letra,a,area,b); 4.- Borrador

Desarrollo de la Práctica

a) Lectura del código: Revise el siguiente código:

#include <stdio.h>
int main() {
int a,b;
printf ("introduzca dos valores con el formato \"a,b\" :");
scanf("%i,%i",&a,&b);
printf ("el primer valor : %i\n",a);
printf ("el segundo valor : %i\n",b);
return 0;
}

20
Manual de prácticas

b) Identifique los tipos de datos: Del ejemplo anterior identifique los tipos de datos que se
encuentran declarados en la estructura del programa.

c) Inicie la aplicación de Visual Studio: Inicie la aplicación de Visual Studio.

1. Clic en Botón Inicio


2. Todos los Programas
3. Clic en la Carpeta Microsoft Visual Studio
4. Clic en el acceso directo de Microsoft Visual Studio.

d) Crear nuevo proyecto de Visual Studio:

1. Clic en el Menú Archivo  Nuevo  Proyecto.

2. En la pantalla de la izquierda busque la plantilla de Visual C++ y de un


clic.
3. En las opciones de la derecha seleccione Aplicación de Consola.

4. En la parte inferior de la ventana busque la opción de Nombre y escriba


el nombre de su proyecto.
5. En la parte de ubicación seleccione el lugar donde quiera guardar su
proyecto.
6. De clic en Aceptar.

7. En caso de presentarse la ventana de asistente, de clic en Finalizar.

8. En la ventana resultante, complete el solicitado.

21
Manual de prácticas

e) Compilación: Compile el código haciendo uso del menú “Generar”  “Generar Solución” (F6), en
caso de presentarse errores verifique el código.

f) Ejecución. Ejecute el código con la siguiente instrucción

a. Ir al menú Depurar  Iniciar Depuración (F5) ó de clic en


b. Al realizar esto se deberá mostrar la entrada de datos en pantalla, en caso contrario revise
el código e identifique los errores generados.

g) Modifique el código. Cambie la declaración de los tipos de datos de las variables y los mensajes de
entrada del teclado, por ejemplo: si queremos que nos de una calificación:

a. float cal;

Resultados: Se deberá entregar lo siguiente:

a) Código en lenguaje C
b) Pantalla de salida al ejecutar el programa generado.
c) Resultados y observaciones al modificar el código con nuevos valores

Evaluación Teórica

1.- Información que puede almacenar un tipo de dato entero:

a) false b) 34.32 c) 654653 d) “Texto”

2.- Son tipos de datos enteros:

a) short, int, long b) short, int, float c) short, int, double d) char, int, float

3.- Selecciona el tipo de datos que tiene mayor capacidad de almacenamiento:

a) long b) int c) short d) double

4.- Selecciona el tipo de datos que tiene menor capacidad de almacenamiento:

a) long b) int c) float d) double

5.- Información que puede almacenar un tipo de dato flotante:

a) false b) 34.32 c) 654653 d) “Texto”

22
Manual de prácticas

Evaluación Práctica

OBJETIVO Al finalizar la práctica el alumno seleccionará los tipos de datos adecuados para el
almacenamiento y procesamiento de datos y construirá expresiones con
operadores, constantes y variables para la solución de problemas
NOMBRE DEL
ALUMNO
INSTRUCCIONES A continuación se presentan los criterios que van a ser verificados en el desempeño
del alumno.
De la siguiente lista marque con una  aquellas actividades que cumple el alumno
durante el desarrollo de la práctica.

ACTIVIDAD CUMPLE NO CUMPLE


Los variables son declaradas correctamente ☐ ☐
Los tipos de datos son seleccionados correctamente de acuerdo a ☐ ☐
la información que se almacena.
Los Caracteres de conversión son utilizados correctamente de a ☐ ☐
cuerdo al tipo de dato usado.
El programa no contiene errores de sintaxis. ☐ ☐
El programa de ejecuta correctamente de a cuerdo al problema a ☐ ☐
resolver.

CALIFICACIÓN FECHA PROFESOR

Conclusión

El conocimiento y la habilidad para identificar los tipos de datos que deben ser empleados de acuerdo a la
información que será alimentada al programa son importantes, ya que permitirá que los resultados de las
operaciones realizadas con los datos arrojen la información verídica al asignarlos adecuadamente.

Bibliografía o Normas de referencia

Joyanes, Aguilar
Luis (2006) Programación en C++ Madrid España McGraw-Hill

Joyanes, Aguilar
Luis , Lucas Programación en C++,
(2006) Madrid España McGraw-Hill
Sánchez García serie SCHAUM

23
Manual de prácticas

Reglas de Seguridad e Higiene a Considerar

a) Reglas acceso a laboratorio:


b) EL alumno y profesor deberán portar credencial de forma visible con portagafete (No se permite
pegar con diurex, clip, etc).
c) Presentación personal de acuerdo al reglamento institucional. (ropa adecuada, cabello corto, sin
piercing, no se permite el uso de short ni minifalda, bermudas)
d) Es motivo de cancelación de la práctica o de participación en ella cuando el alumno:
e) Plagio de prácticas (Se cancelará a los alumnos involucrados).
f) Falte al reglamento del centro de cómputo.
g) Uso indebido del equipo de cómputo.
h) Uso de aplicaciones que no sean necesarias para el desarrollo de la práctica.

24
Manual de prácticas

“Operadores y expresiones”

Objetivo

Al finalizar la práctica el alumno construirá expresiones con operadores, constantes y variables para la
solución de problemas

Resumen del tema / habilidad a tratar

La práctica se desarrolla para asegurar el logro de la capacidad de desarrollo en lenguaje de programación


que involucra a los temas de operadores, con esta práctica fortalece la parte integral del alumno para
conocer la importancia de la manipulación de los datos en un lenguaje de alto nivel.

Qué vas a aprender… Qué deberías saber…

Describir las características de los operadores y Seleccionar los tipos de datos adecuados para
expresiones disponibles en un lenguaje de alto almacenamiento y procesamiento de datos.
nivel.
Formular la solución a problemas, mediante el
Construir expresiones con operadores, uso de algoritmos y diagramas de flujo, para su
constantes y variables para la solución de implementación con un lenguaje de
problemas. programación.

Identificar los elementos empleados en


diagramas de flujo.

Analizar la validez de un diagrama de flujo


como solución correcta a un problema

Introducción

Operadores puntos fuertes del lenguaje), que se verán a


continuación.

U n operador es un carácter o grupo de


caracteres que actúa sobre una, dos o más
variables para realizar una determinada
operación con un determinado resultado.
Ejemplos típicos de operadores son la suma (+), la
diferencia (-), el producto (*), etc. Los operadores
pueden ser unarios, binarios y ternarios, según
actúen sobre uno, dos o tres operandos,
respectivamente. En C existen muchos
operadores de diversos tipos (éste es uno de los

25
Manual de prácticas

Operadores Aritméticos: embargo, a la izquierda de (=) no puede haber


una expresión: tiene que ser necesariamente el
Operador Nombre Ejemplo nombre de una variable. Es incorrecto, por tanto,
escribir algo así como: a + b = c;
+ Suma a+b
Operadores Relacionales:
- Resta a-b
* Multiplicación a*b Operador Nombre Ejemplo
/ División a/b > Mayor que a>b
% Residuo entero de la a%b < Menor que a<b
división
>= Mayor o igual que a>=b
++ Incremento en 1 a++
<= Menor o igual que a<=b
-- Decremento en 1 a--
== Igual (Equivalente) a==b

Operadores De Asignación != Diferente (No es igual) a!=b

Los operadores de asignación atribuyen a una Operadores Lógicos:


variable –es decir, depositan en la zona de
memoria correspondiente a dicha variable– el
Operador Nombre Ejemplo Devuelve
resultado de una expresión o el valor de otra
cierto si:
variable (en realidad, una variable es un caso
particular de una expresión). El operador de && Y (and) (exp1)&& ambas son
asignación más utilizado es el operador de (exp2) verdaderas
igualdad (=), que no debe ser confundido con la
igualdad matemática. Su forma general es: || O (or) (exp1)|| Una o
nombre_de_variable = expresion; cuyo (exp2) ambas es
funcionamiento es como sigue: se evalúa verdadera
expresion y el resultado se deposita en
! No (not) !(exp1) Cambia el
nombre_de_variable, sustituyendo cualquier
valor de la
otro valor que hubiera en esa posición de
expresión
memoria anteriormente. Una posible utilización
de este operador es como sigue: variable =
variable + 1; Desde el punto de vista matemático Jerarquía de los operadores
este ejemplo no tiene sentido (¡Equivale a 0 = 1!),
pero sí lo tiene considerando que en realidad el Será importante tener en cuenta la precedencia
operador de asignación (=) representa una de los operadores a la hora de trabajar con ellos:
sustitución; en efecto, se toma el valor de
variable contenido en la memoria, se le suma una
unidad y el valor resultante vuelve a depositarse Operador Precedencia
en memoria en la zona correspondiente al ( ) Mayor precedencia
identificador variable, sustituyendo al valor que ++, - -
había anteriormente. El resultado ha sido *, /, %
incrementar el valor de variable en una unidad. +, - Menor precedencia
Así pues, una variable puede aparecer a la
izquierda y a la derecha del operador (=). Sin

26
Manual de prácticas

Las operaciones con mayor precedencia Se expresión es equivalente al resultado que


realizan antes que las de menor precedencia. proporciona al aplicar sus operadores a sus
operandos. Por ejemplo, 1+5 es una expresión
Si en una operación encontramos Signos del formada por dos valores (1 y 5) y un operador
mismo nivel de precedencia, dicha operación Se (el +); esta expresión es equivalente al valor 6,
realiza de izquierda a derecha. A Continuación Se lo cual quiere decir que allí donde esta
muestra un ejemplo sobre ello: expresión aparece en el programa, en el
momento de la ejecución es evaluada y
a*b+c/d- e sustituida por su resultado. Una expresión puede
estar formada por otras expresiones más
1. a * b resultado = x sencillas, y puede contener paréntesis de varios
2. c /d resultado = y niveles agrupando distintos términos.
3. x + y resultado = z
4. z-e Notas sobre los Operadores
Fijarse que la multiplicación se resuelve antes
 Los operadores aritméticos y relacionales
que la división ya que está situada más a la
pueden trabajar con variables o
izquierda en la operación. Lo mismo ocurre con la
constantes de cualquier tipo numérico,
suma y la resta.
como por ejemplo int, double, float, etc

 En los Operadores lógicos, exp1 y exp2


Expresiones corresponden a EXPRESIONES LÓGICAS
(Expresiones que pueden tomar los
Ya han aparecido algunos ejemplos de valores de verdadero o falso). Ejemplo:
expresiones del lenguaje C en las secciones (7<2)||(4>3)
precedentes. Una expresión es una combinación
de variables y/o constantes, y operadores. La

27
Manual de prácticas

Desarrollo de la Práctica

Practica 1: Operadores Aritméticos

a) Lectura del código: Revise el siguiente código:

b) Identifique los tipos de Operadores: Del ejemplo anterior identifique los operadores que se
encuentran declarados en la estructura del programa.

c) Inicie la aplicación de Visual Studio: Inicie la aplicación de Visual Studio.

1. Clic en Botón Inicio


2. Todos los Programas
3. Clic en la Carpeta Microsoft Visual Studio
4. Clic en el acceso directo de Microsoft Visual Studio.

d) Crear nuevo proyecto de Visual Studio:

1. Clic en el Menú Archivo  Nuevo  Proyecto.

2. En la pantalla de la izquierda busque la plantilla de Visual C++ y de un


clic.
3. En las opciones de la derecha seleccione Aplicación de Consola.

4. En la parte inferior de la ventana busque la opción de Nombre y escriba


el nombre de su proyecto.

28
Manual de prácticas

5. En la parte de ubicación seleccione el lugar donde quiera guardar su proyecto.


6. De clic en Aceptar.

7. En caso de presentarse la ventana de asistente, de clic en Finalizar.

8. En la ventana resultante, complete el solicitado.

e) Compilación: Compile el código haciendo uso del menú “Generar”  “Generar Solución” (F6), en
caso de presentarse errores verifique el código.

f) Ejecución. Ejecute el código con la siguiente instrucción

a. Ir al menú Depurar  Iniciar Depuración (F5) ó de clic en


b. Al realizar esto se deberá mostrar la entrada de datos en pantalla, en caso contrario revise
el código e identifique los errores generados.

Practica 2: Operadores de Asignación

a) Lectura del código: Revise el siguiente código:

29
Manual de prácticas

b) Identifique los Operadores de asignación: Del ejemplo anterior identifique y analice los
operadores asignación que se encuentran declarados en la estructura del programa.

c) Inicie la aplicación de Visual Studio: Inicie la aplicación de Visual Studio.

1. Clic en Botón Inicio


2. Todos los Programas
3. Clic en la Carpeta Microsoft Visual Studio
4. Clic en el acceso directo de Microsoft Visual Studio.

d) Crear nuevo proyecto de Visual Studio:

1. Clic en el Menú Archivo  Nuevo  Proyecto.

2. En la pantalla de la izquierda busque la plantilla de Visual C++ y de un


clic.
3. En las opciones de la derecha seleccione Aplicación de Consola.

4. En la parte inferior de la ventana busque la opción de Nombre y escriba


el nombre de su proyecto.
5. En la parte de ubicación seleccione el lugar donde quiera guardar su
proyecto.
6. De clic en Aceptar.

7. En caso de presentarse la ventana de asistente, de clic en Finalizar.

8. En la ventana resultante, complete el solicitado.

30
Manual de prácticas

e) Compilación: Compile el código haciendo uso del menú “Generar”  “Generar Solución” (F6), en
caso de presentarse errores verifique el código.

f) Ejecución. Ejecute el código con la siguiente instrucción

a. Ir al menú Depurar  Iniciar Depuración (F5) ó de clic en


b. Al realizar esto se deberá mostrar la entrada de datos en pantalla, en caso contrario revise
el código e identifique los errores generados.

Practica 3: Jerarquía de los Operadores

a) Lectura del código: Revise el siguiente código:

b) Identifique la jerarquía de los Operadores: Del ejemplo anterior identifique y analice la jerarquía
de los operadores que se encuentran declarados en la estructura del programa.

c) Inicie la aplicación de Visual Studio: Inicie la aplicación de Visual Studio.

1. Clic en Botón Inicio


2. Todos los Programas
3. Clic en la Carpeta Microsoft Visual Studio
4. Clic en el acceso directo de Microsoft Visual Studio.

d) Crear nuevo proyecto de Visual Studio:

1. Clic en el Menú Archivo  Nuevo  Proyecto.


2. En la pantalla de la izquierda busque la plantilla de Visual C++ y de un clic.
3. En las opciones de la derecha seleccione Aplicación de Consola.
4. En la parte inferior de la ventana busque la opción de Nombre y escriba el nombre de su
proyecto.

31
Manual de prácticas

5. En la parte de ubicación seleccione el lugar donde quiera guardar su proyecto.


6. De clic en Aceptar.
7. En caso de presentarse la ventana de asistente, de clic en Finalizar.
8. En la ventana resultante, complete el solicitado.

e) Compilación: Compile el código haciendo uso del menú “Generar”  “Generar Solución” (F6), en
caso de presentarse errores verifique el código.

f) Ejecución. Ejecute el código con la siguiente instrucción

a. Ir al menú Depurar  Iniciar Depuración (F5) ó de clic en


b. Al realizar esto se deberá mostrar la entrada de datos en pantalla, en caso contrario revise
el código e identifique los errores generados.

Resultados: Se deberá entregar lo siguiente:

a) Código en lenguaje C
b) Pantalla de salida al ejecutar el programa generado.
c) Análisis y observaciones de cada ejemplo

Evaluación Teórica

1. La instrucción: a = b % c almacena en a:

a) El resultado de modulo entre b y c b) El resultado del porcentaje generado entre b y c

c) la división entre b y c d) La operación es incorrecta

2. Dada la operación, indica el resultado: resul = 3 + 5 * (10 – (2 + 4) );

a) 32 b) 23 c) 82 d) 40

3. Según la jerarquía de los operadores, selecciona cuales están ordenados según su precedencia de
mayor a menor.
a) ( ), +, * b) ( ), -, / c) ( ), *, + d) /, -, ++

4. Son operadores lógicos:

a) +, -, *, / b) %c, %f, %d c) <, <=, ==, >= d) &&, ||, !

5. Son operadores relacionales

a) +, -, *, / b) %c, %f, %d c) <, <=, ==, >= d) &&, ||, !

32
Manual de prácticas

Evaluación Práctica

OBJETIVO Al finalizar la práctica el alumno construirá expresiones con operadores,


constantes y variables para la solución de problemas
NOMBRE DEL
ALUMNO
INSTRUCCIONES A continuación se presentan los criterios que van a ser verificados en el desempeño
del alumno.
De la siguiente lista marque con una aquellas actividades que cumple el alumno
durante el desarrollo de la práctica.

ACTIVIDAD CUMPLE NO CUMPLE


Los operadores son usados correctamente de acuerdo al problema ☐ ☐
planteado.
Se identifican correctamente los diferentes tipos de operadores ☐ ☐
Se utiliza correctamente la jerarquía de los operadores de acuerdo ☐ ☐
al problema planteado.
Se identifican y usan correctamente las expresiones de acuerdo al ☐ ☐
problema planteado.
El programa de ejecuta correctamente de acuerdo al problema a ☐ ☐
resolver

CALIFICACIÓN FECHA PROFESOR

Conclusión

El conocimiento y la habilidad para identificar los tipos de operadores que deben ser empleados de acuerdo
a la información que será alimentada al programa será importante, ya que permitirá que los resultados de
las operaciones realizadas con los datos arrojen la información verídica al asignarlos adecuadamente.

Bibliografía o Normas de referencia

Joyanes, Aguilar
Luis (2006) Programación en C++ Madrid España McGraw-Hill

Joyanes, Aguilar
Luis , Lucas Programación en C++,
(2006) Madrid España McGraw-Hill
Sánchez García serie SCHAUM

33
Manual de prácticas

Reglas de Seguridad e Higiene a Considerar

a) Reglas acceso a laboratorio:


b) EL alumno y profesor deberán portar credencial de forma visible con portagafete (No se permite
pegar con diurex, clip, etc).
c) Presentación personal de acuerdo al reglamento institucional. (ropa adecuada, cabello corto, sin
piercing, no se permite el uso de short ni minifalda, bermudas)
d) Es motivo de cancelación de la práctica o de participación en ella cuando el alumno:
e) Plagio de prácticas (Se cancelará a los alumnos involucrados).
f) Falte al reglamento del centro de cómputo.
g) Uso indebido del equipo de cómputo.
h) Uso de aplicaciones que no sean necesarias para el desarrollo de la práctica.

34
Manual de prácticas

“Estructura de un programa”
Objetivo

Al finalizar la práctica, el alumno establecerá los elementos que conforman la estructura de un programa
para computadora

Resumen del tema / habilidad a tratar

La práctica se desarrolla para asegurar el logro de la capacidad de desarrollo en lenguaje de programación


que involucra a los temas de estructura de un programa, con esta práctica fortalece la parte integral del
alumno para conocer estructura de diseño de un programa en el lenguaje de alto nivel.

Qué vas a aprender… Qué deberías saber…

Describir los elementos que conforman la Formular la solución a problemas, mediante el


estructura de un programa para computadora. uso de algoritmos y diagramas de flujo, para su
implementación con un lenguaje de
Establecer los elementos que conforman la programación.
estructura de un programa para computadora.
Describir las características de los tipos de
Comprender el proceso para la generación de datos, operadores y expresiones disponibles en
un programa. un lenguaje de alto nivel.

Seleccionar los tipos de datos adecuados para


almacenamiento y procesamiento de datos.

Construir expresiones con operadores,


constantes y variables para la solución de
problemas.

Introducción

P artes principales de un programa en C.

Todos los programas en C siguen una misma


B. Declaraciones globales

1. Funciones
estructura básica: 2. Variables

A. Directivas de procesador C. main( )


D. Funciones creadas por el usuario.
1. Inclusiones
2. Macros Directivas de preprocesador.

35
Manual de prácticas

Las directivas de preprocesamiento dirigen al Función principal


compilador a desarrollar ciertas tareas antes de
que el programa se empiece a compilar. Una de Todo programa debe de llevar la función main().
las directivas más comunes es el #include, el cual La ejecución del programa inicia y termina con la
le indica al compilador que incluya un archivo función main(). Si el programa es suficientemente
fuente de C, el header file, antes de que empiece pequeño puede ser escrito dentro de main(). Por
a compilar. Otra directiva común es la directiva lo general la función main() contiene llamados a
#define el cual es una definición de un macro. funciones definidas por el usuario o que son
encontradas dentro de las librerías.
Los headers files están compuestos
primordialmente de declaración de funciones, Definición de funciones.
declaración de variables y de definiciones de
macros. Estos pueden ser identificados Las funciones definidas por el usuario son un
fácilmente por la extensión h en el hombre del grupo de declaraciones que logran realizar las
archivo. tareas del programa.
Declaraciones globales.

Una declaración notifica las propiedades de una


variable o función. Las declaraciones globales le
dicen al compilador sobre las funciones definidas
por el usuario y acerca de las variables que son
comunes en el archivo fuente.

La declaración de una función le indica al


compilador que tipo de dato necesita la función y
que tipo de dato regresara. Todas las
declaraciones de funciones terminan con un
punto y coma. Si deseas eliminar la declaración
de funciones al inicio del programa solo tienes
que desarrollar (definir) la función al inicio del
programa antes de hacer cualquier llamado a una
función.

Una declaración global de una variable hace que Materiales y reactivos


la variable sea disponible para el uso en todas las
funciones del archivo fuente. 1.- Aplicación Visual Studio para creación de
programas.
Declarar muchas variables globales puede causar 2.- Manual de prácticas
problemas debido a que se te puede olvidar que 3.- Plumón
cambiaste el valor de la variable en otra función, 4.- Borrador
por lo que recomienda usarlas lo menos posible.

36
Manual de prácticas

Desarrollo de la Práctica

a) Inicie la aplicación de Visual Studio:

1. Clic en Botón Inicio


2. Todos los Programas
3. Clic en la Carpeta Microsoft Visual Studio
4. Clic en el acceso directo de Microsoft Visual Studio.

b) Crear nuevo proyecto de Visual Studio:

1. Clic en el Menú Archivo  Nuevo  Proyecto.

2. En la pantalla de la izquierda busque la plantilla de Visual C++ y de un


clic.
3. En las opciones de la derecha seleccione Aplicación de Consola.

4. En la parte inferior de la ventana busque la opción de Nombre y escriba


el nombre de su proyecto.
5. En la parte de ubicación seleccione el lugar donde quiera guardar su
proyecto.
6. De clic en Aceptar.

7. En caso de presentarse la ventana de asistente, de clic en Finalizar.

8. En la ventana resultante, complete el solicitado.

37
Manual de prácticas

c) Escritura del código: Escriba el siguiente código y realice las modificaciones adecuadas. Guarde el
archivo como led

1 /* Este programa muestra las partes principales de un programa en C*/


2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <conio.h>
5
6 #define FALSE 0 /*define al marco F igual a 0*/
7 #define TRUE 1 /*define al marco T igual a 1*/
8
9 int i=0;
10 void put_msg(void);
11
12 main ()
13 {
14 int respuesta;
15
16 printf("Quieres ver el mensaje?\n");
17 printf("introduce 0 para No, 1 para Si ==>);
18 scanf("%d, &respuesta);
19 if (respuesta == TRUE)
20 put-msg();
21 else
22 puts("Hasta luego.");
23 }
24
25 void put_msg (void)
26 {
27 for (i=0; i<=10; i++)
28 printf("Prueba la cadena # %d.\n", i);
29 }

d) Compilación: Compile el código haciendo uso del menú “Generar”  “Generar Solución” (F6), en
caso de presentarse errores verifique el código.

e) Ejecución. Ejecute el código con la siguiente instrucción

a. Ir al menú Depurar  Iniciar Depuración (F5) ó de clic en


b. Al realizar esto se deberá mostrar la entrada de datos en pantalla, en caso contrario revise
el código e identifique los errores generados.

f) Modifique el código con nuevos parámetros. Realice cambios en los nombres de variables o
funciones para visualizar la nueva salida.

38
Manual de prácticas

Resultados: Se deberá presentar un reporte que incluya lo siguiente:

a) Código en lenguaje C
b) Salidas de pantalla de la ejecución del programa.
c) Resultados y observaciones al modificar el código con nuevos valores

Evaluación Teórica

1.- Es la función principal de todo programa en lenguaje C, la ejecución del programa inicia en dicha
función:

a) #include b) scanf() c) main() d) printf()

2.- Instrucción la cual le indica al compilador que incluya un archivo fuente de C:

a) #include b) #define c) main() d) printf()

3.- La declaración de una variable de este tipo hace que la variable este disponible para el uso en todas
las funciones del archivo fuente:

a) Variable local b) variable global c) variable privada d) variable protegida


4.- ¿Cómo identificamos una función en lenguaje C?

a) Por el símbolo # b) Por la palabra include

c) Por la palabra define d) Por el uso de paréntesis ( )

5.- Se utiliza para declarar Constantes:

a) #include b) #define c) main() d) void

Evaluación Práctica

OBJETIVO Al finalizar la práctica, el alumno establecerá los elementos que conforman la


estructura de un programa para computadora
NOMBRE DEL
ALUMNO
INSTRUCCIONES A continuación se presentan los criterios que van a ser verificados en el desempeño
del alumno.
De la siguiente lista marque con una aquellas actividades que cumple el alumno
durante el desarrollo de la práctica.

39
Manual de prácticas

ACTIVIDAD CUMPLE NO CUMPLE


La definición de la estructura del programa es correcta ☐ ☐
Hace uso adecuado de tabuladores y espacios para la correcta ☐ ☐
lectura del código fuente
Hace uso adecuado de variables globales ☐ ☐
Hace uso adecuado de constantes ☐ ☐
Identifica correctamente la estructura del programa ☐ ☐

CALIFICACIÓN FECHA PROFESOR

Conclusión

El conocimiento de la estructura de un programa permitirá escribir y diseñar programas estructurados que


cumplan con los requisitos del estándar del lenguaje C, por lo que siguiendo esta norma, cualquier usuario
puede leer y entender sin ningún problema la secuencia y salida del programa escrito o diseñado.

Bibliografía o Normas de referencia

Joyanes, Aguilar
Luis (2006) Programación en C++ Madrid España McGraw-Hill

Joyanes, Aguilar
Luis , Lucas Programación en C++,
(2006) Madrid España McGraw-Hill
Sánchez García serie SCHAUM

Reglas de Seguridad e Higiene a Considerar

a) Reglas acceso a laboratorio:


b) EL alumno y profesor deberán portar credencial de forma visible con portagafete (No se permite
pegar con diurex, clip, etc).
c) Presentación personal de acuerdo al reglamento institucional. (ropa adecuada, cabello corto, sin
piercing, no se permite el uso de short ni minifalda, bermudas)
d) Es motivo de cancelación de la práctica o de participación en ella cuando el alumno:
e) Plagio de prácticas (Se cancelará a los alumnos involucrados).
f) Falte al reglamento del centro de cómputo.
g) Uso indebido del equipo de cómputo.
h) Uso de aplicaciones que no sean necesarias para el desarrollo de la práctica.

40
Manual de prácticas

“Decisión y repetición”

Objetivo

Al finalizar la práctica, el alumno construirá programas que empleen decisiones y operaciones en un


lenguaje de alto nivel para la solución de problemas de cómputo.

Resumen del tema / habilidad a tratar

La práctica se desarrolla para asegurar el logro de la capacidad de desarrollo en lenguaje de programación


que involucra a los temas de decisión y repetición, con esta práctica fortalece la parte integral del alumno
para conocer las estructuras de decisión y repetición para el control de flujo de datos de un programa en un
lenguaje de alto nivel.

Qué vas a aprender… Qué deberías saber…

Interpretar las alternativas para decisión y Describir y establecer los elementos que
repetición que incorpora el lenguaje en uso. conforman la estructura de un programa para
computadora.
Construir programas que empleen decisiones y
repeticiones. Comprender el proceso para la generación de
un programa.

Introducción
/* Si se trata de dos o más instrucciones, estas
Estructura de decisión If-Else van entre llaves { } */

C uando el programador desea especificar en


un algoritmo o programa 2 o más caminos
alternativos se deben utilizar una estructura de
if (condición)
Instrucciones a ejecutar
cuando la condición es verdadera;
decisión, la cual evalúa una condición y en else
función del resultado, realiza una parte de la Instrucciones a ejecutar
estructura u otra. Las condiciones se especifican cuando la condición es falsa;
mediante expresiones lógicas. Una de las
estructuras de decisión es la estructura if-else y Ejemplo:
su sintaxis es la siguiente: #include <stdio.h>
#include <conio.h>
void main(){
int year;

printf ("Progama para determinar si un


año es bisiesto");
printf ("\nIntroduce un numero de
año\n");

41
Manual de prácticas

scanf ("%i", &year); else


if (year%4 == 0 && year%100 != 0 || mayor = d;
year%400 == 0) else
printf ("\a\nEl año %i si es bisiesto", if (b > c)
year); if (b > d)
else mayor = b;
printf ("\a\nEl año %i no es bisiesto", else
year); mayor = a;
getch(); else
} if (c > d)
mayor = c;

If’s anidados else


mayor = d;
if (condición) printf ("El mayor es %i", mayor);
if (condición) getch();
Instrucciones a ejecutar cuando la }
condición es verdadera;
else Estructura de decisión múltiple (switch)
Instrucciones a ejecutar cuando la
condición es falsa; La estructura switch evalúa una expresión que
else puede tomar n valores distintos, según con cuál
Instrucciones a ejecutar cuando la de estos valores coincida, se ejecutaran ciertas
condición es falsa; acciones, es decir, el programa o algoritmo
seguirá un determinado camino entre los n
Ejemplo: posibles.

#include <stdio.h> La sintaxis de la estructura switch es:


#include <conio.h>
void main(){ switch (expresión entera) {
int a, b, c, d, mayor; case exp_constante_1:
acciones a realizar cuando la
printf ("Programa que indica cual de 4 expresión tiene el valor exp_constante_1;
numeros es el mayor\n"); break;
printf ("Introduce 4 números case exp_constante_2:
enteros:\n"); acciones a realizar cuando la
scanf ("%i%i%i%i", &a, &b, &c, &d); expresión tiene el valor exp_constante_2;
break;
if (a > b) ...especificar todos los casos
if (a > c) default:
if (a > d) acciones a realizar cuando la
mayor = a; expresión no coincide con ninguno de los casos;
else break;
mayor = d; }
else
if (c > d)
mayor = c;

42
Manual de prácticas

Estructuras de repetición }
getch();
Las computadoras están diseñadas especialmente }
para aquellas aplicaciones en las cuales una
operación o conjunto de ellas deben de repetirse La sintaxis de la estructura do/ while es:
varias veces. A las estructuras que repiten una
secuencia de instrucciones un número do {
determinado de veces se les denomina bucles y Instrucciones que se repetirán al
se llama iteración al acto de repetir la ejecución menos una vez mientras la condición sea
de una secuencia de acciones. verdadera;
Instrucciones adicionales:
Estructuras de control de repetición while y do/ }
while while (condición);

En estas estructuras el conjunto de instrucciones Ejemplo:


que forman parte del bucle se repite mientras se #include <stdio.h>
cumple una determinada condición. La diferencia #include <conio.h>
entre ellas es que la estructura while checa la #include <math.h>
condición de continuación del ciclo al principio de void main(){
este, antes de ejecutar las condiciones del bucle. float a, b, c, raiz, x1, x2;
La estructura do/ while prueba la condición char resp;
después de ejecutar las instrucciones del bucle y do{
por lo tanto esta se ejecutará por lo menos una printf ("Programa para calcular las
vez. raices de una ecuacion cuadratica");
printf ("de la forma ax^2+bx+c=0");
La sintaxis de la estructura while es: printf ("\n\nIntroduce el valor de las
variables a, b y c en orden: \n");
while (condición) { scanf ("%f%f%f", &a,&b,&c);
Instrucciones que se repetirán mientras raiz=(b*b)-4*a*c;
la condición sea verdadera; if (raiz>=0){
Instrucciones adicionales; x1=(-b+sqrt(raiz))/(2*a);
} x2=(-b-sqrt(raiz))/(2*a);
printf ("\nLas raices son x1: %.2f y
Ejemplo: x2: %.2f", x1, x2);
#include <stdio.h> }
#include <conio.h> else
void main(){ printf ("\nLos valores que
int b = 99; introdujiste regresan raices imaginarias");
while ( b > 0 ){ printf ("\n\nDeseas resolver otra
printf ("\n%i bottle(s) of beer on the ecuacion? (s/n) ");
wall,", b); resp = getche();
printf ("\n%i bottle(s) of beer.", b); }
printf ("\nTake one down, pass it while (resp=='s' || resp=='S');
around,"); getch();
printf ("\n%i bottle(s) of beer on the }
wall.\n", b-1);
b--;

43
Manual de prácticas

Estructura de control de repetición for y for Materiales y reactivos


anidados
1.- Aplicación Visual Studio para creación de
La estructura for maneja de manera automática programas.
todos los detalles de repetición controlada por un 2.- Manual de prácticas
contador. La sintaxis de la estructura for es: 3.- Plumón
4.- Borrador
for (contador; condición; variación)
Secuencia de instrucciones que se
desean repetir;

Ejemplo:
#include <stdio.h>
#include <conio.h>
void main(){
int x=1, y=1, z=0, a;

printf("Serie de Fibonaci\n\n");
printf("Escribe el numero final: ");
scanf("%i",&a);
printf("%6i",x);
printf("%6i", y);
for (; z < a ;){
z=x+y;
if(z <= a){
printf("%6i",z);
x = y;
y = z;
}
}
getch();
}

Las 3 expresiones de la estructura for son


opcionales, si se omite la condición el compilador
de lenguaje C supone que esta es verdadera y
crea un ciclo infinito; si se omite el contador, la
variable de control se debe inicializar en otra
parte del programa antes del ciclo; y si se omite
la variación, la modificación de la variable de
control se calcula mediante instrucciones dentro
del bloque de la estructura for o bien se omite
porque no se requiere.

44
Manual de prácticas

Desarrollo de la Práctica

a) Inicie la aplicación de Visual Studio:

1) Clic en Botón Inicio


2) Todos los Programas
3) Clic en la Carpeta Microsoft Visual Studio
4) Clic en el acceso directo de Microsoft Visual Studio.

b) Crear nuevo proyecto de Visual Studio:

1) Clic en el Menú Archivo  Nuevo  Proyecto.

2) En la pantalla de la izquierda busque la plantilla de Visual C++ y de un


clic.
3) En las opciones de la derecha seleccione Aplicación de Consola.

4) En la parte inferior de la ventana busque la opción de Nombre y escriba


el nombre de su proyecto.
5) En la parte de ubicación seleccione el lugar donde quiera guardar su
proyecto.
6) De clic en Aceptar.

7) En caso de presentarse la ventana de asistente, de clic en Finalizar.

8) En la ventana resultante, complete el código solicitado.

45
Manual de prácticas

c) Escritura del código: Escriba los códigos de los ejemplos proporcionados

d) Compilación: Compile el código haciendo uso del menú “Generar”  “Generar Solución” (F6),
en caso de presentarse errores verifique el código.

e) Ejecución. Ejecute el código con la siguiente instrucción

a. Ir al menú Depurar  Iniciar Depuración (F5) ó de clic en


b. Al realizar esto se deberá mostrar la entrada de datos en pantalla, en caso contrario revise
el código e identifique los errores generados.

f) Modifique el código con nuevos parámetros. Realice cambios en los nombres de variables o funciones
para visualizar la nueva salida.

Resultados: Se deberá presentar un reporte que incluya lo siguiente:

a) Código en lenguaje C
b) Salidas de pantalla de la ejecución del programa.
c) Resultados y observaciones al modificar el código con nuevos valores

Evaluación Teórica

1.- Estructura de control que permite tomar decisiones en lenguaje C

a) while b) Do While c) for d) if

2.- Estructura de control que evalúa una expresión que puede tomar n valores distintos, tomando solo un
camino entre los n posibles según el resultado de la expresión.

a) while b) Switch c) for d) if

3.- Estructura de control que permite repetir un conjunto de instrucciones mientras se cumpla una
determinada condición

a) while b) Switch c) case d) if

4.- Tipo de ciclo que prueba la condición después de ejecutar las instrucciones del bucle y por lo tanto
esta se ejecutará por lo menos una vez.

a) while b) Switch c) for d) do while

5.- Tipo de ciclo que maneja de forma automática todos los detalles de repetición, controlada por un
contador.

a) while b) Switch c) for d) do while

46
Manual de prácticas

Evaluación Práctica

OBJETIVO Al finalizar la práctica, el alumno construirá programas que empleen decisiones y


operaciones en un lenguaje de alto nivel para la solución de problemas de
cómputo.
NOMBRE DEL
ALUMNO
INSTRUCCIONES A continuación se presentan los criterios que van a ser verificados en el desempeño
del alumno.
De la siguiente lista marque con una  aquellas actividades que cumple el alumno
durante el desarrollo de la práctica.

ACTIVIDAD CUMPLE NO CUMPLE


Identifica el tipo de estructura de control a utiliza dependiendo el ☐ ☐
tipo de problema a resolver
Hace uso adecuado de la estructura condicional if ☐ ☐
Hace uso adecuado de la estructura repetitiva while y do while ☐ ☐
Hace uso adecuado de la estructura repetitiva for ☐ ☐
El programa se ejecuta correctamente solucionando el problema ☐ ☐
planteado

CALIFICACIÓN FECHA PROFESOR

Conclusión

El conocimiento de las estructuras repetitivas y de selección de un lenguaje de alto nivel permitirá escribir y
diseñar programas con un control adecuado del flujo de datos esperado.

Bibliografía o Normas de referencia

Joyanes, Aguilar
Luis (2006) Programación en C++ Madrid España McGraw-Hill

Joyanes, Aguilar
Luis , Lucas Programación en C++,
(2006) Madrid España McGraw-Hill
Sánchez García serie SCHAUM

47
Manual de prácticas

Reglas de Seguridad e Higiene a Considerar

a) Reglas acceso a laboratorio:


b) EL alumno y profesor deberán portar credencial de forma visible con portagafete (No se permite
pegar con diurex, clip, etc).
c) Presentación personal de acuerdo al reglamento institucional. (ropa adecuada, cabello corto, sin
piercing, no se permite el uso de short ni minifalda, bermudas)
d) Es motivo de cancelación de la práctica o de participación en ella cuando el alumno:
e) Plagio de prácticas (Se cancelará a los alumnos involucrados).
f) Falte al reglamento del centro de cómputo.
g) Uso indebido del equipo de cómputo.
h) Uso de aplicaciones que no sean necesarias para el desarrollo de la práctica.

48
Manual de prácticas

“Funciones”

Objetivo

Al finalizar la práctica, el alumno diseñará programas en un lenguaje de alto nivel con funciones para el
manejo del flujo de la información y estructuración del programa.

Resumen del tema / habilidad a tratar

La práctica se desarrolla para asegurar el logro de la capacidad de desarrollo en lenguaje de programación


que involucra a los temas de funciones, con esta práctica fortalece la parte integral del alumno para
conocer la estructura de una función para estructurar un programa en un lenguaje de alto nivel.

Qué vas a aprender… Qué deberías saber…

Diseñar programas que empleen funciones. Describir y establecer los elementos que
conforman la estructura de un programa para
Verificar la sintaxis de los programas computadora.
elaborados para su depuración, corrigiendo la
sintaxis y mejorando el estilo de programación. Comprender el proceso para la generación de
un programa.

Interpretar las alternativas para decisión y


repetición que incorpora el lenguaje en uso.

Construir programas que empleen decisiones y


repeticiones.

Introducción

U na función es un fragmento de código que


realiza una tarea bien definida. Por ejemplo,
la función printf imprime por la salida estándar
La utilización de funciones nos permite dividir un
programa extenso en pequeños segmentos que
realizan tareas concretas. Probablemente, dentro
los argumentos que le pasamos. Al igual que esta de un mismo programa se realicen las mismas
función, existen otras funciones que realizan tareas varias veces, lo que se facilita mediante la
diversas tareas ya definidas en el estándar ANSI C utilización de funciones.
y que pueden ser utilizadas por el programador.
Este tipo de funciones predefinidas son Sin embargo, es probable que ciertas funciones
denominadas funciones de biblioteca. Sin no sean reutilizables, pero al usarlas se mejora la
embargo, cada programador puede definir sus legibilidad del programa. La filosofía en la que se
propias funciones de acuerdo a sus necesidades. base el diseño de C es el empleo de funciones.
Las funciones que define el programador son Por esta razón, un programa en C contiene al
conocidas como funciones de usuario. menos una función, la función main. Esta función

49
Manual de prácticas

es particular dado que la ejecución del programa • tipo_de_retorno: es el tipo del valor devuelto
se inicia con las instrucciones contenidas en su por la función, o, en caso de que la función no
interior. Una vez iniciada la ejecución del devuelva valor alguno, la palabra reservada void.
programa, desde la función main se puede llamar
a otras funciones y, posiblemente, desde estas • nombre_de_la_función: es el nombre o
funciones a otras. Otra particularidad de la identificador asignado a la función.
función main es que se llama directamente desde
el sistema operativo y no desde ninguna otra • lista_de_parámetros: es la lista de declaración
función. De esta manera, un programa en C sólo de los parámetros que son pasados a la función.
puede contener una función main. Éstos se separan por comas. Debemos tener en
cuenta que pueden existir funciones que no
Con el propósito de permitir un manejo eficiente utilicen parámetros.
de los datos, las funciones en C no se pueden
anidar. En otras palabras, una función no se • cuerpo_de_la_función: está compuesto por un
puede declarar dentro de otra función, por lo que conjunto de sentencias que llevan a cabo la tarea
todas las funciones son globales o externas, lo específica para la cual ha sido creada la función.
que hace que puedan llamarse desde cualquier
parte de un programa. Se puede acceder (llamar) • return expresión: mediante la palabra
a una determinada función desde cualquier parte reservada return, se devuelve el valor de la
de un programa. Cuando se llama a una función, función, en este caso representado por
se ejecutan las instrucciones que constituyen expresión.
dicha función. Una vez que se ejecutan las
instrucciones de la función, se devuelve el control Vamos a suponer que queremos crear un
del programa a la siguiente instrucción (si existe) programa para calcular el precio de un producto
inmediatamente después de la que provocó la basándose en el precio base del mismo y el
llamada a la función. impuesto aplicable. A continuación se muestra el
código fuente de dicho programa:
Cuando se accede a una función desde un
determinado punto del programa, se le puede #include <stdio.h>
pasar información mediante unos identificadores float precio(float base, float impuesto); /*
especiales conocidos como argumentos (también declaración */
denominados parámetros). Una vez que la main()
función procesa esta información, devuelve un {
valor mediante la instrucción return. float importe = 2.5;
float tasa = 0.07;
La estructura general de una función en C es la printf("El precio a pagar es: %.2f\n",
siguiente: precio(importe, tasa));
return 0;
tipo_de_retorno nombre_de_la_funcion }
(lista_de_parámetros)
{ float precio(float base, float impuesto) /*
cuerpo_de_la_función definición */
return expresión {
} float calculo;
calculo = base + (base * impuesto);
Donde: return calculo;
}

50
Manual de prácticas

El ejemplo anterior se compone de dos funciones, el tipo de dato que devuelve. Los prototipos de
la función requerida main y la función creada por las funciones que se utilizan en un programa se
el usuario precio, que calcula el precio de un incluyen generalmente en la cabecera del
producto tomando como parámetros su precio programa y presentan la siguiente sintaxis:
base y el impuesto aplicable. La función precio
calcula el precio de un producto sumándole el tipo_de_retorno
impuesto correspondiente al precio base y nombre_de_la_función(lista_de_parámetros);
devuelve el valor calculado mediante la sentencia
return. En el prototipo de una función no se especifican
las sentencias que forman parte de la misma, sino
Por otra parte, en la función main declaramos dos sus características. Por ejemplo:
variables de tipo float que contienen el precio int cubo(int numero);
base del producto y el impuesto aplicable. La
siguiente sentencia dentro de la función main es En este caso se declara la función cubo que
la llamada a la función de biblioteca printf, que recibe como parámetro una variable de tipo
recibe como parámetro una llamada a la función entero (numero) y devuelve un valor del mismo
precio, que devuelve un valor de tipo float. De tipo. En ningún momento estamos especificando
esta manera, la función printf imprime por la qué se va a hacer con la variable numero, sólo
salida estándar el valor devuelto por la función declaramos las características de la función cubo.
precio. Es importante tener en cuenta que las Cabe señalar que el nombre de los parámetros es
variables importe y tasa (argumentos) dentro de opcional y se utiliza para mejorar la comprensión
la función main tienen una correspondencia con del código fuente. De esta manera, el prototipo
las variables base e impuesto (parámetros) de la función cubo podría expresarse de la
dentro de la función precio respectivamente. siguiente manera:

En el ejemplo anterior, justo antes de la función int cubo(int);


main, se ha declarado la función precio. La
intención es que la función main sea capaz de Los prototipos de las funciones son utilizados por
reconocerla. Sin embargo, la definición de dicha el compilador para verificar que se accede a la
función aparece después de la función main. Las función de la manera adecuada con respecto al
definiciones de función pueden aparecer en número y tipo de parámetros, y al tipo de valor
cualquier orden dentro de uno o más ficheros de retorno de la misma. Ejemplos de prototipos
fuentes. Por otra parte, se ha añadido la de funciones:
sentencia return 0 al final de la función main,
puesto que se trata de una función como otra int potencia(int base, int exponente);
cualquiera y puede devolver un valor a quien le double area_rectangulo (float base, float altura);
ha llamado, en este caso el entorno en el que se int mayor(int, int);
ejecuta el programa. Generalmente, el valor 0 struct direccion entrada(void);
implica un fin de ejecución normal, mientras que
otro valor diferente implica un final de ejecución Las funciones de biblioteca se declaran en lo que
inusual o erróneo. se conocen como ficheros de cabecera o ficheros
.h (del inglés headers, cabeceras). Cuando se
Antes de empezar a utilizar una función se debe desea utilizar alguna de las funciones de
declarar. La declaración de una función se conoce biblioteca, se debe especificar el fichero .h en que
también como prototipo de la función. En el se encuentra declarada la función, al inicio de
prototipo de una función se tienen que nuestro programa. Por ejemplo, si deseamos
especificar los parámetros de la función, así como utilizar la función printf en nuestro programa,

51
Manual de prácticas

debemos incluir el fichero stdio.h que contiene el indica que la función no utiliza parámetros.
prototipo de esta función. Después del encabezado de la función, debe
aparecer, delimitado por llaves ({ y }), el cuerpo
Tras declarar una función, el siguiente paso es de la función compuesto por las sentencias que
implementarla. Generalmente, este paso se llevan a cabo la tarea específica de la función.
conoce como definición. Es precisamente en la Veamos la definición de la función cubo
definición de una función donde se especifican declarada en el apartado anterior:
las instrucciones que forman parte de la misma y
que se utilizan para llevar a cabo la tarea int cubo(int base)
específica de la función. La definición de una {
función consta de dos partes, el encabezado y el int potencia;
cuerpo de la función. En el encabezado de la potencia = base * base * base;
función, al igual que en el prototipo de la misma, return potencia;
se tienen que especificar los parámetros de la }
función, si los utiliza y el tipo de datos que
devuelve, mientras que el cuerpo se compone de A los argumentos que recibe la función también
las instrucciones necesarias para realizar la tarea se les suele llamar parámetros. Sin embargo,
para la cual se crea la función. La sintaxis de la algunos autores consideran como parámetros a la
definición de una función es la siguiente: lista de variables entre paréntesis utilizada en la
declaración o en la definición de la función, y
tipo_de_retorno como argumentos los valores utilizados cuando
nombre_de_la_función(lista_de_parámetros) se llama a la función. También se utilizan los
{ términos argumentos formales y argumentos
sentencias; reales, respectivamente, para hacer esta
} distinción.

El tipo_de_retorno representa el tipo de dato del Cuando un programa utiliza un número elevado
valor que devuelve la función. Este tipo debe ser de funciones, se suelen separar las declaraciones
uno de los tipos simples de C, un puntero a un de función de las definiciones de las mismas. Al
tipo de C o bien un tipo struct. De forma igual que con las funciones de biblioteca, las
predeterminada, se considera que toda función declaraciones pasan a formar parte de un fichero
devuelve un tipo entero (int). En otras palabras, si cabecera (extensión .h), mientras que las
en la declaración o en la definición de una definiciones se almacenan en un fichero con el
función no se especifica el tipo_de_retorno, el mismo nombre que el fichero .h, pero con la
compilador asume que devuelve un valor de tipo extensión .c. En algunas ocasiones, un
int. programador no desea divulgar el código fuente
de sus funciones. En estos casos, se suele
El nombre_de_la_funcion representa el nombre proporcionar al usuario el fichero de cabecera, el
que se le asigna a la función. Se recomienda que fichero compilado de las definiciones (con
el nombre de la función esté relacionado con la extensión .o, de objeto) y una documentación de
tarea que lleva a cabo. En caso de que la función las mismas. De esta manera, cuando el usuario
utilice parámetros, éstos deben estar listados desea hacer uso de cualquiera de las funciones,
entre paréntesis a continuación del nombre de la sabe qué argumentos pasarle y qué tipo de datos
función, especificando el tipo de dato y el devuelve, pero no tiene acceso a la definición de
nombre de cada parámetro. En caso de que una las funciones.
función no utilice parámetros, se pueden dejar
los paréntesis vacíos o incluir la palabra void, que

52
Manual de prácticas

Devolución de valores Acceso a una función

Una función en C solo puede devolver un valor. Para que una función realice la tarea para la cual
Para devolver dicho valor, se utiliza la palabra fue creada, debemos acceder o llamar a la
reservada return cuya sintaxis es la siguiente: misma. Cuando se llama a una función dentro de
una expresión, el control del programa se pasa a
Return <expresión>; ésta y sólo regresa a la siguiente expresión de la
que ha realizado la llamada cuando encuentra
Donde <expresión> puede ser cualquier tipo de una instrucción return o, en su defecto, la llave
dato salvo un array o una función. Además, el de cierre al final de la función.
valor de la expresión debe coincidir con el tipo de
dato declarado en el prototipo de la función. Por Generalmente, se suele llamar a las funciones
otro lado, existe la posibilidad de devolver desde la función main, lo que no implica que
múltiples valores mediante la utilización de dentro de una función se pueda acceder a otra
punteros o estructuras. Dentro de una función función. Cuando queremos acceder a una
pueden existir varios return dado que el función, debemos hacerlo mediante su nombre
programa devolverá el control a la sentencia que seguido de la lista de argumentos que utiliza
ha llamado a la función en cuanto encuentre la dicha función encerrados entre paréntesis. En
primera sentencia return. Si no existen return, la caso de que la función a la que se quiere acceder
ejecución de la función continúa hasta la llave del no utilice argumentos, se deben colocar los
final del cuerpo de la función (}). paréntesis vacíos.

Hay que tener en cuenta que existen funciones Cualquier expresión puede contener una llamada
que no devuelven ningún valor. El tipo de dato a una función. Esta llamada puede ser parte de
devuelto por estas funciones puede ser void, una expresión simple, como una asignación, o
considerado como un tipo especial de dato. En puede ser uno de los operandos de una expresión
estos casos, la sentencia return se puede escribir más compleja. Por ejemplo:
como return o se puede omitir directamente. Por
ejemplo: a = cubo(2);
calculo = b + c / cubo(3);
void imprime_cabecera();
{ Materiales y reactivos
printf("esta función sólo imprime esta línea");
return; 1.- Aplicación Visual Studio para creación de
} programas.
2.- Manual de prácticas
equivale a: 3.- Plumón
4.- Borrador
void imprime_cabecera();
{
printf("esta función sólo imprime esta línea");
}

53
Manual de prácticas

Desarrollo de la Práctica

a) Inicie la aplicación de Visual Studio:

1) Clic en Botón Inicio


2) Todos los Programas
3) Clic en la Carpeta Microsoft Visual Studio.
4) Clic en el acceso directo de Microsoft Visual Studio.

b) Crear nuevo proyecto de Visual Studio:

1. Clic en el Menú Archivo  Nuevo  Proyecto.

2. En la pantalla de la izquierda busque la plantilla de Visual C++ y de un clic.


3. En las opciones de la derecha seleccione Aplicación de Consola.

4. En la parte inferior de la ventana busque la opción de Nombre y escriba el


nombre de su proyecto.
5. En la parte de ubicación seleccione el lugar donde quiera guardar su
proyecto.
6. De clic en Aceptar.

7. En caso de presentarse la ventana de asistente, de clic en Finalizar.

8. En la ventana resultante, complete el código solicitado.

54
Manual de prácticas

c) Escritura del código: Escriba el siguiente código


a. El siguiente programa calcula el cubo de los números del 1 al 5 utilizando una función
definida por el usuario.

#include <stdio.h>
int cubo(int base);
main()
{
int numero;
for(numero=1; numero<=5; numero++){
printf("El cubo del número %d es %d\n", numero, cubo(numero));
}
return 0;
}
int cubo(int base)
{
int potencia;
potencia = base * base * base;
return potencia;
}
d) Compilación: Compile el código haciendo uso del menú “Generar”  “Generar Solución” (F6), en
caso de presentarse errores verifique el código.

e) Ejecución. Ejecute el código con la siguiente instrucción:

b) Ir al menú Depurar  Iniciar Depuración (F5) ó de clic en


c) Al realizar esto se deberá mostrar la entrada de datos en pantalla, en caso contrario revise el
código e identifique los errores generados.

• Modifique el código con nuevos parámetros. Agregue 4 funciones que realicen las operaciones
básicas de suma, resta, multiplicación y división con paso de 2 parámetros.

Resultados: Se deberá presentar un reporte que incluya lo siguiente:

a) Código en lenguaje C
b) Salidas de pantalla de la ejecución del programa.
c) Resultados y observaciones al modificar el código con nuevos valores

Evaluación Teórica

1.- Es un fragmento de código que realiza una tarea bien definida

a) Parámetro b) Programa c) Función d) printf()

55
Manual de prácticas

2.- Instrucción que permite devolver un valor desde una función.

a) return b) main( ) c) scanf( ) d) printf()

3.- Cuando pasamos información a una función por medio de unos identificadores especiales, decimos
que estamos haciendo uso de:

a) return b) parámetros c) tipo de retorno d) función

4.- Elemento de una función que siempre tiene que estar presente:

a) Lista de parámetros b) variables globales


c) nombre de la función d) Todas las anteriores

5.- Ejemplo de una función declarada correctamente que devuelve un valor entero

a) int nombreFuncion() { return 0; } b) funcion(): int { return 1 }


c) int nombreFuincion() { } d) float nombreFuncion() { return 0; }

Evaluación Práctica

OBJETIVO Al finalizar la práctica, el alumno diseñará programas en un lenguaje de alto nivel


con funciones para el manejo del flujo de la información y estructuración del
programa.
NOMBRE DEL
ALUMNO
INSTRUCCIONES A continuación se presentan los criterios que van a ser verificados en el desempeño
del alumno.
De la siguiente lista marque con una  aquellas actividades que cumple el alumno
durante el desarrollo de la práctica.

ACTIVIDAD CUMPLE NO CUMPLE


Hace uso adecuado de la estructura de las funciones ☐ ☐
Identifica que parte del programa puede pasar a una función ☐ ☐
Las funciones utilizadas se ejecutan correctamente ☐ ☐
Hace uso adecuado de los valores que regresan las funciones ☐ ☐
utilizadas
El programa se ejecuta correctamente haciendo uso de las ☐ ☐
funciones.

CALIFICACIÓN FECHA PROFESOR

56
Manual de prácticas

Conclusión

Estructurar un programa haciendo uso de funciones permite al desarrollador tener un excelente control del
contenido del diseño del software, ya que líneas de código que se repiten dentro del mismo podrán ser
agrupadas y diseñadas en un función la cual pueda ser llamada desde cualquier lugar del flujo del programa
en el cual se le solicite. Esto permitirá eleva el nivel y diseño de programas con un control adecuado del
flujo de datos esperado.

Bibliografía o Normas de referencia

Joyanes, Aguilar
Luis (2006) Programación en C++ Madrid España McGraw-Hill

Joyanes, Aguilar
Luis , Lucas Programación en C++,
(2006) Madrid España McGraw-Hill
Sánchez García serie SCHAUM

Reglas de Seguridad e Higiene a Considerar

a) Reglas acceso a laboratorio:


b) EL alumno y profesor deberán portar credencial de forma visible con portagafete (No se permite
pegar con diurex, clip, etc).
c) Presentación personal de acuerdo al reglamento institucional. (ropa adecuada, cabello corto, sin
piercing, no se permite el uso de short ni minifalda, bermudas)
d) Es motivo de cancelación de la práctica o de participación en ella cuando el alumno:
e) Plagio de prácticas (Se cancelará a los alumnos involucrados).
f) Falte al reglamento del centro de cómputo.
g) Uso indebido del equipo de cómputo.
h) Uso de aplicaciones que no sean necesarias para el desarrollo de la práctica.

57
Manual de prácticas

Unidad 3 - Tópicos específicos


“Arreglos”

Objetivo

Al finalizar la práctica, el alumno diseñará programas que implique el manejo de arreglos de una o más
dimensiones en un lenguaje de alto para el manejo del flujo de la información y estructuración del
programa.

Resumen del tema / habilidad a tratar

La práctica se desarrolla para asegurar el logro de la capacidad de desarrollo en lenguaje de programación


que involucra a los temas de arreglos, con esta práctica fortalece la parte integral del alumno para conocer
la estructura y funcionamiento de un arreglo unidimensional y bidimensional para estructurar un programa
en un lenguaje de alto nivel.

Qué vas a aprender… Qué deberías saber…

Describir la forma de declaración de arreglos de Interpretar las alternativas para decisión y


una o más dimensiones. repetición que incorpora el lenguaje en uso.

Integrar a un programa arreglos de una o más Construir programas que empleen decisiones y
dimensiones repeticiones.

Diseñar programas que empleen funciones.

Verificar la sintaxis de los programas


elaborados para su depuración, corrigiendo la
sintaxis y mejorando el estilo de programación.

Introducción

L os arreglos son una colección de variables del


mismo tipo que se referencian utilizando un
nombre común. Un arreglo consta de posiciones
El formato para
unidimensional es:
declarar un arreglo

de memoria contigua. La dirección más baja tipo nombre_arr [ tamaño ]


corresponde al primer elemento y la más alta al
último. Un arreglo puede tener una o varias Por ejemplo, para declarar un arreglo de enteros
dimensiones. Para acceder a un elemento en llamado listanum con diez elementos se hace de
particular de un arreglo se usa un índice. la siguiente forma:

int listanum[10];

58
Manual de prácticas

En C, todos los arreglos usan cero como índice tabladenums[2][3] = 15; /* Asigna 15 al
para el primer elemento. Por tanto, el ejemplo elemento de la 3ª fila y la 4ª columna*/
anterior declara un arreglo de enteros con diez num = tabladenums[25][16];
elementos desde listanum[0] hasta listanum[9].
A continuación se muestra un ejemplo que asigna
La forma como pueden ser accesados los al primer elemento de un arreglo bidimensional
elementos de un arreglo, es de la siguiente cero, al siguiente 1, y así sucesivamente.
forma:
main()
listanum[2] = 15; /* Asigna 15 al 3er elemento del {
arreglo listanum*/ int t,i,num[3][4];
num = listanum[2]; /* Asigna el contenido del 3er
elemento a la variable num */ for(t=0; t<3; ++t)
for(i=0; i<4; ++i)
El lenguaje C no realiza comprobación de num[t][i]=(t*4)+i*1;
contornos en los arreglos. En el caso de que
sobrepase el final durante una operación de for(t=0; t<3; ++t)
asignación, entonces se asignarán valores a otra {
variable o a un trozo del código, esto es, si se for(i=0; i<4; ++i)
dimensiona un arreglo de tamaño N, se puede printf("num[%d][%d]=%d",t,i,num[t][i]);
referenciar el arreglo por encima de N sin printf("\n");
provocar ningún mensaje de error en tiempo de }
compilación o ejecución, incluso aunque
probablemente se provoque el fallo del }
programa. Como programador se es responsable
de asegurar que todos los arreglos sean lo En C se permite la inicialización de arreglos,
suficientemente grandes para guardar lo que debiendo seguir el siguiente formato:
pondrá en ellos el programa.
tipo nombre_arr[ tam1 ][ tam2 ] ... [ tamN] =
C permite arreglos con más de una dimensión , el {lista-valores};
formato general es:
Por ejemplo:
tipo nombre_arr [ tam1 ][ tam2 ] ... [ tamN];
int i[10] = {1,2,3,4,5,6,7,8,9,10};
Por ejemplo un arreglo de enteros int num[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
bidimensionales se escribirá como:

int tabladenums[50][50]; Materiales y reactivos

Observar que para declarar cada dimensión lleva 1.- Aplicación Visual Studio para creación de
sus propios paréntesis cuadrados. programas.
2.- Manual de prácticas
Para acceder los elementos se procede de forma 3.- Plumón
similar al ejemplo del arreglo unidimensional, 4.- Borrador
esto es:

59
Manual de prácticas

Desarrollo de la Práctica

a) Inicie la aplicación de Visual Studio:

1) Clic en Botón Inicio


2) Todos los Programas
3) Clic en la Carpeta Microsoft Visual Studio.
4) Clic en el acceso directo de Microsoft Visual Studio.

b) Crear nuevo proyecto de Visual Studio:

1. Clic en el Menú Archivo  Nuevo  Proyecto.

2. En la pantalla de la izquierda busque la plantilla de Visual C++ y de un clic.


3. En las opciones de la derecha seleccione Aplicación de Consola.

4. En la parte inferior de la ventana busque la opción de Nombre y escriba el


nombre de su proyecto.
5. En la parte de ubicación seleccione el lugar donde quiera guardar su
proyecto.
6. De clic en Aceptar.

7. En caso de presentarse la ventana de asistente, de clic en Finalizar.

8. En la ventana resultante, complete el código solicitado.

60
Manual de prácticas

c) Escritura del código: Escriba el siguiente código

1. #include <stdio.h>
2. #include <conio.h>
3.
4. #define MAX 12
5.
6. void main(){
7.
8. int a[MAX], b[MAX], c[MAX], i, j=0, k=0;
9.
10.
11.
12. printf ("Programa que almacena 12 numeros en un arreglo ");
13. printf ("y luego los separa en dos de acuerdo a su valor.\n");
14.
15. for (i=0; i < MAX; i++){
16. printf ("Introduce el valor %i: ", i+1);
17. scanf ("%i", &a[i]);
18. }
19.
20. for (i=0; i < MAX; i++)
21.
22. if (a[i] < MAX){
23.
24. b[j] = a[i];
25. j++;
26. }
27.
28. else {
29.
30. c[k] = a[i];
31. k++;
32. }
33.
34. printf ("\nLos numeros quedan asi:\n\n");
35.
36. for (i=0; i < j; i++)
37. printf ("%i\n", b[i]);
38.
39. for (i=0; i < k; i++)
40. printf ("\t%i\n", c[i]);
41.
42. getch();
43. }

d) Compilación: Compile el código haciendo uso del menú “Generar”  “Generar Solución” (F6), en
caso de presentarse errores verifique el código.

e) Ejecución. Ejecute el código con la siguiente instrucción:

a) Ir al menú Depurar  Iniciar Depuración (F5) ó de clic en

61
Manual de prácticas

b) Al realizar esto se deberá mostrar la entrada de datos en pantalla, en caso contrario revise el código
e identifique los errores generados.

f) Modifique el código con nuevos parámetros. Modifique los arreglos de manera que se puedan manejar
diferentes tipos de datos.

Resultados: Se deberá presentar un reporte que incluya lo siguiente:

a. Código en lenguaje C
b. Salidas de pantalla de la ejecución del programa.
c. Resultados y observaciones al modificar el código con nuevos valores

Evaluación Teórica

1.- Es una colección de variables del mismo tipo que se referencian utilizando un nombre común

a) Variable b) Función c) main() d) Arreglo

2.- El primer elemento de un arreglo tiene el índice:

a) 1 b) 0 c) A d) Depende del valor asignado

3.- Ejemplo de arreglo unidimensional:

a) Arreglo[4] b) Arreglo(4) c) Arreglo[0][0] d) Arreglo{4}

4.- Declaración de un arreglo antero de 5 elementos:

a) int nombre{5}; b) int nombre(5); c) int nombre[5]; d) int nombre = 5;

5.- Asignación del número 49 a un arreglo entero en la posición 5.

a) nombre{5} = 49; b) nombre(5) = 49; c) nombre[5] = 49; d) nombre[49] = 5;

62
Manual de prácticas

Evaluación Práctica

OBJETIVO Estructurar un programa haciendo uso de funciones permite al desarrollador tener


un excelente control del contenido del diseño del software, ya que líneas de código
que se repiten dentro del mismo podrán ser agrupadas y diseñadas en un función la
cual pueda ser llamada desde cualquier lugar del flujo del programa en el cual se le
solicite. Esto permitirá eleva el nivel y diseño de programas con un control adecuado
del flujo de datos esperado.
NOMBRE DEL
ALUMNO
INSTRUCCIONES A continuación se presentan los criterios que van a ser verificados en el desempeño del
alumno.
De la siguiente lista marque con una  aquellas actividades que cumple el alumno
durante el desarrollo de la práctica.

ACTIVIDAD CUMPLE NO CUMPLE


Los arreglos están declarados correctamente, según el tipo de ☐ ☐
información a manejar.
Hace uso adecuado de ciclos para el manejo de los arreglos ☐ ☐
Todos los elementos del arreglo son utilizados en la solución del ☐ ☐
problema.
Maneja adecuadamente los limites máximos de los arreglos ☐ ☐
El programa se ejecuta sin errores y resuelve el problema ☐ ☐

CALIFICACIÓN FECHA PROFESOR

Conclusión

El manejo de arreglos permite manipular datos en memoria, los cuales se perderían si se manejan con
estructuras repetitivas en una sola variable de lectura. De esta forma se tendrá comprendido como es el
manejo de registros en un circuito electrónico, por lo que se podrán definir áreas exclusivas de memoria en
las cuales se almacenarán los datos que serán utilizados posteriormente por un proceso en particular.

Bibliografía o Normas de referencia

Joyanes, Aguilar
Luis (2006) Programación en C++ Madrid España McGraw-Hill

Joyanes, Aguilar
Luis , Lucas Programación en C++,
(2006) Madrid España McGraw-Hill
Sánchez García serie SCHAUM

63
Manual de prácticas

Reglas de Seguridad e Higiene a Considerar

a) Reglas acceso a laboratorio:


b) EL alumno y profesor deberán portar credencial de forma visible con portagafete (No se permite
pegar con diurex, clip, etc).
c) Presentación personal de acuerdo al reglamento institucional. (ropa adecuada, cabello corto, sin
piercing, no se permite el uso de short ni minifalda, bermudas)
d) Es motivo de cancelación de la práctica o de participación en ella cuando el alumno:
e) Plagio de prácticas (Se cancelará a los alumnos involucrados).
f) Falte al reglamento del centro de cómputo.
g) Uso indebido del equipo de cómputo.
h) Uso de aplicaciones que no sean necesarias para el desarrollo de la práctica.

64
Manual de prácticas

Práctica Proyecto Final “Control de puerto paralelo haciendo uso del


lenguaje de programación C”

Objetivo

Al finalizar la práctica el alumno diseñará un circuito con el protoboard que permita la comunicación entre
el puerto paralelo de la computadora y el circuito haciendo uso de un programa escrito en lenguaje de alto
nivel C.

Resumen del tema / habilidad a tratar

La práctica se desarrolla para asegurar el logro de la capacidad de desarrollo en lenguaje de programación


que involucra a los temas de Arreglos, Cadenas y Manipulación de bits, con esta práctica fortalece la parte
integral del alumno para conocer la importancia de manejar y diseñar programas para el acceso a circuitos
electrónicos.

Qué vas a aprender… Qué deberías saber…

Describir las operaciones y aplicaciones para Interpretar las alternativas para decisión y
manipulación de bits en el lenguaje de repetición que incorpora el lenguaje en uso.
programación.
Construir programas que empleen decisiones y
Diseñar programas que incorporen la repeticiones.
manipulación de bits.
Verificar la sintaxis de los programas Diseñar programas que empleen funciones.
elaborados para su depuración, corrigiendo la
sintaxis y mejorando el estilo de programación. Describir la forma de declaración de arreglos de
una o más dimensiones.

Integrar a un programa arreglos de una o más


dimensiones

Introducción

U n puerto paralelo es una interfaz entre una


computadora y un periférico, cuya principal
característica es que los bits de datos viajan
El cable paralelo es el conector físico entre el
puerto paralelo y el dispositivo periférico. En un
puerto paralelo habrá una serie de bits de control
juntos, enviando un paquete de byte a la vez. Es en vías aparte que irán en ambos sentidos por
decir, se implementa un cable o una vía física caminos distintos.
para cada bit de datos formando un bus.
Mediante el puerto paralelo podemos controlar En contraposición al puerto paralelo está el
también periféricos como focos, motores entre puerto serie, que envía los datos bit a bit por el
otros dispositivos, adecuados para mismo hilo.
automatización.

65
Manual de prácticas

El puerto paralelo más conocido es el puerto de • LPT2 = 0x278


impresora (que cumplen más o menos la norma
IEEE 1284, también denominados tipo La estructura consta de tres registros: de control,
Centronics) que destaca por su sencillez y que de estado y de datos.
transmite 8 bits. Se ha utilizado principalmente
para conectar impresoras, pero también ha sido • El registro de control es un bidireccional
usado para programadores EPROM, escáner, de 4 bits, con un bit de configuración que
interfaces de red Ethernet a 10 Mb, unidades ZIP, no tiene conexión al exterior, su dirección
SuperDisk y para comunicación entre dos PC. en el LPT1 es 0x37A.
• El registro de estado, se trata de un
El puerto paralelo de las computadoras, de registro de entrada de información de 5
acuerdo a la norma Centronics, está compuesto bits, su dirección en el LPT1 es 0x379.
por un bus de comunicación bidireccional de 8 • El registro de datos, se compone de 8
bits de datos, además de un conjunto de líneas bits, es bidireccional. Su dirección en el
de protocolo. Las líneas de comunicación cuentan LPT1 es 0x378.
con un retenedor que mantiene el último valor
que les fue escrito hasta que se escribe un nuevo
dato, las características eléctricas son: Materiales y reactivos

• Tensión de nivel alto: 3,3 o 5 V. 1.- Compilador de C


• Tensión de nivel bajo: 0 V. 2.- Paquetería de desarrollo build-essential
• Intensidad de salida máxima: 2,6 mA. 3.- Conector macho db-25
• Intensidad de entrada máxima: 24 mA. 4.- 8 leds
5.- Circuito integrado 74ls244
Los sistemas operativos basados en DOS y 6.- 4 resistores de 220 Ohms (para protección de
compatibles gestionan las interfaces de puerto los leds)
paralelo con los nombres LPT1, LPT2 y así 7.- Cautin
sucesivamente, Unix en cambio los nombra como 8.- Pasta y soldadura
/dev/lp0, /dev/lp1, y demás. Las direcciones base 9.- Lentes de protección
de los dos primeros puertos son: 10.- Diagrama electrónico

• LPT1 = 0x378.

Desarrollo de la Práctica

1. Lectura del diagrama: Realice la lectura del diagrama siguiente verificando cada uno de sus
componentes y llevarlo al diseño en el protoboard.

66
Manual de prácticas

2. Escritura del código: Escriba el siguiente código y realice las modificaciones adecuadas.
Guarde el archivo como led.c

#include <stdio.h> //esta librería permite el uso de printf y scanf entre otras
#include <stdlib.h> //esta librería permite el uso de exit();

#include <sys/io.h> //esta librería permite el manejo de puertos en linux con lenguaje C
#define puerto 0x378 //definimos el puerto a utilizar

int main (void)


{
unsigned int p = 0x01; // aquí es donde tu dices cuantos leds prenderán, en este caso es uno en
hexadecimal

//Aquí empieza el código del manejo de error


if(ioperm(puerto,1,1)) //en esta línea abrimos el puerto y le damos permiso de usarlo
{
perror("Se ha encontrado el siguiente error: "); //si no somos ROOT mostrará este error
exit(1); //terminará el programa mostrando el mensaje de error
}

outb(p,puerto); // esta es la instrucción que pone un número en BINARIO en la salida del puerto,
con esta es con la que manejamos ya la salida en el puerto

67
Manual de prácticas

if(ioperm(puerto,1,0)) //cerramos los permisos del uso al puerto


{
perror("Se ha encontrado el siguiente error: "); //volvemos a manejar un error en caso de...
exit(1); // salimos mostrando mensaje de error
}
exit(0); //terminamos el programa
}

9. Compilación: Compile el código


10. Ejecución. Ejecute el código

Al realizar esto se deberá encender un led, en caso contrario revise las conexiones.

11. Modifique el código con nuevos parámetros. Cambie el valor de la variable “p” por otro en
formato hexadecimal, por ejemplo, si queremos que se enciendan todos los leds, deberemos darle
el siguiente valor.

Unsigned int p=0x07;

Resultados: Se deberá presentar un reporte que incluya lo siguiente:

a) Código en lenguaje C
b) Prototipo diseñado en base al circuito propuesto.
c) Resultados y observaciones al modificar el código con nuevos valores

Evaluación Teórica

1.- Es una interfaz entre una computadora y un periférico, cuya principal característica es que los bits de
datos viajan juntos, enviando un paquete de byte a la vez.

a) Puerto paralelo b) Puerto serie c) Puerto USB d) IEEE 1284

2.- Es una interfaz entre una computadora y un periférico, cuya principal característica es que envía los
datos bit a bit por el mismo hilo.

a) Puerto paralelo b) Puerto serie c) Puerto USB d) IEEE 1284

3.- Ejemplo de nombres de los puertos paralelos en sistemas operativos basados en DOS:

a) Puerto paralelo b) LPT1, LPT2 c) /dev/lp0, /dev/lp1 d) LCP1, LCP2

4.- Son ejemplos de dirección en hexadecimal de los puertos paralelos:

a) LPT1, LPT2 b) /dev/lp0, /dev/lp1 c) 0x378, 0x278 d) 0r378, 0r278

5.- Es el conector físico entre el puerto paralelo y el dispositivo periférico:


a) Cable serie b) Cable IEEE c) Cable USB d) Cable paralelo

68
Manual de prácticas

Evaluación Práctica

OBJETIVO Al finalizar la práctica el alumno diseñará un circuito con el protoboard que permita
la comunicación entre el puerto paralelo de la computadora y el circuito haciendo
uso de un programa escrito en lenguaje de alto nivel C.
NOMBRE DEL
ALUMNO
INSTRUCCIONES A continuación se presentan los criterios que van a ser verificados en el desempeño
del alumno.
De la siguiente lista marque con una  aquellas actividades que cumple el alumno
durante el desarrollo de la práctica.

ACTIVIDAD CUMPLE NO CUMPLE


El cable paralelo esta construido correctamente ☐ ☐
El programa se ejecuta sin errores ☐ ☐
Todos los elementos del circuito están conectados correctamente ☐ ☐
La estructura del programa es clara ☐ ☐
El programa manipula eficientemente el circuito ☐ ☐

CALIFICACIÓN FECHA PROFESOR

Conclusión

El uso de puerto paralelo para acceso a dispositivos electrónicos permite que la comunicación entre ellos
sea de manera fácil y transparente al conocer cada uno de los datos que deben ser transferidos por el
medio.
Es por esto que en esta práctica se obtuvo la comunicación sencilla al accesar al medio, por lo que después
de esta actividad se podrán realizar diversas operaciones en las cuales el alumno pueda modificar y probar
nuevas opciones de entrada de datos para la manipulación del medio electrónico.

Bibliografía o Normas de referencia

Joyanes, Aguilar
Luis (2006) Programación en C++ Madrid España McGraw-Hill

Joyanes, Aguilar
Luis , Lucas Programación en C++,
(2006) Madrid España McGraw-Hill
Sánchez García serie SCHAUM

69
Manual de prácticas

Reglas de Seguridad e Higiene a Considerar

a) Reglas acceso a laboratorio:


b) EL alumno y profesor deberán portar credencial de forma visible con portagafete (No se permite
pegar con diurex, clip, etc).
c) Presentación personal de acuerdo al reglamento institucional. (ropa adecuada, cabello corto, sin
piercing, no se permite el uso de short ni minifalda, bermudas)
d) Es motivo de cancelación de la práctica o de participación en ella cuando el alumno:
e) Plagio de prácticas (Se cancelará a los alumnos involucrados).
f) Falte al reglamento del centro de cómputo.
g) Uso indebido del equipo de cómputo.
h) Uso de aplicaciones que no sean necesarias para el desarrollo de la práctica.

70

Potrebbero piacerti anche