Elementos básicos de c++

40

Transcript of Elementos básicos de c++

Page 1: Elementos básicos de c++
Page 2: Elementos básicos de c++

1. Operadores y expresiones en C++

2. Operadores aritméticos

3. Operadores de incrementación y decrementación

4. Operadores relacionales

5. Operadores lógicos

6. Estructuras de flujo de control

Secuenciales

Condicionales

Repetitivas

7. Funciones

Page 3: Elementos básicos de c++

C++ es un lenguaje que permite realizar una programación economizando las expresiones, con abundancia de operadores y tipos de datos. No está orientado a ningún área en especial y sobre todo consigue un código objeto altamente optimizado que repercute en que los programas sean más rápidos.C++ es considerado un C más grande y potente. La sintaxis de C++ es una extensión de C, al que se han añadido numerosas propiedades, fundamentalmente orientada a objetos. En este tema, no se pretende la enseñanza a fondo de las herramientas de programación C++, solo se presenta una breve introducción a su uso y conocimientos mínimos para lograr el aprendizaje del lenguaje a través de las reglas de sintaxis del estándar clásico de C++.

Page 4: Elementos básicos de c++

Los programas en C++ constan de datos, sentencias de programas(if, while, …) y

expresiones.

Una expresión es una sucesión de operandos y operadores debidamente relacionados que especifican un cálculo, ejemplo:

Otro tipo de operador es el unitario que actúa sobre un único valor. Como por ejemplo el valor de -10 .

Operador Binario

Operandos

5 +10

Page 5: Elementos básicos de c++

Los operadores aritméticos sirven para realizar operaciones aritméticas básicas.

Page 6: Elementos básicos de c++

Es importante resaltar que los paréntesis se pueden usar para cambiar el orden usual de evaluación de una expresión.

Al evaluar una expresión construida en C++, hay que considerar la prioridad de los operadores.

Page 7: Elementos básicos de c++

¿Cuál es el resultado de la siguiente expresión:

10 + (8 - 4) * (10 * (12 + 6) / 6)

10 + (8 - 4) * (10 * 18 / 6)

10 + 4 * (10 * 18 / 6)

10 + 4 * (180 / 6)

10 + 4 * 30

10 + 120

130 

10 + (8 - 4) * (10 * (12 + 6) / 6) ?

Page 8: Elementos básicos de c++
Page 9: Elementos básicos de c++

El lenguaje C++ incorpora los operadores de incremento ++ y decremento --.

Estos operadores unitarios suman o restan 1 (uno), respectivamente a la variable.

Tienen la propiedad de que pueden utilizarse como sufijo o prefijo.

El resultado de la expresión puede ser distinto dependiendo del contexto que se maneje.

Page 10: Elementos básicos de c++
Page 11: Elementos básicos de c++

Si los operadores ++, -- están de sufijos, la

asignación se efectúa en primer lugar y la

incrementación o decrementación a continuación.

Si los operadores ++ y --

están de prefijos, la

operación de incremento

se efectúa antes de la

operación de asignación.

Page 12: Elementos básicos de c++

Ejemplo del operador de incrementación

int a = 1, b;

b = a++ // b vale 1 y a

vale 2

int a = 1, b;

b = ++a;

¿Cuál es el valor de a y de b?

Page 13: Elementos básicos de c++

Son aquellos operadores que comprueban una relación entre dos operandos.

Se usan normalmente en sentencias de selección (if) y de iteración (while, do-while y for).

Cuando se utilizan los operadores en una expresión, el operador relacional produce un 0, o un 1.

El 0 lo devuelve para una condición falsa y el 1 lo devuelve para una condición verdadera.

Ejemplo: a = 7 > 3, la variable a toma el valor de 1.

Page 14: Elementos básicos de c++
Page 15: Elementos básicos de c++

Estos operadores se utilizan con expresiones, al ser evaluados pueden devolver un valor verdadero (cualquier valor distinto de 0), o un valor falso (0)

