Está en la página 1de 29

LENGUAJE DE PROGRAMACIÓN C++

Para resolver un problema primero que todo se debe tener en cuenta los siguientes pasos:
• Conocer el problema, a qué área del conocimiento corresponde, identificar los
datos que proporciona el problema y cuál es el requerimiento para resolverlo.
• Elaborar el algoritmo o el diseño de la solución al problema.
• Comprobar los resultados de salida con los datos de entrada.
• Finalmente codificarlo en un lenguaje de programación.

C++ es la respuesta al programador que necesita hacer programas simples e


interactivos o programas muy elaborados y complejos, para ingeniería o las ciencias en
general; o para elaborar interfaces gráficas para usuarios de Windows, dentro de un
contexto de un lenguaje modular.

Los diferentes fabricantes de software ponen a disposición de los programadores una


serie de compiladores de C++, que permiten utilizar todas las funciones de C, así como
todos sus comandos.

COMPILADORES DE C++

Visual Studio .NET proporciona las herramientas que necesita el programador para
diseñar, desarrollar, depurar e implementar aplicaciones Web, servicios Web XML y
aplicaciones cliente tradicionales. Esta suite de productos de Visual Studio .NET incluye
herramientas de desarrollo tales como: Visual Basic, Visual C#, Visual C++ y JScript.

PROCESO DE EJECUCIÓN DE UN PROGRAMA

Se mencionarán a continuación los elementos que nos permiten la creación de un


programa en C++, el proceso de ejecución del programa y la depuración o corrección de
errores.

Las fases de compilación y ejecución del programa dependen del compilador C++, que
utilice, en términos generales los programas de C++ pasan a través de cinco fases para su
ejecución: editar, preprocesar, compilar, enlazar y ejecutar.

ARCHIVO QUE ARCHIVOS QUE SE


FASE
PRODUCE INCORPORAN
Código Fuente:
EDITAR .cpp
Archivo cabecera:
PREPROCESAR .h

Código Objeto:
COMPILAR .obj

Archivo Bibliotecas
ENLAZAR ejecutable: .exe
EJECUTAR

2
Fase editar

Consiste en escribir el código del programa y generar el archivo fuente. Se debe guardar
este archivo con extensión .CPP, para que sea reconocido por el compilador C++.

Los compiladores como Borland C++ y Visual C++, traen incorporado un editor
(procesador de palabra) bajo ambiente Windows sencillo de manejar. De cualquier
manera en caso de no tener el editor de C++, usted puede utilizar un procesador de
palabra de Windows como WorPad o el block de notas, para escribirlo.

Fase Preprocesador

Permite procesar el código e incluir los archivos de cabecera necesarios que le


proporcionen al compilador la información necesaria de las funciones de biblioteca. Por
ejemplo, integra el archivo de cabecera iostream.h, cuando el código trae la instrucción
de preprocesador
#include<iostream>.

Fase Compilador

Cuando se compila el programa, el programa traduce el código fuente a código objeto,


generando un archivo de extensión .OBJ. El código objeto es también llamado código de
máquina y es la conversión del programa fuente en código binario, es decir en ceros (0) y
unos (1). La compilación es la fase más costosa del proceso y esto es debido a que el
compilador debe analizar el texto de nuestro programa fuente, comprobar que no contiene
errores y producir como salida un archivo con la traducción de nuestro código a un
conjunto de instrucciones para el procesador.

Fase enlace

Un programa extenso en C++ puede estar almacenado en archivos diferentes de


programa, en este caso cada archivo puede compilarse de manera separada, pero
finalmente deben formar un solo programa antes de ejecutarlo. El enlazador (linker) reúne
cada uno de los archivos objeto producidos en la fase anterior con el código de las
funciones definidas en bibliotecas estándar o bibliotecas particulares, para producir el
archivo ejecutable de extensión .EXE.

Fase de ejecución

En esta fase se pone en marcha el programa, utilizando el archivo de extensión .EXE,


generado anteriormente. Este archivo ejecutable contiene todo el código de máquina
necesario para ejecutar el programa, con solo escribir el nombre del archivo en el indicador
de órdenes o haciendo clic en el icono del archivo.

ERRORES EN LOS PROGRAMAS


Cuando un programa se compila puede suceder que contenga errores, estos deben ser
detectados y corregidos, a este proceso se le denomina Depuración.

Las situaciones más comunes en las cuales suelen aparecer errores son: El no
cumplimiento de las reglas gramaticales o errores de sintaxis y los errores en el diseño del
algoritmo o errores lógicos.

Los compiladores emiten mensajes de error o advertencia durante las fases de compilación,
de enlace o de ejecución de un programa, así:

 Errores fatales (fault): La compilación se detiene automáticamente. Por ejemplo


hacer una división por cero entre números reales.

 Errores de sintaxis: Son el incumplimiento a las reglas de sintaxis del lenguaje o


errores al acceso a memoria o a disco. Por ejemplo olvidar un punto y coma al final
de una sentencia.

 Advertencias (Warning): No impiden la compilación, pero indican que deben


verificarse ciertas condiciones o sentencias del programa. Por ejemplo operar un
dato de variables reales en una variable entera.

Errores de sintaxis

Son los producidos cuando se violan las reglas de sintaxis o gramática del lenguaje, entre
los más frecuentes tenemos:

 Omitir los puntos y comas al final de las sentencias.


 Olvido de las llaves que cierran.
 Olvidar las instrucciones de preprocesador que llaman alguna función específica.
 Olvido de las comillas para las cadenas.
 Uso de variables sin definir.
 Olvido de parámetros.
 Utilización de palabras reservadas para identificar variables, funciones, etc.

Para corregir estos errores haga doble clic en el error y el editor lo llevará a la línea de
código que presenta el error.

