Está en la página 1de 57

INSTITUTO TECNOLGICO SUPERIOR DE LOS ROS

INGENIERA ELECTROMECNICA

1ER SEMESTRE GRUPO: B

INTRODUCCIN A LA PROGRAMACIN

PROFESOR: ING. LAZARO ARCOS CASTILLO

ALUMNOS: LUIS FREDY SNCHEZ DAZ

ENRI RAMN PREZ PAREDES

BALANCN, TABASCO, NOVIEMBRE DE 2014.

Pgina | 1
INTRODUCCIN

El lenguaje C es un lenguaje de programacin estructurado. Lo que quiere decir que el


cdigo o algoritmo esta ordenado o estructurado.

As pues es fcilmente diferenciable de un lenguaje orientado a objetos.

El lenguaje C es uno de los lenguajes ms rpidos y potentes que existen hoy en da con
una sintaxis sumamente compacta y de alta portabilidad.

La programacin modular es un paradigma de programacin que consiste en dividir un


programa en mdulos o subprogramas con el fin de hacerlo ms legible y manejable.

Se presenta histricamente como una evolucin de la programacin estructurada para


solucionar problemas de programacin ms grandes y complejos de lo que sta puede
resolver.

Al aplicar la programacin modular, un problema complejo debe ser dividido en varios


subproblemas ms simples, y estos a su vez en otros subproblemas ms simples. Esto debe
hacerse hasta obtener sus problemas lo suficientemente simples como para poder ser
resueltos fcilmente con algn lenguaje de programacin. sta tcnica se llama refinamiento
sucesivo, divide y vencers anlisis descendente (Top-Down).

Un mdulo es cada una de las partes de un programa que resuelve uno de los su problemas
en que se divide el problema complejo original. Cada uno de estos mdulos tiene una tarea
bien definida y algunos necesitan de otros para poder operar. En caso de que un mdulo
necesite de otro, puede comunicarse con ste mediante una interfaz de comunicacin que
tambin debe estar bien definida.

Los puertos de comunicacin de la PC son de particular inters para el estudioso de la


electrnica ya que le permiten utilizar una computadora personal para controlar todo
tipo circuitos electrnicos utilizados, principalmente, en actividades de automatizacin de
procesos, adquisicin de datos, tareas repetitivas y otras actividades que demandan
precisin. ste artculo es el primero de una serie que analizar diversos usos para el puerto
paralelo de la PC.

Pgina | 2
Contenido
INTRODUCCIN ................................................................................................................................... 2
Unidad 1 Introduccin a la programacin por computadora........................................................... 4
1.1. Desarrollo histrico. ................................................................................................................... 4
1.2. Componentes bsicos de una computadora. ........................................................................ 5
1.3. Introduccin a los Algoritmos. .................................................................................................. 8
1.4. Diagramas de flujo................................................................................................................... 11
1.5. Metodologa para la solucin de problemas basados en computadora.......................... 13
Unidad 2 El lenguaje y su entorno integrado de desarrollo. ......................................................... 15
2.1. Introduccin al lenguaje y a su entorno de desarrollo. ...................................................... 15
2.2. Estructuras condicionales. ..................................................................................................... 24
2.3. Variables y constantes ............................................................................................................ 26
2.4. Operadores aritmticos, lgicos y relacionales .................................................................. 28
2.5. Estructuras selectivas (uso y aplicacin). ............................................................................ 29
2.6. Bucles repetitivos (uso y aplicacin). ................................................................................... 30
2.7. Casos de uso en solucin de problemas aplicada a la industria. .................................... 31
Unidad 3 Programacin modular ...................................................................................................... 32
3.1 Declaracin de funciones ........................................................................................................ 32
3.1.1. Funciones Simples ........................................................................................................... 35
3.1.2. Funciones Con parmetros............................................................................................. 35
3.2 Uso de bibliotecas de funciones ............................................................................................. 36
3.2.1. Entrada y salida ................................................................................................................ 38
3.2.2. Archivos ............................................................................................................................. 42
3.2.3. Cadenas ............................................................................................................................. 45
Unidad 4 Programacin de interfaces. ............................................................................................. 49
4.1 Programacin de puertos de la computadora. ..................................................................... 49
4.2 Elaboracin de interfaces. ....................................................................................................... 50
4.3 Control de interfaces a travs de computadora. .................................................................. 52
4.4 Aplicacin en la industria. ........................................................................................................ 53
BIBLIOGRAFA .................................................................................................................................... 57

Pgina | 3
Unidad 1 Introduccin a la programacin por computadora.

1.1. Desarrollo histrico.


La programacin no es algo tan nuevo como se cree; por el contrario, comenz
mucho tiempo atrs, cuando el hombre vio en las mquinas una fabulosa
oportunidad para ayudarlo a resolver sus problemas matemticos, cientficos y,
obviamente, militares. All por el ao 1834, Charles Babbage desarroll una
aparatosa mquina mecnica: la Mquina Analtica (Analytical Engine), como fue
bautizada.

Era una computadora mecnica de propsito general, ms que nada utilizada para
realizar clculos de todo tipo. La mquina trabajaba con tarjetas perforadas para
recibir instrucciones, y segn los orificios estratgicamente ubicados en la tarjeta, los
dispositivos mecnicos de aquel engendro lean los datos de entrada y operaban
hasta llegar al resultado.

El concepto de tarjeta perforada se sigui utilizando durante mucho tiempo ms,


incluso hasta hace algunas dcadas. Si bien los mecanismos de lectura mejoraron, la
esencia era la misma, y aunque no tuve la posibilidad de trabajar con aquellos
mamotretos, siempre recuerdo a mis profesores contando sus hazaas con la
programacin de mquinas con tarjetas perforadas...

Pero Babbage no trabajaba solo en el desarrollo de su mquina. Lo ayudaba su


asistente, la seorita Ada Augusta Byron, una joven muy inteligente, que
comprenda muy bien el funcionamiento de la mquina y el poder que podra
alcanzar (seguramente, ms de lo que Babbage supona). Luego de unos viajes por
el exterior, Ada se dispuso a documentar su funcionamiento, basndose en unas
lecturas de Babbage. Lo interesante fue que ella quiso agregar algunas notas de su
autora, pero se entusiasm tanto, que termin describiendo cmo se podra usar la
mquina para mucho ms que simples clculos numricos... Hasta sugiri que se
podra utilizar para crear msica artificial, alimentndola con reglas de armona y
meloda. En cierto modo, estaba describiendo cmo programar el aparato, y por
esa razn, para alegra de todas nuestras lectoras, se considera a la seorita Ada la

Pgina | 4
primera programadora del mundo. Varias dcadas despus, existi un lenguaje de
programacin llamado ADA, en honor a su trabajo.

Pero esto no tom vuelo sino hasta despus de la invencin de las computadoras
digitales. En 1954 se cre FORTRAN, el primer lenguaje de programacin de alto
nivel, que inclua un compilador. Como estaba muy orientado a la ingeniera, le dej
el campo abierto a COBOL, que durante mucho tiempo fue el principal lenguaje
usado para desarrollar aplicaciones de negocios. Seguramente hoy queden restos en
algn banco pueblerino.

1.2. Componentes bsicos de una computadora.

Vista expandida de una computadora personal.

1: Monitor

2: Placa base

3: Procesador

4: Puertos ATA

5: Memoria principal (RAM)

Pgina | 5
6: Placas de expansin

7: Fuente de alimentacin

8: Unidad de almacenamiento ptico

9: Disco duro, Unidad de estado slido

10: Teclado

11: Ratn

Una computadora o computador, tambin denominada ordenador, es una


mquina electrnica que recibe y procesa datos para convertirlos en informacin til.
Una computadora es una coleccin de circuitos integrados y otros componentes
relacionados que puede ejecutar con exactitud, rapidez y de acuerdo a lo indicado
por un usuario o automticamente por otro programa, una gran variedad de
secuencias o rutinas de instrucciones que son ordenadas, organizadas y
sistematizadas en funcin a una amplia gama de aplicaciones prcticas y
precisamente determinadas, proceso al cual se le ha denominado con el nombre de
programacin y al que lo realiza se le llama programador. La computadora, adems
de la rutina o programa informtico, necesita de datos especficos (a estos datos, en
conjunto, se les conoce como "Input" en ingls o de entrada) que deben ser
suministrados, y que son requeridos al momento de la ejecucin, para proporcionar
el producto final del procesamiento de datos, que recibe el nombre de "output" o de
salida. La informacin puede ser entonces utilizada, reinterpretada, copiada,
transferida, o retransmitida a otra(s) persona(s), computadora(s) o componente(s)
electrnico(s) local o remotamente usando diferentes sistemas de telecomunicacin,
pudiendo ser grabada, salvada o almacenada en algn tipo de dispositivo o unidad
de almacenamiento.

La caracterstica principal que la distingue de otros dispositivos similares, como la


calculadora no programable, es que es una mquina de propsito general, es decir,
puede realizar tareas muy diversas, de acuerdo a las posibilidades que brinde los
lenguajes de programacin y el hardware.

Pgina | 6
Los dispositivos de Entrada/Salida sirven a la computadora para obtener
informacin del mundo exterior y/o comunicar los resultados generados por el
computador al exterior. Hay una gama muy extensa de dispositivos E/S como
teclados, monitores, unidades de disco flexible o cmaras web.

Perifricos y dispositivos auxiliares

Monitor

El monitor o pantalla de computadora, es un dispositivo de salida que,


mediante una interfaz, muestra los resultados, o los grficos del procesamiento de
una computadora. Existen varios tipos de monitores: los de tubo de rayos catdicos
(o CRT), los de pantalla de plasma (PDP), los de pantalla de cristal lquido (o LCD),
de paneles de diodos orgnicos de emisin de luz (OLED), o Lser-TV, entre otros.

Teclado

Un teclado de computadora es un perifrico, fsico o virtual (por ejemplo teclados en


pantalla o teclados tctiles), utilizado para la introduccin de rdenes y datos en una
computadora. Tiene su origen en los teletipos y las mquinas de escribir elctricas,

Pgina | 7
que se utilizaron como los teclados de los primeros ordenadores y dispositivos de
almacenamiento (grabadoras de cinta de papel y tarjetas perforadas). Aunque
fsicamente hay una mirada de formas, se suelen clasificar principalmente por la
distribucin de teclado de su zona alfanumrica, pues salvo casos muy especiales es
comn a todos los dispositivos y fabricantes (incluso para teclados rabes y
japoneses).

Ratn

El mouse (del ingls, pronunciado [mas]) o ratn es un perifrico de computadora


