UNIVERSIDAD NACIONAL DE LOMAS DE ZAMORA
FACULTAD DE INGENIERÍA
INGENIERÍA MECATRÓNICA
FUNDAMENTOS DE LOS COMPUTADORES DIGITALES
MÓDULO 2
INTRODUCCIÓN AL LENGUAJE C
CURSO 2021
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
AUTORES
Martín Gonzalez - Ingeniero en Electrónica (UTN)
Mauro Maceda - Ingeniero en Electrónica (UTN)
Lautaro Fontana - Ingeniero en Mecatrónica (UNLZ)
Ezequiel Blanca - Ingeniero en Electrònica (UTN)
Néstor Maceda - Licenciado en Informática Educativa (UNLa)
License Creative Commons
Fundamentos de los Computadores Digitales 1
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
Lenguajes de programación 4
Introducción a la codificación 4
Introducción al concepto 4
Concepto de lenguaje de programación 4
Concepto de lenguaje informático 4
Concepto de programador 4
Aspectos históricos 5
La idea de lenguaje de programación 5
Reseña histórica 5
Clasificación de los lenguajes de programación 6
Según su nivel de abstracción 6
Lenguaje máquina 6
Lenguaje de bajo nivel (Ensamblador) 7
Lenguaje de Nivel medio 7
Lenguaje de Alto Nivel 8
Según su ejecución 8
Lenguaje compilado 8
Lenguaje interpretado 10
Según su propósito 10
Lenguajes de propósito general 10
Lenguajes de propósito específico 10
Lenguaje de programación C 11
Introducción al lenguaje C 11
El programa en lenguaje C 13
Estructura general 13
Inclusión de librerías 13
Declaración de Constantes 14
Comienzo del programa 14
Declaración de Variables 15
Tipos de dato 15
Números enteros 16
Números reales 16
Letras o Caracteres 17
Booleano 17
Cuerpo del programa 18
Comentarios en la codificación 20
Fundamentos de los Computadores Digitales 2
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
Lenguajes de programación
Introducción a la codificación
Hasta el momento hemos realizado algoritmos para resolver problemas, y los hemos
representado tanto en Diagramas de Flujo, como en Pseudocódigo. Pero para que un
ordenador pueda ejecutar dichos algoritmos es necesario codificarlos.
Realizar la conversión de un algoritmo a un lenguaje de programación no solo es
sustituir las palabras reservadas del pseudocódigo al del lenguaje. Sino que también hay que
considerar otros detalles, como la declaración de variables, constantes y librerías.
Antes de continuar con el Lenguaje C, es necesario conocer algunos conceptos y
diferencias entre lenguajes.
Introducción al concepto
Concepto de lenguaje de programación
El lenguaje de programación, es un lenguaje artificial que se utiliza para controlar el
comportamiento de una máquina, entre las cuales se encuentran las computadoras. Se
compone de un conjunto de reglas semánticas y sintácticas que permiten expresar
instrucciones que luego serán interpretadas.
Concepto de lenguaje informático
Hay que diferenciarlo del “lenguaje informático”, ya que esta última pertenece a una
definición más amplia que abarca los lenguajes de programación. Un lenguaje informático es
un lenguaje usado por ordenadores. Por ejemplo, HTML (Lenguaje de marca) es un lenguaje
informático que describe la estructura de un documento.
En definitiva, un lenguaje de programación es aquél que se utiliza para describir
programas que puedan ser entendidos por las computadoras o máquinas.
Concepto de programador
Un programador es aquella persona que elabora programas de
computadora,es decir escribe, depura y mantiene el código fuente de
un programa informático, que ejecuta el hardware de una
computadora, para realizar una tarea determinada.
Junto con Babbage, su colaboradora Ada Lovelace es
considerada como la primera programadora de la historia, ya que
escribió los primeros programas (1836 - 1843) para la máquina concebida por Babbage en
tarjetas perforadas, siguiendo una lógica de programación muy similar a la empleada en
nuestros días. Estos programas nunca pudieron verse ejecutados debido a que la máquina no
fue construida.
Fundamentos de los Computadores Digitales 3
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
Aspectos históricos
La idea de lenguaje de programación1
Profesor de matemáticas e inventor en la universidad de
Cambridge, Inglaterra, a mediados del siglo XIX, Charles Babbage
fue el primero en concebir la idea de un lenguaje de programación,
al predecir varias de las teorías en las que se basan las
computadoras actuales. Babbage desarrolló la idea de una máquina
analítica programable (mecánica) que, por limitaciones
tecnológicas de su época, no pudo ser construida.
Reseña histórica
1957 FORTRAN John W. Backus
1958 ALGOL
1960 Lisp John McCarthy
1960 COBOL Grace Hopper.
1962 APL
1962 SIMULA
1964 BASIC
1964 PL/I
1969 B Kenneth L. Thompson con contribuciones de Dennis M. Ritchie
1970 Prolog Alan Colmerauer, Roussel y Kowalski,
1972 C Dennis Ritchie
1975 Pascal Niklaus Wirth
1975 Scheme
1975 Modula
1983 Smalltalk-80
1983 Objective-C
1983 Ada Jean Ichbiah
1986 C++ Bjarne Stroustrup
1986 Eiffel
1987 Perl Larry Wall
1988 Tcl/Tk
1990 Haskell
1991 Python
1993 Ruby
1995 Java
1995 PHP
2000 C#
1
[Link] repositorio/moodle/[Link]/ 1023/ mod_resource/content/
1/ contenido/[Link]
Fundamentos de los Computadores Digitales 4
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
Clasificación de los lenguajes de programación
Una de las clasificaciones más importantes, es la que considera la distancia que hay entre el
lenguaje a utilizar y el “idioma” que entienden las máquinas y electrónica. Cuanto más relacionado
esté con la arquitectura del hardware y el funcionamiento electrónico, más de bajo nivel será. Existen
según esto, tres categorías principales:
Según su nivel de abstracción
Lenguaje máquina
El lenguaje de máquina o código máquina es el
sistema de códigos directamente interpretable por un circuito
microprogramable, como el microprocesador de una
computadora o el microcontrolador de un autómata.
Este lenguaje está compuesto por un conjunto de
instrucciones que determinan acciones a ser tomadas por la
máquina. Las instrucciones en lenguaje máquina se expresan
en términos de la unidad de memoria más pequeña, es decir el bit (dígito binario 0 y 1).
El lenguaje de máquina es específico de la arquitectura de la máquina, aunque el
conjunto de instrucciones disponibles pueda ser similar entre arquitecturas distintas.
Ejemplo de lenguaje máquina
El lenguaje será entendible e interpretado por el procesador, y así eran
programadas las primeras computadoras, escribiendo unos y ceros. Pero, programar
de esta forma es muy difícil porque es muy fácil equivocarse, ya que lo único que
vemos es una sucesión de unos y ceros sin sentido 1100 0111 1110 0110, y es muy poco
claro para un programador. Cuando los programas se volvieron más extensos e implicó
trabajo en equipo, leer y comunicar entre los programadores una lista de unos y ceros
no era muy viable. Entonces, para simplificar la programación, aparecieron los
primeros lenguajes que eran apropiados para el desarrollo extenso y complejo de
Fundamentos de los Computadores Digitales 5
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
programas a mayor escala: el lenguaje Ensamblador. Para la época esto era toda una
revolución que facilitaba enormemente el trabajo.
Lenguaje de bajo nivel (Ensamblador)
Este lenguaje está relacionado íntimamente con el hardware del ordenador, ya
que ejerce un control directo sobre este, y depende directamente de su arquitectura. Su
denominación de “bajo nivel” hace referencia a su reducida abstracción entre el
lenguaje y el hardware.
En este lenguaje las instrucciones se escriben en códigos alfabéticos, conocidos
como mnemotécnicos (abreviaturas de palabras). Ejemplo de un programa en lenguaje
ensamblador:
Por ejemplo: MOV AX, [11A], mueve el contenido de la dirección de memoria
11A al registro acumulador AX del microprocesador. ADD AX, [11C], Suma el
contenido de la dirección de memoria al contenido del registro AX y lo guarda en el
registro AX.
Como se puede observar, trabaja directamente con los REGISTROS del
microprocesador y las direcciones de la memoria RAM de la computadora. Es decir,
para programar en lenguaje ensamblador se requiere tener conocimientos de electrónica
y la arquitectura del hardware.
Lenguaje de Nivel medio
Los lenguajes de nivel medio son aquellos que permiten un grado de abstracción
como los lenguajes de alto nivel, pero no son tan confortables en su programación (está
dentro de los lenguajes duros de programación (difíciles) ) al no tener automatizaciones
en el control errores, control de sintaxis, etc. Esto se debe a que intenta mantener la
potencia y velocidad de los lenguajes de bajo nivel al mismo tiempo que cierta
facilidad de los lenguajes de alto nivel. Ejemplo: el lenguaje C. El lenguaje de
Fundamentos de los Computadores Digitales 6
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
programación C, es un lenguaje informático aplicado a la programación electrónica de
dispositivos en el campo de la ingeniería. Por sus ventajas y orientación hacia el
hardware es útil para la creación de:
● Sistemas operativos de computadoras
● Controladores de hardware periféricos
● Programas embebidos como el Bios y microcontroladores
● Programación industrial
● Hackeo de sistemas e informática forense
Lenguaje de Alto Nivel
Este tipo de lenguajes se caracteriza por su fácil comprensión. Esto se debe a
que se escribe con palabras similares a las del lenguaje humano, lo que le da un alto
nivel de abstracción del lenguaje máquina.
Son transportables, es decir, se pueden ejecutar en diferentes tipos de
ordenadores con ninguna o muy pocas modificaciones. Por lo tanto, son independientes
de la máquina, es decir, no dependen (o muy poco) de la arquitectura del hardware.
Sus principales ventajas son que permite generar código más complejo y en
menor tiempo, válido para distintos tipos de máquinas o sistemas operativos. Además
de esto, se pueden utilizar paradigmas de programación (Estructurada, Orientada a
Objetos, etc) que corresponden a los distintos paradigmas de comunicación.
Según su ejecución
Como estos lenguajes no pueden ser entendidos directamente por la máquina, ya
que se “alejan” del procesador, deben ser traducidos. En líneas generales, pueden clasificarse
en: lenguajes interpretados y lenguajes compilados
Lenguaje compilado
Es aquel lenguaje cuyo código fuente es traducido por un compilador a un
archivo ejecutable que posee el código máquina y es entendible por el procesador.
Los archivos ejecutables, son todas las aplicaciones que empleamos normalmente
Fundamentos de los Computadores Digitales 7
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
cuando trabajamos en una computadora. Por ejemplo, el software Microsoft Word, con
el cual producimos archivos de texto con extensión .doc, es en realidad un archivo
ejecutable llamado [Link] que es entendible por el procesador para ser ejecutado
y hacer nuestro documentos.
Estos archivos se conocen como archivos ejecutables porque pueden ser
interpretados y ejecutados por el procesador. Por ello son identificados en el sistema
operativo Windows por su extensión .EXE (del inglés EXECUTABLE). En el sistema
operativo Linux también existen y son identificados con la extensión .ELF (del inglés
EXECUTABLE AND LINKABLE FORMAT).
Antiguamente, el código fuente (el algoritmo desarrollado y codificado por el
programador), debía ingresarse cada vez que tenía que ejecutar un programa. Una tarea
que obviamente demoraba mucho. Usar un programa, requería conocimientos
especializados de matemática avanzada, mecánica, electrónica y programación.
Hoy en día, con los programas compilados, no es necesario tener
conocimientos científicos o de ingeniería avanzada para usar un programa. Los
lenguajes compilados son una gran ventaja, ya que los usuarios pueden ejecutar un
programa (.exe) para utilizarlo (las veces que deseen) sin necesidad de saber cómo está
construido.
El lenguaje C pertenece a este tipo de lenguajes de programación que son
compilados. La ventaja principal de los lenguajes compilados es la velocidad y la
mínima utilización de recursos de hardware.
Pero los lenguajes compilados tienen un problema. El archivo ejecutable, solo
se puede ejecutar para un hardware y un sistema operativo determinado. Ya que es un
archivo de código entendible para la computadora, y al cambiar de tecnología de
hardware o sistema operativo dicho archivo ejecutable es inservible, puesto que cada
hardware tiene su forma propia de entender el lenguaje máquina.
Fundamentos de los Computadores Digitales 8
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
Lenguaje interpretado
Como se mencionó anteriormente, un lenguaje de programación (código fuente)
es diferente del lenguaje máquina, pero es este último el que necesita un ordenador para
poder ejecutarlo.
Los lenguajes que son interpretados necesitan de un programa auxiliar que
traduzca el código fuente a instrucciones legibles por el procesador. El intérprete
ejecuta el programa directamente, traduciendo cada sentencia en una secuencia de una
o más subrutinas ya compiladas en código máquina.
Estos lenguajes tienen la ventaja de no depender del hardware. Ya que existe un
programa auxiliar que se encarga de interpretar nuestro programa y traducirlo al
lenguaje del hardware que se esté empleando.
Naturalmente, esta ventaja de poder trabajar en MULTIPLATAFORMAS, se
traduce en una desventaja en requerimientos de hardware y disminución de velocidad.
Ejemplos de lenguajes interpretados son el JavaScript, VBScript, PHP, ASP,
Ruby, Python y muchos más.
Según su propósito
Lenguajes de propósito general
Ejemplo de estos son el lenguaje de alto nivel. Aunque en un principio
también lo fueron los lenguajes de nivel medio como el C y el primer Basic), Los
lenguajes de propósito general más comunes son: Basic, Pascal y C. Posteriormente con
la aparición de sistemas operativos visuales como el Windows aparecieron lenguajes
visuales: Visual C++, Visual Basic, etc.
Lenguajes de propósito específico
Son lenguajes de programación orientados y creados para ser empleados
directamente en un campo especializado, sea este de tipo tecnológico, disciplinario o
científico. Ejemplo de ellos son:
● Lenguajes para la gestión de información: Con la aparición de los
computadores surgió la necesidad de automatizar el almacenamiento y el
Fundamentos de los Computadores Digitales 9
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
acceso a la información. Para ello surge el lenguaje XML, siglas en inglés de
eXtensible Markup Language, traducido como "Lenguaje de Marcado
Extensible" o "Lenguaje de Marcas Extensible", es un metalenguaje inventado
por IBM en 1970 y que se utiliza para almacenamiento de grandes cantidades
de información. Actualmente se utiliza en las bibliotecas virtuales o
repositorios institucionales.
● Lenguajes para el desarrollo web: Con el desarrollo de internet, aparece el
lenguaje de programación HTML: siglas en inglés de HyperText Markup
Language (‘lenguaje de marcado de hipertexto’). específico de las páginas
web del lado del cliente, como lo son el javascript, vbscript. O bien PHP, ASP
y AJAX del lado del servidor.
● Lenguajes para el análisis de datos: un ejemplo es el lenguaje de
programación R. Muy utilizado para manipular grandes cantidades de datos y
realizar complejas estadí[Link] este campo se conoce como
ciencia de datos, big data o data analytic. También el SPSS para manejo de
datos en las ciencias sociales.
● Lenguajes para la investigación científica: las ciencias también tienen sus
lenguajes de programación y muy utilizados son el lenguaje R ya mencionado,
el lenguaje Prolog, lenguaje Python. Matlab, SciLab, Lisp, etc.
● Lenguajes para el desarrollo de tecnologías blandas: son los relacionados
con la gestión empresarial o la gestión industrial o bien cualquier sector donde
se requiera específicamente desarrollo y automatización de la gestión. Ejemplo
de esto es el Python.
● Lenguajes para el desarrollo de tecnología industrial dura: son lenguajes
de programación muy específicos que se encuentran relacionados con el
hardware, el desarrollo de tecnología industrial de automatización y control,
tecnología electrónica o tecnologías duras. Ejemplo son el PLC (Control
lógico programable) SCADA, CNC, MatLab y el lenguaje C, (si bien es
históricamente de propósito general lo que le permite adaptarse a todo
dispositivo, es muy utilizado para la programación de sistemas embebidos).
● Otros: de uso específico, actuales son los que tienen que ver con el desarrollo
de multimedia, de videojuegos, etc.
Lenguaje de programación C
Introducción al lenguaje C
El lenguaje de programación C es la base de muchos lenguajes, por eso, conocerlo te
facilitará la tarea de domar muchos entornos similares. Es uno de los lenguajes de
programación más populares en el mundo, se ejecuta en la mayoría de los sistemas operativos
Fundamentos de los Computadores Digitales 10
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
y puede ser usado en casi todas las plataformas informáticas. Fue desarrollado por Dennis M.
Ritchie junto a Brian Kernighan en los años 70.
Es cierto que puede ser un lenguaje más difícil de aprender que otros, pero posee
grandes ventajas sobre ellos. Un programa escrito en C puede ser más pequeño que el mismo
programa escrito en otro lenguaje, y por ende, más veloz.
Como desventaja, se trata de un lenguaje más tolerante a errores de programación, lo
que hace que un pequeño descuido cause grandes consecuencias.
Uno de los objetivos de diseño del lenguaje C fue que solo sean necesarias unas pocas
instrucciones en lenguaje máquina para traducir cada uno de sus elementos, sin que haga falta
un soporte intenso en tiempo de ejecución. Es posible escribir C a bajo nivel de abstracción.
De hecho, C se usó como intermediario entre diferentes lenguajes.
Las principales características que posee el lenguaje C son:
● Es un lenguaje de programación de nivel medio ya que combina los elementos del
lenguaje de alto nivel con la funcionalidad del ensamblador.
● Sirve para crear aplicaciones y software de sistemas.
● Es portable, es decir, posibilita la adaptación de programas escritos para un tipo de
computadora en otra.
● Es de fácil aprendizaje.
● Posee un completo conjunto de instrucciones de control.
● Al ser un lenguaje estructurado se divide el programa en módulos, lo que permite que
puedan compilarse de modo independiente.
● El código generado por el lenguaje es muy eficiente ya que los datos son tratados
directamente por el hardware de números, caracteres y direcciones de las
computadoras.
● Trabaja con librerías de funciones en las que básicamente solo se necesita cambiar los
valores dentro de una aplicación dada.
● Es uno de los lenguajes más populares. Muy utilizado, especialmente en el campo de
la ingeniería y el campo científico.
● Dispone de excelentes compiladores de C gratuitos, para casi cualquier plataforma
sobre la que se quiera trabajar y con entornos de programación claros y funcionales.
Dennies Ritchie (parado) junto a Thompson, año 1972.
Ambos trabajando con la PDP-11 Fuente: Wikipedia.
Fundamentos de los Computadores Digitales 11
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
El programa en lenguaje C
Estructura general
La estructura general básica de un programa escrito en C es la siguiente:
Inclusión de librerías
Declaración de constantes
Comienzo del programa
Declaración de variables
Cuerpo del programa
Inclusión de librerías
Las librerías consisten en archivos de código, que poseen funciones y rutinas
estandarizadas escritas en un lenguaje de programación, que podemos incluir en nuestros
programas. Básicamente, es un código hecho por otro programador que podemos reutilizar.
Para poder utilizarlas, el programador debe invocar todas aquellas librerías que necesite
al principio del programa.
La extensión de las librerías es .h, es decir nombre_libreria.h, y en Lenguaje C para
invocarlas se debe hacer uso de la palabra reservada: #include, quedando de la siguiente
forma:
#include <nombre_libreria.h>
Hay una librería que nunca debe faltar, y ella es stdio.h, que contiene los prototipos de
funciones y los tipos de datos para manipular sus entradas y salidas. Es decir que siempre
comenzaremos por incluir en nuestros programas la siguiente línea:
#include <stdio.h>
Existen muchas otras librerías, algunas pertenecen a La Librería Estándar de C, y
otras pueden ser de terceros, o desarrolladas por nosotros mismos.
● Algunas de las librerías más comunes son:
● #include < stdlib.h > Contiene tipos, macros y funciones para la conversión
numérica, generación de números aleatorios, búsquedas y ordenación, gestión de
memoria y tareas similares.
● #include < string.h > Contiene los prototipos de las funciones y macros de
clasificación de caracteres.
● #include < math.h > Contiene los prototipos de las funciones y otras definiciones
para el uso y manipulación de funciones matemáticas.
Fundamentos de los Computadores Digitales 12
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
● #include < time.h > Contiene los prototipos de las funciones, macros, y tipos para
manipular la hora y la fecha del sistema
Atención: en un programa puede utilizarse más de una librería y el orden es indistinto,
siempre y cuando se ubiquen en la cabecera. En el pseudocódigo no escribíamos este dato.
Declaración de Constantes
Una constante es un valor que permanece inalterable durante todo el programa, es decir,
que no puede ni debe cambiar de valor.
Su declaración se indica antes del comienzo del programa, y su valor debe ser conocido
previamente.
La manera de declarar constantes en C es utilizando la palabra reservada #define.
Por convención, los nombres de constantes se escriben en MAYÚSCULAS, para
facilitar la lectura del código, e identificar rápidamente si estamos hablando de una constante
o una variable.
Por ejemplo, si queremos declarar la constante de π en nuestro programa, podemos
hacerlo de la siguiente forma:
#define PI 3.1416
Si se tratara de más de una constante, éstas se definen una debajo de la otra.
Atención: la declaración de constantes no necesita ; (punto y coma) para finalizar la
línea de comando.
Comienzo del programa
En los diagramas de flujo o pseudocódigo utilizamos el símbolo de inicio y fin de
proceso, o “proceso” respectivamente. Pero en C es diferente.
La filosofía en la que se basa el diseño del Lenguaje C es el empleo de funciones. Por
esta razón, un programa en C contiene al menos una función, la función main. Esta función es
particular dado que la ejecución del programa se inicia con las instrucciones contenidas en su
interior, y controla las llamadas a otras funciones. Un programa deja de ejecutarse
normalmente al final de main, aunque puede finalizar en otros puntos del programa por
distintos motivos. A veces, quizás cuando se detecta un error, puede resultar conveniente
forzar la finalización de un programa.
Es por eso que nosotros comenzaremos escribiendo todos nuestros programas dentro de
este bloque, hasta que aprendamos a crear y hacer uso de otras funciones.
El cuerpo del programa se encuentra encerrado entre las llaves { } del main().
Fundamentos de los Computadores Digitales 13
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
La sintaxis general del main es la siguiente:
int main ()
{
//Comienzo del programa...
.
.
.
return 0; //Fin del programa
}
Declaración de Variables
Declarar es identificar con un nombre y un tipo a una variable. La sintaxis general es:
tipo_dato_variable nombre_variable;
Ejemplos:
int A;
int A,B;
float suma;
char C1;
float S1,S2;
Atención: en este lenguaje no puede quedar ninguna variable sin declarar. Además es
importante saber que se diferencian las minúsculas de las mayúsculas.
Tipos de dato
Para programar, cuando estamos operando con variables, es necesario saber que tipo
de dato es, ya que eso nos determinará qué operaciones podemos hacer con ella y que tipo de
valores guarda dentro.
Un tipo de dato es la propiedad de un valor que determina su dominio (qué valores
puede tomar), qué operaciones se le pueden aplicar y cómo es representado internamente por
la computadora.
Cada lenguaje de programación tiene un determinado conjunto de tipos de datos que
puede manipular.
Empezaremos primero por ver los tipos de datos primitivos o básicos en lenguaje C.
Cada tipo de dato básico determina el conjunto de valores que puede asumir una variable.
C ofrece tres tipos de datos básicos:
Fundamentos de los Computadores Digitales 14
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
Números enteros
Se definen con “int” y admiten de forma opcional dos prefijos modificadores:
● “short” y “long”: Modifica el tamaño en bits del entero. Existen por tanto tres tipos de
enteros: “int”, “short int” (que se puede abreviar como “short”), y “long int” (que se
puede abreviar como “long”).
● “unsigned”: define un número natural (mayor o igual a cero).
Nombre Tamaño Alcance
short 16 bits desde -32.768 hasta 32.767
unsigned short 16 bits desde 0 hasta 65535
int 32 bits desde -[Link] hasta [Link]
unsigned int 32 bits desde 0 hasta [Link]
long 32 bits desde -[Link] hasta [Link]
unsigned long 32 bits desde 0 hasta [Link]
long long 64 bits desde -[Link].854.775.808 hasta
[Link].854.775.807
unsigned long long 64 bits desde 0 hasta [Link].709.551.615
Los tipos long long y unsigned long long pueden no encontrarse en todos los
compiladores.
Su sintaxis es:
int nombre_variable;
long nombre_variable;
Números reales
Los números reales se definen con “float” o “double”. La diferencia entre ambas es
la precisión que ofrece su representación interna. Hay un número infinito de reales, pero se
representan con un número finito de bits. A mayor número de bits, mayor número de reales
se representan, y por tanto, mayor precisión. Los reales definidos con “double” tienen un
tamaño doble a los definidos con “float”.
Nombre Tamaño Alcance
Fundamentos de los Computadores Digitales 15
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
float 32 bits desde 1,17549e-38 hasta 3,40282e+38
double 64 bits desde 2,22507e-308 hasta 1,79769e+308
long double 96 bits (80 bits reales) desde 1,68105e-4932 hasta 1,18973e+4932
Su sintaxis es:
float nombre_variable;
double nombre_variable;
.
Letras o Caracteres
Involucra un conjunto ordenado y finito de símbolos que el procesador puede
reconocer.
Si bien no existe un conjunto estándar, podemos decir que dicho conjunto está
básicamente integrado por:
● Letras mayúsculas (desde la A hasta la Z), sin incluir la CH y la LL (eventualmente
puede no ser incluida la Ñ).
● Letras minúsculas (desde la a hasta la z), con las mismas restricciones que para las
mayúsculas.
● Dígitos (del 0 al 9).
● Caracteres especiales
La sintaxis es:
char nombre_variable;
char nombre_variable2 = ‘D’;
Char es la reducción de la palabra en inglés character, que significa carácter.
Atención: en C los caracteres van delimitados por comillas simples.
Por ejemplo: categoría = ‘A’
Booleano
En programación, el tipo de dato lógico o booleano es aquel que puede representar
valores lógicos de forma binaria, por lo general representan “verdadero” o “falso”.
En C puede tomar los valores de “true” o “false” respectivamente, y su sintaxis
general es:
bool nombre_variable;
bool nombre_variable2 = false;
Fundamentos de los Computadores Digitales 16
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
Cuerpo del programa
Aquí es donde debemos introducir nuestro algoritmo. En nuestro caso, traduciremos
nuestro diagrama de flujo y/o pseudocódigo en lenguaje c. El cuerpo del programa queda
encerrado entre las llaves {} del main.
A continuación podrán ver un ejemplo simple en C y en su diagrama de flujos.
Ejemplo 1: mostrar el siguiente cartel “Bienvenidos a la Codificación”.
Diagrama de flujo Código
#include <stdio.h>
int main() {
printf(“Bienvenidos a la
Codificación”);
return 0;
}
Ejemplo 2: mostrar la suma de tres números siendo: A = 5, B = 8 y C = 1.
Diagrama de flujo Código
#include <stdio.h>
int main() {
int A, B, C, suma;
A = 5;
B = 8;
C = 1;
suma = A + B + C;
printf(“La suma es %i”,suma);
return 0;
}
La declaración de variables puede realizarse por separado. Para el ejemplo anterior será:
int A;
Fundamentos de los Computadores Digitales 17
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
int B;
int C;
int suma;
Las asignaciones y el cálculo de la suma son idénticos, pero la impresión tiene una diferencia,
además de su traducción imprimir → printf
El printf puede mostrar el contenido de una o más variables y, por lo general, va acompañado
de carteles o literales.
En nuestro ejemplo:
printf(“La suma es %i”,suma); el cartel es “La suma es “ , luego %i que es una máscara de
salida o secuencia de escape y, por último, suma que es la variable. Cada máscara va asociada a una
variable, en estos casos %i se asocia a suma, esto quiere decir que el formato de salida que debe
mostrarse debe ser un entero.
Otro ejemplo:
printf(“El área es %i y el perímetro es %i”, A, Peri);
Esto quiere decir que tanto A como Peri son de tipo entero.
En la siguiente tabla mostramos las máscaras más comunes.
Máscara/Secuencia de escape Imprime
%i o %d Un entero
%f Un float
%lf Un double
%c Un único carácter
%s Una cadena de caracteres
%(número)s Una cadena de caracteres limitada por un número, por ejemplo:
%5s (en estos casos imprimirá los cinco primeros caracteres)
%% Esto es por si queremos imprimir el símbolo de porcentaje
%(número1).(número2)f Un número con decimales. El tamaño es número1 y la cantidad de
decimales es número2. Por ejemplo: %6.2f (el tamaño del número será 6 y
tendrá 2 decimales)
Fundamentos de los Computadores Digitales 18
Facultad de Ingeniería - Universidad Nacional de Lomas de Zamora
Fundamentos de los Computadores Digitales
Otro ejemplo:
Diagrama de flujo Código
#include <stdio.h>
Int main() {
int A;
scanf(“%i”,&A);
printf(“El valor de la variable es: %i”,A);
return 0;
}
El scanf es la función que nos ayuda a obtener los datos por teclado.
La traducción de la sentencia “Leer” en Pseudocódigo, o el “paralelogramo” en
Diagrama de flujos, es scanf. Éste tiene asociados dos parámetros: la máscara y la variable
de ingreso. Delante de la variable hay un “&” que nos da como resultado la dirección de la
variable, donde se va a almacenar el dato.
Nota: da lo mismo usar la máscara %i o %d.
Comentarios en la codificación
El lenguaje C, como la mayoría de los otros lenguajes, permite al programador
introducir comentarios en el programa fuente, pero que el compilador ignora siempre y
cuando estén expresados dentro de los símbolos «/*» en el comienzo y «*/» para el final.
/* Esto es un comentario que
ocupa varias líneas */
También se puede crear un comentario con el símbolo «//» , emitiéndolo en una sola
línea.
La misión de estos comentarios es servir de explicación o aclaración sobre cómo está
desarrollado el programa, de forma que pueda ser entendido por cualquier otra persona o
por el propio programador un tiempo después.
Fundamentos de los Computadores Digitales 19