lunes 11 de abril de 2011

Operaciones y operadores

Los programas en C++ constan de datos, sentencias y expresiones, llevando a cabo operaciones básicas por medio de un conjunto de potentes operadores.

Operador de asignación

El operador = asigna el valor de la expresión derecha a la variable situada a su izquierda.

Su sintaxis es: variable = valor

También es válido: variable = variable = valor
(Se evalúa de izquierda a derecha)

Ejemplo: nombre=Mario; suma=a+b;


Operadores Aritméticos


Operadores binarios(trabajan con dos operandos)
Operador en C++Significado
+suma
-Resta
*Multiplicación
/División
%Residuo


Los operadores suma, resta y multiplicación funcionan de la manera conocida, el operador división funciona distinto dependiendo de si trabaja con datos enteros o flotantes, si es con datos flotantes trabaja de la manera tradicional pero cuando trabaja con datos enteros, el operador división retorna el cociente de la división entera, es decir, la parte entera del resultado y si hay fracción la elimina.

Ejemplo:

3/7 = 0 (utilizando datos enteros)
3.0/7.0 = 0,43 (utilizando datos flotantes)

Si hay operandos de distintos tipos, se conviertes al tipo de datos mas amplio y el tipo de datos resultante será el mas amplio, por ejemplo, si en una operación hay operandos enteros y flotantes, todos se convierten a flotantes y el resultado igualmente será del tipo flotante por ser el tipo de datos de mayor rango.

El operando residuo (%), calcula el residuo de la división entera y solo existe para datos de tipo entero.

Ejemplo:

10%3 da como resultado 1

Otros operadores de asignación

En C++ es podible abraviar algunas expresiones de asignación como se muestra en la siguiente tabla:


OperadorExpresión equivalente
a+=ba=a+b
a-=ba=a-b
a*=ba=a*b
a/=ba=a/b
a%=ba=a%b


En C++ existen también los siguientes operadores aritméticos:

++ Incremento
-- Decremento

Estos operandos son unitarios (un solo operando) y solo trabajan con enteros

Ejemplos: 
x++ es equivalente a x=x+1
x-- es equivalente a x=x-1 

Los operadores se pueden utilizar antes o después del nombre de la variable:

Si se ponen antes de la variable, primero se realiza la operación(incremento o decremento) y luego se utiliza el valor de la variable en la expresión en que se encuentre.

Ejemplo: Si a=50 y b=9

x=a*++b; //x queda con valor 500 y b con valor 10

Si se ponen después de la variable, primero se utilizar el valor de la variable en la expresión y luego se lleva a cabo la operación(incremento o decremento).

Ejemplo: Si a=50 y b=9

x=a*b++; //x queda con valor 450 y b con valor 10


Jerarquía operadores aritméticos
PrioridadOperadoresAsociatividad
1( )Empezando por los paréntesis más internos
2++,--,+(positivo),-(negativo)De derecha a izquierda,++ y -- dependiendo de la posición
3*,/,%De izquierda a derecha
4+,-De izquierda a derecha
5=,+=,-=,*=,/=,%=De izquierda a derecha




Operadores Relacionales


Se utilizan para comprobar una condición y en C++ son:


Operador en C++Significado
= =
Igual
!=
Diferente
<
Menor que
>
Mayor que
<=
Menor o igual que
>=
Mayor o igual que




Operadores Lógicos

Se utilizan con expresiones para devolver un valor verdadero (cualquier entero diferente de 0) o un valor falso (cero).

Los operadores lógicos que maneja C++ son:


Operador en C++Significado
||
or
&&
and
!
not

El compilador

Proceso de compilación de un programa


En esta etapa se traduce el código fuente escrito en lenguaje C++ a código maquina (comprensible para la computadora), para llevar a cabo este proceso se requiere un programa llamado compilador, construido para un lenguaje en específico, en nuestro caso C++.

Cada lenguaje de programación tiene unas reglas para la construcción de un programa, las cuales se le denomina sintaxis.


El compilador lee el código fuente del programa, del archivo de texto creado y comprueba que el programa sigue las reglas de sintaxis del lenguaje.


Si el compilador encuentra errores, los presentará en pantalla, una vez corregidos con ayuda del editor, se vuelve a compilar sucesivamente hasta que no se produzcan errores.

Cuando se compila el programa, el compilador traduce el código fuente C++ a código maquina llamado también código objeto, el código objeto consta de instrucciones maquina e información de como cargar el programa en memoria antes de su ejecución.

El código objeto que se obtiene se almacena en un archivo independiente, normalmente con la extensión .obj, este código traducido no es suficiente para ejecutar el programa, se requiere incluir los archivos de biblioteca.

Normalmente un programa consta de diferentes partes de código que se han compilado independientemente, por consiguiente puede haber varios archivos objeto (.obj), aquí es donde entra en acción un programa denominado enlazador, que toma el archivo objeto y las partes necesarias de la biblioteca y construye un archivo ejecutable con la extensión .exe, este archivo ejecutable contiene todo el código maquina necesario para ejecutar el programa.

Proceso de compilación de un programa

Existen varios compiladores para el lenguaje C++, uno de ellos es el Dev-C++ de BloodshedSoftware (www.bloodshed.net), Es un entorno integrado de desarrollo IDE ("Integrated Development Environment") distribuido con licencia GNU para la creación de aplicaciones C/C++ utilizando los compiladores GNU gcc/g++ (incluidos en el paquete). Dispone de muchas opciones comunes en entornos "de pago" como por ejemplo un editor altamente configurable con posibilidad de auto-completar las palabras clave, capaz de mantener proyectos grandes de distintos tipos, como aplicaciones Windows (gráficas); aplicaciones de consola (modo texto), y construcción de librerías estáticas y dinámicas (DLLs). 
La versión para Windows incluye MinGW, un conjunto de utilidades para desarrollar aplicaciones en Windows utilizando una interfaz POSIX (Unix/Linux). 


Página de descarga: http://www.bloodshed.net/dev/devcpp.html

domingo 10 de abril de 2011

Funciones definidas por el usuario

Todo programa en C++ se compone de una colección de funciones que se integran para crear una aplicación.

Las funciones se crean generalmente para realizar una única tarea mediante la utilización de uno o mas estatutos C++.

Definir una función

Se lleva a cabo escribiendo primero el tipo del valor de retorno de la función seguido del nombre que se le quiera dar a la función (es aconsejable darle un nombre que describa el propósito de la función) y a continuación y entre paréntesis los argumentos(variables) que utilizará la función, y por último las instrucciones a ejecutar por dicha función. Las funciones definidas por el usuario se invocan por su nombre y parámetros opcionales que puedan tener.

Ejemplo:


int suma(int a,int b)
   {
      return a+b;
   }


Declara la función 'suma' con tipo de retorno entero (devolvera un valor entero cuando se invoque) y se le pasan dos variables (argumentos) a y b, ambas de tipo entero.

Declaración y definición de variables

Declaración de una variable


La declaración de una variable es un estatuto que proporciona información de la variable al compilador de C++

La sintaxis para declarar una variable es:

tipo variable

donde tipo es el nombre de un tipo de dato en C++ y variable es un identificador válido en C++

Ejemplos: 

int edad; //Es la declaración de una variable llamada edad de tipo entero

char nombre; //Es la declaración de una variable llamada nombre de tipo carácter

Las variables se pueden declarar en dos lugares dentro de un programa, al principio de un archivo o bloque de código o bien en el punto de utilización, se puede declarar una variable e inicializarla al mismo tiempo, lo que equivale a definir la variable.


Definición de una variable

Definir una variable es declararla y asignarle un espacio en memoria simultáneamente, ejemplo:

int edad=33; //define e inicializa la variable edad a 33


Reglas para los nombres de variable

A la hora de darle nombre a nuestras variables, es necesario seguir unas reglas establecidas, en resumen, solo están permitidas letras de la 'a' a la 'z' (la ñ no vale), números y el símbolo '_', puede contener números, pero no en el primer carácter.

Ejemplos de nombres de variable válidos:

_nombre
apellido1
valor_total

Ejemplos de nombres de variable no válidos:

$deuda
2donombre
años

sábado 9 de abril de 2011

Estatutos de Lectura y Escritura

Estatuto de Lectura: El archivo de cabecera iostream.h de la biblioteca C++ proporciona un flujo de entrada estándar cin y un operador de extracción >>, para extraer valores del flujo y almacenarlos en variables.

Sintaxis de cin: cin>>Una o mas variables separadas por >>;
Ejemplo: cin>>a >>b >>c

Estatuto de Escritura: El archivo de cabecera iostream.h de la biblioteca C++ proporciona un flujo de salida estándar cout y un operador de extracción <<, que por lo general se manda a la pantalla del usuario.

Sintaxis de cout: cout<<variables, constantes o expresiones separadas por <<
Ejemplo: cout<<"Digita un número"; cout<<"El promedio es" <<promedio;