introducciÓn al lenguaje c++. 2 en c++ la entrada y salida de datos se realiza a través de...
TRANSCRIPT
![Page 1: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/1.jpg)
INTRODUCCIÓN AL LENGUAJE C++
![Page 2: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/2.jpg)
2
En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams)
Estos flujos están definidos en la librería iostream.h que deberá ser incluida en el programa
Entrada y salida
![Page 3: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/3.jpg)
3
cout corresponde al flujo de SALIDA.
Normalmente corresponde a la pantalla del usuario.
El operador de insercción, <<, inserta datos en el flujo cout. Por ejemplo:
cout<< “Mensaje de prueba “;
cout<< 500<<600<<700
int i=5, j=10,m=100;
cout<< "El valor de i es:"<<i << j << m;
Salida: cout
![Page 4: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/4.jpg)
4
cout.setf(ios::fixed) Imprime en formato punto fijo (scientific es el estándar)
cout.setf(ios::showpoint) Imprime mostrando el punto decimal
cout.precision(n) Decimales de precisión
cout.width(n) Espacios para mostrar un valor
cout.setf(ios::right) Justifica el texto a imprimir a la derecha (left)
Salida con formato
![Page 5: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/5.jpg)
5
Proporciona un flujo de entrada
El operador de extracción >>, extrae valores del flujo y lo almacena en variables
Normalmente el flujo de entrada es el tecladoint numero1, numero2;
cin>>numero1;
cin>>numero2;
Entrada: cin
![Page 6: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/6.jpg)
6
#include <iostream.h>int main() { cout << "Ingrese su edad: "; int miEdad; cin >> miEdad; cout << "Ingrese la edad de un amigo: "; int suEdad; cin >> suEdad; if (miEdad < suEdad) cout << "Yo soy menor que mi amigo“ << endl; else if (miEdad > suEdad) cout << "Mi amigo es menor que yo \n "; else cout << “Ambos tenemos la misma edad \n "; return 0;}
Ingresar 2 edades y determinar quién es mayorEjercicio
![Page 7: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/7.jpg)
7
Tipos de DatosELEMENTALES
![Page 8: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/8.jpg)
8
Tipo Ejemplo Bytes
Rango
char ‘a’ 1 0..255
short -15 1 -128..127
int 1024 2 -32768..32767
long 262144 4 -2147483648..2147483637
float 10.5 4 3.4*10E-38.3.4*10E308
double 0.00045 8 1.7*10E-308..1.7*10E308
Tipos numéricos
![Page 9: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/9.jpg)
9
Un puntero es una variable que puede almacenar una dirección de memoria.
Una variable de tipo puntero puede guardar direcciones de variables de un tipo determinado: punteros a int, a double, a char, etc.
Punteros
![Page 10: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/10.jpg)
10
tipo *nombre_variable;
int i=3, *p,*r; // p y r son punteros a enterodouble d=3.3,*q; // q es un puntero a doublechar c='a', *t; // t es un puntero a carácter
p=&i; r=p; p=q; es un ERROR porque son punteros de
diferente tipo
Declaración de punteros
![Page 11: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/11.jpg)
11
cin>>*p; if (p==r) cout<<"El valor de i es: "<<*p; *p=*p+3; p=p+3;
Otras operaciones con punteros
![Page 12: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/12.jpg)
12
Es posible desplegar una dirección como valor de una variable de tipo puntero, o la dirección de cualquier variable, utilizando cout
cout << “p = “ << p << endl;
cout << “&n = “ << &n << endl;
cout << “&p= “ << &p << endl;
Mostrar una dirección
![Page 13: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/13.jpg)
13
1. int *p, *q, a=5
??
??
p
q
2. p=&a 3. *p=8;
??
p
q8
4. q=p;
p
q8
5. *q=85;
p
q85
??
p
q
5a
5a:
a
a a
Ejemplo ilustrativo
![Page 14: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/14.jpg)
14
6. a=33;
p
q33
7. int b=1;
p
q
33
1
a a
b
8. q=&b;
p
q
9
1
a
b
NOTA
a, b, p, q : variables locales automáticas
Ejemplo ilustrativo
![Page 15: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/15.jpg)
15
int main() { int x, y, *p, *q; p = &x; *p = 5; q = &y; *q = 23; cout << *p << " “ << *q << endl; q = p; *p = 35; cout << *p << " “ << *q << endl; q = NULL; cout << x << " “ << y << endl; return 0;}
Ejemplo 1:
![Page 16: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/16.jpg)
16
int main() { int *p, *q, x, y; p = &x; *p = 14; q = p; cout << *p << " " << *q << endl; q = NULL; cout << x << " “ << y << endl; return 0;}
Ejemplo 2:
![Page 17: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/17.jpg)
17
int main() { int x, y, *p, *q;
p = &x;*p = 12;q = &y;*q = 23;cout << *p <<" "<<*q<<endl;*p = *q;cout << *p <<" "<<*q<<endl;q = NULL;cout<<*p<<endl;cout<<x<<" "<<y<<endl;return 0;
}
Ejemplo 3:
![Page 18: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/18.jpg)
18
int main() {int x, y, *p, *q;p = &x;*p = 14;q = p;if ( p == q) cout<<"Mensaje 1";q = &y;if ( p == q) cout<<"Mensaje 2";*q = 14;if (p == q) cout<<"Mensaje 3";if (*p == *q) cout<<"Mensaje 4";return 0;
}
Ejemplo 4:
![Page 19: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/19.jpg)
19
enum Frutas {Manzana, Pera, Guinda, Kiwi,};
enum Color {Rojo=10, Verde, Azul};
enum Raza {Pastor, Cooker, Poodle, Setter, Collie};
int main() { Color c=Verde; if (c==Verde)
cout<<"Color VERDE"; return 0;}
Tipos Enumerados
![Page 20: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/20.jpg)
20
Tipos de DatosESTRUCTURADOS
![Page 21: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/21.jpg)
21
Un arreglo es un objeto de dato estructurado de carácter homogéneo
Los arreglos pueden ser de una o mas dimensiones
Un Vector es un arreglo unidimensionalint v[10];
int v[10] = {41, 23, 87, 19, -9};
int v[] = {41, 23, 87, 19, -9, 91, 103, 25, 11, 22};
0 1 2 3 4 5 6 7 8 9v: 41 23 87 19 -9 91 103 25 11 22 cout << v[3];
Arreglos
![Page 22: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/22.jpg)
22
Una Matriz es una arreglo bidimensional
float a[5][3];
int x[5][3] = {{33, 21, 47},
{82, 91, 95},
{50, 72, 45},
{36, 79, 63},
{53, 60, 74}}cout << a[3][2];
33 21 47
82 91 95
50 72 45
36 79 63
53 60 74
0
1 2
0
1
2
3
4
Arreglos
![Page 23: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/23.jpg)
23
Strings: Vector de caracteres, que termina con el caracter NULO: '\0'
char s[5];
char s1[5] = {'h','o','l','a','\0'};
char s2[5] = "hola";
char s3[] = "hola";
typedef char String[25];
String s;
Strings
![Page 24: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/24.jpg)
24
Captura de un String Lee del flujo de entrada un string. Deja para la siguiente lectura el '\n' No reconoce el espacio inicial en las entradas
cin >> s;
i = 1;do { cin >> s; cout << i << ": " << s << endl; i++;}while (i<5);
Ingresar:Este es un ejemplo
Strings
![Page 25: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/25.jpg)
25
Captura de un String Lee del flujo de entrada un string de largo
caracteres La lectura termina
Con la línea ('\n'), si la cantidad de caracteres es menor que largo
Cuando se ha extraído la cantidad largo de caracteres, aunque NO haya terminado la línea
cin.getline(s, largo);
Strings
![Page 26: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/26.jpg)
26
Captura de un String
i=1;do { cin.getline(s,20); cout << i << ": " << s << endl; i++;}while (i<5);
Strings
![Page 27: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/27.jpg)
27
Funciones sobre strings
strlen(string); // largo strcpy(destino, origen); // copia strcmp(string1, string2); // compara
0: Si string1 == string2 1: Si string1 > string2 -1: Si string1 < string2
Strings
![Page 28: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/28.jpg)
28
#include <iostream.h>#include <string.h>int main() { char x[5]; char y[] = "Hola"; strcpy(x,y); cout << "x:" << x << endl; cout << "y:" << y << endl; return 0;}
Strings
![Page 29: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/29.jpg)
29
#include <iostream.h>#include <string.h>int main() { char *x; char y[] = "Hola"; x = new char[strlen(y)+1]; cin.getline(x, 20); cout << "x:" << x << endl; cout << "y:" << y << endl; return 0;}
Strings
![Page 30: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/30.jpg)
30
#include <iostream.h>#include <string.h>void Copiar(char a[], char b[]) { strcpy(a, b);}int main() { char *x; char y[] = "Hola"; x = new char[strlen(y)+1]; Copiar(x,y); cout << "x:" << x << endl; cout << "y:" << y << endl; return 0;}
Strings
![Page 31: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/31.jpg)
31
#include <iostream.h>#include <string.h>void Copiar(char *a, char *b) { strcpy(a, b);}int main() { char *x; char y[] = "Hola"; x=new char[strlen(y)+1]; Copiar(x,y); cout<< "x:" << x << endl; cout<< "y:" << y << endl; return 0;}
Strings
![Page 32: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/32.jpg)
32
#include <iostream.h>#include <string.h>char *Mayor(char a[], char *b) { if (strcmp(a,b)>0) return a; return b;}int main() { char *x; char y[] = "Hola"; x = new char[strlen(y)+1]; cin.getline(x,20); cout << "El mayor: " << Mayor(x,y); return 0;}
Strings
![Page 33: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/33.jpg)
33
Constructor de tipos de dato que permite agrupar elementos de diversos tipos de datos como UNA variable
struct {
int RUT;
char nom[10];
float prom;
} Persona;
Persona a;
RUT nom prom
cout << a.prom;
a
Estructuras
![Page 34: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/34.jpg)
34
struct { int hh; int mm; int ss;} Hora;Hora h, v[10], *p;h.hh = 8;p = &h;v[3].hh = 5;v[7] = *p;cout << p->hh << h.hh << v[7].hh
Estructuras
![Page 35: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/35.jpg)
35
typedef int Vector[10];Vector v;
typedef float Matriz[5][3];Matriz a;
typedef enum Boolean {FALSE, TRUE};enum Color {Rojo, Verde, Azul, Amarillo}
typedef struct Persona { char paterno[10]; char materno[10]; char nombre[10];};
Definición de nuevos tipos
![Page 36: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/36.jpg)
36
Vector v; // int v[10];Boolean sw = FALSE;Persona alumno;Numero x;
typedef union Numero { int i; float f;};
Definición de nuevos tipos
![Page 37: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/37.jpg)
37
OBJETOS CONSTANTES
![Page 38: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/38.jpg)
38
const int x; // error: x debe ser inicializadax = 7; // error: x no puede ser
// modificada por asignaciónconst int z = 3; cout << z << '\n';
Objetos Constantes
Se definen mediante el prefijo const Estos objetos NO puede ser modificados por
asignación Sólo se permite su inicialización
![Page 39: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/39.jpg)
39
FUNCIONES
![Page 40: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/40.jpg)
40
<tipo de retorno> <nombre>(<parámetros>) { <datos locales>
<instrucciones>}
Definición
Las funciones no se pueden anidar Todas las funciones son externas, se pueden
llamar desde cualquier punto del programa
![Page 41: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/41.jpg)
41
#include <iostream.h>void f1() { cout << "Función sin argumentos \n"; }void f2(void) { cout << “También sin argumentos \n"; }int main() { f1(); f2(); return 0;}
Definición
![Page 42: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/42.jpg)
42
Si la función retorna un valor, se debe especificar el tipo de dato retornado:
char, double, float También puede retornar un UN PUNTERO. Puede no retornar valores (void). Puede retornar una referencia: (ALIAS)
<tipo> &<nombre>(<parámetros>)
Tipos de retorno
![Page 43: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/43.jpg)
43
<tipo de retorno> <nombre>(<parámetros>);
Declaración (prototipo)
Se pueden omitir los nombres de los parámetros y dejar solamente los tipos
No es necesario declarar las funciones si se definen antes de usarlas
![Page 44: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/44.jpg)
44
Una variable que se declara fuera de las funciones es una variable global y puede ser utilizada dentro de todas las funciones del programa
Una variable que se declara dentro de una función es una variable local y solamente puede ser utilizada dentro de dicha función. Al terminar la ejecución de la función desaparece
Variables locales y globales
![Page 45: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/45.jpg)
45
Parámetros
Parámetros Formales O de definición, son los que aparecen en la
declaración de la función Parámetros Actuales
O de invocación, son los que aparecen en la llamada a la función
Se usan para inicializar los parámetros formales, o recibir valores de los parámetros
formales
![Page 46: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/46.jpg)
46
Parámetros actuales
Los parámetros actuales pueden ser: Constantes Variables Expresiones
Ejemplo:
total = CalcArea(20, 4);
L = 30;A=12;total = CalcArea(L, A+2);
![Page 47: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/47.jpg)
47
Modos de parametrización
Parámetros por Valor Al llamar a la función, se copia el valor del
parámetro actual como valor del parámetro formal
El parámetro formal se inicializa con el valor de parámetro actual
La función trabaja con una copia; luego, no modifica el valor de la variable usada como parámetro actualLLAMADA DEFINICIÓN
Ejemplo(a);Ejemplo(a+1);Ejemplo(4);
void Ejemplo(int x)
![Page 48: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/48.jpg)
48
Modos de parametrización
Parámetros por Referencia Al llamar a la función, se copia la dirección del
parámetro actual como dirección del parámetro formal
El parámetro formal es ALIAS del parámetro actual
La función puede cambiar su valor
LLAMADA DEFINICIÓN
Ejemplo(a); void Ejemplo(int &x)
![Page 49: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/49.jpg)
49
Ejemplos
void Ejemplo (int a, int &b) { a = 5; b = 8;}
int main( ) { int x = 2, y = 4, &z = x; // z es ALIAS de x Ejemplo(x, y); cout << x << " " << y << " " << z; cout << endl; return 0;}
![Page 50: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/50.jpg)
50
Ejemplos
int cuadXVal(int a) { return a = a*a; }void cuadXInd(int *b) { *b = (*b) * (*b); }void cuadXRef(int &c) {c = c*c; }
![Page 51: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/51.jpg)
51
Ejemplos
int main() { int x = 2, y = 3, z = 4; cout << "Por valor : x = " << cuadXVal(x) << '\n'; cuadXInd(&y); cout << "Por indirección : y = " << y << '\n'; cuadXRef(z); cout << "Por referencia : z = " << z << '\n'; return 0;}
![Page 52: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/52.jpg)
52
Prototipos de funciones
#include <iostream.h>void f1();void f2(void);int main() { f1(); f2(); return 0;}void f1() { cout << "Función sin argumentos \n"; }void f2(void) { cout << "Función también sin argumentos \n"; }
![Page 53: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/53.jpg)
53
La cláusula inline sugiere al compilador la generación de una copia del código de esa función "in situ" (cuando sea apropiado), a fin de evitar una llamada
Esta sugerencia es generalmente acogida en el caso de funciones pequeñas
Funciones en línea
![Page 54: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/54.jpg)
54
inline float cubo(float x) {return x*x*x; }int main() { cout << "Ingrese el largo del lado de un cubo: "; float lado; cin >> lado; cout << "Volumen del cubo de lado “ << lado
<< " es " << cubo(lado) << '\n'; return 0;}
Funciones en línea
![Page 55: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/55.jpg)
55
int *p;p = new int; : : :delete p;
int q = new int(3);float f = new float(2,2); : : :delete q;
Memoria Dinámica
![Page 56: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/56.jpg)
56
1. int *p, *q;
??
??
p
q
2. p=new int;
??
p
q
?
3. *p=10;
??
p
q
10
4. q=p;
p
q
10
5. *q=85;
p
q
85
Ejemplo ilustrativo
![Page 57: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/57.jpg)
57
5. *q=85;
p
q
85
6. p new ( int);
p
q
?
85
7. *p= 9;
p
q
9
85
Ejemplo ilustrativo
![Page 58: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/58.jpg)
58
8. delete q;
p
q85 p
q
9
85
??
??
p
q ??
p
q
9
9. delete q;
Ejemplo ilustrativo
![Page 59: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/59.jpg)
59
typedef struct { int num; float saldo;} Cuenta;
Cuenta *c; c = new Cuenta;
Memoria Dinámica
![Page 60: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/60.jpg)
60
int *v;
v = new int [100]; // crea un arreglo dinámico de 100 enteros
delete [] v; // libera la memoria ocupada por v
Memoria Dinámica
![Page 61: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/61.jpg)
61
Resolución de alcance
float x = 1.23;int main() { int x = 7 cout << "x local = "<< x <<endl; cout << "x global = " << ::x << endl; return 0;}
Operador ::
![Page 62: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/62.jpg)
62
Es posible definir funciones con el mismo nombre, las cuales se pueden diferenciar en:
El tipo del valor retornado
La lista de parámetros Cantidad de parámetros
Tipo de los parámetros
Sobrecarga de funciones
![Page 63: INTRODUCCIÓN AL LENGUAJE C++. 2 En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams) Estos flujos están definidos](https://reader036.vdocuments.mx/reader036/viewer/2022062519/5665b4611a28abb57c910494/html5/thumbnails/63.jpg)
63
float cuadrado(int k) { return k*k; }float cuadrado(float x) { return x*x; }int main() { int i = 5; float x = 3.3; cout << i << " al cuadrado = " << cuadrado(i); cout << endl; cout << x << " al cuadrado = " << cuadrado(x); return 0;}
Sobrecarga de funciones