de uso manual, utilizado como entrada o control de datos. Se utiliza con una de las
dos manos del usuario y detecta su movimiento relativo en dos dimensiones por la
superficie horizontal en la que se apoya, reflejndose habitualmente a travs de un
puntero o flecha en el monitor. Anteriormente, la informacin del desplazamiento era
transmitida gracias al movimiento de una bola debajo del ratn, la cual accionaba dos
rodillos que correspondan a los ejes X e Y. Hoy, el puntero reacciona a los
movimientos debido a un rayo de luz que se refleja entre el ratn y la superficie en la
que se encuentra. Cabe aclarar que un ratn ptico apoyado en un espejo o sobre un
barnizado por ejemplo es inutilizable, ya que la luz lser no desempea su funcin
correcta. La superficie a apoyar el ratn debe ser opaca, una superficie que no
genere un reflejo, es recomendable el uso de alfombrillas.

1.3. Introduccin a los Algoritmos.


Definicin:

Podemos encontrar muchas definiciones de algoritmo en los textos de programacin,


todas ellas muy similares:

Conjunto ordenado y finito de pasos que permite hallar la solucin de un


problema.

Pgina | 8
Una secuencia de pasos que conducen a la realizacin de una tarea.

Descripcin exacta de la secuencia en que se ha de realizar un conjunto de


actividades tendientes a resolver un determinado tipo de problema o
procedimiento.

Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan


la lgica de un programa.

Es un sistema por el cual se llega a una solucin, teniendo en cuenta que


debe de ser definido, finito y preciso.

Toda receta, proceso, rutina, mtodo, procedimiento, tcnica, formula que


resuelven un determinado problema.

Conjunto de instrucciones concretas y detalladas mediante el cual se consigue


una accin determinada.

Conjunto de reglas que permiten obtener un resultado determinado a partir de


ciertas reglas definidas.

Descripcin precisa de una sucesin de instrucciones que permite llevar a


cabo un trabajo en un nmero finito de pasos.

Un conjunto de smbolos y procedimientos usados en la realizacin de un


clculo.

Las definiciones ms completas o formales:

Secuencia finita de instrucciones, reglas o pasos que describen de forma


precisa las operaciones de un ordenador debe realizar para llevar a cabo una
tarea en un tiempo ms finito.

Descripcin de un esquema de comportamiento expresado mediante un


reportorio finito de acciones y de informaciones elementales, identificadas,
bien comprendidas y realizables a priori. Este repertorio se denomina lxico.

Pgina | 9
Un algoritmo es un conjunto finito de pasos definidos, estructurados en el
tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que
proveen un procedimiento para dar la solucin o indicar la falta de esta a un
problema en un tiempo determinado.

Caractersticas:

Las caractersticas fundamentales que debe cumplir todo algoritmo son:

Ser definido: Sin ambigedad, cada paso del algoritmo debe indicar la accin
a realizar sin criterios de interpretacin.

Ser finito: Un nmero especfico y numerable de pasos debe componer al


algoritmo, el cual deber finalizar al completarlos.

Tener cero o ms entradas: Datos son proporcionados a un algoritmo como


insumo (o estos son generados de alguna forma) para llevar a cabo las
operaciones que comprende.

Tener una o ms salidas: Debe siempre devolver un resultado; de nada sirve


un algoritmo que hace algo y nunca sabemos que fue. El devolver un
resultado no debe ser considerado como nicamente verlos en forma
impresa o en pantalla, como ocurre con las computadoras. Existen muchos
otros mecanismos susceptibles de programacin que no cuentan con una
salida de resultados de esta forma. Por salida de resultados debe entenderse
todo medio o canal por el cual es posible apreciar los efectos de las acciones
del algoritmo.

Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso,
no usando nada ms ni nada menos que aquello que se requiera para y en su
ejecucin.

Pgina | 10
1.4. Diagramas de flujo.
Un diagrama de flujo es una representacin grfica de un algoritmo o proceso. Se
utiliza en disciplinas como la programacin, la economa, los procesos industriales y
la psicologa cognitiva. Estos diagramas utilizan smbolos con significados bien
definidos que representan los pasos del algoritmo, y representan el flujo de ejecucin
mediante flechas que conectan los puntos de inicio y de fin de proceso.

Caractersticas Comunes:

Un diagrama de flujo siempre tiene un punto de inicio y un punto de trmino.


Adems, todo camino de ejecucin debe permitir llegar desde el inicio hasta el
trmino.

Las siguientes son acciones previas a la realizacin del diagrama de flujo:

Identificar las ideas principales a ser incluidas en el diagrama de flujo.


Deben estar presentes el dueo o responsable del proceso, los dueos o
responsables del proceso anterior y posterior y de otros procesos
interrelacionados, otras partes interesadas.
Definir qu se espera obtener del diagrama de flujo.
Identificar quin lo emplear y cmo.
Establecer el nivel de detalle requerido.
Determinar los lmites del proceso a describir.

Los pasos a seguir para construir el diagrama de flujo son:

Establecer el alcance del proceso a describir. De esta manera quedar


fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la
salida del proceso previo y el final la entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos que estn incluidos
en el proceso a describir y su orden cronolgico.
Si el nivel de detalle definido incluye actividades menores, listarlas tambin.
Identificar y listar los puntos de decisin.

Pgina | 11
Construir el diagrama respetando la secuencia cronolgica y asignando los
correspondientes smbolos.
Asignar un ttulo al diagrama y verificar que est completo y describa con
exactitud el proceso elegido.

Ventajas de los diagramas de flujo

Favorecen la comprensin del proceso a travs de mostrarlo como un dibujo.


El cerebro humano reconoce fcilmente los dibujos. Un buen diagrama de flujo
reemplaza varias pginas de texto.
Permiten identificar los problemas y las oportunidades de mejora del proceso.
Se identifican los pasos redundantes, los flujos de los re-procesos, los
conflictos de autoridad, las responsabilidades, los cuellos de botella, y los
puntos de decisin.
Muestran las interfaces cliente-proveedor y las transacciones que en ellas se
realizan, facilitando a los empleados el anlisis de las mismas.
Son una excelente herramienta para capacitar a los nuevos empleados y
tambin a los que desarrollan la tarea, cuando se realizan mejoras en el
proceso.

Pgina | 12
1.5. Metodologa para la solucin de problemas basados en
computadora.
La solucin de un problema por computadora, requiere de siete pasos, dispuestos de
tal forma que cada uno es dependiente de los anteriores, lo cual indica que se trata
de un proceso complementario y por lo tanto cada paso exige el mismo cuidado en
su elaboracin. Los siete pasos de la metodologa son los siguientes:

1. Definicin del Problema: Esta fase est dada por el enunciado del problema, el
cual requiere una definicin clara y precisa. Es importante que se conozca lo que se
desea que realice la computadora; mientras esto no se conozca del todo no tiene
mucho caso continuar con la siguiente etapa.

2. Anlisis del Problema: Una vez que se ha comprendido lo que se desea de la


computadora, es necesario definir:

Los datos de entrada.


Cul es la informacin que se desea producir? (salida)
Los mtodos y frmulas que se necesitan para procesar los datos.

Una recomendacin muy prctica es el que nos pongamos en el lugar de la


computadora y analicemos que es lo que necesitamos que nos ordenen y en que
secuencia para producir los resultados esperados.

3. Diseo del Algoritmo: Las caractersticas de un buen algoritmo son:

Debe tener un punto particular de inicio.


Debe ser definido, no debe permitir dobles interpretaciones.
Debe ser general, es decir, soportar la mayora de las variantes que se
puedan presentar en la definicin del problema.
Debe ser finito en tamao y tiempo de ejecucin.

4. Codificacin: La codificacin es la operacin de escribir la solucin del problema


(de acuerdo a la lgica del diagrama de flujo o pseudocdigo), en una serie de
instrucciones detalladas, en un cdigo reconocible por la computadora, la serie de

Pgina | 13
instrucciones detalladas se le conoce como cdigo fuente, el cual se escribe en un
lenguaje de programacin o lenguaje de alto nivel.

5. Prueba y Depuracin: Los errores humanos dentro de la programacin de


computadoras son muchos y aumentan considerablemente con la complejidad del
problema. El proceso de identificar y eliminar errores, para dar paso a una solucin
sin errores se le llama depuracin. La depuracin o prueba resulta una tarea tan
creativa como el mismo desarrollo de la solucin, por ello se debe considerar con el
mismo inters y entusiasmo. Resulta conveniente observar los siguientes principios
al realizar una depuracin, ya que de este trabajo depende el xito de nuestra
solucin.

6. Documentacin: Es la gua o comunicacin escrita es sus variadas formas, ya


sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa
escrito por una persona, es usado por otra. Por ello la documentacin sirve para
ayudar a comprender o usar un programa o para facilitar futuras modificaciones
(mantenimiento). La documentacin se divide en tres partes:

Documentacin Interna: Son los comentarios o mensaje que se aaden al cdigo


fuente para hacer ms claro el entendimiento de un proceso.

Documentacin Externa: Se define en un documento escrito los siguientes puntos:

Descripcin del Problema


Nombre del Autor
Algoritmo (diagrama de flujo o pseudocdigo)
Diccionario de Datos
Cdigo Fuente (programa)

Manual del Usuario: Describe paso a paso la manera cmo funciona el programa,
con el fin de que el usuario obtenga el resultado deseado.

7. Mantenimiento: Se lleva acabo despus de terminado el programa, cuando se


detecta que es necesario hacer algn cambio, ajuste o complementacin al programa

Pgina | 14
para que siga trabajando de manera correcta. Para poder realizar este trabajo se
requiere que el programa este correctamente documentado.

Unidad 2 El lenguaje y su entorno integrado de desarrollo.

2.1. Introduccin al lenguaje y a su entorno de desarrollo.


Qu es el lenguaje C?

El lenguaje C es un lenguaje de programacin estructurado. Lo que quiere decir que


el cdigo o algoritmo esta ordenado o estructurado.

As pues es fcilmente diferenciable de un lenguaje orientado a objetos.

El lenguaje C es uno de los lenguajes ms rpidos y potentes que existen hoy en da


con una sintaxis sumamente compacta y de alta portabilidad.

Es comn leer que se lo caracteriza como un lenguaje de "bajo nivel". No debe


confundirse el trmino "bajo" con "poco", ya que el significado del mismo es en
realidad "profundo", en el sentido que C maneja los elementos bsicos presentes en
todas las computadoras: caracteres, nmeros y direcciones.