El operador ! tiene prioridad mas alta que &&, que a su vez tiene mayor prioridad que el ||.

Asociatividad de izquierda a derecha

Page 16: Elementos básicos de c++

Los operadores matemáticos tienen precedencia sobre los operadores relacionales, y los operadores relacionales tienen precedencia sobre los operadores lógicos.

+ > !

Page 17: Elementos básicos de c++

Las estructuras básicas son: secuencia, selección y repetición.

Secuenciales

Condicionales

Repetitivas

Page 18: Elementos básicos de c++

La ejecución comienza con la primera sentencia y luego se ejecutan las demás, una tras otra, hasta llegar al final del bloque. El bloque de sentencias se define por el carácter llave de apertura ({) para marcar el inicio del mismo, y el carácter llave de cierre (}) para marcar el final, como se muestra a continuación:

   { sentencia1;

sentencia2;

……… sentencian;

}

Page 19: Elementos básicos de c++

La sentencia if permite decidir, a partir del resultado de evaluar una expresión lógica

Formato 1

if (expresión_lógica) { sentencia1;

::: sentencian;

}

if (expresión_lógica) sentencia;

Ejemplo:

if (num1 % num2 == 0) cout << num1 << " es divisible por " <<

num2;

Page 20: Elementos básicos de c++

Formato 2

if (expresión_lógica) { sentencia1;

::: sentencian;

}else { sentencia1;

::: sentencian;

}

if (expresión_lógica) sentencia1; else sentencia2;

Page 21: Elementos básicos de c++

Ejemplo Formato 2

if (annos > 3) { aumento = sueldo_base * 0.30; sueldo_neto = sueldo_base + aumento; }else { aumento = sueldo_base * 0.15; sueldo_neto = sueldo_base + aumento; }

Page 22: Elementos básicos de c++

Formato 3

if (expresión_lógica) sentencia1;else if (expresión_lógica) sentencia2; else ::: if (expresión_lógica) sentencia3; else

sentencian;

Page 23: Elementos básicos de c++

Ejemplo Formato 3

if (numero1 == numero2) cadena = "Los dos números son iguales";else  if (numero1 > numero2)   cadena = "El primer número es mayor que el segundo"; else cadena = "El primer número es menor que el segundo";

Page 24: Elementos básicos de c++

La sentencia switch es una sentencia de C++ que se utiliza para seleccionar una alternativa entre varias disponibles y tiene el siguiente formato:

switch (expresion)

{

case etiqueta1 : sentencia1;

break;

case etiqueta2 : sentencia2;

break;

:::

case etiquetaN : sentencian;

break;

default : sentenciad;

}

Page 25: Elementos básicos de c++

En el siguiente ejemplo se evalúa lo que contiene el carácter edo_civil y dependiendo de su valor, se guarda un mensaje que contiene el estado civil, pero como cadena de caracteres.

string mensaje;char edo_civil;::: // de alguna manera edo_civil toma un valorswitch (edo_civil) { case 'S': case 's': mensaje = "SOLTERO"; break; case 'C': case 'c': mensaje = "CASADO"; break; case 'D': case 'd': mensaje = "DIVORCIADO"; break; case 'V': case 'v': mensaje = "VIUDO"; break; default: mensaje = "Estado Invalido";}

Page 26: Elementos básicos de c++

La estructura repetitiva permite que una sentencia o varias sentencias se ejecuten un número determinado de veces. También conocidas como bucles, ciclos o lazos.

La sentencia o grupo de sentencias que se repiten se llaman cuerpo del bucle.

Cada repetición del cuerpo del bucle se llama iteración del bucle.

En C++ se dispone de las sentencias: while, do .. while y for, para construir los bucles o estructuras repetitivas.

Page 27: Elementos básicos de c++

