1 Algunas ideas básicas de C++ Agustín J. González ELO-320.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

Unidad 15 Características de C++ no relacionadas con el DOO.
Ejemplo de Programa C++
Informática II Clase 12: Flujos Diego Fernando Serna Restrepo
Orientación a Objetos con Java SE
Fundamentos de la Programación Estructurada
Programación I Teoría III
Funciones. Programación, Algoritmos y Estructuras de Datos.
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Programación Estructurada
Introducción al lenguaje C++
Algoritmos y Estructuras de Datos
ESTRUCTURAS DE SECUENCIA
Conceptos Básicos de Java
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Modificadores.
LENGUAJE “C” Programación.
FUNCIONES EN C. SOBRE FUNCIONES... Caja negra in_1 in_N out_1 In_2 Función: Nombre. (Con el cual es invocada). Entradas. (Parámetros de la función). Salida.
Unidad III Elementos del lenguaje C++
Archivos.
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
ELO3201 Vectores (Vector) Agustín J. González ELO320.
Tipo de Datos Básicos.
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.
Herramientas de polimorfismo y herencia en C++
Resumen Fundamentos de Programación/ Programación I
ELO3201 C++ Biblioteca Estándar de Templates Standar Template Library Agustín J. González ELO320.
Manejo de Punteros y objetos en memoria dinámica en C++
Elementos básicos del lenguaje
Unidad II Introducción a la programación en C++
Programación Técnica1UVM Tipos de Datos. Programación Técnica2UVM.
Programación en C para electrónicos
Elementos básicos del lenguaje
1 Algunas ideas básicas en C++ Agustín J. González ELO-329.
ELO3291 Estructuras fundamentales de la programación en Java ELO-329: Diseño y programación orientados a objetos Agustín J. González.
ELO3291 Estructuras fundamentales de la programación en Java ELO-329: Diseño y programación orientados a objetos Agustín J. González.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
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.
INTRODUCCION A LA PROGRAMACION
PRINCIPIOS DE PROGRAMACIÓN

Algoritmo.
 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.
MEMORIA DINÁMICA.
Lenguaje de Programación II PLAN DE EVALUACIÓN CONTENIDO MODALIDAD DE EVAL. PONDERACIÓN INTRODUCCIÓN BÁSICA AL LENGUAJE DE PROGRAMACIÓN.
Algunas Características de C++ no presentes en C Agustín J. González ELO-329.
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Algunas ideas básicas de C++
Nociones básicas sobre C++
Nociones básicas sobre C++
Algunas ideas básicas de C++
Algunas ideas básicas de C++
Nociones básicas sobre C++
Nociones básicas sobre C++
Algunas ideas básicas de C++
Nociones básicas sobre C++
Nociones básicas sobre C++
Algunas ideas básicas de C++
Transcripción de la presentación:

1 Algunas ideas básicas de C++ Agustín J. González ELO-320

2 Introducción Si ustedes han aprendido otro lenguaje, podrán ubicarse rápidamente Es un lenguaje Orientado a Objetos. Un objeto es una entidad que contiene: nombre, estado y comportamiento. Los programas se ven como interacción entre objetos, no como conjunto de datos y funciones separados.

3 Cambio de visión Aún cuando C++ es un superconjunto de C (i.e. lo válido en C también lo es en C++), lo más relevante es el manejo de objetos en C++. Computación en C Datos+procedimientos = programa Típico: funcion(parametros); Los datos son pasados a las acciones. Computación en C++  objetos = programa Objeto = Nombre+Estado+comportamiento Típico: objeto.metodo(parametros) Se le pide a un objeto que haga una tarea.

4 Cambio de visión Variables son a tipos en C como objetos son a clases en C++. Los objetos son instancias de alguna clase. Un programa típico define clases, y luego en el main crea objetos de esas clases y los pone a trabajar. El main sigue la estructura de procedimientos/función de C. Hay clases predefinidas en C++.

5 Cosas nuevas que se pueden hacer en C++ Podemos crear clases. Si hay clases relacionadas, podemos crear una en base a otra (herencia o relación es-un). Polimorfismo: El prototipo de una función queda definido en forma unívoca con su nombre más la lista de parámetros, luego se permite: swap(int *a, int *b); y swap(float *a, float *b); en el mismo programa. Se puede hacer ligado dinámico. Básicamente es definir la función a llamar en tiempo de ejecución. Se invoca un comportamiento, pero sobre el objeto de turno=> distinto código.

6 Cosas nuevas que se pueden hacer en C++ En C++ se puede definir el significado de los operadores cuando éstos actúan sobre nuestros objetos. Por ejemplo si Estudiante es una clase, podemos hacer; Estudiante a(“Eduardo”), b(“Ivan”); if (a > b).... Se pueden crear templates (plantillas). Éstas permiten definir modelos de funciones o clases similares. Ej: swap(int *a, int*b) y swap(float*a, float*b) Para qué hacer dos funciones?

7 Cosas nuevas que se pueden hacer en C++ Paso de parámetro por referencia: swap (int & a, int & b) {.... } Luego invoco: int x, y; swap(x,y);

8 Comentarios // Para comentarios de una línea /* */ Para comentarios de múltiples líneas No se permiten los comentarios alineados. Éstos son extraídos por el preprocesador, el cual no tiene capacidad de reconocer estas estructuras gramaticales. #if 0 código comentado #endif Hay mucho más que aprender sobre el preprocesador, ver: ocessor.pdf

9 Tipos de Variable int short in ( o short) long int (o long) unsigned int (o unsigned) unsigned long int (o unsigned long) unsigned short int (unsigned short) char float double long double bool

10 Salida de Datos #include int main (void) { cout << “Hello, world” << endl; return 0; } iostream debe ser incluido para hacer uso de las operaciones de entrada y salida. Es posible enviar datos a la salida estándar y a archivos: #include ofstream os (“output.dat”); os << “The value of pi is approx. “ << << endl;....

11 Entrada de Datos #include using namespace std; // en ocasiones no exigido, para acceder a cout int main() { int i; ifstream fin; fin.open("test"); // test contains 3 ints for (int j=0;j<3;j++) { fin >> i; cout << i << endl; } fin.close(); }

12 Lectura desde archivo #include using namespace std; int main() { string s; ifstream fin; fin.open("/etc/passwd"); while(getline(fin,s)) cout << s << endl; }

13 Asociatividad ---> < > Operadores aritméticos Precedencia en orden decreciente () [] ->. ---> ! ~ (unario) - (unario) *(referencia) & (dirección) (tipo) sizeof * / % ---> + - > >= == != & ^ | && || ? : = += -= *= /= %= &= ^= |= >>= <<=, En principio podríamos usar and en lugar de && y or en lugar de ||; sin embargo, éstos no están soportados por todos los compiladores.

14 Asignaciones, Arreglos y Vectores Todas asignación tiene un valor, aquel asignado. ANSI C++ usa el mismo constructor de arreglo que C Como los arreglo de C no son particularmente poderosos, C++ incorpora los vectores. Los vectores son una forma de plantilla (template). Las plantillas es todo un tema en C++, pero su uso es muy simple: vector a(n); crea un arreglo “astuto” de tipo X con espacio para n elementos. El acceso es a[i] Puede crecer a voluntad.

15 Vectores Pueden crecer según nuestra necesidad vector a; Inicialmente a está vacío. Para hacerlo crecer: a.push_back(0.3); a.push_back(56.2); También podemos hacer que el vector crezca en varios elementos: a.resize(10); podemos preguntar por el tamaño de un vector con a.size(); como en: for (int i=0; i < a.size(); i++) //.....

16 Strings En ANSI C++ tenemos acceso a una poderosa clase para string. Ésta tiene definido el operador copia =, el operador concatenación + y operadores relacionales ==, !=,, >=, entre otros. El operador [ ] provee acceso a elementos individuales. Existen muchos métodos en esta clase como substr para extraer un substring: String s = “Hola a todos”; int n = s.length(); // n es 12 char ch = s[0]; String t = s.substr(0,4); // Substring de s[0] a s[4]

17 Control de Flujo Se dispone de de las opciones comunes en C. if (condición) block1 // Un bloque se delimita con { } else block2 La parte else es opcional. While (condición) block do block while (condición); for(expresión; expresión2; expresión3) instrucción_a_repetir switch : análoga a C.

18 Paso por referencia En C++ tenemos un nuevo tipo de paso de argumentos, el paso por referencia. Equivale a la opción C en que usamos punteros para obtener el mismo efecto. Ejemplo: En C++ podemos hacer void swap (int & x, int & y) { int tmp = x; x=y; y=tmp; } El llamado se hace swap(a,b); Equivalentemente en C: void cswap(int * px, int * py) { int tmp = *x; *x = *y; *y=tmp; } El llamado se hace cswap(&a, &b)

19 Archivos includes Muchas estructuras de datos requieren que uno defina un archivo de inclusión antes que podamos usarlas. PropósitoNombre stream input/outputiostream funciones matemáticasmath.h números complejoscomplex valores booleanosbool.h algoritmos genéricosalgorithm Abstracción vectorvector Abstracción listalist Abstracción conjuntoset Abstracción mapamap