Sei sulla pagina 1di 14

UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE

Nombres: BARAHONA ANDRE


CACHIPUENDO DANIEL

NRC: 2927
Fecha de entrega: 2017 06 05

INTRODUCCIN AL LENGUAJE C

1.1. ORIGEN

El lenguaje c fue creado por Dennis Ritchie de los laboratorios Bell, en 1972, cuando
trabajaba junto con Ken Thompson en el diseo del sistema operativo UNIX.
El lenguaje C fue el resultado de un proceso que comenz con los lenguajes BCPL que
fue desarrollado por Martin Richards y B inventado por Ken Thompson.

El lenguaje C es el lenguaje predominante en el mundo de las computadoras de sistema


UNIX y computadoras personales, siendo usado por compaas de software, estudiantes
de informtica, etc.

A medida que el lenguaje C creci en popularidad, se comenz a usarlo para programar


cualquier tipo de tarea, debido a sus ventajas y desempeo.

1.2. VENTAJAS

El lenguaje C es un lenguaje moderno que incorpora caractersticas como la


planificacin escalonada, programacin estructurada y diseo modular, el resultado es
un programa ms fiable y comprensible. Adems con respecto a los otros lenguajes de
programacin, el lenguaje C tiene las siguientes ventajas:

Eficiencia
Portabilidad
Potencia
Flexibilidad

1.3. C COMO LENGUAJE DE NIVEL MEDIO

1
El lenguaje C se considera un lenguaje de nivel medio, porque combina elementos del
lenguaje de alto nivel con el funcionalismo del lenguaje ensamblador. Esto no significa
que sea menos potente, ms difcil de usar o menos evolucionado, ni que sea de bajo
nivel, con los problemas asociados.

Otro aspecto importante es que el lenguaje C solo tiene 32 palabras clave, que
constituyen las rdenes que lo conforman. Estas palabras junto con la sintaxis, forman
el lenguaje C.

Auto Double Int Struct


Break Else Long Switch
Case Enum Register Typedef
Char Extern Return Unin
Const Float Short Unsigned
Continue For Signed Void
Default Goto Sizeof Volatile
Do If Static While

1.4. EL C COMO LENGUAJE DE ALTO NIVEL

El lenguaje C como un lenguaje de alto nivel tiene estructuras en bloques, funciones


independientes, y un compacto conjunto de palabras claves. Entonces, un programa en
lenguaje C puede frecuentemente alcanzar la eficiencia del cdigo ensamblador, como
su velocidad, junto con la estructura de los lenguajes de alto nivel.

El lenguaje C normalmente es compilado, y en la actualidad los compiladores del


lenguaje C tienen un intrprete para ayudar en la depuracin.

1.5. EL C COMO LENGUAJE ESTRUCTURADO

Un lenguaje estructurado por bloques permite declarar procedimientos dentro de otros


procedimientos, de esta forma, se extiende los conceptos de globalidad y localidad
mediante el uso de reglas de alcance, que gobiernan la visibilidad de las variables o
procedimientos. Adems, la caracterstica distintiva de un lenguaje estructurado es la
capacidad de seleccionar y ocultar del resto del programa toda la informacin y las
instrucciones necesarias para llevar a cabo determinada tarea.

Adems, como la componente de estructuracin principal del lenguaje C es la funcin,


que es una subrutina independiente del lenguaje C, permite definir cada tarea de un
programa y codificarla por separado, para que los programas sean modulares.

2
1.6. ESTRUCTURA DE UN PROGRAMA EN LENGUAJE C

Todos los programas en lenguaje C consisten en una o ms funciones, la nica funcin


que debe estar siempre presente es la denominada main(), siendo la primera funcin
que se llama cuando comienza la ejecucin del programa.

La estructura de un programa en lenguaje C es la siguiente:

<Comandos de preprocesador>
<Definicin de tipos>
<Prototipos de funciones>
<Variables globales>
<Funciones>

Cada funcin tiene la siguiente estructura:

<Tipo> Nombre de la funcin (<Declaraciones de pre parmetros>)


{
<Declaraciones locales>
<Sentencias>
}
Una funcin consta de un encabezamiento y un cuerpo:

Encabezamiento:

Contiene cualquier tipo de dato que retornar la funcin, el nombre de la


funcin, y entre parntesis la declaracin de parmetros, si existieran.

Cuerpo:

Est delimitado por las llaves, {}, que indican el bloque de cdigo, y consiste en
un grupo de sentencias, cada una de las cuales termine en punto y coma.

1.7. BIBLIOTECA DEL LENGUAJE C

La biblioteca es un conjunto de archivos pequeos, que contienen funciones para llevar


a cabo las tareas necesarias ms comunes, aunque dependiendo del compilador
contienen ms o menos funciones.

Cada programa de lenguaje C puede crear y mantener su propia biblioteca de funciones


de acuerdo a su necesidad y que pueda ser usada en muchos programas diferentes.
Adems, el lenguaje C tiene la compilacin separada, para permitir que los programas
trabajen ms fcilmente en grandes proyectos y minimizar la duplicidad de esfuerzo.

3
1.8. ENLAZADOR

El enlazador es un programa que enlaza funciones compiladas por separado para


producir un solo programa, tambin combina las funciones de la biblioteca estndar de
lenguaje C con el cdigo que se haya escrito. La salida del enlazador es un programa
ejecutable.

1.9. COMPILACIN SEPARADA

El lenguaje C permite separar un programa en muchos archivos, los cuales son


compilados por separado. Una vez que han sido compilados todos los archivos, se
enlazan entre s, juntos con las rutinas de la biblioteca, para formar el cdigo objeto
completo.

La ventaja de la compilacin separada es que un cambio en el cdigo de uno de los


archivos no requiere de la compilacin del programa entero, y as el tiempo de
compilacin es ms corto.

1.10. COMPILACIN DE UN PROGRMA EN LENGUAJE C

La compilacin de un programa en lenguaje C consiste de los siguientes tres pasos:

Creacin del programa:

Se utiliza un editor que generalmente es incorporado por el compilador, y el


archivo editado debe ser de texto ASCII estndar. El nombre de un archivo
fuente escrito por el editor de lenguaje C debe tener un nombre respecto a lo que
hace el programa y la extensin .c para identificar que es un archivo de
programa en lenguaje C.

Compilacin del programa:

Comprobar si el programa tiene algn error, si existe ser indicado, caso


contrario, el compilador traducir el programa fuente a lenguaje de mquina,
almacenndolo en un archivo que es ejecutable.

Enlazado del programa:

Si se tiene archivos diferentes se enlazan con todas las funciones de la biblioteca


que se necesiten, pero si existe un solo archivo no es necesario enlazar.

4
1.11. MAPA DE MEMORIA DEL LENGUAJE C

Un programa compilado en lenguaje C crea y usa 4 regiones de memoria lgicas


diferentes que sirven para funciones especficas:

1) La primera regin es la memoria que contiene el cdigo del programa.


2) La siguiente regin es la memoria donde se guardan las variables globales, cuya
creacin se realiza en el momento de la compilacin.
3) La tercera regin es el montn de la memoria libre que puede usar el programa
mediante las funciones de asignacin dinmica de memoria, cuando se ejecuta el
programa.

4) La cuarta regin es la pila que se usa en el momento de la ejecucin del


programa, para mantener las direcciones de vuelta de las llamadas a las
funciones, almacenar las variables locales, y salvar el estado del CPU.

1.12. PROGRAMAS LEGIBLES

Con un programa legible se consigue que dicho programa sea fcil de comprender,
corregir o modificar. Para lo cual se debe cumplir lo siguiente:

1) Escribir el programa en forma estructurada.


2) Escoger nombres de los identificadores de funciones, variables y constantes,
apropiados de acuerdo a su funcin.
3) Usar una sentencia por lnea.
4) Poner comentarios para resaltar una funcin, una declaracin, una instruccin o
un bloque de cdigo, etc.
5) Emplear lneas en blanco para separar las funciones o bloques de cdigo.
6) Identacin de las instrucciones dentro de supbloques.

TIPOS DE DATOS
2.1 INTRODUCCION
Los datos se pueden representar mediante constantes o variables:
a) Constantes

Las constantes son datos preseleccionados en tiempo de compilacin del programa,


cuyos valores se mantienen sin alterar durante la ejecucin del mismo.

5
- En una nueva compilacin se puede modificar su valor en un solo sitio, el
mismo que se actualiza en donde se encuentre la constante.

- El nombre de la constante define claramente su valor, Adems el compilador es


capaz de identificar el tipo de dato de la constante por el aspecto que tiene.

b) Variables
La variable es una posicin de memoria con nombre, en donde se guarda su valor, el
mismo que puede ser modificado durante la ejecucin del programa.

2.2 TIPOS DE DATOS

El tipo de dato define un conjunto de valores que puede tener una variable junto con
un conjunto de operaciones que se pueden realizar sobre esta variable. Los tipos de
datos comunes son los nmeros, nmeros reales y caracteres.

En lenguaje C existe cinco tipos de datos bsicos y todos los dems tipos de datos
se basan en estos tipos.

Char Carcter
Int Entero
Float Punto flotante
Doubl Punto flotante de doble precisin
Void Sin valor

Modificadores
A excepcin del tipo void, los tipos de datos bsicos pueden tener distintos
modificadores, para rango y signo:

Signed
Unsigned
Long
Short

Estos modificadores se aplican al tipo base int, pero signed y unsigned tambin se
aplican a char y long se puede aplicar a doubl.

2.2.1 Tipo char

6
Los valores de este tipo son definidos por un conjunto de caracteres, en general por
el cdigo ASCII, el cual es utilizado por el computador para identificar a cada
carcter.

2.2.2 Tipo int

Un entero es un numero exacto, carece de parte fraccionaria, por lo que no tienen


punto decimal. El tipo int almacena enteros de una manera directa y en si
representacin binaria correspondiente.

2.2.3 Tipo float

Corresponde a los nmeros reales que abarcan un rango mayor a los enteros,
incluyendo estos nmeros, para almacenar un numero de tipo float se lo divide en
dos partes:

Parte fraccionaria o mantisa.


Parte del exponente

El tipo float depende de la implementacin del lenguaje C y de la arquitectura del


CPU, en este caso que se utiliza 32 bits para almacenar un numero flotante. De
ellos, se usa 1 it para el signo del numero, 8 bits para el exponente con un signo, y
23 bits para el signo del numero, 8 bits para el exponente con su signo y 23 para la
parte fraccionaria.

2.2.4 Tipo doubl

Son los mismos nmeros de punto flotante, pero con mayor precisin, el tipo doubl
y utiliza el doble numero de bits que el tipo float, en este caso 64 bits. Se
incrementan los bits de la parte exponencial, fraccionaria y aumentar el rango de los
nmeros respectivamente.

2.2.5 Tipo void

Void indica que no tiene tipo de dato, es decir, no existencia o no atribucin de un


tipo en una variable o declaracin, y se utiliza para declarar explcitamente una
funcin que no devuelve valor alguno, establecer que la funcin no tiene
parmetros, o crear puntos genricos.

7
Tabla 2.1. Tipos de Datos de C (SCHILDT, 1994)
TIPO TAMAO RANGO MNIMO
EN BITS
CARCTER char 8 -128 a 127
unsigned char 8 0 a 255
signed char 8 -128 a 127
int 16 -32768 a 32767
unsigned int 16 0 a 65535
signed int 16 Igual que int
short int 16 Igual que int
ENTERO
unsigned short int 16 0 a 65535
signed short int 16 Igual que short int
long int 32 -2147483648 a 2147483647
signed long int 32 Igual a long int
unsigned long int 32 0 a 4294967295
PUNTO float 32 +(1.8e-38 a 3.4e+38) 6 dgitos de
FLOTANTE precisin
double 64 +(2.2e-308 a 1.8e+308) 15
dgitos de precisin
long double 80 +(3.4e-4932 a 1.2e+4932) 18
dgitos de precisin
SIN TIPO void 0 Sin valor

2.3. CONSTANTES
Las constantes en lenguaje C son valores fijos que no pueden ser alterados por el programa.
Estas constantes son de cualquier tipo de datos bsicos y la forma en que se representa cada
constante depende de su tipo.
2.3.1 Constantes Carcter
Una constante char puede representar tan solo un nico caracter que normalmente
corresponde al cdigo ASCII, y que va encerrada entre apstrofes. Por ejemplo, los
caracteres: 'a ' y '*.
Un carcter que no puede introducir desde teclado, puede ser introducido de las dos formas
siguientes:
1. Secuencias de escape. Son caracteres especiales predefinidos, que deben usar una
barra invertida (\) y luego su cdigo.

Tabla 2.2. Caracteres Secuenciales de Escape (SCHILDT, 1994)


CDIGO SIGNIFICADO