Adems este lenguaje sirve de puente a otros, lo que quiere decir que sabiendo
lenguaje C, sabrs defenderte fcilmente con cualquier otro lenguaje de
programacin estructurada, solo tendrs que cambiar las palabras reservadas y poco
ms.

Para verificar la importancia y magnitud de este lenguaje solo hay que observar que
el sistema operativo Linux el cual ha sido desarrollado en su prctica totalidad con el
C. Adems vemos que en las universidades y ciclos formativos referentes a la
informtica exigen el aprendizaje absoluto de este lenguaje, en muchos casos por
encima del resto.

El lenguaje C no es lo mismo que el lenguaje C++ como en muchos casos se piensa.


Para controlar este ltimo hace falta tener una buena base de C. Se podra decir que
C++ es una extensin del C y con el podramos llegar a introducirnos en la

Pgina | 15
programacin basada en windows. C++ incorpora el potencial de C al servicio de una
programacin basada en el SO de Microsoft.

Pero no todo es oro lo que reluce en este lenguaje, es lgico que con tanto potencial
halla determinados puntos oscuros, nos referimos pues a que el lenguaje en C es
de caso sensible, lo que quiere decir que distingue entre maysculas y minsculas
y otros casos.

Volvindonos locos por ser un lenguaje pelin quisquilloso. Pero su potencial obliga a
ello.

Por otro lado, todas las instrucciones que damos en C, se separan o finalizan con el
; (punto y coma).

La descripcin del lenguaje se realiza siguiendo las normas del ANSI C.

El lenguaje C ofrece a los usuarios ventajas y desventajas, dependiendo de su nivel


de conocimiento del mismo.

1. Es un lenguaje complicado para el usuario novel (el usuario requiere cierta


experiencia para empezar a trabajar).

2. Suministra una visin de conjunto.

3. Eficacia.

4. Nos ofrece libertad para organizar el trabajo.

5. Lenguaje de alto nivel, se asemeja al lenguaje humano (normalmente el ingles).

6. Es un lenguaje diseado para la resolucin de problemas, independientes de las


caractersticas del computador.

7. En ocasiones determinadas nos permite programar como lenguaje de bajo nivel,


consiguiendo una mayor eficacia.

8. Flexibilidad

Pgina | 16
9. Muy POTENTE

10. Es muy usado en aplicaciones cientficas, industriales, simulaciones de vuelo; es


decir, se aplica en reas desconocidas por gran parte de los usuarios.

11. No es un lenguaje muy estructurado como ocurre en lenguajes como ALGOL 68


o PASCAL.

Compilador de lenguaje C

Antes de todo explicare que es un compilador. Un compilador dicho sencillamente,


sera un programa capaz de hacer otros programas.

Profundizando ms:

El ordenador trabaja nica y exclusivamente con combinaciones de ceros y unos. Por


decirlo de alguna manera, solo entiende el llamado cdigo binario. Ahora bien, si
nosotros quisiramos desarrollar un programa para algn ordenador, deberamos
hacerlo a base de combinaciones de ceros y unos. Deberamos escribirlo en cdigo
binario. Esto sera una labor muy tediosa, prcticamente imposible, tarea reservada a
gurs de las matemticas. En el mundo podran contarse con los dedos de las
manos los que saben programar en lenguaje

binario, son los encargados de programar a ms bajo nivel las funciones de los
microprocesadores.

Ahora es aqu donde entran los lenguajes como el C, delphi, basic, etc. Estos
lenguajes lo que hacen es poner a nuestro alcance una serie de instrucciones que
nosotros podemos entender con facilidad. Funciones racionales para el hombre. Aqu
se encuentran las palabras reservadas (if, goto, else, while...). Una vez escrito todo el
programa mediante estas reglas racionales que nos sirve el lenguaje que usemos,
tendremos lo que se llama el cdigo fuente. Pero este solo lo entienden los
programadores no el ordenador, que como habamos visto solo entenda ceros y
unos. Es aqu donde acta el compilador. Este es el encargado de pasar nuestro

Pgina | 17
cdigo fuente (ordenes racionales) a cdigo binario (lenguaje que entiende el
ordenador). Y es as como de nuestro cdigo fuente podemos obtener un ejecutable.

Un fichero que el ordenador podr interpretar y ejecutar, los llamados (*.exe), otros
ficheros ejecutables serian (*.bat, *.con).

Teniendo el cdigo fuente podremos modificar nuestro programa y compilarlo para


generar otro ejecutable tantas veces como queramos.

Pero de no tener el cdigo fuente no podremos modificar nada.

A menudo se confunden los distintos tipos de compiladores. Existen 3 tipos de


compiladores, cuya funcin es la misma. Pasar de cdigo fuente a mquina.

Compiladores: Propiamente llamados, se dedican a traducir el cdigo fuente a cdigo


mquina.

Intrpretes: Va cogiendo cada instruccin cuando la precise y la va convirtiendo en


su instruccin correspondiente en cdigo mquina. Para aquellos que programen en
scripting, el cliente mIRC para IRC nos facilita un intrprete para elaborar lo que se
llama un script (subprograma).

Entornos de desarrollo: La mezcla de los dos sistemas, primero interpreta para


posteriormente compilar sin errores.

Ventajas y desventajas

Ventaja de un compilador: Una vez compilado su ejecucin y tiempo de proceso es


ms rpido.

Ventaja del intrprete: Se puede depurar el cdigo de forma ms rpida y sencilla.

El editor

Un editor es simplemente el lugar donde editamos o escribimos nuestro cdigo


fuente. Podramos hacerlo simplemente en el notepad de Windows J Y luego

Pgina | 18
compilarlo con algn compilador. Pero el DJGPP, ya tiene su propio editor integrado,
el llamado RHIDE.

Un buen editor es importante en cualquier lenguaje de programacin. Puesto que


mediante tcnicas puede clarificar mucho nuestro cdigo fuente. Tcnicas como
pueden ser el uso de colores, esto es que cuando escribimos una palabra reservada
sale en un color distinto que cuando escribimos un dato o una cadena de caracteres
a mostrar por pantalla. Existen tambin editores que van ordenando nuestro cdigo
fuente, estructurndolo.

Es importante escribir un cdigo fuente claro y bien organizado o estructurado y con


comentarios. Para que nuestros superiores o nosotros mismos podremos entenderlo
con facilidad en posteriores revisiones.

Compilar y ver los resultados en DJGPP.

Cmo compilar en DJGPP?

Una vez que tengamos nuestro cdigo fuente, nuestro cdigo del programa,
debemos compilarlo, para ello acudimos al men del DJGPP

COMPILE, posteriormente marcamos sobre BUILD ALL (construir todo). Si a la hora


de compilar el DJGPP no nos ha dado ningn error, nuestro programa quedara listo
para ser ejecutado. En caso contrario a romperse el coco buscando el posible error.

Cmo ejecutar programas desde DJGPP?

Suponiendo que tenemos un programa ya editado en el RHIDE (editor del DJGPP). Y


que esta compilado. Debemos acudir al men FILE y

a continuacin a DOS SHELL. De esta forma pasaremos al entorno bajo MSDOS y


desde la lnea de comandos (C.\DJGPP\bin\) escribimos el nombre del programa
compilado. Y este ser ejecutado bajo MSDOS.

Pgina | 19
Comentarios en el cdigo fuente.

Muchas veces los buenos programadores hacen pequeos comentarios en partes de


su cdigo para clarificarlo. Esto se hace con la nica funcin de que si al da
siguiente o al mes siguiente queremos modificar alguna parte de nuestro cdigo
sepamos con rapidez y claridad las partes de este y para ello se especifican
comentarios puestos por el propio programador para entender que es lo que hace
una parte del cdigo donde ha puesto el comentario. Esto tambin se suele hacer por
si hace falta que otro programador necesite ver el cdigo o revisarlo y as facilitarle la
tarea de comprensin del mismo.

A la hora de compilar un cdigo el compilador una vez que detecta los cometarios,
(los detecta por la inclusin de unos signos especficos) lo que hace es pasar de
largo seguir leyendo o procesando.

Para hacer comentarios en C se usan los signos de introduccin /* y de finalizacin


*/.

Ejemplo:

#include stdio.h

