Você está na página 1de 17

DECLARACIONES GLOBALES

Una variable global es, en informática, una variable accesible en todos


los ámbitos de un programa informático. Los mecanismos de interacción con
variables globales se denominan mecanismos de entorno global. El concepto de
entorno global contrasta con el de entorno local donde todas las variables
son locales sin memoria compartida, una variable global puede ser modificada en
cualquier parte del programa y cualquier parte del programa depende de ella. El uso
de variables globales dificulta la legibilidad del código fuente. Dado que en cualquier
parte del programa y en todo momento se puede cambiar el valor de la variable, para
entender el uso de la variable suele ser necesario tener que comprender el
funcionamiento de una parte amplia del programa. La denominación de las variables
también puede desembocar en problemas con la denominación ya que una variable
global corre el riesgo de ser usada, por ejemplo, en lugar de una variable local. Una
variable local con el mismo nombre puede ocultar el acceso de la variable global,
dificultando aún más la legibilidad del código.

Toda variable declarada fuera de las funciones tiene ámbito global, es decir,
puede ser accedida desde cualquier parte del programa. El siguiente código muestra
un ejemplo de esta situación.
La variable number se declara en la línea 1, fuera de una función, y por tanto
es global. A continuación se accede en las líneas 4 y 10.

Pero para acceder correctamente a una variable global hay que cumplir dos
requisitos más derivados de la forma en cómo el compilador procesa los ficheros. Si
la variable está declarada en el mismo fichero, esta declaración debe preceder su uso
(el compilador sólo lee el fichero en un único paso). Si la variable está declarada en
otro fichero, se debe incluir en el fichero exactamente la misma declaración pero con
el prefijo “extern” (el compilador sólo recuerda información del fichero que está
procesando).
La variable number se define como global en la línea 1 del fichero 1. Para
poder acceder a ella en la línea 1 del fichero 2 se replica su declaración (sin
inicializar) añadiendo el prefijo “extern”. La variable global se accede en la línea 4
del fichero 2. Si se omite la línea 1 de este fichero, el compilador emite el error de
que la variable number no ha sido declarada. Si en el fichero 2 se incluye la
definición sin el prefijo “extern”, el compilador notificará el error de que se ha
definido una variable múltiples veces.

FUNCIÓN MAIN

La función main es un ingrediente que debe encontrarse en todos los


programas escritos en lenguaje C, sin excepciones. Define la función principal del
programa, esto es, su cometido. Todo programa está hecho para resolver un problema
y la función main se encarga de dirigir el algoritmo que da solución al mismo. Es
importante hacer énfasis en que main DIRIGE.

Un problema complejo puede ser descompuesto en muchos problemas


pequeños, cada uno de los cuales puede ser resuelto por una función. El papel d main
es en general el de coordinar a las distintas funciones para que el programa lleve a
cabo su cometido exitosamente.

La función main imprescindible en cualquier programa C/C++, representa el


punto de ejecución, por lo general su declaración adopta la forma:

int main

Aunque en realidad, el módulo de inicio invoca con dos parámetros (recibidos


a su vez del Sistema Operativo) denominados tradicionalmente argc y argv. El
primero, es el número de argumentos que se han especificado en la línea de
comandos. El segundo es un array de cadenas que contienen los argumentos
especificados en la línea de comandos.

Así, la declaración más genérica de main es del tipo:

Int main (int argc, char* argv[]);

Por convención argv[0] es el nombre con que se ha llamado el programa


