Descargar

Lenguaje de Programación C (página 2)

Enviado por Ariel Paz


Partes: 1, 2

C soporta el calificador de tipo variable const. Especifica que el valor de una variable no se puede modificar durante el programa. Cualquier intento de modificar el valor de la variable definida con const producirá un mensaje de error.

VARIABLES

En C una variable es una posición con nombre en memoria donde se almacena un valor de un cierto tipo de dato. Las variables pueden almacenar todo tipo de datos: cadenas, números y estructuras. Una constante, por el contrario, es una variable cuyo valor no puede ser modificado. Una variable típicamente tiene un nombre (un identificador) que describe su propósito. Toda variable utilizada en un programa debe ser declarada previamente. La definición en C debe situarse al principio del bloque, antes de toda sentencia ejecutable. Una definición reserva un espacio de almacenamiento en memoria. El procedimiento para definir (crear) una variable es escribir el tipo de dato, el identificador o nombre de la variable y, en ocasiones, el valor inicial que tomará. Por ejemplo,

char Respuesta;

Significa que se reserva espacio en memoria para Respuesta, en este caso, un carácter ocupa un solo byte. El nombre de una variable ha de ser un identificador válido. Es frecuente, en la actualidad, utilizar subrayados en los nombres, bien al principio o en su interior, con objeto de obtener mayor legibilidad y una correspondencia mayor con el elemento del mundo real que representa.

salario dias-de-semana edad-alumno – fax

Declaración

Una declaración de una variable es una sentencia que proporciona información de la variable al compilador C. Su sintaxis es:

t i p o variable

Tipo es el nombre de un tipo de dato conocido por el C

Variable es un identificador (nombre) válido en C.

Inicialización de variables

En algunos programas anteriores, se ha proporcionado un valor denominado valor inicial, a una variable cuando se declara. El formato general de una declaración de inicialización es:

tipo nombre-varíabl e = expresión

expresión es cualquier expresión válida cuyo valor es del mismo tipo que tipo.

Nota: Esta sentencia declara y proporciona un valor inicial a una variable.

Las variables se pueden inicializar a la vez que se declaran, o bien, inicializarse después de la declaración. El primer método es probablemente el mejor en la mayoría de los casos, ya que combina la definición de la variable con la asignación de su valor inicial.

char respuesta = 'S';

int contador = 1;

float peso = 156.45;

int anyo = 1993;

Estas acciones crean variables respuesta, contador, peso y anyo, que almacenan en memoria los valores respectivos situados a su derecha.

Tipos de Datos

Existen en C distintos tipos de datos, cada uno de los cuales se puede encontrar representado de forma diferente en la memoria de la computadora. A continuación se presenta una lista de los tipos de datos básicos. También se dan los requerimientos de memora típicos.

Tipo de datos

Descripción

Requerimiento típico de memoria

int

Cantidad entera

2 bytes o una palabra (varía de un compilador a otro)

char

Carácter

1 byte

float

Numero de coma flotante (un numero incluye punto decimal y/o exponente)

1 palabra (4 bytes)

double

Numero de coma flotante de doble precisión (más cifras significativas y mayor valor posible del exponente)

2 palabras (8 bytes)

Los compiladores de C diseñados para computadoras personales o minicomputadoras pequeñas (computadoras con longitud de palabra menor que 32 bits) representan generalmente una palabra con 4 bytes (32 bits).

Algunos tipos básicos de datos se pueden ampliar utilizando los cualificadores de tipos de datos short (corto), long (largo), signed (con signo) y unsigned (sin signo). Por ejemplo se pueden definir cantidades numéricas como short int, long int o unsigned int (estos tipos de datos se suelen escribir simplemente short, long o unsigned, y se supone que son enteros). La interpretación de un tipo de datos entero con un cualificador delante puede variar de un compilador de C a otro, aunque existe una relación de sentido común. De esta forma, un short int requerirá menos memoria o la misma que un int ordinario, pero nunca más. De igual forma, un long int puede requerir la misma cantidad de memoria o más que un int ordinario, pero nunca una cantidad de memoria menor.