main () {

printf (OrioN ScripT by Quasi en http://www.ircorion.com ) /*esto imprime en


pantalla el script para IRC y la web*/

En este ejemplo observamos que no hara falta poner el comentario puesto que ya es
claro la funcin del printf pero hay otros casos en los que se realizan bucles o ciertas
operaciones en las que si seria de mucha utilidad poner comentarios aclaratorios.

Nuestro primer programa

Vamos a exponer el mtico programa que se suele hacer como primera aproximacin
a cualquier lenguaje de programacin.

Pgina | 20
El, Hola Mundo!!!

Cdigo fuente (ejemplo):

#include <stdio.h>

Main () {

Printf (Hola mundo!!!);

Ahora voy a comentar paso a paso el programa.

Comenzamos con: #include <stdio.h>

Include es una directriz que se encarga de meter libreras de funciones. En este caso
metemos la librera stdio Esta librera contiene funciones de consola. Funciones de
entrada y salida de datos, es donde se encuentra la funcin printf, posteriormente
usada. Es la librera por excelencia de C. Y la que siempre nos veremos obligados a
incluir.

Si no lo has entendido bien el concepto no preocupar, ms adelante se habla de ello


en profundidad.

A continuacin viene la funcin main (). Esta funcin es el cuerpo principal del
programa como su propio nombre indica. Es el punto de partida y de salida de un
programa.

Las rdenes en C es bueno agruparlas todas entre llaves.

Dentro del main metemos la funcin printf funcin que est en la biblioteca stdio y
lo que hace es mostrar por pantalla el texto que tenemos entre comillas. No
olvidemos terminar la instruccin de la funcin con un ;. Y cerramos la llave que
finaliza el conjunto de rdenes a realizar por el main. Las rdenes que se encuentran
dentro del main siempre se ejecutaran puesto que es el cuerpo principal del

Pgina | 21
programa. Vendra a ser como el tronco de un rbol, las ramificaciones de ese rbol
seria otras funciones fuera del main.

El lenguaje C se caracteriza entre otras cosas por seguir un orden muy claro y
estricto. Todos los programas deben presentar una anatoma comn.

1. Aadir todas las directrices o directivas que incluyan ficheros que contengan otras
funciones que necesitemos para nuestro programa. Siempre o casi siempre
deberemos insertar la librera stdio, puesto que es la que contiene las funciones
principales de toma (scanf) y muestreo de datos (printf). A la hora de aadir una
librera siempre se siguen la misma sintaxis: #include

<NombreDeLaLibreria>

2. Podemos obtener el nombre de las funciones o libreras que contienen las


funciones que necesitemos acudiendo al men HELP del compilador DJGPP.

3. Se declaran funciones o variables globales. Funciones externas creadas por


nosotros mismos y definidas al final del main. O variables globales que tendrn vida
dentro y fuera del main (cuerpo principal).

4. Se define la funcin main, se especifican todas las ordenes y se delimitan entre


llaves tal y como se expone en el ejemplo anterior.

5. Se definen las funciones si es que las hay, anteriormente declaradas antes del
main.

En todo programa que realicemos sobre este lenguaje C. Debemos tener muy en
cuenta, el principio y el final de las cosas, y su orden y prioridad de ejecucin. En C
las ordenes se compilan de forma lineal y secuencial (de arriba a abajo y de una en
una). En la programacin est mal visto que se pierda el ciclo de proceso de un
programa, siempre debemos saber porque punto pasa el programa, como vara y
cuando finaliza.

Pgina | 22
Estructura de datos

Esto que se explica a continuacin si no lo entiendes no le des ms importancia,


pasar al captulo siguiente.

Se dice que: programa = algoritmo + estructura de datos

Dependiendo la forma en la que se almacenan los datos tendremos lo que se conoce


como una estructura de datos.

Las estructuras de datos vienen predeterminadas por la disposicin y los valores en


que vienen dadas.

Normalmente las estructuras habituales son:

Matrices: Es una secuencia de elementos del mismo tipo relacionados unos con
otros por el orden en el que estn definidos

Las matrices pueden ser: unidimensionales, bidimensionales y tridimensionales.


Dependiendo claro est de su dimensin.

Cada departamento o valor de una matriz viene identificado por un ndice.

Listas: Conjunto de elementos en el que cada uno est relacionado con el elemento
anterior y siguiente. Los hay circulares.

Colas: Es un tipo especial de listas llamada FIFO (first imput first out)

Pilas: Conocidas como LIFO (last imput firts out)

rbol: Es una estructura en la que un elemento va a estar relacionado con otro o con
varios ms.

Fichero: Es una estructura que permite almacenar informacin en un dispositivo de


almacenamiento. Las filas cuando almacenan datos estn constituidas por una
estructura que se llama registro. A cada parte de un registro se le llama campo.

Bueno ahora entremos ya en materia de C. J

Pgina | 23
Recordemos siempre que el C distingue entre nomenclaturas, o sea diferencia entre
minsculas y maysculas.

En C, es necesario poner punto y coma ; al final de una orden, pero no se debe


poner al final de una condicin o estructura condicional tampoco se debe poner en
otro tipo de ordenes como algunos bucles.

2.2. Estructuras condicionales.


Las estructuras condicionales comparan una variable contra otro(s)valor (es), para
que en base al resultado de esta comparacin, se siga un curso de accin dentro del
programa. Cabe mencionar que la comparacin se puede hacer contra otra variable
o contra una constante, segn se necesite. Existen tres tipos bsicos, las simples, las
dobles y las mltiples.

Simples:
Las estructuras condicionales simples se les conocen como Tomas de decisin.
Estas tomas de decisin tienen la siguiente forma:

Dnde:
Si: Indica el comando de comparacin
Condicin: Indica la condicin a evaluar
Entonces: Precede a las acciones a realizar cuando se cumple la condicin
Instruccin(es): Son las acciones a realizar cuando se cumple o no la condicin
si no: Precede a las acciones a realizar cuando no se cumple la condicin

Pgina | 24
Dependiendo de si la comparacin es cierta o falsa, se pueden realizar una o ms
acciones.

Mltiples:
Las estructuras de comparacin mltiples, son tomas de decisin especializadas que
permiten comparar una variable contra distintos posibles resultados, ejecutando para
cada caso una serie de instrucciones especficas. La forma comn es la siguiente:

Mltiples (En caso de):

Las estructuras de comparacin mltiples, es una toma de decisin especializada


que permiten evaluar una variable con distintos posibles resultados, ejecutando para
cada caso una serie de instrucciones especficas. La forma es la siguiente:

Pgina | 25
2.3. Variables y constantes
Variables en C.

A la hora de elaborar un programa es necesario usar unos datos y para ello es


imprescindible en muchos casos grabar esos datos en memoria para operar en ellos
posteriormente. Recordemos que no es lo mismo garbar los datos en memoria que
grabarlos en el disco duro. Cuando decimos grabar en memoria dentro de un
lenguaje de programacin nos estaremos refiriendo a grabar esos datos en la RAM.
Ahora bien, para grabar esos datos en la RAM podemos hacerlo racionalmente con
dos elementos, llamados variables y constantes. Los dos elementos funcionan como
fuentes de almacenamiento de datos, la gran diferencia entre los dos es que en el
caso de las constantes su valor dado no vara en el transcurso de todo el programa o
cdigo. Tanto las variables como las constantes podra decirse que son direcciones
de memoria con un valor, ya sea un nmero, una letra o valor nulo.

Variables: elementos de almacenamiento de datos o direcciones de memoria, que


pueden variar en el desarrollo o proceso del programa.

Tanto las variables como las constantes las utilizamos a la hora de programar para
almacenar en ellas unos datos determinados y poder nombrarlas en cualquier parte
de nuestro cdigo-programa para que nos devuelvan esos datos anteriormente
introducidos.

Definicin de una variable:

Definir una variable es indicar el tipo de dato que va a contener y almacenar, y en


funcin de esto reservar una determinada direccin de memoria o palabra de
memoria (es la cantidad de bytes que ocupa un tipo de dato). Con lo que si
queremos que una variable contenga un dato numrico debemos de definirla de
distinta forma que si queremos que contenga una cadena de caracteres. Cuando
definimos una variable no le estamos introduciendo ningn valor, sino que
nicamente estamos indicando que tipo de valor va almacenar posteriormente. Es
obligatorio que siempre definamos una variable antes de introducir en ella un valor, y

Pgina | 26
esto es as porque es necesario que se reserve en memoria un espacio limitado ms
o menos grande dependiendo del tipo de dato que vaya a albergar dicha variable.

Para definir una variable:

La sintaxis a seguir es: [cualificador] (tipo) (ID)

En manuales o tutoriales de informtica lo que se encuentra entre corchetes es


opcional y el resto es obligatorio.

Ante esa sintaxis, decimos que donde cualificador podemos poner opcionalmente
uno de los disponibles que se encargan de variar o alterar el tipo de dato (ser
explicado a continuacin), posteriormente ira el tipo de dato, ya sea entero, decimal
etc., y por ltimo el identificador o nombre de la variable.

Tipos de datos en C.

En cualquier lenguaje de programacin es muy importante saber manejar los


distintos tipos de datos que te permite almacenar y trabajar con ellos. Como ya vimos
anteriormente las variables almacenan datos. Pero a la hora de definirlas hay que
indicarles que tipo de datos van a almacenar. No es lo mismo que una variable
almacene el nmero 5000, a que almacene la letra c. Existen cuatro tipos de
datos en c, cada uno de los cuales reservan una zona mayor o menor en memoria
(segn sus necesidades), y est preparada para almacenar un tipo de dato en
concreto. En otro lenguaje como el scripting las variables se definen y una vez
definidas puedes almacenar cualquier tipo de dato sin antes hacer alusin a l. Esto
no pasa en c ni en la mayora de lenguajes grandes. En c su potencialidad obliga a
ello.

Existen 4 tipos de datos en c.

1) Int: Almacenan nmeros enteros (sin decimales). Este tipo limita el rango
numrico de 32767 a -32767. Este tipo reserva en memoria 16 bits o lo que es
lo mismo 2 bytes.

Pgina | 27
2) Char: Almacena un carcter o caracteres, en realidad lo que hace es
almacenar un numero de 0 al 255 que son los nmeros que identifican a un
carcter que corresponde a la tabal ASCII. Este tipo ocupa una memoria 1
byte.
3) Float: Tipo para definir que una variable almacenara nmeros decimales.
Su rango numrico es de 3.4E-38 a -3.4E38. Su espacio de 4 bytes.
4) Double: igual que la anterior pero es capaz de almacenar mayores
cadenas numricas. Su rango es 1.7E-307 a 1.7E307.

2.4. Operadores aritmticos, lgicos y relacionales


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

Operadores Aritmticos

Los operadores aritmticos permiten la realizacin de operaciones matemticas con


los valores (variables y constantes).

Los operadores aritmticos pueden ser utilizados con tipos de datos enteros o reales.
Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado
es real.

Pgina | 28
Operadores Relacionales
Se utilizan para establecer una relacin entre dos valores. Luego compara estos
valores entre si y esta comparacin produce un resultado de certeza o falsedad
(verdadero o falso).
Los operadores relacionales comparan valores del mismo tipo (numricos o
cadenas). Estos tienen el mismo nivel de prioridad en su evaluacin.
Los operadores relacinales tiene menor prioridad que los aritmticos.

Tipos de operadores Relacionales


> Mayor que

< Menor que

> = Mayor o igual que

< = Menor o igual que

! = Diferente

= = Igual

Operadores Lgicos

Estos operadores se utilizan para establecer relaciones entre valores lgicos. Estos
valores pueden ser resultado de una expresin relacional.

Los operadores lgicos son:

&& AND (el resultado es verdadero si ambas expresiones son verdaderas)

|| OR (el resultado es verdadero si alguna expresin es verdadera)

! NOT (el resultado invierte la condicin de la expresin)

2.5. Estructuras selectivas (uso y aplicacin).

La especificacin formal de algoritmos tiene realmente utilidad cuando el algoritmo


requiere una descripcin ms complicada que una lista sencilla de instrucciones.
Pgina | 29
Este es el caso cuando existen un nmero de posibles alternativas resultantes de la
evaluacin de una determinada condicin.

Estas estructuras se identifican porque en la fase de solucin del problema existe


algn punto en el cual es necesario establecer una pregunta, para decidir si ciertas
acciones d eben realizarse o no.

Las condiciones se especifican usando expresiones lgicas. La representacin de


una estructura selectiva se hace con palabras en pseudocdigo (if - then - else o en
espaol si - entonces - sino) y en flujograma con una figura geomtrica en forma de
rombo.

Las estructuras selectivas o alternativas se clasifican en:

a) Simples

b) Dobles

c) Compuestas

d) Mltiples

2.6. Bucles repetitivos (uso y aplicacin).

Un bucle o ciclo, en programacin, es una sentencia que se realiza repetidas veces