Un bucle while tiene una condición del bucle (expresión lógica) que controla la secuencia de repetición. La ejecución de la(s) sentencia(s) se repite mientras la condición del bucle permanece verdadera y termina cuando se falsa.

Sintaxis:

Cuerpo

Del

Bucle

while (condición)

{ sentencia 1; sentencia 2;

::: sentencia n;

}

while (condición)

sentencia;

Primero se pregunta y

luego de Ejecuta

Es una expresión lógica o booleanaEs una expresión lógica o booleana

Page 28: Elementos básicos de c++

Bucle controlado con contador

Ejemplo de un bucle o estructura repetitiva, que permite mostrar por pantalla los números enteros del 1 al 100.

int cont = 1; //Inicializar contwhile (cont <= 100) //Control del bucle{ cout << cont << endl; /*Imprime el contenido de cont*/ ++cont; /*Incrementa cont, cuando llegue a 100 se saldrá del bucle*/}

Page 29: Elementos básicos de c++

Bucle controlado con valor centinelaEjemplo que lee varias notas (no se saben cuentas) las

acumula y cuenta dentro del bucle. Al terminar de procesar todas las notas, usa un valor centinela (-1) como último dato, para salirse del ciclo y por último, calcular e imprimir el promedio.

int nota, suma = 0, cont = 0;const int CENTINELA = -1;cout<<"Ingrese la nota (-1) para finalizar : "; cin>>nota; while (nota != CENTINELA) { suma += nota; ++cont; cout<<"Ingrese la nota (-1) para finalizar : "; cin>>nota; }cout << "El promedio de notas es : " << suma/cont << endl;

Page 30: Elementos básicos de c++

Bucle controlado preguntando al usuario si desea la continuación del cicloEs el usuario el que tiene la potestad de continuar o no con el bucle, respondiendo a una pregunta que se le hace, relacionada con el control del mismo. A continuación se ilustra esta técnica con el ejemplo anterior.

int nota, resp, suma = 0, cont = 0;cout<<"Existe alguna nota (1)SI (2)NO : ";cin>>resp; while (resp == 1) { cout<<"Ingrese la nota : "; cin>>nota; suma += nota; ++cont; cout<<"Existe alguna nota (1)SI (2)NO : "; cin>>resp; }cout << "El promedio de notas es : " << suma/cont << endl;

Page 31: Elementos básicos de c++

La sentencia do-while se utiliza para especificar un bucle condicional que se ejecuta al menos una vez. Si condición es verdadera, entonces se repite la ejecución de sentencia, este proceso continúa hasta que la condición es falsa.

Sintaxis:do

sentencia;

while (condición)Cuerp

o

Del

Bucle Primero se ejecuta y luego se pregunta

do

{ sentencia 1; sentencia 2;

:::

sentencia n;}while (condición)

Page 32: Elementos básicos de c++

Ejemplo donde el bucle se repetirá mientras el carácter leído no sea un dígito y se termina cuando se introduzca un carácter que es un dígito.

char caracter;do { cout<<"Ingrese digito (0-9) : "; cin>>caracter;}while (caracter < '0' or caracter > '9');cout<<"El digito es : "<<caracter<<endl;

Page 33: Elementos básicos de c++

Si conocemos exactamente la cantidad de veces que necesitamos repetir un conjunto de sentencias, entonces podemos usar un bucle for. La sentencia for es un método para ejecutar un bloque de sentencias un número fijo de veces.

Sintaxis:

for (inicializacion; condicion iteración; incremento ) { conjunto de sentencias }

Inicializa la variable de control del

bucle

Incrementa o Decrementa la

variable de control del bucle

Expresión lógica que determina si las

sentencias se han de ejecutar, mientras sea

verdadera

Page 34: Elementos básicos de c++

Ejemplo, donde se suman los 10 primeros números enteros y se imprime el resultado obtenido.

int suma = 0;for (int n = 1; n <=10; n++) suma += n; cout << "La suma de los primeros 10 numeros es:” << suma << endl;

Page 35: Elementos básicos de c++

Una función contiene una o más sentencias que realizan una tarea específica.

Pueden retornar un valor y ser llamadas desde cualquier parte de un programa.

La función tiene un nombre, y cuando el control de la ejecución del programa consigue este nombre, inmediatamente es ejecutada, y se dice que la función fue invocada o llamada. Una vez que termina la ejecución de la función (finalizó con su tarea), el control de ejecución es devuelto al punto desde el cual la función fue llamada.

Las funciones pueden tener parámetros que modifican su funcionamiento. Estos parámetros se suministran a la función cuando esta es invocada.

En la programación orientada a objetos, las funciones se utilizan para definir los métodos de las clases.

Page 36: Elementos básicos de c++

Una función no puede ser invocada (llamada) si no ha sido declarada previamente. La declaración de una función, llamada también prototipo de la función tiene el siguiente formato:

Donde:tipo_de_retorno: tipo del valor devuelto por la función,

puede ser de un tipo predefinido del C++, de un tipo definido por el usuario, o de tipo void que indica que no retorna ningún valor.

nombre_función: cualquier identificador válido.tipo param1, tipo param2 ... tipo paramn: Tipos de

valores que se le deben suministrar a la función para que haga su trabajo; estos valores se conocen como parámetros. Algunas funciones no los requieren.

Parámetros formales o ficticios

tipo_de_retorno nombre_función (tipo param1, tipo param2, .. tipo paramn);

Page 37: Elementos básicos de c++

Los parámetros de una función pueden ser por valor y por referencia, o puede no tener parámetros.

Párametros por valor: En C++ el paso por valor significa, que cuando el control pasa a la función, los valores de los parámetros en la llamada, se copian en los parámetros formales o ficticios de la función. Si se cambia el valor de un parámetro que fue pasado por valor, el cambio solo re refleja en la función y no tiene efecto fuera de esta.

Parámetros por referencia: Cuando se necesita que un parámetro pasado a la función, sea modificado por alguna de las instrucciones que esta contiene y su valor devuelto al punto donde fue invocada la función, se debe pasar el parámetro por referencia.

Para declarar un parámetro como paso por referencia, el símbolo & debe preceder al nombre del parámetro.

Page 38: Elementos básicos de c++

La definición de una función le indica al compilador como ésta trabaja. Incluye el encabezado y el cuerpo de la función. El encabezado es igual al prototipo de la función, pero sin el punto y coma. El cuerpo describe lo que hace la función y va encerrado entre llaves. La definición de una función tiene siguiente formato:

tipo_de_retorno nombre_función (tipo param1, tipo param2, .. tipo paramn){ acciones //cuerpo de la función}

Si una función tiene un tipo de retorno, ésta lo devuelve utilizando la sentencia return que normalmente aparece al final.Una función puede tener más de una sentencia return.

Page 39: Elementos básicos de c++

A continuación se muestra la definición de la función LeerNombre,

string LeerNombrePersona(){ string nom; //variable local de la función cout << "Ingrese nombre de la persona"; cin.sync(); /*limpia el Buffer antes de leer el string nom*/ getline(cin,nom); //lee nom de tipo string return nom; //retorna la variable nom}

Page 40: Elementos básicos de c++

Las funciones para poder ser ejecutadas han de ser llamadas o invocadas. Una función se invoca por su nombre, y se le debe suministrar valores a cada uno de los parámetros incluidos en su definición (si los tiene). Una función que es llamada, recibe el control del programa, comenzándose a ejecutarse desde el principio y cuando termina (se alcanza una sentencia return o la llave de cierre (})) el control del programa vuelve y retorna al punto desde el cual la función fue llamada.A continuación se muestra como invocar la función LeerNombrePersona definida anteriormente.string nombre; /*declaración de la variable que recibirá lo que retorna la función*/

nombre = LeerNombrePersona(); /*llamada de la función*/