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.

Slides:



Advertisements
Presentaciones similares
Laboratorio Lenguaje de Programación ING2101
Advertisements

Unidad 15 Características de C++ no relacionadas con el DOO.
Repaso para la construcción del intérprete 2012
Fundamentos de la Programación Estructurada
Programación I Teoría III
Programación, Algoritmos y Estructuras de Datos
Direcciones, Arreglos y Argumentos de Funciones
Funciones. Programación, Algoritmos y Estructuras de Datos.
Tipos de Datos Básicos y Estructurados
FUNCIONES EN C.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Introducción al lenguaje C++
ESTRUCTURAS DE SECUENCIA
Unidad 3 Punteros.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.

Programación Orientada a Objetos usando C++
POO Java Módulo 3 Elementos de programas Identificadores
Tema 6: Clases Antonio J. Sierra.
Unidad I Java y C++ : Similitudes y diferencias
LENGUAJE “C” Programación.
Semana 5 Subprogramas..
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Nivel medio. Y Es un compilador. YContiene un conjunto de palabras.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
APUNTADORES EN C. MENU DEL DIA Repaso clase anterior Apuntadores. Eso pa que? Solución al problema: Funciones. Ventajas de trabajar un programa usando.
Archivos.
1 3Tablas o matrices 3.1. Concepto Las tablas corresponden al concepto matemático de matriz. Todos sus elementos deben ser del mismo tipo y se accede a.
Lenguaje C Ing. Sonia Alexandra Pinzón Nuñez
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Clase 10: Estructuras de datos y arreglos.
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
Unidad VI Registros (estructuras, uniones y enumeraciones)
Tipo de Datos Básicos.
© AutoresV1.1 Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C.
PROGRAMACIÓN ORIENTADA A OBJETOS USANDO C++. 2 PROYECTOS EN C++
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
INTRODUCCION. LOS LENGUAJES DE PROGRAMACIÓN Los lenguajes de programación herramientas que nos permiten crear programas y software. EL LENGUAJE DE MAQUINA.
1 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 329.
Introducción a los punteros Prof. Domingo Hernández.
Elementos básicos del lenguaje
INTRODUCCIÓN AL LENGUAJE C++. 2 Entrada y Salida  En C++ la Entrada y Salida de datos se realiza a través de operaciones de flujos (streams).  Estos.
Estructuras de Datos Introducción. Proceso (Programa ) Datos de Entrada Datos de salida El proceso computacional.
Unidad II Introducción a la programación en C++
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Programación en C para electrónicos
Elementos básicos del lenguaje
PUNTEROS Y REFERENCIAS
Funciones Definidas por el Programador
1 Definición y Conversión de datos Agustín J. González ELO-329.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
Programación Procedural y Recursiva en C++
INTRODUCCIÓN AL LENGUAJE C++
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
1 Asignación Dinámica de Memoria Agustín J. González ELO 329.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
PRINCIPIOS DE PROGRAMACIÓN
Algoritmo.
CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.
Corporación Universitaria del Caribe CECAR Fundamentos de programación II.
EL TIPO DE DATO LOGICO y constantes.
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
1 Definición y Conversión de datos Agustín J. González ELO-329.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
INTRODUCCIÓN AL LENGUAJE C++
Transcripción de la presentación:

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 en la librería iostream.h que deberá ser incluida en el programa Entrada y salida

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

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

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 teclado int numero1, numero2; cin>>numero1; cin>>numero2; Entrada: cin

6 #include 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 mayor Ejercicio

7 Tipos de Datos ELEMENTALES

8 TipoEjemploBytesRango char‘a’ short int long float *10E *10E308 double *10E *10E308 Tipos numéricos

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

10 tipo *nombre_variable; int i=3, *p,*r;// p y r son punteros a entero double d=3.3,*q;// q es un puntero a double char 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

11  cin>>*p;  if (p==r)  cout<<"El valor de i es: "<<*p;  *p=*p+3;  p=p+3; Otras operaciones con punteros

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

13 1. int *p, *q, a=5 ? ? ? ? pqpq 2. p=&a 3. *p=8; ? ? pqpq 8 4. q=p; pqpq 8 5. *q=85; pqpq 85 ? ? pqpq 5 a 5 a: a a a Ejemplo ilustrativo

14 6. a=33; pqpq int b=1; pqpq 33 1 aa b 8. q=&b; pqpq 9 1 a b NOTA a, b, p, q : variables locales automáticas Ejemplo ilustrativo

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:

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:

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:

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:

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

20 Tipos de Datos ESTRUCTURADOS

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 unidimensional int v[10]; int v[10] = {41, 23, 87, 19, -9}; int v[] = {41, 23, 87, 19, -9, 91, 103, 25, 11, 22}; v: cout << v[3]; Arreglos

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]; Arreglos

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

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

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

26  Captura de un String i=1; do { cin.getline(s,20); cout << i << ": " << s << endl; i++; } while (i<5); Strings

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

28 #include int main() { char x[5]; char y[] = "Hola"; strcpy(x,y); cout << "x:" << x << endl; cout << "y:" << y << endl; return 0; } Strings

29 #include 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

30 #include 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

31 #include 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

32 #include 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

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

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 hh << h.hh << v[7].hh Estructuras

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

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

37 OBJETOS CONSTANTES

38 const int x;// error: x debe ser inicializada x = 7;// error: x no puede ser // modificada por asignación const 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

39 FUNCIONES

40 ( ) { } Definición  Las funciones no se pueden anidar  Todas las funciones son externas, se pueden llamar desde cualquier punto del programa

41 #include 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

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) & ( ) Tipos de retorno

43 ( ); 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

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

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

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);

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 actual LLAMADADEFINICIÓN Ejemplo(a); Ejemplo(a+1); Ejemplo(4); void Ejemplo(int x)

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 LLAMADADEFINICIÓN Ejemplo(a);void Ejemplo(int &x)

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; }

50 Ejemplos int cuadXVal(int a) { return a = a*a; } void cuadXInd(int *b) { *b = (*b) * (*b); } void cuadXRef(int &c) { c = c*c; }

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; }

52 Prototipos de funciones #include 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"; }

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

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

55 int *p; p = new int; : : : delete p; int q = new int(3); float f = new float(2,2); : : : delete q; Memoria Dinámica

56 1. int *p, *q; ? ? ? ? pqpq 2. p=new int; ? ? pqpq ? 3. *p=10; ? ? pqpq q=p; pqpq *q=85; pqpq 85 Ejemplo ilustrativo

57 5. *q=85; pqpq p new ( int); pqpq ? *p= 9; pqpq 9 85 Ejemplo ilustrativo

58 8. delete q; pqpq 85 pqpq 9 ? ? ? ? pqpq ? ? pqpq 9 9. delete q; Ejemplo ilustrativo

59 typedef struct { int num; float saldo; } Cuenta; Cuenta *c; c = new Cuenta; Memoria Dinámica

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

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 ::

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

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