a un trozo aislado de cdigo, hasta que la condicin asignada a dicho bucle deje de
cumplirse.

Generalmente, un bucle es utilizado para hacer una accin repetida sin tener que
escribir varias veces el mismo cdigo, lo que ahorra tiempo, deja el cdigo ms claro
y facilita su modificacin en el futuro.

El bucle y los condicionales representan la base de la programacin estructurada. Es


una evolucin del cdigo ensamblador, donde la nica posibilidad de iterar un cdigo

Pgina | 30
era establecer una sentencia jump (que en los lenguajes de programacin fue
sustituida por el "ir a" o GOTO).

El bloque que representa ciclos en un diagrama de flujo es el siguiente:

Valor Inicial: Se encuentra asignado a una variable la cual es la que controla el ciclo
y debe ser de tipo entero, adems tiene el valor de inicio del ciclo.

Valor Final: Con este valor indicamos la ltima vez que el ciclo debe ejecutarse.

Incremento: Representa la frecuencia en que debe aumentarse la variable.

Entrada: Marca el principio o reinicio de las instrucciones que se encuentran dentro


del ciclo.

Regreso: Indica donde termina el ciclo, en que momento el proceso se repite.

2.7. Casos de uso en solucin de problemas aplicada a la industria.

La evolucin del concepto de calidad aplicado a la industria, y ahora a los servicios,


muestra claramente que se ha pasado de una etapa, en donde la calidad era
aplicada totalmente al control realizado al final de las lneas de produccin, a otra
donde aplicamos calidad total a todo dentro de la organizacin. Por ende, ya se
habla de calidad de vida en el trabajo, calidad de vida en los servicios y calidad
ambiental.

Recordemos que el concepto de calidad hoy en da, es aplicado en el mbito


industrial, como el logro de hacer las cosas bien la primera vez. Y se aplica control

Pgina | 31
de calidad sobre las operaciones desde el diseo. Hasta que se obtiene el producto
final e inclusive se habla de la calidad en la atencin al cliente.

El camino que nos lleva hacia la Calidad Total crea una nueva cultura, establece y
mantiene un liderazgo, desarrolla al personal y lo hace trabajar en equipo, adems
de enfocar los esfuerzos de calidad total hacia el cliente y a planificar cada uno de
los pasos para lograr la excelencia en sus operaciones.

El hacer esto exige vencer obstculos que se irn presentando a lo largo del camino.
Estos obstculos traducidos en problemas se deben resolver conforme se presentan
evitando con esto las variaciones del proceso. Para esto es necesario basarse en
hechos y no dejarse guiar solamente por el sentido comn, la experiencia o la
audacia. Basarse en estos tres elementos puede ocasionar que al momento de
obtener un resultado contrario al esperado nadie quiera asumir responsabilidades.

Unidad 3 Programacin modular

3.1 Declaracin de funciones


Los prototipos de las funciones que se utilizan en un programa se incluyen
generalmente en la cabecera del programa y presentan la siguiente sintaxis:

En el prototipo de una funcin no se especifican las sentencias que forman parte de


la misma, sino sus caractersticas. Por ejemplo:

En este caso se declara la funcin cubo que recibe como parmetro una variable de
tipo entero (numero) y devuelve un valor del mismo tipo. En ningn momento
estamos especificando qu se va a hacer con el variable nmero, slo declaramos
las caractersticas de la funcin cubo.

Pgina | 32
Cabe sealar que el nombre de los parmetros es opcional y se utiliza para mejorar
la comprensin del cdigo fuente. De esta manera, el prototipo de la funcin cubo
podra expresarse de la siguiente manera:

Los prototipos de las funciones son utilizados por el compilador para verificar que se
accede a la funcin de la manera adecuada con respecto al nmero y tipo de
parmetros, y al tipo de valor de retorno de la misma. Veamos algunos ejemplos de
prototipos de funciones:

Las funciones de biblioteca se declaran en lo que se conocen como ficheros de


cabecera o ficheros .h (del ingls hederse, cabeceras). Cuando deseamos utilizar
alguna de las funciones de biblioteca, debemos especificar el fichero .h en que se
encuentra declarada la funcin, al inicio de nuestro programa. Por ejemplo, si
deseamos utilizar la funcin pronto en nuestro programa, debemos incluir el fichero
stdio.h que contiene el prototipo de esta funcin.

En el ejemplo adjunto podremos ver la declaracin de una funcin ( prototipo ). Al no


recibir ni retornar ningn valor, est declarada como void en ambos lados. Tambin
vemos que existe una variable global llamada num. Esta variable es reconocible en
todas las funciones del programa. Ya en la funcin main encontramos una variable
local llamada num. Al ser una variable local, sta tendr preferencia sobre la global.
Por tanto la funcin escribir los nmeros 10 y 5. /* Declaracin de funciones. */

#include <stdio.h>

void funcion(void); /* prototipo */

int num=5; /* variable global */

main() /* Escribe dos nmeros */

int num=10; /* variable local */

printf("%d\n",num);

Pgina | 33
funcin(); /* llamada */

void funcion(void)

printf("%d\n",num);

Por valor: cualquier cambio que se realice dentro de la funcin en el argumento


enviado, NO afectar al valor original de las variables utilizadas en la llamada. Es
como si trabajramos con una copia, no con el original. No es posible enviar por
valor arrays, deberemos hacerlo por referencia.

Por referencia: lo que hacemos es enviar a la funcin la direccin de memoria


donde se encuentra la variable o dato. Cualquier modificacin SI afectar a las
variables utilizadas en la llamada. Trabajamos directamente con el original. /* Paso
por valor. */

Para enviar un valor por referencia se utiliza el smbolo & ( ampersand ) delante de
la variable enviada. Esto le indica al compilador que la funcin que se ejecutar
tendr que obtener la direccin de memoria en que se encuentra la variable.

Vamos a fijarnos en los ejemplos. En el ejemplo anterior podrs comprobar que


antes y despus de la llamada, las variables mantienen su valor. Solamente se
modifica en la funcin intercambio (paso por valor ).

En el siguiente ejemplo podrs ver como las variables intercambian su valor tras la
llamada de la funcin (paso por referencia).

Las variables con un * son conocidas como punteros, el nico dato en 'C' que puede
almacenar una direccin de memoria.

Pgina | 34
3.1.1. Funciones Simples
Los prototipos de las funciones que se utilizan en un programa se incluyen
generalmente en la cabecera del programa y presentan la siguiente sintaxis:

En el prototipo de una funcin no se especifican las sentencias que forman parte de


la misma, sino sus caractersticas. Por ejemplo:

En este caso se declara la funcin cubo que recibe como parmetro una variable de
tipo entero (numero) y devuelve un valor del mismo tipo. En ningn momento
estamos especificando qu se va a hacer con el variable nmero, slo declaramos
las caractersticas de la funcin cubo.

3.1.2. Funciones Con parmetros

Un parametro en C++ es una variable que puede pasar su valor a un procedimiento


desde el principal o desde otro procedimiento.

Existen ocasiones en que es necesario mandar al procedimiento ciertos valores para


que los use en algn proceso.

Estos valores que se pasan del cuerpo principal del programa o de un procedimiento
a otros procedimientos se llaman parametros.

Entonces la declaracin completa de un procedimiento es :

Void Nom_Proc(lista de parametros)

{ cuerpo de instrucciones;};

Pgina | 35
3.2 Uso de bibliotecas de funciones

El lenguaje C, C++ contiene numerosas funciones, cuando se emplean funciones de


esta biblioteca estndar, se incrementa la transportabilidad de los programas.

Las funciones estndar se dividen en grupos, todas las funciones que pertenecen al
mismo grupo estn declaradas en el archivo de cabecera (aquel que dice xxx.h), la
letra "h" significa header en ingls y es lo que se llama cabecera.

C ofrece un conjunto de funciones estndar que dan soporte a las operaciones que
se utilizan con ms frecuencia. Estas funciones estn agrupadas en bibliotecas. Para
utilizar cualquiera de las funciones que forman parte de las bibliotecas estndar de C,
slo hace falta realizar una llamada a dicha funcin.

En ciencias de la computacin, una biblioteca (del ingls library) es un conjunto de


subprogramas utilizados para desarrollar software. Las bibliotecas contienen cdigo y
datos, que proporcionan servicios a programas independientes, es decir, pasan a
formar parte de stos. Esto permite que el cdigo y los datos se compartan y puedan
modificarse de forma modular. Algunos programas ejecutables pueden ser a la vez
programas independientes y bibliotecas, pero la mayora de stas no son
ejecutables. Ejecutables y bibliotecas hacen referencias (llamadas enlaces) entre s a
travs de un proceso conocido como enlace, que por lo general es realizado por un
software denominado enlazador.

Ejemplo de librera estndar. math

Math es el nombre de una librera que incorpora funciones matemticas. Para poder
utilizar dichas funciones hay que aadir la instruccin #include <math.h> al principio
del cdigo de nuestro archivo. Cada directiva include se coloca en una lnea
separada y no requiere punto y coma al ser una indicacin al compilador y no una
instruccin de verdad .Esta librera contiene las siguientes funciones (se indican los
prototipos y uso);

Pgina | 36
Identificacin y organizacin de archivos

En los sistemas informticos modernos, los archivos siempre tienen nombres. Los
archivos se ubican en directorios. El nombre de un archivo debe ser nico en ese
directorio. En otras palabras, no puede haber dos archivos con el mismo nombre en
el mismo directorio.

El nombre de un archivo y la ruta al directorio del archivo lo identifica de manera


unvoca entre todos los dems archivos del sistema informtico -no puede haber dos
archivos con el mismo nombre y ruta-. El aspecto del nombre depende del tipo de
sistema informtico que se use. Las primeras computadoras slo permitan unas
pocas letras o dgitos en el nombre de un archivo, pero las computadoras modernas
permiten nombres largos que contengan casi cualquier combinacin de letras
unicode y dgitos unicode, haciendo ms fcil entender el propsito de un archivo de
un vistazo. Algunos sistemas informticos permiten nombres de archivo que
contengan espacios; otros no. La distincin entre maysculas y minsculas en los
nombres de archivo est determinada por el sistema de archivos. Los sistemas de
archivos Unix distinguen normalmente entre maysculas y minsculas, y permiten a