(normalmente será el nombre del fichero ejecutable incluyendo su dirección
completa.

Este dato es proporcionado automáticamente por el Sistema Operativo, asì el


valor mínimo de argc es 1. Después segiran los que se introduzcan en la línea de
comandos, separados por espacios.

Por ejemplo; si el programa se llama “programa” y se ejecuta con la siguiente


línea de comando:

Programa arg1 arg2 arg3 arg4

arg valdrá 5, ya que el nombre del programa también se cuenta como


argumento.

argv[] contendrá la siguiente lista:

“C:/programasc\programa”, “arg1”, “arg2”, “arg3”, y “arg4”

Ejemplo:
La función main padece de ciertas limitaciones que la diferencian del reso de
funciones C++

 No puede ser invocada explícitamente a lo largo del programa, es invocada de


forma automática por el módulo de inicio.
 No se puede obtener su dirección.
 No puede ser sobrecargada.

FUNCIONES DEFINIDAS POR EL USUARIO

Es una función proporcionada por el usuario de un programa o entorno, en un


contexto donde la suposición habitual es que las funciones están incluidas en el
programa o entorno.

Las funciones de usuario pueden ser escritas para realizar tareas repetitivas y
para reducir el tamaño de un programa. Segmentar el código en funciones permite
crear piezas de código que hacen una determinada tarea y volver al área del código
desde la que han sido llamadas.

 Funciones
Programa principal Módulos Módulos

Void main ( ) Func1 ( ) Func2 ( )

{ { {

Func1( ): Func2( ):

……….

Func1 ( ):

} } }

Las funciones se declaran asociadas a un tipo de valor. Este valor será el que
devolverá la función, por ejemplo ‘int’ se utilizará cuando la función devuelva un
dato numérico de tipo entero. Si la función no devuelve ningún valor entonces se
colocará delante la palabra “void”, que significa “función vacía”

Sintaxis:

1. tipo nombreFunción (parámetros) {


2. instrucciones;
3. }

Para llamar a una función, simplemente:

1. tipo nombreFunción (parámetros) {

Una función que devuelve un valor siempre debe tener la instrucción Return,
esta termina una función y devuelve un valor a quien ha llamado a la función

Si se define una función y no se coloca return el valor devuelto es cero. No da


error de complicación.
Ventajas del uso de funciones:

 Ayuda a tener organizado el código.


 Reduce la probabilidad de errores al modificar el código.
 Facilita la lectura del código.

Las funciones definidas por el programador se escriben “fuera” de la función


main. Si se recuerda, uno de los objetivos del uso de las funciones es la
descomposición de problemas complejos y el trabajo en grupo. El siguiente es un
ejemplo de una definición de una función:

double square(double numero)

double cuadrado;

cuadrado = numero * numero;

return cuadrado;

Esta definición de la función square consiste de:

1. El encabezado de la función

double square(double numero)

El encabezado no termina con punto y coma. Las partes del encabezado de


una función son los siguientes:

a) Una lista de los argumentos de la función entre paréntesis:

(double numero)
Si se considera a la función como un programa pequeño, la lista de
argumentos serían equivalentes a los datos que en un programa se introduciría a
través de la instrucción cin. Es importante observar que en la lista de argumentos
se indican tanto la lista de los argumentos necesarios como el tipo de cada uno de
ellos.

b) El nombre de la función:

square

Puede ser cualquier identificador válido en C++.

c) El tipo de valor que regresa la función como resultado.

double

2. El cuerpo de la función

double cuadrado;

cuadrado = numero * numero;

return cuadrado;

El cuerpo de la función se encierra entre llaves y en él se escriben las


sentencias que se necesitan ejecutar para lograr el objetivo de la función. Contiene
al menos una sentencia return. La sentencia return va seguida del nombre de una
variable o de un valor constante.

return cuadrado;
El valor de dicha variable (o el valor de dicha constante) constituye el
valor de regreso de la función.

COMENTARIOS EN LENGUAJE C

Los comentarios son una herramienta proporcionada por un lenguaje de


programación que apoya la documentación de los programas en C++ a que sean
fácilmente comprendidos por otros. Los comentarios, son líneas de código, que no
son tenidas en cuenta por el compilador en el momento de ejecutar una aplicación,
por lo tanto no están sujetas a restricciones de sintaxis, el uso principal de las líneas
de comentario, es dar un orden y hacer más entendible el código, especialmente en el
caso de que deba en algún momento ser revisado o leído por alguien diferente al
programador. Por ejemplo es muy común usar las líneas de comentarios, para dar una
breve explicación de cómo funciona cierta parte de un código, lo cual permite
identificar todo con mayor rapidez.

Para que un texto sea comentario debe estar entre los símbolos /* (marca el
comienzo) y */ (marca el final de comentario).Existen dos tipos de comentarios en el
lenguaje:

Comentarios de Una Sola Línea: es un tipo de comentario que puede ser


colocados en cualquier parte y comienzan por un doble slash "//", al colocar el doble
slash al comienzo de cualquier línea de código, todo lo que halla de ahí en adelante en
esa misma línea será tomado como comentario, se debe tener en cuenta que el doble
slash solo convierte en comentario al texto que haya después de él y que pertenezca a
su misma línea, por tanto las líneas de abajo de este, no se verán afectadas, ejemplo:

int i=0; //Declaración de variable

Comentarios Multi-línea: son aquellos que van cerrados entre "/*" y "*/".
Estos comentarios son similares a los de una sola línea, pero deben tener un comienzo
y un final, al colocarle los símbolos "/*" todo el código que haya tanto en la misma
línea, como en las línea debajo de este, se convertirán en comentarios, de manera tal
que debe ser cerrado en el punto donde dicho comentarios termina. Ejemplo:

float b;/*Esta sentencia (float b;), se ejecutaría

int b; pero esta no porque es comentario*/

IDENTIFICADORES DEL LENGUAJE C