Si short int e int requieren la misma memoria (por ejemplo 2 bytes), entonces long int, generalmente, ocupará el doble (por ejemplo 4 bytes). O si int y long int ocupan la misma memoria (por ejemplo 4 bytes), entonces short int ocupará la mitad de memoria (por ejemplo 2 bytes). Recuerda que estas especificaciones pueden variar de un compilador de C a otro.

Un unsigned int ocupa la misma memoria que un int ordinario, con la diferencia de que en el caso de un int ordinario (o un short int o un long int), el bit más a la izquierda se reserva para el signo. En un unsigned int, todos los bits se utilizan para representar el valor numérico. De esta forma, un unsigned int puede llegar a almacenar un valor numérico aproximadamente el doble que un int ordinario (aunque, por supuesto, no puede almacenar valores negativos). Por ejemplo, si un int ordinario puede variar de –32 768 a +32 767 (esto es propio de un int de 2 bytes), entonces un unsigned int podrá tomar valores comprendidos entre 0 y 65 535. El cualificador unsigned se puede aplicar también a otros ints ya cualificados, por ejemplo unsigned short int o unsigned long int.

El tipo char se utiliza para representar caracteres individuales. Por tanto, el tipo char requerirá sólo un byte de memoria. Cada tipo char tiene una interpretación como entero equivalente, de esta forma un char es realmente una clase especial de entero pequeño (ver sección 2.4). En la mayoría de los compiladores, un dato tipo char podrá tomar valores de 0 a 255. También se puede utilizar datos unsigned char (con valores de 0 a 255) o datos signed char (con valores de –128 a +127).

Algunos compiladores permiten la aplicación del cualificador long a float o a double, por ejemplo long float o long double. De todos modos, el significado de estos tipos de datos varía de un compilador de C a otro. Así long float puede ser equivalente a double. Además, long double puede ser equivalente a double, o puede hacer referencia a un tipo de datos de doble precisión, "extra largo", que requiera más de dos palabras de memoria.

Cada identificador que represente un número o un carácter dentro de un programa en C debe estar asociado a uno de los tipos de datos básicos antes de que el identificador ap aparezca en una sentencia ejecutable. Esto se lleva a cabo mediante una declaración de tipo.

Archivos de Encabezados

La programación en C++ ofrece la ventaja de permitir el desarrollo de aplicaciones modulares con código reutilizable. Un módulo en C++ consiste de dos tipos de archivo: las descripciones de interface y los archivos de implementación.

Los archivos de descripción de interface, tambien llamados archivos de encabezado (header) o archivos "include" (archivos .h). Los archivos de encabezado contienen las declaraciones de constantes, variables y funciones de las que consta el módulo, asi como llamadas a otros archivos de encabezado necesarios.

En los archivos de implementación (archivos .c, .cpp, .cc) se implementa el código para las funciones del módulo declaradas en el archivo de encabezado. Durante el proceso de compilación se preprocesan los archivos de implementación y se añaden los archivos de encabezado, obteniendose un archivo objeto que será combinado con otros archivos objeto y al que se le agregarán las librerias para obtener un archivo ejecutable.

Un archivo de encabezado se puede crear desde el IDE de desarrollo o desde cualquier editor de texto y agregandolo posteriormente al proyecto. El primer paso para crear un archivo de encabezado es agregar las directivas para la definición de un macro-identificador que será el nombre del archivo:

#ifndef identificador#define identificador

//Las declaraciones de la interface van aquí

#endif //identificador

La primera línea comprueba si el macro-identificador no ha sido definido, la segunda línea lo define.

Ejemplo:

archivo: MyHeader.h

#ifndef __MYHEADER_H#define __MYHEADER_H

#include #define PI .1415926535897932

float CalcCoseno(float Angulo) ;#endif /*__MYHEADER_H*/archivo: MyHeader.cpp

#include "MyHeader.h"

float CalcCoseno(float Angulo)

{float result;

result=(float)cos(Angulo*PI/180.0f);

return result;}

archivo main.cpp:

# include # include "MyHeader.h"

void main( void )