Pgina | 37
las aplicaciones a nivel de usuario crear archivos cuyos nombres difieran solamente
en si los caracteres estn en maysculas o minsculas. Microsoft Windows reconoce
varios sistemas de archivos, cada uno con diferentes polticas en cuanto a la
distincin entre maysculas y minsculas. El popular antiguo sistema de archivos
FAT puede tener varios archivos cuyos nombres difieran nicamente en las
maysculas y minsculas si el usuario utiliza un editor de discos para editar los
nombres de archivo en las entradas de directorio. Las aplicaciones de usuario, sin
embargo, normalmente no permitirn al usuario crear varios archivos con el mismo
nombre pero con diferentes letras en maysculas y minsculas.

3.2.1. Entrada y salida

Las funciones que forman parte de la biblioteca estndar de C, funciones estndar o


predefinidas, estn divididas en grupos. Todas las funciones que pertenecen a un mismo
grupo se definen en el mismo fichero de cabecera. Los nombres de los ficheros cabeceras
de C se muestran en la siguiente tabla:

Cuando deseamos utilizar cualquiera de las funciones estndar de C, primero debemos


utilizar la directiva de precompilacin #include para incluir los ficheros cabecera en nuestro
programa. Por otra parte, antes de utilizar una funcin, primero debemos conocer las
caractersticas de dicha funcin, es decir, el nmero y tipo de datos de sus argumentos y el
tipo de valor que devuelve. Esta informacin es proporcionada por los prototipos de funcin.

Los grupos de funciones estndar ms comunes son:

- Entrada/salida estndar

- Matemticas

- De conversin

- Diagnstico

- De manipulacin de memoria

- Control de proceso

Pgina | 38
- Ordenacin

- Directorios

- Fecha y hora

- Bsqueda

- Manipulacin de cadenas

- Grficos

- Etctera

Podemos incluir tantos ficheros de cabecera como nos haga falta, incluyendo los ficheros de
cabecera que hemos creado y donde hemos definido nuestras funciones. En el resto de este
apartado veremos algunas de las funciones de la entrada/salida estndar ms utilizadas.

En C no existe ninguna palabra clave para realizar la entrada y salida de datos (E/S). Se
realizan a travs de funciones de biblioteca (concretamente, la biblioteca stdio.h,).

Las funciones principales que realizan la entrada y salida sin formato son: getchar (): Lee un
carcter del teclado. Espera hasta que se pulsa una tecla y entonces devuelve su valor.

putchar(): Imprime un carcter en la pantalla en la posicin actual del cursor.

gets(): Lee una cadena de caracteres introducida por el teclado y la sita en una direccin
apuntada por su argumento de tipo puntero a carcter.

puts(): Escribe su argumento de tipo cadena en la pantalla seguida de un carcter de salto


de lnea.

El siguiente fragmento de cdigo lee un carcter del teclado y lo muestra por pantalla. A
continuacin lee una cadena (de 10 caracteres incluido el carcter nulo) y tambin la
muestra por pantalla:

#include <stdio.h>

Pgina | 39
main()

charcadena[10];

int i;

i=getchar();

putchar(i);

gets(cadena);

puts(cadena);

Las funciones principales que realizan la entrada y salida con formato, es decir, se pueden
leer y escribir en distintas formas controladas, son:

printf(): Escribe datos en la consola con el formato especificado.

scanf(): Funcin de entrada por consola con el formato especificado.

Sus prototipos son los siguientes:

intprintf (" caracteres de transmisin y escape", lista de argumentos);

intscanf (" caracteres de transmisin y escape", lista de argumentos);

En la funcin printf() (con scanf() no), entre las comillas se pueden poner rtulos literales
mezclados con los caracteres de transmisin.

Los caracteres de transmisin son precedidos de un % para distinguirlos de los normales:

Caracteres de transmisin Argumento que transmite

%c Int: un carcter simple

Pgina | 40
%NsChar *: una cadena de caracteres

%Nd %Ni Int: un nmero decimal

%o Int: octal sin signo

%x %X Int: hexadecimal sin signo

%NuInt: decimal sin signo

%N.DfFloat o double con D decimales, en notacin fija

%N.De %N.DE Float o double con D decimales, en notacin cientfica

%N.Dg %N.DG Float o double en notacin cientfica si el exponente es menor de diez a la


menos cuatro, o fija en caso contrario.

%p Void *: escribe el nmero que corresponde al puntero

%% Escribe un signo de %

Donde aparecen las letras N.D o no se pone nada o sern en realidad dos nmeros que
dicen que la transmisin total del valor al menos ocupar N posiciones (si el nmero necesita
ms de N las tomar, si usa menos las dejara en blancos, a menos que se quiera rellenar
con ceros, entonces se pone 0N) y que la parte decimal tendr como mximo las D
posiciones despus de un punto.

Normalmente el nmero se ajusta por la derecha para el campo de N posiciones que le


hemos dicho que utilice; si deseamos el ajuste por la izquierda, se aade un signo menos
precediendo al valor N (-N).

Una l precediendo a N (p.e. %l5d) significa que transmitiremos un longint : si, por el contrario,
es una h significa que transmitiremos un short int.

Existe otro tipo de carcter especial, los caracteres de escape, que tienen un significado
especial. Los caracteres de escape son los siguientes:

\n Nueva lnea

Pgina | 41
\t Tabulador

\b Espacio atrs

\r Retorno de carro

\f Comienzo de pgina

\a Pitido sonoro

\ Comilla simple

\" Comilla doble

\\ Barra invertida

\xdd Cdigo ASCII en notacin hexadecimal (cada d representa un dgito)

\ddd Cdigo ASCII en notacin octal (cada d representa un dgito)

La lista de argumentos estar separada por comas. Debe existir una correspondencia
biyectiva entre los caracteres de transmisin (aquellos que comienzan con un %) y la lista de
argumentos a transmitir.

Cabe destacar una diferencia en la lista de argumentos entre las funciones printf() y scanf().
En estultima funcin (scanf()), la lista de argumentos va precedida por el operador de
direccin(&), puesto que scanf() requiere que los argumentos sean las direcciones de las
variables, en lugar de ellas mismas.

(&), puesto que scanf() requiere que los argumentos sean las direcciones de las variables,
en lugar de ellas mismas.

3.2.2. Archivos

En C un archivo puede ser cualquier cosa, desde un archivo de disco a un terminal o una
impresora. Se asocia una secuencia con un archivo especfico realizando una operacin de
apertura, una vez que est abierto, la informacin puede ser intercambiada entre ste y el
programa. El puntero a un archivo es el hilo que unifica el sistema de E/S con buffer. Un

Pgina | 42
puntero a un archivo es un puntero a una informacin que define varias cosas sobre l,
incluyendo el nombre, el estado y la posicin actual del archivo. En esencia, el puntero a un
archivo identifica un archivo en disco especfico y utiliza la secuencia asociada para dirigir el
funcionamiento de las funciones de E/S con buffer. Para obtener una variable de tipo puntero
a archivo se debe utilizar una sentencia como la siguiente:FILE *punt;

La funcin fopen() abre una secuencia para que pueda ser utilizada y le asocia a un archivo.
Su prototipo es: FILE *fopen(constchar *nombre_archivo, constchar *modo); Donde
nombre_archivo es un puntero a una cadena de caracteres que representan un nombre
vlido del archivo y puede incluir una especificacin de directorio. La cadena que apunta
modo determina cmo se abre el archivo. Los modos son los siguientes:

r: Abre un archivo de texto para lectura.

w: Crea un archivo de texto par escritura

a: Abre un archivo de texto para aadir

r+: Abre un archivo de texto para lectura/escritura

w+: Crea un archivo de texto para lectura/escritura

a+: Aade o crea un archivo de texto para lectura/escritura

La funcin fclose() cierra una secuencia que fue abierta mediante una llamada a fopen().
Escribe toda la informacin que todava se encuentre en el buffer del disco y realiza un cierre
formal del archivo a nivel del sistema operativo. Tambin libera el bloque de control de
archivo asociado con la secuencia, dejndolo libre para su reutilizacin. A veces es
necesario cerrar algn archivo para poder abrir otro, debido a la existencia de un lmite del
sistema operativo en cuanto al nmero de archivos abiertos. Su prototipo es: intfclose(FILE
*fp);

La funcin putc() escribe caracteres en un archivo que haya sido abierto previamente para
operaciones de escritura, utilizando la funcin fopen(). Su prototipo es: intputc(int car, FILE
*pf);

Pgina | 43
La funcin getc() escribe caracteres en un archivo que haya sido abierto, en modo lectura,
mediante fopen(). Su prototipo es: intgetc(FILE *pf);La funcin fputs() escribe la cadena en la
secuencia especificada. Su prototipo es: fputs() escribe la cadena en la secuencia
especificada. Su prototipo es: intfputs(constchar *cad, FILE *pf);La funcin fgets() lee una
cadena de la secuencia especificada hasta que se lee un carcter de salto de lnea o hasta
que se han ledo longitud-1 caracteres.

La funcin rewind() inicia el indicador de posicin al principio del archivo indicado por su
argumento. Su prototipo es: rewind() inicia el indicador de posicin al principio del archivo
indicado por su argumento. Su prototipo es: voidrewind(FILE *pf);

Existen otras muchas funciones en la biblioteca estndar de C (ver captulo 13) como
pueden serremove(): Borra el archivo especificado.

fflush(): Vaca el contenido de una secuencia de salida.

fread(): Lee tipos de datos que ocupan ms de un byte. Permiten la lectura de


bloques de cualquier tipo de datos.

fwrite(): Escribe tipos de datos que ocupan ms de un byte. Permiten la escritura de


bloques de cualquier tipo de datos.

fprintf(): Hace las funciones de printf() sobre un fichero.

fscanf(): Hace las funciones de scanf() sobre un fichero.

feof(): Detecta el final de un fichero.

ferror(): Detecta un error en la lectura/escritura de un fichero.

fclose() cierra una secuencia que fue abierta mediante una llamada a fopen().

putc() escribe caracteres en un archivo que haya sido abierto previamente para
operaciones de escritura, utilizando la funcin fopen().

La funcin getc() escribe caracteres en un archivo que haya sido abierto, en modo lectura,
mediante fopen(). Su prototipo es:

Pgina | 44
La funcin fputs() escribe la cadena en la secuencia especificada. Su prototipo es:
intfputs(constchar *cad, FILE *pf);

La funcin fgets() lee una cadena de la secuencia especificada hasta que se lee un carcter
de salto de lnea o hasta que se han ledo longitud-1 caracteres. Su prototipo es: fgets() lee
una cadena de la secuencia especificada hasta que se lee un carcter de salto de lnea o
hasta que se han ledo longitud-1 caracteres. Su prototipo es:intfgets(char *cad, FILE *pf);