Se usan para referenciar las variables, las funciones, las etiquetas y otros
objetos definidos por el usuario. La longitud del identificador puede variar entre uno
o varios caracteres (se recomienda no más de 31 y si el identificador está envuelto en
el proceso de enlazado al menos los seis primeros deben ser significativos).

El primer carácter debe ser una letra o un símbolo subrayado y los caracteres
siguientes pueden ser letras, números o símbolos de subrayado. Las minúsculas y las
mayúsculas se tratan como distintas.

Un identificador no puede ser igual a una palabra clave de C y no debe tener


el mismo nombre que una función ya escrita o que se encuentre en la biblioteca de C.

TIPOS DE DATOS

 Números Enteros

Los enteros son el tipo de dato más primitivo en C. Se usan para representar
números enteros. Pero siempre se pueden encontrar otras aplicaciones para los
números enteros. En general se pueden usar para representar cualquier variable
discreta.

Los tipos de datos enteros son: short, int, long y long long, cada uno
representando un número entero de un tamaño o capacidad determinado. Según el
compilador y la plataforma de hardware, cada uno de estos tipos de dato puede
ocupar desde 1 byte hasta 8 bytes en memoria.

Además, el lenguaje C hace la distinción de si el entero es con signo (signed)


o sin signo (unsigned). En caso de que no se declare si es con signo o sin signo, se
toma con signo.

Algunos ejemplos de declaraciones de enteros:

int a;

unsigned int a;

signed long a;

signed long long a = 10000000;

Todos los números son representados en memoria mediante una cadena de


bits. En el caso de los números con signo, el bit más significativo es el que se usa
para representar el signo. La representación de los números negativos se realiza
mediante el complemento a dos, que es una técnica que permite operar con los
números negativos de forma lógica.

 Números Reales

Los tipos de datos que representan a los números reales, ya que utilizan un
sistema de representación basado en la técnica de coma flotante, que permite operar
con números reales de diversas magnitudes, mediante un número decimal llamado
mantisa y un exponente que indica el orden de magnitud.

El tipo de dato flotante en lenguaje C sólo tiene dos tamaños: el float y el


double, que son 4 bytes y 8 bytes respectivamente. Se los puede utilizar tanto para
representar números decimales, como para representar números enteros con un orden
de magnitud muy grande.

La forma de declarar una variable flotante es escribiendo en una línea uno de


los tipos de datos flotantes y a continuación el nombre de la variable y tal vez algún
valor que se les quiera dar.

Algunos ejemplos:

float a;

double a = 1e23;

double a = 3.1416;

float a = 4e-9;

double a = -78;

Hay que tener en cuenta que aunque los valores flotantes son más
convenientes para algunas aplicaciones, hay casos en los que se prefieren los enteros.
Esto se debe a que los números flotantes no necesariamente tienen soporte de
hardware, en particular en las plataformas integradas. Una alternativa que se utiliza
en estas situaciones es interpretar los enteros como decimales de forma que 150 se
interprete como 1.5 y 2345 como 23.45.

Para el caso de los flotantes de 4 bytes, se utiliza 1 bit para el signo, 7 bits
para el exponente y 24 bits para el valor del número. El procedimiento para
almacenar un número en una variable flotante es el siguiente:

 Se convierte a binario la parte entera.


 Se coloca el signo en el bit más significativo de la misma manera que en los
enteros (1 para el - y 0 para el +).
 Se mueve la coma (en la representación binaria de la parte entera) hasta que
esté a la derecha del primer uno y éste se descarta (el uno más significativo).
El valor del exponente será el número de posiciones que se movió la coma. El
exponente usa la representación de un entero con complemento a dos.
 Se convierte en binario la parte decimal del número. Esto usando el peso de
los bits. el bit decimal más significativo vale 1/2, el siguiente vale 1/4, el otro
1/8, el otro 1/16 y así hasta completar lo que falta para los 23bits del valor.
 Se concatena todo y ese es el valor flotante representado en memoria.

CARACTERES

Los caracteres se representan utilizando el tipo char, que tiene sólo 1 byte de
tamaño. Este tipo se utiliza para representar los 256 caracteres de la tabla de
caracteres del sistema. El tipo char es también un tipo entero, ya que puede tomar
valores de 0 a 255. Por lo tanto también puede ser signed o unsigned.

En cuanto a la forma de declarar variables de tipo char es la misma forma que


con los otros tipos.

char a;

char a = 's';

unsigned char a = 48;

Se le puede asignar un número a una variable char, ya que se trata de un tipo


entero. En muchas situaciones se utiliza el tipo char para almacenar números
pequeños, ya que ocupa en memoria solamente un byte.

Es importante notar que con la llegada de la codificación UTF-8, los