8
\b Retroceso (back space-Espacio atrs)
\f Salto de pgina
\n Salto de lnea (new line-nueva lnea)
\r Retorno de carro( carriage retum )
\t Tabulacin horizontal (tab-tabulador)
\v Tabulador vertical
\'' Comillas rectas
\' Apstrofe
\\ Barra invertida (back slatch)
\0 Nulo
\a Alerta (sonido)

Observaciones:
Los seis primeros caracteres son de control
Los tres siguientes: \'', \' y \\ permiten utilizar los caracteres: '', ' y \; que son
utilizados como delimitadores de cadenas, de caracteres e identificadores de
caracteres.
El carcter nulo '\0' corresponde al nmero ASCII 0.
2. Nmero de cdigo ASCII. Este nmero indica el carcter correspondiente, como
se muestra en la Tabla 2.3.
Tabla 2.3. Caracteres con nmero de cdigo ASCII
CDIGO SIGNIFICADO
\N Constante octal (N es una constante octal)
\xN Constante Hexadecimal (xN es una constante hexadecimal)

2.3.2 Constantes Enteras

Especifican nmeros enteros, es decir sin parte fraccionaria, por ejemplo:


10, 50-100.
Estas constantes pueden ser tambin:
Octal Una constante octal comienza por el caracter 0 (cero), por ejemplo 020
(16 en decimal).
Hexadecimal Una constante hexadecimal comienza por los caracteres 0x, por
ejemplo: 0x20 (32 en decimal).

Tabla 2.4. Constantes Enteras


SUFIJO TIPO DE DATO
U El nmero ser unsigned

9
L El nmero ser long

A continuacin se presenta ejemplos de constantes enteras utilizando los sufijos:


CONSTANTES TIPO DE DATO
35000U unsigned int (2 bytes)
35000L long int (4 bytes)
2.3.3 Constantes de Punto Flotante
Requieren del punto decimal seguido de los nmeros de la parte fraccionaria, tambin
permite el uso de la notacin cientfica, por ejemplo: -11.14, 1.56e-6, respectivamente.
Tabla 2.5. Constantes de Punto Flotante
SUFIJO TIPO DE DATO
F El nmero ser float
L El nmero ser long doble

A continuacin se presenta ejemplos de constantes de punto flotante utilizando los sufijos:


CONSTANTES TIPO DE DATO
-234F float
1001.2L long doble
2.3.4 Constantes Cadena
La cadena es otro tipo de constante, aunque el lenguaje C no tiene formalmente un tipo de
dato cadena.
Una constante cadena es una secuencia de caracteres encerrada entre comillas. Por ejemplo:
a es una cadena.
'a' es un carcter

2.4 IDENTIFICADORES

Son los nombres usados para referenciar las contantes simblicas, variables, funciones,
etiquetas y otros objetos definidos por el usuario.
La longitud de un identificador depende del compilador del lenguaje C, en el sistema
operativo de Windows puede variar entre 1 y 32 caracteres. Sin embargo, si el identificador
est envuelto en el proceso de enlazado, los seis primeros caracteres son significativos; caso
contrario, si no est envuelto, los 32 primeros caracteres son los significativos.

10
En lenguaje C las letras minsculas y maysculas se tratan como distintas. As MANUAL
y manual son identificadores distintos.
Un identificador no puede ser igual a una palabra clave del lenguaje C, tampoco debe tener
el mismo nombre que alguna funcin ya escrita o que se encuentre en la biblioteca del
lenguaje C. (SCHILDT, 1994).
2.5 DECLARACIN DE VARIABLES

Todas las variables en lenguaje C deben ser declaradas antes de poder ser usadas, la forma
general de la Sentencia de declaracin es: (SCHILDT, 1994)
tipo lista_variables;
donde:
- tipo, debe ser un tipo de dato vlido de lenguaje C con cualquier modificador.
- Lista_variables, consiste en uno o ms nombres de identificadores separados por
comas.
- Punto y coma (;), la sentencia de declaracin finaliza siempre con un punto y
coma.

Por ejemplo:
int perno, tuerca;
char oro, plomo, plata;
float blanco, rojo;
a) Variables locales
Son las variables que se declaran dentro de un bloque de cdigo, que generalmente
son las funciones. Estas variables pueden ser referenciadas solo por sentencias que
estn dentro del bloque en la que han sido declaradas. Por lo que las variables
locales no son conocidas fuera de su propio bloque de cdigo.
Las ventajas de declarar una variable local en un bloque, son las siguientes:
Que se dispondr de la memoria necesaria solo cuando se necesita la
variable.
Ayuda a prevenir efectos secundarios no deseados, porque la variable no
existe fuera del bloque en el que est declarada, esto impide que sea
accidentalmente modificada.
b) Parmetros formales
Si la funcin usa argumentos, deben declararse las variables que van a aceptar los
valores de esos argumentos; estas variables son los parmetros formales de la
funcin. Su declaracin se hace tras el nombre de la funcin encerrado entre
parntesis.

11
Los parmetros formales se comportan como cualquier otra variable local de la
funcin, por lo que tambin son dinmicas y se destruyen al salir de la funcin.
c) Variables Globales
Estas variables se conocen a lo largo de todo el programa y se usan en cualquier
parte del mismo. Adems, mantienen su porcin de memoria durante toda la
ejecucin del programa, ya que se almacena en la regin de memoria de datos.
Las variables globales se crean al declararlas en cualquier parte fuera de la funcin,
y pueden ser accedidas desde cualquier funcin luego de su declaracin.

2.6 VARIABLES CADENAS DE CARACTERES

En el lenguaje C no existe un tipo especial de variables cadenas. Una cadena de


caracteres consiste en una serie de uno o ms caracteres entre comillas. Por ejemplo:
Es una cadena
Una cadena en lenguaje C se almacena como un arreglo de tipo char. El ejemplo de la
cadena anterior se muestra grficamente en la Figura 2.1.
E s u n a c a d e n a \0
Figura 2.1. Ejemplo de cadena
El caracter nulo '\0' indica el final de la cadena, por lo que el arreglo deber siempre
disponer de un elemento adicional de lo que se quiera almacenar. Una cadena es nula si el
primer carcter es '\0'.
La declaracin de un arreglo de caracteres es de la siguiente manera:
char nombre [ 35]
donde:
- [], identifican la variable nombre como un arreglo.
- 35, indica el nmero de elementos mximo del arreglo.
- char, indica el tipo de dato de cada elemento.

Observacin: la cadena x no es igual que el carcter 'x'


1. 'x' es de tipo char, y
x es un tipo de arreglo de char
2. 'x' contiene un solo byte, y
x contiene dos bytes:
x como caracter
x \0 x como cadena.

12
2.7 INICIALIZACIN DE VARIABLES

Inicializar una variable consiste en otorgar un valor a dicha variable, en el momento


que se compila el programa. Se inicializa la variable a la vez que se declara.
La forma general de inicializacin de una variable es:
tipo nombre_variable=constante;
Por ejemplo:
char ch= 'a';
float vacas=34, cabras=14;
2.8 CONSTANTES SIMBLICAS

Para definir constantes simblicas se utiliza el preprocesador #define, el cual se aade


al comienzo del programa. El uso de estas constantes hace que un programa sea ms
legible.
Por ejemplo:
#define PI 3.1416
Es aconsejable crear constantes simblicas porque:
1. Su identificador da ms informacin que un nmero.
2. Se puede modificar con facilidad su valor, porque esta modificacin ser realizada
solamente en la declaracin de la constante.

Por ejemplo:
#define PITA '\007'
#define ERROR 2e-6
En las declaraciones de las constantes no es necesario especificar su tipo, porque este se
establece de acuerdo al valor que toma la constante.
2.9 MODIFICADORES DE ACCESO
2.9.1 El modificador const
El modificador const ayuda a identificar las variables que nunca cambian de
valor.
Por ejemplo:
Const int MAXIMO=100, INTERVALO=20;
Se puede definir constantes de dos formas: mediante la palabra clave consty
mediante la directiva de compilacin #define.
2.9.2 El modificador volatile

13
El modificador volatile ayuda a identificar a las variables que pueden cambiar
inesperadamente debido a causas que se escapan del control del programa,
aunque podran cambiarse por hardware.
Se debe declarar un dato volatile si fuera un registro de dispositivo direccionado
sobre memoria o un dato compartido por procesos separados como en el caso de
un entorno operativo multitarea. (SCHILDT, 1994)
2.10. COMENTARIOS
En el lenguaje C todos los comentarios empiezan con el par de caracteres /* y terminan con
*/. El compilador ignora cualquier texto entre los smbolos de comentario inicial y final.
Por ejemplo: /*Este es un ejemplo.*/
Se deben incluir comentarios cuando: se necesite explicar una expresin y resaltar
variables, constantes, sentencias o bloques de cdigos.

14

Potrebbero piacerti anche