3.2.3. Cadenas
Manejo de cadenas <string.h>

Recordando la presentacin de arreglos hecha en donde las cadenas estn definidas como
un arreglo de caracteres o un apuntador a una porcin de memoria conteniendo caracteres
ASCII. Una cadena en C es una secuencia de cero o ms caracteres seguidas por un
caracter NULL o \0:

Es importante preservar el caracter de terminacin NULL, ya que con ste es como C define
y maneja las longitudes de las cadenas. Todas las funciones de la biblioteca estndar de C
lo requieren para una operacin satisfactoria.

En general, aparte de algunas funciones restringidas en longitud (strncat(), strncmp() y


strncpy()), al menos que se creen cadenas a mano, no se debern encontrar problemas. Se
debern usar las funciones para manejo de cadenas y no tratar de manipular las cadenas en
forma manual desmantelando y ensamblando cadenas.

Todas las funciones para manejo de cadenas tienen su prototipo en:

#include<string.h>

Las funciones ms comunes son descritas a continuacin:

char *strcpy(constchar *dest, constchar *orig) -- Copia la cadena de caracteres


apuntada por orig (incluyendo el carcter terminador '\0') al vector apuntado por dest.
Las cadenas no deben solaparse, y la de destino, debe ser suficientemente grande
como para alojar la copia.

Pgina | 45
intstrcmp(constchar *s1, constchar *s2) -- Compara las dos cadenas de caracteres s1
y s2. Devuelve un entero menor, igual o mayor que cero si se encuentra que s1 es,
respectivamente, menor que, igual a, o mayor que s2.

char *strerror(interrnum) -- Devuelve un mensaje de error que corresponde a un


nmero de error.

intstrlen(constchar *s) -- Calcula la longitud de la cadena de caracteres.

char *strncat(char *s1, const char *s2, size_t n) -- Agregancaracteres de s2 a s1.

intstrncmp(constchar *s1, char *s2, size_t n) -- Compara los primeros n caracteres de


dos cadenas.

char *strncpy(constchar *s1, constchar *s2, size_t n) -- Copia los primeros n


caracteres de s2 a s1.

strcasecmp(constchar *s1, constchar *s2) -- versin que ignora si son maysculas o


minsculas de strcmp().

strncasecmp(constchar *s1, constchar *s2, size_t n) -- versin insensible a


maysculas o minsculas de strncmp() que compara los primeros n caracteres de s1.

El uso de muchas funciones es directo, por ejemplo:

char *s1 = "Hola";


char *s2;
intlongitud;

longitud = strlen("Hola"); /* long = 4 */


(void) strcpy(s2,s1);

Observar que tanto strcat() y strcopy() regresan una copia de su primer argumento, el cual es
el arreglo destino. Observar tambin que orden de los argumentos es arreglo destino
seguido por arreglo fuente lo cual a veces es una situacin para hacerlo incorrectamente.

La funcin strcmp() compara lexicogrficamente las dos cadenas y regresa:

Menor que cero -- si s1 es lxicamente menor que s2;

Pgina | 46
Cero -- si s1 y s2 son lxicamente iguales;

Mayor que cero -- si s1 es lxicamente mayor que s2;

Las funciones de copiado strncat(), strncmp() y strncpy() son versiones ms restringidas que
sus contrapartes ms generales. Realizan una tarea similar, pero solamente para los
primerosn caracteres. Observar que el caracter de terminacin NULL podra ser violado
cuando se usa estas funciones, por ejemplo:

char *s1 = "Hola";


char *s2 = 2;
intlongitud = 2;

(void) strncpy(s2, s1, longitud); /* s2 = "Ho" */donde s2 no tiene el terminador NULL.

Es importante preservar el caracter de terminacin NULL, ya que con ste es como C define
y maneja las longitudes de las cadenas. Todas las funciones de la biblioteca estndar de C
lo requieren para una operacin satisfactoria.

En general, aparte de algunas funciones restringidas en longitud (strncat(), strncmp() y


strncpy()), al menos que se creen cadenas a mano, no se debern encontrar problemas. Se
debern usar las funciones para manejo de cadenas y no tratar de manipular las cadenas en
forma manual desmantelando y ensamblando cadenas.

Todas las funciones para manejo de cadenas tienen su prototipo en:

#include<string.h>

Las funciones ms comunes son descritas a continuacin:

char *strcpy(constchar *dest, constchar *orig) -- Copia la cadena de caracteres


apuntada por orig (incluyendo el carcter terminador '\0') al vector apuntado por dest.
Las cadenas no deben solaparse, y la de destino, debe ser suficientemente grande
como para alojar la copia.

Pgina | 47
intstrcmp(constchar *s1, constchar *s2) -- Compara las dos cadenas de caracteres s1
y s2. Devuelve un entero menor, igual o mayor que cero si se encuentra que s1 es,
respectivamente, menor que, igual a, o mayor que s2.

char *strerror(interrnum) -- Devuelve un mensaje de error que corresponde a un


nmero de error.

intstrlen(constchar *s) -- Calcula la longitud de la cadena de caracteres.

char *strncat(char *s1, const char *s2, size_t n) -- Agregancaracteres de s2 a s1.

intstrncmp(constchar *s1, char *s2, size_t n) -- Compara los primeros n caracteres de


dos cadenas.

char *strncpy(constchar *s1, constchar *s2, size_t n) -- Copia los primeros n


caracteres de s2 a s1.

strcasecmp(constchar *s1, constchar *s2) -- versin que ignora si son maysculas o


minsculas de strcmp().

strncasecmp(constchar *s1, constchar *s2, size_t n) -- versin insensible a


maysculas o minsculas de strncmp() que compara los primeros n caracteres de s1.

El uso de muchas funciones es directo, por ejemplo:

char *s1 = "Hola";


char *s2;
intlongitud;

longitud = strlen("Hola"); /* long = 4 */


(void) strcpy(s2,s1);

Observar que tanto strcat() y strcopy() regresan una copia de su primer argumento, el cual es
el arreglo destino. Observar tambin que orden de los argumentos es arreglo destino
seguido por arreglo fuente lo cual a veces es una situacin para hacerlo incorrectamente.

La funcin strcmp() compara lexicogrficamente las dos cadenas y regresa:

Menor que cero -- si s1 es lxicamente menor que s2;

Pgina | 48
Cero -- si s1 y s2 son lxicamente iguales;

Mayor que cero -- si s1 es lxicamente mayor que s2;

Las funciones de copiado strncat(), strncmp() y strncpy() son versiones ms restringidas que
sus contrapartes ms generales. Realizan una tarea similar, pero solamente para los
primerosn caracteres. Observar que el caracter de terminacin NULL podra ser violado
cuando se usa estas funciones, por ejemplo:

char *s1 = "Hola";


char *s2 = 2;
intlongitud = 2;

(void) strncpy(s2, s1, longitud); /* s2 = "Ho" */donde s2 no tiene el terminador NULL.

Unidad 4 Programacin de interfaces.

4.1 Programacin de puertos de la computadora.


Un puerto en la computadora es por donde la informacin fluye hacia dentro o hacia
fuera. Los dispositivos Hardware como la impresora o modem pueden ser llamados
puertos, un puerto que manda informacin fuera de tu computadora puede ser el
monitor o la impresora. Un puerto que recibe informacin seria el modem o un
scanner.
El puerto paralelo del PC es un conjunto de dispositivos (conector, circuitos
electrnicos, etc.) que permite la conexin de un equipo informtico con el propsito
de intercambiar informacin digital.

a) Puertos fsicos de la computadora:

Son conectores integrados en tarjetas de expansin o en la tarjeta principal


"Motherboard" de la computadora; diseados con formas y caractersticas
electrnicas especiales, utilizados para interconectar una gran gama de dispositivos
externos con la computadora, es decir, los perifricos. Usualmente el conector

Pgina | 49
hembra estar montado en la computadora y el conector macho estar integrado en
los dispositivos cables. Vara la velocidad de transmisin de datos y la forma fsica
del puerto acorde al estndar y al momento tecnolgico.
Anteriormente los puertos venan integrados exclusivamente en tarjetas de
expansin denominadas tarjetas controladoras, posteriormente se integraron en la
tarjeta principal "Motherboard" y tales controladoras 37 perdieron competencia en el
mercado, pero actualmente se siguen comercializando sobre todo para servidores.

b) Puertos lgicos de la computadora:


Son puntos de acceso entre equipos para el uso de servicios y flujo de datos entre
ellos, ejemplos el puerto 21 correspondiente al servicio FTP (permite el intercambio
de archivos) el puerto 515 que est asociado con el servicio de impresin.

4.2 Elaboracin de interfaces.

El diseo de interfaz de usuario o ingeniera de la interfaz es el diseo de


computadoras, aplicaciones, mquinas, dispositivos de comunicacin mvil,
aplicaciones de software, y sitios web enfocado en la experiencia de usuario y la
interaccin.

Normalmente es una actividad multidisciplinar que involucra a varias ramas del


diseo y el conocimiento como el diseo grfico, industrial, web, de software y la
ergonoma; y est implicado en un amplio rango de proyectos, desde sistemas para
computadoras, vehculos hasta aviones comerciales.

Su objetivo es que las aplicaciones o los objetos sean ms atractivos y adems,


hacer que la interaccin con el usuario sea lo ms intuitiva posible, conocido como el
diseo centrado en el usuario. En este sentido las disciplinas del diseo industrial y
grfico se encargan de que la actividad a desarrollar se comunique y aprenda lo ms
rpidamente, a travs de recursos como la grfica, los pictogramas, los estereotipos
y la simbologa, todo sin afectar el funcionamiento tcnico eficiente.

Tipos de Interfaces

Pgina | 50
El interface es de dos tipos que ellos son:

Interface Paralelo

Un interface paralelo transfiere datos en la forma de uno o varios bytes en la paralela


a o del dispositivo.

Asuma un ordenador 16 bites, direccionable por el byte, donde la entrada - salida