caracteres de los diversos idiomas pueden ocupar 1, 2, 3 o 4 bytes, de modo que el
tipo char ya no alcanza para la representación de todos los caracteres posibles. Por
ello, el estándar C99 introduce el tipo wchar que puede ocupar más de 1 byte, según
sea necesario para la codificación utilizada por el sistema.

LECTURA Y ESCRITURA DE DATOS

Para poder leer y escribir datos en el lenguaje de programación C existen una


serie de funciones agrupadas en un conjunto de librerías de código objeto, que
constituyen la llamada biblioteca estándar del lenguaje. En el caso concreto de las
funciones de entrada y salida (lectura y escritura), su archivo de cabecera es stdio.h.

Existen varias funciones que realizan la entrada y salida de datos en el


lenguaje de programación C, pero nos vamos a centrar solamente en dos de ellas:
printf() y scanf().

Salida hacia la pantalla (Printf): se utiliza para imprimir en pantalla cadenas


de textos solas, o mandar a pantalla el valor de algunas variables o constantes, o una
combinación de las anteriores. Su formato es el siguiente:

Printf(“cadena de control”, nombre_de_variables);

En donde cadena de control contiene códigos de formato que se asocian con


los tipos de datos contenidos en las variables. puede constar de tres tipos de
información:

 texto: que será mostrado por pantalla tal cual este escrito
 Secuencias de escape: secuencias reservadas propias del lenguaje. Van
precedidas por '\' y las más importantes son '\n' que introduce un salto de
línea, y '\t' que introduce un tabulador.
 Especificadores de formato: son ciertos caracteres precedidos del carácter
tanto por ciento '%'.

Código Formato
%d Entero
%i Entero
%c Carácter
%s Cadena
%f Real
%Id Entero largo
%u Decimal sin signo
%If Doble posición
%h Entero corto
%o Octal
%x hexadecimal
%e Notación científica
%p Puntero
%% Imprime porcentaje

Entrada desde teclado se realiza mediante la función Scanf () se puede


considerar de alguna manera como la inversa de la función printf(), ya que sirve para
introducir datos desde el teclado con un formato determinado.

Scanf(“Cadena de control”, Dirección y nombre de la variable);

Ejemplos:

Scanf(“%d”, numero);

Scanf(“%d %s %f”, numero, &cadena, &real);

DECLARACIONES
La declaración de objetos en C tiene como finalidad dar a conocer el tipo y
propiedades de los identificadores. En general la forma de una declaración es:
(durabilidad) tipo identificador (=expresión de inicialización);

Por ejemplo, static int n=10;

Todos las variables deben ser declaradas. En las declaraciones es obligado


especificar el tipo. De cada objeto en un programa C se puede establecer tres
propiedades que le afectan en su relación: el alcance, la visibilidad y la durabilidad.

 Alcance

El alcance sirve para saber en qué región del código una declaración de un
objeto está activa, es decir, el objeto existe.

Si la declaración es realizada en un bloque de código entre llaves, el alcance


es la región que va entre las llaves. Si se declara en la parte de arriba del fichero
(normalmente) o en una parte que no va entre llaves, el alcance se establece en todo el
fichero. Los identificadores establecidos con la sentencia #define tienen alcance
durante todo el fichero o hasta que lo elimina la sentencia #undef. Las etiquetas de
sentencia tienen como alcance el cuerpo de la función donde se han establecido.

 Visibilidad

La visibilidad indica en qué región del código un objeto está activo. La


diferencia con el alcance es que en una misma región pueden estar dos objetos con el
mismo identificador, ocultando un objeto a otro.

 Durabilidad

La durabilidad es el tiempo de ejecución del programa donde el objeto existe


en la memoria. La durabilidad puede ser:
- Estática: El objeto perdura desde la compilación hasta el final. Esta
durabilidad la tienen todas las funciones declaradas, las variables no declaradas en
ningún cuerpo de función (incluido main) y las variables declaradas con static.

- Local: El objeto es creado en la entrada de un bloque y es borrado a la


salida. Esta durabilidad la tienen los argumentos formales y las variables declaradas
con auto (es la declaración por defecto y no se suele poner). Las variables declaradas
en un bloque son (a menos que se especifique) variables locales.

Existen otros dos tipos de durabilidad:

- extern: Los objetos especificados tienen durabilidad static e informa al


enlazador de programas para que realice las unificaciones pertinentes entre ficheros.
Es decir, convierten su alcance al total del programa. La declaración del mismo
objeto en otros ficheros se toma como referencia y debe tener obligatoriamente el
especificador extern.

Si se coloca un valor de inicialización, se debe inicializar en la declaración de


la variable que no lleva extern.

- Register: Se puede utilizar para variables ocales y argumentos de funciones.


Establece una durabilidad local pero informa de un uso intensivo de memoria,
haciendo que el compilador le asocie un acceso de memoria rápido.

Você também pode gostar