Las palabras reservadas en un lenguaje de programación son palabras clave que se utilizan
con un propósito específico, intentar utilizarlas para otros propósitos, como nombre de
variable o constante, generaría mensajes de error.

La siguiente tabla muestra algunas palabras claves que utiliza el lenguaje de programación
C++:

ALGUNAS PALABRAS RESERVADAS EN C++


auto default for return
break do if short
case double int switch
char else long unsigned
class enum private void
const float public while

En los manuales de referencia, se acostumbra utilizar la letra cursiva para señalar cuando
se refiere a palabras reservadas.

Errores lógicos
Estos no suelen ser detectados por el compilador, ya que no produce ningún mensaje de
error. Se presentan por lo general en el diseño del algoritmo o el diseño de la solución al
problema. Para solucionarlos se debe corregir el algoritmo y comprobar los resultados de
salida con los datos dados de entrada.

Por ejemplo si al operar una variable que tiene un dato de entrada, se olvida colocar
paréntesis para alterar la jerarquía de los operadores puede generar un resultado erróneo,
que no es detectado por el compilador.

y=5*x+2 es diferente a y=5*(x+2)

ESTRUCTURA DE UN PROGRAMA EN C++

Un programa en C++ incluye entre otros: Comentarios, la función main(), declaraciones


globales, directivas de preprocesador y las funciones definidas por el usuario.
El siguiente ejemplo ilustra la estructura típica general de un programa en C++:

1. /*programa que calcula el área de un círculo de COMENTARIO


2. radio 1 al 10, en una función de usuario */
3. #define PI 3.14
4. #include DIRECTIVAS DE PREPROCESADOR

DECLARACIONES
GLOBALES
PROTOTIPO DE LA FUNCIÓN

FUNCIÓN
PRINCIPAL

"<<circulo(r)<<endl;

< iostream >


5. using namespace std;
6. double circulo(double);
7. int main()
8. {
9. double r;
int x;
10. for(x=1;x<=10;x++)
11. cout<<x<<"
12. return 0;
13. }
14. double circulo(double y) LLAMADA A LA FUNCIÓN

15. {

16. return PI*y*y; ESTRUCTURA DE LA FUNCIÓN

17. }

Las líneas 1 y 2 son comentarios.


Las líneas 3, 4 y 5 son directivas de preprocesador.
La línea 6 es el prototipo o declaración de la función de usuario.
La línea 7 es el punto inicial de entrada al programa o función principal del programa. La
línea 8 es la llave del inicio de bloque de sentencias o inicio del programa principal. Las
líneas 9, 10, 11 y 12, son las instrucciones que debe ejecutar el programa principal. En la
línea 11 está el llamado de la función.
La línea 13 es la llave de fin del bloque de sentencias o fin del programa principal. Las
líneas de la 14 a la 17, definen la función de usuario o estructura de la función.

Los comentarios

Los comentarios son pequeñas anotaciones de texto que clarifican alguna parte del código
y permiten documentar el programa por la persona que lo escribe, son muy útiles en el
momento en que es leído el programa por otra persona diferente al autor.

En C++ hay dos formas de escribir los comentarios:


Iniciando con /* y terminándolo con */ o utilizando dos “slash” (//) por cada línea de
comentario.

Un ejemplo de un comentario en la parte inicial de un programa seria de la siguiente


forma:

/*
Institución: Universidad Militar Nueva Granada
Programado por: Álvaro Méndez
Aplicación: Área de un Circulo
Versión: 2.0
Revisión: 1
Objeto: Calcular el área de un circulo dados los radios comprendidos de 1 a
10
Fecha: 8 de Marzo de 2010
*/

La función main()

La función main() es el punto inicial de entrada al programa principal y es obligatorio que


todos los programas de C++ la tengan.

En programas cortos, la totalidad de las sentencias van en el bloque de sentencias de


main(), sin embargo en programas largos desde el programa principal, se hacen llamadas
a funciones definidas por el usuario.

Su estructura puede ser alguna de las dos que se muestran a continuación:

void main() int main()


{ { :
: :
: :
: return 0;
} }

Entre las llaves va el bloque de sentencias o programa principal.

Declaraciones globales

Las declaraciones globales van por fuera del programa principal e incluyen directivas de
preprocesador, prototipos de funciones, variables y constantes globales y otras
instrucciones que le indican al compilador que lo aquí declarado es común para todas las
funciones del programa.

Ejemplo de declaraciones globales en un programa:

#define PI 3.14 DECLARACIONES #define PI 3.14 DECLARACIONES


GLOBALES GLOBALES
#include <iostream > #include <iostream>
#include <stdlib.h> #include <stdlib.h>
#include <conio.h> #include <conio.h>
float circulo(float); float circulo(float);
int y; int y; using
namespace std;
int main() int main()
{ {
: :
: :
: :
} }

Directivas de preprocesador

Inician con el signo de número (#) y son las instrucciones que le indican al compilador que
lea estas sentencias antes de compilar la función principal del programa, se acostumbra
colocarlas al inicio del programa o por lo menos antes de que se mencionen las
instrucciones correspondientes a la directiva.
Estas directivas pueden definir inclusión de archivos de cabecera, macros, nombres de
constantes, archivos fuente adicionales, etc.
Las dos directivas de preprocesador más usuales son: #include y #define. Con la directiva
#include, incorporamos los archivos de cabecera que proporcionan al compilador la
información necesaria de las funciones de biblioteca, para que se puedan ejecutar entre
otras, sentencias de entrada y salida de datos, funciones matemáticas, o funciones de
cadena. Con la directiva #define, podemos definir constantes simbólicas, para insertar su
valor directamente en el código.
Para incluir los archivo de cabecera en un programa, utilizamos la directiva #include y
encerramos entre corchetes puntudos (< >) el nombre del archivo de cabecera. Por
ejemplo:
#include <iostream>

Así, el archivo de cabecera iostream, proporciona al compilador C++, la información


necesaria sobre las funciones de biblioteca que realizan operaciones de entrada y salida de
datos, y todas las demás operaciones relacionadas; iostream es un archivo de texto
ASCII, que se encuentra en la carpeta include, generada al instalar C++.

La directiva using namespace std;, le indica al programa que utilizará objetos que tienen
nombre en una región especial denominada std. Esta región especial contiene los nombres
de muchos objetos predefinidos que se utilizan al escribir los programas.

En el presente manual se harán los ejemplos para Visual.Net, por lo cual si tiene otro
compilador instalado, verifique la escritura de las librerías y la utilización de using
namespace std;, ya que puede no necesitar esta línea.
Funciones definidas por el usuario

Un programa en C++ se compone de una o más funciones, una función (llamada también
rutina) agrupa las instrucciones para realizar una o más acciones o tareas.

Las funciones escritas en C++ pueden no estar todas en un mismo archivo (esto es,
pueden escribirse programas en C++ cuyo código esté repartido en varios archivos).

Toda función de usuario está compuesta por los siguientes elementos:

 El prototipo de la función o la cabecera de función: Permite declarar o


identificar la función, el tipo de datos que devuelve y los parámetros que recibe la
función.

 Llamada de la función: Es mencionar la función para que sea invocada,


normalmente se hace desde la función principal.
 Estructura de la función: Contiene el código de la función.

Cuando el compilador encuentra una sentencia de llamada de una función, significa que el
programa utilizará el conjunto de sentencias que le permiten al programador la resolución
de un problema o la realización de una tarea específica.

La facilidad de utilizar funciones hace que la programación pueda ser modular, es decir que
un programa se divida en módulos para realizar tareas específicas o subdividir problemas
muy largos.
ELEMENTOS BÁSICOS DE UN LENGUAJE DE
PROGRAMACIÓN
En el algoritmo se decide las variables, constantes, los tipos de datos de entrada y salida y
los cálculos que se van a realizar en un programa. A continuación se mostrará la sintaxis
en C++, de cada una de las expresiones que se requieran para hacer el programa.

Tipos de datos en C++

Los programas en C++ pueden procesar diferentes tipos de datos. Los tres tipos básicos de
datos en C++ son, los de números enteros, los de números de punto flotante (reales) y los
de carácter:
Tipo de dato entero

Es el cero o cualquier número positivo o negativo sin decimales. En C++ los denominamos
de tipo int.

Algunas variantes de este tipo de dato entero son: short, long y unsigned.

Ejemplos de datos enteros:


0 3 -11 +30 1000 -31500

Ejemplos de datos que NO son enteros:


3.0 +30.0 -31500.

Tipo de dato de punto flotante (reales)

Es cualquier número positivo o negativo con o sin signo que tiene punto decimal. En C+
+ los denominamos de tipo float, double o long double.

Ejemplos de datos de punto flotante:


3.0 -11.0 +30. 1000.20 -31500.625

Ejemplos de datos que NO son de punto flotante:


25 +123 -31,500.20 $10.50

Tipo de dato caracter

Incluye las letras del alfabeto mayúsculas o minúsculas, los dígitos del o al 9, los símbolos
especiales como el +, $, @. Los valores caracteres se almacenan en la mayoría de los
computadores utilizando el código ASCII, así por ejemplo, al almacenar la letra A se
almacena el código ASCII que en binario es 01000001 o en decimal el 65. En C++ los
datos carácter los denominamos de tipo char.

Los valores caracteres son reconocidos en C++, como un solo elemento que deben ser
encerrados entre comillas sencillas.

Ejemplos de datos caracter:


‘A’ ‘3’ ‘$’ ‘a’ ‘*’ ‘,’

Ejemplos de datos que NO son caracter:


3 ‘ABC’

Tipo de dato cadena


Un dato de tipo cadena se puede considerar como un conjunto de caracteres de tipo char.
Su representación se diferencia del tipo char porque esta va encerrado entre comillas
dobles. Las variables de tipo string en C++ tienen un tamaño hasta de 28 bytes y para
poder utilizarla se requiere incluir la librería <string> Ejemplos:

string SALUDO, opcion1 ;


SALUDO = " HOLA COMO ESTAS";
opcion1 = " 1. Area del
circulo";
Otros tipos de datos

Otros tipos de datos utilizados en C++ son: el de tipo boleano y el tipo vacío:

 Tipo de dato boleano: Permite declarar variables lógicas que pueden almacenar
los valores de verdadero o falso. En C++ los denominamos de tipo bool.

Ejemplo:

bool respuesta=true;

 Tipo de dato vacío: En C++ los denominamos de tipo void. Ejemplo:

void funcion void;

La siguiente tabla muestra los principales tipos de datos en C++, sus tamaños en bytes y
el rango de valores que puede almacenar:

En el momento de seleccionar el tipo de dato, verifique en la tabla anterior, si es dato


entero o real y a continuación el tamaño del tipo de dato a utilizar.

TIPO DE
TAMAÑO RANGO DE VALORES EJEMPLO
DATO
bool 1 Byte True, false 5<3, false char
char 1 Byte –128 a 127 @, #, A
string 28 Byte “ Buenos días”
int 4 Byte 2.147.483.648 a 2.147.483.647 1255, -1255
short int 2 Bytes -32.768 a 32.767 100
long int 4 Bytes 2.147.483.648 a 2.147.483.647 5000000
unsigned int 2 Bytes 0 a 65.535 1255
–3.4E-38 a 3.4E38
float 4 Bytes 1255.369
Seis dígitos de precisión
double o –1.7E-308 a 1.7E308
8 Bytes 1255.36942173
loung double Quince dígitos de precisión

Por ejemplo, si en el algoritmo se decide trabajar variables, constantes o tipos de datos de


entrada o salida que sean enteros positivos y mayores de cincuenta mil, debemos escoger
un tipo de dato long int. Si nuestros datos contienen dos números decimales escogemos
datos float. Si nuestros datos son números con muchos decimales es mejor optar por tipo
de dato double.

Variables en C++

En C++ una variable es una posición de memoria con nombre, donde se almacena un valor
de un cierto tipo de dato que puede ser modificado, durante la ejecución de un programa.

Toda variable debe ser declarada previamente a su utilización, se recomienda se haga al


principio del bloque de instrucciones, aunque se podría hacer en cualquier parte del
programa.
Toda variable tiene cuatro elementos principales: El tipo de dato, el nombre, el contenido
de la variable y la dirección de la variable.
El tipo de dato, tiene que ver con escoger un tipo de dato de los de C++. Por ejemplo int,
float o char.

El nombre identifica la variable, se aconseja utilizar un nombre que describa su propósito.


Por ejemplo: Para almacenar datos personales, sería conveniente utilizar variables con los
siguientes nombres: apellido1, apellido2, nombre, edad, fechaNacimiento, sueldo_básico.

Al valor real almacenado en la variable se le conoce como el contenido de la variable.

La dirección en la variable es la ubicación física en la memoria, por ejemplo 0x8f5afff4.

La declaración de una variable en un programa en C++, es una sentencia simple con la


siguiente sintaxis:
Tipo-de-variable nombre-de-variable;

Por ejemplo:

char
respuesta;
int edad; int
x,y,z;

Las variables se pueden inicializar en su declaración

Tipo-de-variable nombre-de-variable = dato;

Por ejemplo:

char opcion; float peso = 50.1; int x = 0,y = 1,z = 23;

En los ejemplos anteriores, se definen variables escribiendo el tipo de dato, a continuación


el identificador o nombre de la variable y opcionalmente el valor inicial que tomará. Cuando
se necesite declarar varias variables de un mismo tipo, se puede hacer una declaración
abreviada en una sola sentencia.

En C++ los identificadores son palabras compuestas de letras y/o números de hasta 32
caracteres significativos, que nos permiten dar nombre a variables, constantes, funciones o
clases. Tenga en cuenta las siguientes reglas para seleccionar un identificador:

 Debe ser una secuencia de letras, números o el carácter subrayado ( _ ), donde el


primer carácter debe ser una letra o el subrayado.

Los identificadores son sensibles a la mayúscula y la minúscula. Por ejemplo es


diferente la variable Neto, a la variable, neto.

No dejar espacios en blanco, ni utilizar símbolos extraños en ellas, como el * o el - . Por


ejemplo no utilice un identificador como Valor-Neto o Valor neto.
Escoja identificadores claros y con referencia directa al problema. Por ejemplo para
almacenar el salario de un empleado utilice el identificador salario, para almacenar los
datos de la abscisa x, utilice el identificador x.

 El nombre de variable puede tener cualquier longitud pero solo es significativo los 32
primeros caracteres.
 Los identificadores de variables no pueden ser palabras reservadas, porque el lenguaje
la asociaría con algún significado en especial. Por ejemplo una variable no se puede
llamar void, int, else, const, switch.

Para determinar la dirección física en la memoria de una variable se utiliza el operador (&).
Por ejemplo:

&precio;

Indica la dirección física del primer byte utilizado por precio, algo así como: 0x8f5afff4.

Constantes en C++

Las constantes a diferencia de las variables son valores fijos, que no se modifican en el
programa. En C++ las constantes se pueden definir de dos formas, las constantes
declaradas que utilizan la palabra const y las constantes simbólicas que se definen en las
instrucciones de preprocesador mediante la palabra #define. Adicionalmente podemos
definir constantes enumeradas que permiten crear listas de elementos afines. Al igual que
las variables, las constantes deben ser declaradas previamente a su utilización.

Constantes simbólicas

Adicionalmente puede hacer uso del preprocesador para definir constantes simbólicas,
mediante la directiva #define que permite insertar el valor de la constante directamente
en el código. Al compilar se sustituye tal cual un valor por otro, tenga o no sentido, y no se
reserva memoria para el valor.

Por ejemplo:

#define LONGITUD 10
#define VALOR 54
#define pi 3.141592
#define NUEVALINEA ‘\n’

Observe que no se especifica en estas constantes el tipo de dato, como si se requiere


cuando se declara la constante en la función principal o en una de usuario, esto si no se
maneja con cuidado, puede algunas veces ocasionar errores al compilar.

Al definir constantes simbólicas, se puede de la misma manera definir macros, así:

#define PI 3.14
#define AREA_CIRCULO(x) PI * (x) * (x)

Ahora podemos usar la macro como si fuera una función normal, así:

int
main()
{ doubl
e a;
a = AREA_CIRCULO(3);
}

Durante la compilación la macro se expande a:

a = 3.14 * (3) * (3)

donde la variable a almacena el resultado 28.26.

Expresiones y operadores

Los programas en C++, en términos generales realizan numerosas operaciones aritméticas


y matemáticas de diferente complejidad con los datos que le son proporcionados.

Una expresión en C++, es normalmente una ecuación matemática que muestra una
secuencia de operaciones y operandos, que especifican un cálculo.

Por ejemplo: hipotenusa=sqrt(pow(cateto1,2)+pow(cateto2,2))

Los operadores fundamentales en C++ son: los de asignación, los aritméticos, los lógicos y
los relaciónales.
Operadores de asignación

Los operadores de asignación permiten establecer el valor de la expresión derecha a la


variable o constante situada a la izquierda.

Por ejemplo:

long int código =324589;

A la variable entera larga de nombre código, se le asigna mediante el operador “=” el


valor 324589. Adicional al operador “=”, C++ cuenta con otros operadores de asignación
que permiten simplificar las expresiones:

Símbolo Uso Equivale


= a=b a=b
+= a+=b a=a+b
-= a-=b a=a-b
*= a*=b a=a*b
/= a/=b a=a/b
%= a%=b a=a%b

Por ejemplo:
float dato;
dato+=0.
2;
A la variable real de nombre dato, se le asigna mediante el operador “+=” un incremento
de 0.2. Estas mismas instrucciones podrían escribirse, así:

float dato;
dato=dato+0.2;

Se pueden realizar asignaciones múltiples por la derecha a variables. Por ejemplo:

int x, y, z;
x=y=z=6;

A las variables enteras x, y, z, se les asigna el valor 6.

Operadores aritméticos

Los operadores aritméticos permiten realizar las operaciones matemáticas básicas como:
suma, resta, multiplicación, división y residuo.

Ejemplo: si
Operador Nombre
x=10 y y=2
+ Suma x + y es igual a 12
– Resta x – y es igual a 8
* Multiplicación x * y es igual a 20
/ División x / y es igual a 5
% Residuo x % y es igual a 0

Las expresiones aritméticas que contengan múltiples operadores serán evaluadas de


acuerdo a la prioridad o jerarquía del operador, así:

Nivel 1.- Paréntesis


Nivel 2.- Multiplicaciones, divisiones y residuo
Nivel 3.- Sumas y restas
Dos o más operadores de la misma jerarquía u orden, se resuelven de izquierda a derecha.
Por ejemplo:

3+4*2 es igual a 11
(3+4)*2 es igual a 14
10/2+3*2 es igual a 11
10/(2+3)*2 es igual a 4
10%3 es igual 1
2+7%3*5 es igual a 7

Note que en C++, no hay operadores para exponentes ni radicales, en caso de necesitarse
se debe recurrir a las funciones estándar de biblioteca.

Operadores incrementales y decrementales


C++, también contiene el operador incremental unitario ++ y el operador decremental
unitario --, que pueden ser utilizados en vez de las expresiones: x=x+1 o x+=1 con tan
solo escribir x++. Estos son:

Valor incremento
Operador Nombre Uso
o Decremento
++x x++
++ incremento 1

-x x-
- decremento 1

Las siguientes sentencias parecerían que tienen el mismo efecto:

++n; n++;

--n; n--;

Sin embargo, cuando se utilizan los operadores ++ y -- de prefijos, las operaciones se


efectúan antes de las operaciones de asignación. Si los operadores están de sufijos, la
asignación se efectúa en primer lugar y la operación a continuación.

Por ejemplo:

int i=10;
int j;
j=i++;

Al finalizar la secuencia, la variable j vale 10, ya que el operador ++ está de sufijo en la


variable i, en cambio i toma el valor 11. Los resultados son diferentes si los operadores
están de prefijo:
int i=10;
int j;
j=++i;

La variable j toma el valor 11, al igual que la variable i.

Los operadores incrementales y decrementales tienen mayor jerarquía que los operadores
aritméticos.

Operadores relacionales

Cuando se utilizan los operadores relacionales en una expresión de C++, el operador


produce un cero (0), o un uno (1), dependiendo del resultado de la expresión: falso o
verdadero, respectivamente:

Operador
Significado
Relacional
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
== Igual que
!= Diferente
Por ejemplo, si se escribe:

La variable c asume el valor 1.


int c;
c= 3<7;

Si declara variables booleanas, estas almacenarán valores, verdadero (true) o falso (false).
Por ejemplo, si se escribe:

bool d;
d=3<7;

La variable d asume el valor verdadero (1).

Los datos caracteres se comparan utilizando el código ASCII. Por ejemplo:

‘A’ < ‘a’;

Es verdadera, ya que A es el código ASCII 65 y es menor que a, de código 97.

Operadores lógicos

Estos operadores unen dos o más expresiones relacionales sencillas. Es decir, nos permiten
unir varias relaciones.

Operador Nombre Acción


&& Y (and) Conjunción
|| O (or) Disyunción
! NO (not) Negación

El operador ! tiene prioridad sobre &&, que a su vez tiene mayor prioridad que ||.

Los operadores lógicos devuelven un valor verdadero o falso como resultado de operar
varias expresiones.

El operador lógico &&, produce un valor verdadero solo si ambas expresiones son
verdaderas. El operador lógico ||, produce un valor verdadero si cualquiera de las
expresiones es verdadera.
Por ejemplo:
int c; c = 3 < 7
&& 4 !=8
La variable c asume el valor verdadero (1), ya que 3<7 es verdadero y 4!=8 es verdadero,
luego verdadero && verdadero, produce verdadero (1).

A continuación se presenta una tabla que resume la forma como se relacionan dos
expresiones relaciónales:

P Q P && Q P || Q !P
Verdadero Verdadero Verdadero Verdadero Falso
Verdadero Falso Falso Verdadero Falso
Falso Verdadero Falso Verdadero Verdadero
Falso Falso Falso Falso Verdadero

ENTRADA Y SALIDA DE DATOS


Para manejar entrada o salida de datos en C++, utilizamos el flujo estándar de salida cout
y el operador de inserción <<; y para las entradas, el flujo cin y el operador de extracción
>>.

Para utilizar entradas/salidas de flujo o streams, los programas C++ deben incluir el
archivo de cabecera iostream.

Salida (cout)

Utilice cout, cuando desea visualizar en la pantalla de su equipo datos. El operador de


inserción <<, inserta datos en el flujo cout.

Ejemplo 1:

cout<< “Bienvenido a la programación”;

Visualiza: Bienvenido a la Programación

Los textos que queremos visualizar en pantalla van entre comillas dobles.

Ejemplo 2:

Es posible utilizar una serie de operadores << en cascada.

int x=100, y=200;


cout<< “Valor final ”<<x<<” “<<y;

Visualiza: Valor final 100 200

Para imprimir los datos que guardan las variables, solamente mencione el nombre de la
variable, a continuación del operador de inserción <<; no utilice comillas.

Ejemplo 3:
cout<<”Los resultados son importantes \n pero más importante es la ganancia”;

Visualiza: Los resultados son importantes


pero más importante es la ganancia

En este ejemplo se utilizó \n, para el salto de línea o retorno de carrito, sin embargo hay
otra forma de hacerlo con la instrucción endl, así:

cout<<”Los resultados son importantes”<<endl<<” pero más importante es la ganancia”;

Los resultados son importantes


Visualiza: pero más importante es la ganancia

Ejemplo 4:

cout<<”El resultado es: ”<<3*5<<endl<<”y la suma es: ”<<3+5;

Visualiza: El resultado es: 15


y la suma es: 8

Entrada (cin)

Utilice cin, cuando desea introducir datos por teclado. El operador de extracción >>,
extrae valores del flujo para almacenarlos en variables.

Por ejemplo:
int n; double
x; cout
<<”Ingrese los datos: ”<<endl;
cin>>n;
cin>>x;
Ingrese los datos:
Visualiza: 100
5.2546897

En las variable n y x, se almacenarán los datos introducidos por teclado en el respectivo


orden, esto es, en n se almacenará 100 y en x se almacenará 5.2546897.

Podríamos haber utilizado una sola línea de código para el ingreso de los datos, así:
int n; double
x;
cout<<”Ingrese los datos: ”<<endl;
cin>>n>>x;

Caracteres de control
Son llamados también secuencias de escape y nos permiten avanzar líneas, hacer
tabuladores, retroceder, etc. Estos efectos deben ser introducidos en forma de carácter,
esto es, entre comillas dobles. Para que se ejecute la acción hay que usar una barra
invertida (\) y una letra sin espacio en medio, de esta forma serán interpretados en forma
distinta al texto normal:

Caracter de control Acción


\n Avance de línea o retorno de carro
\t Tabulación horizontal
\v Tabulación vertical
\’ Identifica una comilla simple
\” Identifica una comilla doble
\f Salta a una nueva hoja
\b Backspace o retroceso (espacio atrás)
\r Retorno al principio de línea
\a Pitido
\000 Número octal
\xhh Número hexadecimal

Por ejemplo:
cout<<"Codigo \t Nombre \t Salario \n Fin de la
impresión";

Código Nombre Salario


Código
Fin de Impresión

Formato numérico en C++

En C++ podemos dar formato a los datos numéricos que imprime la salida cout<<,
utilizando manipuladores de ancho de campo setw(n), de número de decimales
setprecision(n), notación exponencial o decimal setiosflags(n) o escoger el sistema
numérico.

Para utilizar formatos numéricos, los programas C++ deben incluir el archivo de
cabecera iomanip.h.

Ejemplos:

CÓDIGO EN C++:

//Impresión sin utilizar formatos numéricos.


#include<iostream> using namespace std; int main()
{ cout<<"impresion sin Formato"<<2523456789.6<<endl;
system("pause"); return 0;
}
CÓDIGO EN C++:

//El mismo ejemplo utilizando formatos numéricos.


#include<iostream>
#include<iomanip.h>
using namespace std;
int main()
{ cout<<"impresion con
formato"<<setw(18)<<setiosflags(ios::fixed)<
< setprecision(3)<<2523456789.6<<endl;
system("pause"); return 0;
}

setw(18): establece el ancho del campo en 18.


setiosflags(ios::fixed): Despliega el número en notación decimal.
setprecision(3): Determina en tres el número de lugares decimales.

ESTRUCTURAS SECUENCIALES
Las estructuras de control se dividen en tres grandes categorías: secuencia, lógicas o
condicionales y repetición. Lo anterior en función del flujo de ejecución de las
instrucciones.

Los programas mostrados hasta el momento, contienen instrucciones de control


secuenciales, en las que se ejecutan todas las instrucciones de arriba hacia abajo en el
orden que las escribimos, cada una de las cuales se ejecutan una sola vez.

Ejemplo:

ENUNCIADO:
Elaborar un programa que permita hallar el área de un triángulo cuyos vértices en coordenadas
polares son: (0;0), (6;20º) y (9;50º).

ANÁLISIS:
La fórmula del área de un triángulo cuyos vértices en coordenadas polares son (0;0), (r1;θ1) y
(r2;θ2) es: área = ½ r1 r2 sen(θ2-θ1)
CÓDIGO EN C++:
/*programa para hallar el área de un triángulo dados los vértices en el
eje polar
(0;0), (6;20º) y (9;50º) */
#include<iostream> using
namespace std; int
main()
{ double r1=6.0, r2=9.0, a1=20, a2=50, area=0.0,a1c,
a2c; a1c=a1*3.14159/180; /*convierte grados en
radianes*/ a2c=a2*3.14159/180;
area=0.5*r1*r2*sin(a2c-a1c); cout<<"AREA DEL
TRIANGULO \n"<<area;
system("pause");
return 0;
}
SALIDA:

INTERPRETACIÓN:
Las instrucciones se ejecutan una a una en orden descendente. En las instrucciones de
preprocesador, se incluye el archivo de cabecera math.h, para que el compilador interprete la
función sin(x) que se incluye en el programa.

BIBLIOTECA ESTÁNDAR DE FUNCIONES


Los compiladores de C++, proporcionan la biblioteca estándar de funciones, que
contiene una colección de funciones que facilitan el realizar cálculos matemáticos,
manipulación de cadenas, funciones de entrada y salida, manejo de archivos y muchas
otras cosas, de uso corriente.

Existen muchas de estas librerías, algunas tienen sus características definidas según el
estándar, ANSI C o C++; otras son específicas del compilador, otras del sistema
operativo, también las hay para plataformas Windows, LINUX u otras. En el presente
curso nos limitaremos a las librerías ANSI C y C++.

Cada biblioteca estándar tiene su archivo de cabecera que contiene los prototipos de
todas las funciones de dicha biblioteca y las definiciones de varios tipos de datos y de
constantes requeridas para dichas funciones. Este archivo de cabecera obligatoriamente
se debe mencionar antes de utilizar la función correspondiente.

Las funciones de biblioteca, se utilizan normalmente en un programa, escribiendo el


nombre de la función y entre paréntesis el argumento o argumentos de la función.

A continuación mencionaremos algunas de las funciones más útiles de algunas de estas


librerías:
Funciones matemáticas de biblioteca <math.h>

Las funciones matemáticas de biblioteca le permiten al programador ejecutar ciertos


cálculos matemáticos comunes. Para utilizar las funciones de la biblioteca de
matemáticas en los programas C++, debe incluir el archivo de cabecera math.h. (en la
versión 2012 no es necesario su utilización)

Función Descripción Ejemplo


Matemática
sqrt(x) Raíz cuadrada de x sqrt(900.0) es 30.0

exp(x) Función exponencial ex exp(1.0) es 2.718282

log(x) logaritmo natural de x log(2.718282) es 1

log10(x) Logaritmo en base 10 de x log10(1.0) es 0.0

Redondea a x al entero más pequeño


ceil(x) ceil(9.2)=10
que no se menor que x
Redondea a x al entero más grande
floor(x) floor(9.2)=9.0
que no mayor x

pow(x,y) x elevado a la potencia de y (xy) pow(2,7)=128

Residuo de x/y, como un número de


fmod(x,y) fmod(13.657,2.333)= 1.99
punto Flotante

sin(x) Seno trigonométrico de x, en radianes sin(0.0)=0.0)

cos(x Coseno trigonométrico de x, en radianes cos(0.0)=1.0

Tangente trigonométrica de x, en
tan(x) tan(0.0)=0.0
radianes

Todas las funciones de la biblioteca de matemáticas devuelven datos en tipo double.


Los argumentos de las funciones pueden ser constantes, variables o expresiones.

Ejemplo 1:

//Ejemplo utilizando una función matemática.


#include<iostream>
#include<math.h>
using namespace std;
int main()
{ cout<<"raiz cuadrada igual a: "<<sqrt(900.0);
system("pause"); return 0;
}

Visualiza: raiz cuadrada igual a: 30

Cuando este enunciado se ejecuta la función matemática sqrt, calcula la raíz cuadrada del número
contenido entre paréntesis, en este caso, la raíz cuadrada de 900.0.

Ejemplo 2:
//Ejemplo utilizando variables y una función matemática.
#include<iostream>
#include<math>
using namespace std;
int main()
{ double c1=13.0, d=3.0, f=4.0;
cout<<"respuesta: "<<sqrt(c1+d*f);
system("pause"); return 0;
}

Visualiza: respuesta: 5

Calcula e imprime la raíz cuadrada de 13.0 + 3.0 * 4.0 = 25.0, es decir 5.0.

Librería de rutinas de conversión estándar

Función system("pause")

La función system ejecuta un comando del sistema o un programa externo almacenado en disco.
Cuando se escribe system("pause") detiene la consola que muestra los resultados luego de ejecutar
un programa.

Esta función nos será muy útil para detener el programa antes de que termine y la consola
desaparezca.

CÓDIGO EN C++:
//Ejemplo utilizando variables y una función matemática.
#include<iostream>
#include <stdlib.h>
using namespace std; int
main()
{
cout << "Hola, mundo." << endl;
system("pause");
return 0;
}
SALIDA:

INTERPRETACIÓN:
De este modo el programa se detiene antes de devolver el control y de que se cierre la
consola, muestra el mensaje “Presione una tecla para continuar”.

Función system("cls")
Cuando la función se escribe system("cls") borra la consola que muestra los resultados.

CÓDIGO EN C++:
//Ejemplo borrando consola.
#include<iostream>
#include <stdlib.h>
using namespace std; int
main()
{ cout << "Hola, mundo." << endl;
system("pause"); system("cls");
cout << "Hola, nuevamente." << endl; system("pause");
}
SALIDA:

INTERPRETACIÓN:

Luego de mostrar "Hola, mundo." y que el programa se detiene, se borra la consola y


muestra la nueva consola, "Hola, nuevamente.".

Función "rand()"

La función rand genera números aleatorios, entre 0 y RAND_MAX, que es por lo menos
el número 32767 o el valor máximo de un entero de dos bytes (16 bits).

Por ejemplo, si se desea simular un rango de valores del 0 al 5, utilizamos el operador


de módulo (%) en conjunto con rand, así:
rand()%6;

Al 6 se le llama factor de dimensionamiento.

Debido a que la función rand(), genera números seudo aleatorios, esto es, que cada
vez que el programa se ejecute genera la misma secuencia, es mejor utilizar la función
srand(), que genera en el programa números diferentes tomando un argumento
entero como semilla. Si utilizamos la función time() o reloj del computador como
semilla, generaríamos números diferentes cada vez que se corra el programa.

Las funciones rand() y srand(), pertenecen a la biblioteca <iostream> y la función


time() requiere la librería <time.h>

ENUNCIADO:
Elaborar un programa que simule el lanzamiento de un dado.
CÓDIGO EN C++:
//Ejemplo con números aleatorios.
#include<iostream>
#include<time.h> using
namespace std; int
main()
{ srand(time(NULL)); cout<<"Estoy lanzando el
dado: "<<endl; cout<<rand()%6+1<<endl;
system("pause"); return 0;
}

SALIDA:

INTERPRETACIÓN:

Cada vez que se ejecute el programa genera un número aleatorio del 0 al 5; para simular un dado
se le suma uno.
En las instrucciones de preprocesador, se debe incluir el archivo de cabecera iostream.h, stdlib.h y
time.h.

Conversión y clasificación de caracteres

Función "toupper()"

Convierte un carácter a mayúscula.

ENUNCIADO:
Convertir una letra minúscula en
mayúscula
CÓDIGO EN C++:

//programa que convierte letras minúsculas en mayúsculas.


#include<iostream> using
namespace std; int
main()
{ char
ch;
cout<<"digite una letra en minuscula: "<<endl;
cin>>ch; int i=toupper(ch); char t=i; cout<<"Esa
misma letra en mayuscula es: "<<endl;
cout<<t<<endl; system("pause"); return 0;
}

SALIDA:

INTERPRETACIÓN:

Con la instrucción int i=toupper(ch);, guardamos en la variable i el entero ASCII,


correspondiente a la letra en mayúscula, para ser asignado a una variable carácter e
imprimirla.

Función "tolower()"

Convierte un carácter a minúscula.

ENUNCIADO:

Convertir una letra minúscula en mayúscula


CÓDIGO EN C++:

//Programa que convierte letras minúsculas en mayúsculas.


//Utiliza otras funciones de entrada y salida de datos
#include<iostream> using
namespace std; int
main()
{ char ch; cout<<"digite una letra en
minuscula: \n”; int i=toupper(ch); char
t=i;
cout<<"Esa misma letra en mayuscula es: \n "<<t;
system("pause"); return 0;
}

SALIDA:

RESUMEN

• En la presente unidad se establece la importancia del lenguaje de programación C++,


la evolución que ha tenido este lenguaje desde su creación, muestra la estructura
general de un programa en C++ y las fases en la compilación y ejecución de un
programa.

• C++ es un lenguaje de Programación Orientado a Objetos basado en C, que permite a


los programadores hacer programas simples e interactivos o programas muy
elaborados y complejos para ingeniería y ciencia, además de interfaces gráficas para
usuarios de Windows, dentro de un contexto de un lenguaje modular.

• En 1998, se aprobó el estándar C++ internacional y empezaron a publicarse los


primeros manuales con el estándar ANSI/ISO C++.

• Los elementos básicos del lenguaje C++ son los que nos permiten la creación de un
programa, el proceso de ejecución del programa y la depuración o corrección de
errores.
• Un programa en C++ incluye entre otros: Los comentarios, las declaraciones globales,
las directivas de preprocesador, la función main() y en algunos programas funciones
definidas por el usuario.

• Los comentarios, permiten documentar el código fuente por la persona que lo escribe,
son muy útiles en el momento que es leído por otra persona diferente al autor. En C++,
los comentarios pueden iniciar con /* y se cerrar con */ ó se puede utilizar dos slash
(//), por cada línea de comentario.

• Las declaraciones globales y las funciones definidas por el usuario: Indican al


compilador que las funciones de usuario o variables aquí declaradas son comunes a
todas las funciones del programa. Estas declaraciones se sitúan antes de la función
main().

• La función main() es el punto inicial de entrada al programa y todo programa la debe


contener. Las llaves encierran el bloque de sentencias o programa principal.

• Las directivas de preprocesador: Son las instrucciones que le indican al compilador que
lea estas sentencias antes de compilar la función principal del programa. Estas
directivas inician con el signo de número (#).

• El proceso de ejecución de un programa depende del compilador C++, que se utilice.


En términos generales los programas de C++ pasan a través de cinco fases para su
ejecución: editar, preprocesar, compilar, enlazar y ejecutar. En cada una de las fases se
produce o se integra un archivo.

• Los errores que surgen en los programas cuando se ejecutan deben ser detectados y
corregidos, a este proceso se le denomina Depuración. Las situaciones más comunes en
las cuales suelen aparecer errores son: El no cumplimiento de las reglas gramaticales o
errores de sintaxis y los errores en el diseño del algoritmo o errores lógicos.

• Los tipos de datos fundamentales en C++ son: Enteros int, de punto flotante float,
double o long double y los caracteres char.

• Una variable en C++ es una posición de memoria con nombre, en donde se almacena
un valor de un cierto tipo de dato y que puede ser modificado durante la ejecución de
un programa.

• Un identificador en C++ es una palabra compuesta de letras y/o números de hasta 32


caracteres significativos que permite identificar las variables, constantes, funciones o
clases, en C++.

• Las constantes en C++ son valores fijos, que no puede ser modificados por el
programa.

• Los operadores fundamentales en C++ son: Operadores de asignación, aritméticos,


lógicos y relaciónales.
Operadores de asignación: =, +=, -=, *=, /=, %=.
Operadores aritméticos= +, -, *, /, %.
Operadores lógicos: <, >, <=, >=, ==, !=.
Operadores relacionales: &&, ||, !.
• Una expresión en C++, es normalmente una ecuación matemática, que muestra una
secuencia de operaciones y operandos que especifican un cálculo.

• Para manejar entrada/salida de datos, C++ utiliza el flujo estándar de salida cout y el
operador de inserción <<; y el flujo estándar de entrada cin y el operador de extracción
>>.

• El Lenguaje C++, proporciona una biblioteca estándar, que contiene una colección de
funciones para llevar a cabo cálculos matemáticos, manipulación de cadenas, funciones
de entrada y salida, generación de números aleatorios, etc. Cada biblioteca estándar
tiene su archivo de cabecera correspondiente.

• Las funciones se utilizan normalmente en un programa, escribiendo el nombre de la


función y entre paréntesis el argumento o argumentos de la función. Las funciones
matemáticas de biblioteca le permiten al programador ejecutar ciertos cálculos
matemáticos comunes.

• Las estructuras de control registran la secuencia o flujo de ejecución de las sentencias.


Las estructuras de control se dividen en tres grandes categorías por el flujo de
ejecución: secuencia, selección y repetición.

También podría gustarte