controlada del programa es usada con asincrnico del ducto, y el cronometraje de
transferencias de ducto es unos. El interface contiene memorias intermedias de
datos separadas para insumo y produccin y hay un registro de estado asociado con
cada memoria intermedia. Para una operacin de insumo, y la palabra de datos es
transferida del dispositivo de produccin a registros y puesta a 1. Cuando tan pronto
como la seal lista es recibida, esto habilita las puertas de produccin
correspondiente al byte dirigido o palabra y colocacin de sus contenido en las lneas
de datos. Tambin, la seal de produccin aceptan tambin es puesto a 1. Este
constituye la respuesta del interface a la peticin leda emitida por la unidad central
de proceso. Tan pronto como la seal lista se cae a 0, la seal aceptar es borrada y
todo el ducto es borrado. Note que cuando la memoria intermedia es dirigida, la
bandera de estado de insumo es reinicializada a 0. Este es esencial a fin de
garantizar que cada artculo de datos de insumo es ledo por el ordenador slo una
vez. Una operacin de produccin procede del mismo modo, cuando la seal
habilitar es puesta a 1. El insumo de reloj a la memoria intermedia de produccin es
puesto. Este resulta en la carga de la memoria intermedia con los datos en las lneas
de datos. Al mismo tiempo, es puesto a 1 indicar que el interface est listo a aceptar
una nueva transferencia de produccin.

Interface Consecutivo

Un interface consecutivo contiene el mismo recorrido de control y direccin que el


interface paralelo, pero con una adicin controla para transferir datos en serie entre
registros y el dispositivo de entrada - salida. Aqu, un chip es usado, que es un barco
de circuito integrado que contiene todo el recorrido lgico para la conversin paralela

Pgina | 51
y consecutiva requerida. Los dos registros y las banderas de estado son incluidos en
el chip.

4.3 Control de interfaces a travs de computadora.


En aplicaciones de control que requieren que el procesamiento de la informacin se
realice en una computadora personal (PC) la velocidad de transferencia de datos
desde y hacia la computadora puede ser un factor limitante. Para superar esta
limitacin se propone utilizar el bus USB como interface. En este artculo se muestra
un ejemplo aplicado al control de un brazo robot y como el cambio a una interface
USB permite mejorar la tasa de transferencia de datos entre la computadora y el
sistema de control del brazo robot.

Instrumentacin basada en PC es fcil de implementar el uso de herramientas y


tarjetas de National Instruments - Prueba y Medida. La mayora de los instrumentos
se pueden comunicar con el PC en la interfaz GPIB.

Puede empezar por aprender a usar el puerto paralelo y puerto serie. MIDI-puerto de
juegos tambin tiene lo suficiente para ayudarle a comenzar, aprender interfaces
informticas en el hogar.
Intente un pequeo experimento fcil de RS-232 del sensor de temperatura Powered.
Esto puede empezar tambin.
Los pocos ejemplos de arriba muestran una instrumentacin - Analizador Lgico
'Like' de interfaz y un circuito de control del rel de visualizacin. Son ejemplos he
intentado por los estudiantes a probar y aprender.

Elaborar una interfaz:

Como consecuencia del uso masivo de internet y de la gran cantidad de


documentacin disponible para desarrolladores, es posible encontrar en la actualidad
una gran variedad de productos de software. El problema est en que gran parte de
esas aplicaciones no cumple con el objetivo principal para el cual debieron ser
diseadas, que es facilitar la vida de sus usuarios, razn por la que muchas veces
Pgina | 52
son descartadas y reemplazadas por otras aplicaciones. En la mayor parte de los
casos esto no se debe a errores de codificacin, sino ms bien a la forma en que las
diferentes funcionalidades del software son presentadas a su pblico, lo que de
ahora en adelante conoceremos como "interfaz de usuario". Este elemento,
considerado una mtrica de la calidad de un software, influye directamente en la
percepcin final del producto y en la resistencia del usuario a probar la aplicacin.
Un software podr ser muy bueno y poderoso, pero no ser popular si su interfaz es
deficiente! Por eso, basado en mi experiencia como desarrollador y en diversas
lecturas sobre el tema, compartir los elementos que considero ms importantes al
momento de desarrollar una buena interfaz de usuario.

4.4 Aplicacin en la industria.


La interfaz de usuario ms popular consiste en la representacin grfica
de programas como iconos seleccionados a travs del ratn que se ejecutan en
ventanas desplegadas en la pantalla de la computadora. Los comandos y opciones
de los programas pueden ser seleccionados a travs de mens dispuestos en
2seccionesespecficas de las ventanas. Esta interfaz, conocida comnmente como
WIMP (Windowsicons-mouse-pointer), ha sido sumamente exitosa por ms de 20
aos, un perodo sorprendentemente largo cuando se habla de TICs.
Canny (2006) considera que la longevidad de las interfaces WIMP se debe, entre
otros, a dos factores principales. En primer lugar, esta abstraccin permiti que la
Computadora pudiera ser utilizada prcticamente por cualquier persona sin tener que
ser experta en computacin; se trata de una interfaz centrada en el usuario. En
segundo lugar, ha resultado muy apropiada al considerar la computadora como una
herramienta de trabajo para las funciones convencionales en la oficina, la escuela y
el hogar.

Sin embargo, este modelo de Interaccin Humano-Computadora (IHC) presenta


Severas limitaciones ante los nuevos escenarios que las TICs van englobando
durante su acelerado proceso de transformacin social. Un estudio reciente realizado
por la Divisin de Ciencias de la Computacin de la Universidad de California en

Pgina | 53
Berkeley consider que la prioridad nmero uno en investigacin y desarrollo debera
concentrarse en IHC(Canny, 2006).

Algunos de estos escenarios son el objeto de estudio del presente Documento, entre
los que cabe destacar los siguientes:

Si bien las interfaces WIMP han permitido la adopcin generalizada de las


Computadoras, la facilidad de uso sigue considerndose la principal barrera para el
Crecimiento y xito de las TIC en las organizaciones (Canny, 2006).
Hace tiempo que la computadora ha dejado de ser tan slo herramienta de trabajo
en la oficina y el hogar. Las consolas de videojuegos, los reproductores de DVD, los
nuevos televisores, un nmero creciente de sistemas de control en el automvil y el
hogar, son tan slo algunos ejemplos de equipos computacionales con los que el
hombre contemporneo interacta todos los das. En estos dispositivos resulta
crtica.
- Diseo minimalista: entre ms elementos existan en la pantalla, ms confundido y
temeroso se encontrar el usuario. Por eso es importante reducir al mximo el
nmero de componentes visibles, siendo muchas veces recomendada la utilizacin
de asistentes o "wizards", los cuales permiten dividir una gran pantalla de datos en
una serie de pasos lgicos, ordenados y sencillos de seguir. El uso de asistentes, al
estar compuestos por varias pantallas, permite adems mejorar el orden y
disposicin de los componentes.

- Distincin clara de los elementos: siempre que se incorpore un componente a la


pantalla del usuario, el diseador deber preocuparse que este sea diferenciable del
resto y de que su funcionalidad est claramente expresada. Para ello, el mejor
recurso es la utilizacin de imgenes, las cuales se recomienda sean nicas para
cada componente o agrupacin de los mismos, y semejantes a objetos de la vida
real, de forma de hacer la aplicacin ms intuitiva.

Pgina | 54
- Atencin a las glosas o textos: cada vez que se necesite colocar un texto en
pantalla, ya sea para reforzar el concepto de un componente o para entregar una
instruccin o advertencia, este deber ser cuidadosamente escrito, procurando
utilizar siempre el mismo tamao, color y fuente de letra, dejando fuera el uso de
"negrita" , "cursiva" o cualquier otro elemento que sobrecargue la pantalla ms de lo
necesario. Aunque suene obvio, los textos debern ser siempre lo ms concisos y
claros posibles, intentando idealmente localizarlos de acuerdo a la regin geogrfica
donde vayan a ser utilizados.

- Minimizar el uso del teclado y de comandos especiales: no hay aplicacin ms


confusa y difcil de usar que una pensada para "ingenieros". Muchos software caen
en el error de incorporar comandos especiales para realizar acciones de programa,
pensando que un usuario experto ganar tiempo evitando el uso del mouse. Esto es
un error, puesto que son pocos los usuarios que destinan tiempo a leer la
documentacin de un programa antes de comentar a utilizarlo (mucho menos podrn
conocer y memorizar sus comandos de uso); adems el uso de comandos aumenta
la posibilidad de realizar acciones involuntarias, lo cual puede llegar a ser
atemorizante para los usuarios. Una aplicacin amigable es aquella que muestra
todas las posibles acciones en pantalla; el teclado deber utilizarse slo cuando sea
imprescindible, como en el llenado de formularios u otras acciones similares.

- Evitar dilogos innecesarios: existen aplicaciones que ante una accin reiterativa
muestran un cuadro de dilogo con un mensaje de xito. Esto puede resultar
extremadamente molesto para un usuario que ya conoce las consecuencias de su
accin. Por eso se recomienda el uso de cuadros de dilogo slo para advertencias o
sugerencias crticas (relacionadas a acciones no reversibles).

- Prevencin de errores: un usuario aprender ms rpido a utilizar y confiar en


una aplicacin si sabe que no cometer errores en su uso o si sabe que estos
pueden ser revertidos rpidamente. Para esto el diseador debe saber acotar las
posibilidades de accin del usuario, quitando la mayor cantidad de objetos de error

Pgina | 55
posibles; adems debe cuidar que cada accin crtica del programa pueda ser
revertida en caso de ser requerido.

- Flexibilidad ante todo: no se debe confundir el control con la falta de flexibilidad.


Si un usuario, por ejemplo, desea no incorporar una imagen en una tarjeta de
presentacin utilizando un formato que si la requiere, el software a lo ms debera
advertir sobre la falta de la foto, pero no prohibirle que termine el proceso de
elaboracin de su tarjeta. Un desarrollador nunca sabr los alcances finales y usos
definitivos de su software hasta que sea utilizado por sus usuarios, por lo que es
mejor enfocar los esfuerzos en mejorar la robustez del software antes que caer en un
control excesivo.

- Manejo de preferencias de usuario: con la tecnologa de hoy no es difcil


incorporar mecanismos de almacenamiento personalizado de preferencias para los
usuarios. Recordar elementos tan sencillos como la configuracin del idioma o la
aparicin de ciertos cuadros de dilogo facilitan enormemente el trabajo de quienes
utilizan una aplicacin.

En resumen una buena interfaz:

- Disminuye la resistencia natural del usuario a utilizar la aplicacin.

- Reduce los tiempos de aprendizaje.

- Reduce los errores de uso.

- Mejora la percepcin pblica del software.

- Mejora la calidad de vida de los usuarios (facilita su labor).

Pgina | 56
BIBLIOGRAFA

https://sites.google.com/site/basesdelaprogramacion/unidad-iii

https://sites.google.com/site/basesdelaprogramacion/unidad-iv

https://sites.google.com/site/basesdelaprogramacion/

https://sites.google.com/site/mimadeo/articulos/programacion-modular-c

Pgina | 57

También podría gustarte