{float Ang = 45.0f;

printf( "El coseno de %f grados es %.3fn", Ang, CalcCoseno(Ang))

Identificadores y Palabras claves

Los identificadores son nombres que se les da a varios elementos de un programa, como variables, funciones y arrays. Un identificador está formado por letras y dígitos, en cualquier orden, excepto el primer carácter, que debe ser una letra. Se pueden utilizar mayúsculas y minúsculas (no acentuadas en la mayoría de los compiladores), aunque es costumbre utilizar minúsculas para la mayoría de los identificadores. No se pueden intercambiar mayúsculas y minúsculas, esto es, una letra mayúscula no es equivalente a la correspondiente minúscula.

El carácter de subrayado (_) se puede incluir también, y es considerado como una letra. Se suele utilizar este carácter en mitad de los identificadores. También se puede comenzar con un carácter de subrayado un identificador, aunque en la práctica no se suele hacer.

Ejemplo 2.1. Los siguientes nombres son identificadores válidos.

X y12 suma-1 -temperatura

nombres area porcentaje TABLA

Los siguientes nombres no son identificadores válidos por las razones señaladas.

4num el primer carácter debe ser una letra

"X" caracteres ilegales

orden-no carácter ilegal (-)

indicador error carácter ilegal (espacio en blanco)

No se limita la longitud de los identificadores. Algunas implementaciones de C reconocen sólo los ocho primeros caracteres, aunque la mayoría de ellas reconocen más (típicamente. 31 caracteres). El estándar ANSI reconoce 31 caracteres. El resto de los caracteres son utilizados para la comodidad del programador.

Ejemplo 2.2. Los identificadores suma-de-valores y suma-de-variaciones son válidos gramaticalmen

te. Sin embargo, algunos compiladores de C pueden no ser capaces de distinguirlos, ya que ambos tienen las mismas ocho primeras letras. De esta forma, en un compilador así sólo se podrá utilizar uno de estos identificadores.

Como norma general, un identificador debe tener los suficientes caracteres como para que su significado se reconozca fácilmente, por otra parte se debe evitar un excesivo número de caracteres.

Ejemplo 2.3. Se está redactando un programa en C para calcular el valor futuro de una inversión. Los identificadores valor y futuro valor son nombres simbólicos apropiados. Sin embargo, v y fv serían demasiado cortos, ya que no queda claro el significado de estos identificadores. Por otra parte, un identificador como f uturo-valor-de-una-invers ion no sería adecuado por ser demasiado largo e incómodo.

Hay ciertas palabras reservadas, denominadas palabras clave, que tienen en C un significado predefinido estándar. Las palabras clave sólo se pueden utilizar para su propósito ya establecido; no se pueden utilizar como identificadores definidos por el programador.

Las palabras clave son:

auto extern sizeof

break float static

case for struct

char goto switch

const if typedef

continue int union

default long unsigned

do register void

double return volatile

else short while

enum signed ,

Existen compiladores que incluyen todas o algunas de las siguientes palabras clave:

ada fiar near

asm fortran pascal

entry huge

Algunos compiladores de C pueden reconocer otras palabras clave. Para obtener una lista completa de las palabras clave de un determinado compilador se debe consultar su manual de referencia.

Nótese que todas las palabras clave están en minúsculas. Ya que los caracteres de las minúsculas y los de las mayúsculas no son equivalentes, se puede utilizar una palabra clave escrita en mayúsculas como un identificador. Esto no se suele hacer normalmente, y se considera propio de un estilo de programación pobre.

Bibliografía

Autor Nombre del Libro

1. Luis Joyanes Aguilar Programación en C

2. James L. Antonakos, Programación Estructural en C

Kenneth C. Mansfield,

Jr. John Hull

Sitios webs Visitados

Nombre del sitio web

http://computaciongrafica.wordpress.com/2008/03/29/archivos-de-cabecera-en-c/

 

 

 

Autor:

Ariel Paz

Itamar Harris

Universidad Tecnológica de Panamá

Centro Regional de Panamá Oeste

Facultad de Ing. Eléctrica

Asignatura:

Introducción a la Programación

edu.rededu.red

Presentado a:

Bolivar Quijada

Fecha:

22 de Abril del 2010

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente