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.

Slides:



Advertisements
Presentaciones similares
Laboratorio Lenguaje de Programación ING2101
Advertisements

Unidad 15 Características de C++ no relacionadas con el DOO.
Listas enlazadas c++ Prof. Franklin Cedeño.
Repaso para la construcción del intérprete 2012
Fundamentos de la Programación Estructurada
Programación, Algoritmos y Estructuras de Datos
Direcciones, Arreglos y Argumentos de Funciones
Tipos de Datos Básicos y Estructurados
FUNCIONES EN C.
Tema 1. Introducción a la programación (Lenguaje java).
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
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.
Funciones en lenguaje C

Programación Orientada a Objetos usando C++
Tema 6: Clases Antonio J. Sierra.
Tema 3 Entrada y Salida.
LENGUAJE “C” Programación.
Semana 5 Subprogramas..
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.
Informática Ingeniería en Electrónica y Automática Industrial
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
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.
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.
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
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.
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial
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.
FUNDAMENTOS DE PROGRAMACIÓN
INTRODUCCIÓN AL LENGUAJE C++
Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Términos algoritmo diseñar algoritmo implementar algoritmo
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 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
LENGUAJE “C” Programación.
Algoritmo.
CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.
int cantidad, horas, cuota; float precio, peso; cantidad = 5; // Le asigno un número a la variable Cantidad; horas = // Le asigno 30 a la variable.
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.
Paso de Parámetros a una Función Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de.
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 (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
INTRODUCCIÓN AL LENGUAJE C++
Transcripción de la presentación:

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 flujos están definidos en la librería iostream.h que deberá ser incluída en el programa.

3 Salida: cout  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;

4 Salida: Formato  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) Cantidad de 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)

5 Entrada: cin  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;

6 #include void 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 \n "; else if (miEdad > suEdad) cout << "Mi amigo es menor que yo \n "; else cout << "Mi amigo y yo tenemos la misma edad \n "; } Ejercicio: Ingresar 2 edades y determinar quién es mayor

7 Tipos de Datos ELEMENTALES

8 Tipos de Datos: Numéricos TipoEjemploBytesRango char‘a’ short int long float *10E *10E308 double *10E *10E308

9 Punteros  Una variable que puede almacenar una dirección de memoria se llama puntero.  Una variable de tipo puntero puede guardar direcciones de variables de un tipo determinado: punteros a int, double, char, etc.

10 Declaración de punteros 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.

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

12 Mostrar una dirección  Es posible mostrar el una dirección como valor de una variable de tipo puntero, o la dirección de cualquier variable, en la pantalla utilizando un cout. cout << “p = “ << p << endl; cout << “&n = “ << &n << endl; cout << “&p= “ << &p << endl;

13 Ejemplo Ilustrativo 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

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

15 Ejemplo 1: void 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; }

16 void main() { int *p, *q, x, y; p = &x; *p = 14; q = p; cout << *p << " " << *q << endl; q = NULL; cout << x << " “ << y << endl; } Ejemplo 2:

17 void 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; } Ejemplo 3:

18 void 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"; } Ejemplo 4:

19 Tipos enumerados  enum Frutas {Manzana, Pera, Guinda, Kiwi,};  enum Color {Rojo=10, Verde, Azul}; void main() {Color c=Verde; if (c==Verde) cout<<"Color VERDE"; }  enum Raza {Pastor, Cooker, Poodle, Setter, Collie};

20 Tipos de Datos ESTRUCTURADOS

21 Tipos de Datos: Arreglos  Permite definir variables estructuradas homogéneas.  Vectores o Arreglos Unidimensionales int v[10]; v: cout<<v[3]; int v[10]={41,23,87,19,-9}; int v[]={41,23,87,19,-9,91,103,25,11,22};

22 Tipos de Datos: Matrices  Matrices o Arreglos Bidimensionales 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];

23 Tipos de Datos: Strings  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[5] String s;

24 Tipos de Datos: Strings  La lectura de un String cin>>s; Lee del flujo de entrada un string. Deja para la siguiente lectura el '\n' No reconoce el espacio inicial en las entradas i=1; do { cin>>s; cout<<i<<": "<<s<<endl; i++; } while (i<5); Ingresar: Este es un ejemplo

25 Tipos de Datos: Strings  La lectura de un String cin.getline(s, largo); 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 extraído la cantidad largo de caracteres, aunque NO haya terminado la línea.

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

27 Tipos de Datos: Strings  Funciones de strings  strlen(string);  strcpy(destino,origen);  strcmp(string1, string2); 0: Si string1 ==string2 1: Si string1 > string2 -1: Si string1 < string2

28 Tipos de Datos: Strings #include void main() {char x[5]; char y[]="Hola"; strcpy(x,y); cout<<"x:"<<x<<endl; cout<<"y:"<<y<<endl;

29 Tipos de Datos: Strings #include void main() {char *x; char y[]="Hola"; x=new char[strlen(y)+1]; cin.getline(x,20); cout<<"x:"<<x<<endl; cout<<"y:"<<y<<endl; }

30 Tipos de Datos: Strings #include void Copiar(char a[], char b[]) {strcpy(a,b);} void main() {char *x; char y[]="Hola"; x=new char[strlen(y)+1]; Copiar(x,y); cout<<"x:"<<x<<endl; cout<<"y:"<<y<<endl;

31 Tipos de Datos: Strings #include void Copiar(char *a, char *b) {strcpy(a,b);} void main() {char *x; char y[]="Hola"; x=new char[strlen(y)+1]; Copiar(x,y); cout<<"x:"<<x<<endl; cout<<"y:"<<y<<endl;

32 Tipos de Datos: Strings #include char *Mayor(char a[], char *b) {if (strcmp(a,b)>0) return a; return b; } void main() {char *x; char y[]="Hola"; x=new char[strlen(y)+1]; cin.getline(x,20); cout<<"El mayor: "<<Mayor(x,y); }

33 Tipos de Datos: Estructuras  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:

34 Tipos de Datos: Estructuras 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).hh; cout hh << h.hh<<v[7].hh

35 Nuevos Tipos de Datos 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]; };

36 Nuevos Tipos de Datos Vector v; // int v[10]; Boolean sw = FALSE; Persona alumno; Numero x; typedef union Numero { int i; float f; };

37 OBJETOS CONSTANTES

38 Objetos Constantes  Se definen mediante el prefijo const.  Estos objetos NO puede ser modificada por asignación.  Sólo se permite su inicialización. 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';

39 FUNCIONES

40 Tipo de retorno Nombre ( Parámetros ) { declaraciones locales Instrucciones } Definición  Las funciones no se pueden anidar.  Todas las funciones son externas, se pueden llamar desde cualquier punto del programa.

41 Prototipo de funciones #include void f1(); void f2(void); void main() { f1(); f2(); } void f1() {cout << "Función sin argumentos \n"; } void f2(void) {cout << "Función también sin argumentos \n"; }

42  Si la función no devuelve un valor int, se debe especificar el tipo de dato devuelto: char, double, float  También puede retornar un UN PUNTERO.  Puede no retornar valores (void).  Puede retornar una referencia: (ALIAS) Tipos de retorno & Nombre(parámetros)

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 las definimos antes de usarlas.

44 Variables locales y globales  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.

45 Parámetros Parámetros Formales Son los que se escriben al definir y/o declarar la función. Parámetros Actuales Son los que se escriben al llamar la función. Argumentos. Los parámeros actuales se usan para dar valor inicial a los parámetros formales o para recibir valores desde las rutinas.

46 Parámetros actuales Los parámetros actuales pueden ser: Valores Variables Expresiones. Ejemplo: total = CalcArea(20, 4); L = 30; A=12; total = CalcArea(L,A+2);

47 Formas de Parametrización Parámetros por Valor Al llamar a la función se copia valor del parámetro actual en el parámetro formal. El parámetro formal se inicializa con el valor de parámetro actual. La función trabaja con una copia, por lo tanto: No modifica el valor de la variable o parámetro actual. LLAMADADEFINICIÓN Ejemplo(a); Ejemplo(a+1); Ejemplo(4); void Ejemplo(int x)

48 Parámetros por Referencia lSe pasa la dirección del parámetro actual al parámetro formal lEl parámetro actual es ALIAS del parámetro formal lLa función puede cambiar su valor. LLAMADADEFINICIÓN Ejemplo(a);void Ejemplo(int&x) Formas de Parametrización

49 Ejemplo: Por referencia void Ejemplo(int a, int &b); void main( ) {int x = 2, y = 4; Ejemplo(x, y); cout<<x<< “ “ <<y<<endl; } void Ejemplo (int a, int &b) { a = 5; b = 8; }

50 Ejemplo:  Escriba una función que calcule el cuadrado y el cubo de un número entero.  Éstos resultados se DEBEN retornar como parámetros.

51 Ejemplos: Prototipos #include int cuadPorVal(int); void cuadPorInd(int *); void cuadPorRef(int &);

52 Ejemplos void main() { int x = 2, y = 3, z = 4; cout << "Por valor : x = " << cuadPorVal(x) << '\n'; cuadPorInd(&y); cout << "Por indirección : y = " << y << '\n'; cuadPorRef(z); cout << "Por referencia : z = " << z << '\n'; }

53 Ejemplos int cuadPorVal(int a) {return a = a*a; } void cuadPorInd(int *b) {*b = (*b) * (*b); } void cuadPorRef(int &c) {c = c*c; }

54 Prototipos de funciones #include void f1(); void f2(void); main() {f1(); f2(); return 0; } void f1() { cout << "Función sin argumentos \n"; } void f2(void) { cout << "Función también sin argumentos \n"; }

55 Funciones en línea  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.

56 Funciones inline inline float cubo(float x) { return x*x*x; } void 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'; }

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

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

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

60 Ejemplo Ilustrativo 8. delete q; pqpq 85 pqpq 9 ? ? ? ? pqpq ? ? pqpq 9 9. delete q;

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

62 Memoria Dinámica int *v; v = new int [100]; // crea un arreglo dinámico de 100 int delete [] v; // libera la memoria dinámica ocupada por v

63 Resolución de alcance float x = 1.23; void main() {int x = 7 cout << "x local = "<< x <<endl; cout << "x global = " << ::x << endl; } Operador ::

64 Sobrecarga de funciones Funciones con igual nombre pero se diferencian, a lo menos, en uno de los siguientes puntos:  El tipo de dato de la función  La lista de parámetros Cantidad de parámetros Tipo de datos de los parámetros

65 float cuadrado(int k) { return k*k; } float cuadrado(float x) { return x*x; } void main() {cout << "El cuadrado del entero 7 es " << cuadrado(7); cout << "El cuadrado del real 1.2 es " << cuadrado(1.2); } Sobrecarga de funciones