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

Slides:



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

DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Ejemplo de Programa C++
Informática II Clase 12: Flujos Diego Fernando Serna Restrepo
Fundamentos de la Programación Estructurada
Desarrollo de Aplicaciones para Internet
Tema 2: Lenguaje PHP básico
Sintaxis básica del lenguaje
FUNCIONES EN C.
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Programación Estructurada
ESTRUCTURAS DE SECUENCIA
Conceptos Básicos de Java
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.
POO Java Módulo 3 Elementos de programas Identificadores
Unidad I Java y C++ : Similitudes y diferencias
Características de “C”
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.
El lenguaje de programación Java
Numeric Types, Expressions, and Output
APUNTADORES EN C. MENU DEL DIA Repaso clase anterior Apuntadores. Eso pa que? Solución al problema: Funciones. Ventajas de trabajar un programa usando.
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.
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++
Técnicas Computacionales en Física
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Elementos básicos del lenguaje
1 Algunas ideas básicas de C++ Agustín J. González ELO-320.
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Alto Nivel. Y Es un compilador. YContiene un conjunto de palabras.
1 Definición y Conversión de datos Agustín J. González ELO-329.
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.
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.
PRINCIPIOS DE PROGRAMACIÓN

Algoritmo.
MEMORIA DINÁMICA.
Elementos básicos.  Fuertemente tipeado.  Sintaxis similar a C/C++.  Sin punteros: garbage collection.  Portable.  Integra librerías para objetos.
1 Definición y Conversión de datos Agustín J. González ELO-329.
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-329

Archivos de encabezado Son necesarios para hacer uso de constantes predefinidas. Son incluidos con la directiva del pre-procesador #include Ejemplo: #include #include #include “setup.h” la búsqueda se hace en lugares “estándares” En Visual C++ \ MSDEV \ INCLUDE Los directorios estándares varían en cada instalación. Para ver cuáles son en tu sistema, puedes usar: $ touch a.c $ gcc -v -E a.c Mostrará los directorios a buscar para archivos #include e #include “...”

3 Comentarios // Para comentarios de una línea /* Para comentarios de múltiples líneas */ No se permiten los comentarios anidados. É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, página del ramo o directamente ver: pdf

4 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

5 Acceso de Variable Las variables en C++ como en C, representan a los valores en sí y no referencias a éstos. En Java esto es así sólo para los tipos simples escalares como int, float, y char. La diferencia se produce en el manejo de objetos. Objetos en Java son referencias a éstos y todos se encuentran en el heap. Mientras que en C++ los nombres de los objetos siempre se refieren al objeto. Ej: en C++ Empleado juan, pedro; // al momento de crear la variable ya se crea el objeto invocando el constructor. juan=pedro; // hace que juan tome todos los atributos de pedro. Un cambio posterior a juan no afecta a pedro. Gran diferencia con semántica en Java.

6 Salida de Datos #include using namespace std; 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;....

7 Entrada de Datos #include using namespace std; 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(); }

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

9 Operadores aritméticos Asociatividad, 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 en todos los compiladores.

10 Asignaciones, Arreglos y Vectores Todas asignación tiene un valor, aquel asignado. Ej: a=b=c; ANSI C++ usa el mismo constructor de arreglo que C Como los arreglos de C no son particularmente poderosos, C++ incorpora vectores (no corresponde al concepto de vector geométrico). Los vectores son una forma de plantilla (template). Su creación la veremos más adelante, pero su uso es muy simple: vector a(n); // Ojo no usamos new como en Java... crea un arreglo “crecedor” de elementos de tipo X con espacio para n elementos. El acceso es a[i]

11 Vectores Pueden crecer según nuestra necesidad vector a; //variable automática (en stack) En este caso 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++) //..... ¿Documentación? Ver

12 Strings En ANSI C++ tenemos acceso a una clase poderosa 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] Ver

13 Control de Flujo Se dispone 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.

14 Paso por referencia En C++ tenemos un nuevo tipo de paso de argumentos, el paso por referencia. El efecto es equivalente a la opción C en que usamos punteros. La sintaxis cambia. En C se puede hacer: void swap_en_C(int * px, int * py){ int tmp = *x; *x = *y; *y=tmp; } El llamado es swap_en_C(&a, &b) Ahora en C++, además de lo anterior, podemos hacerlo más simple: void swap_en_Cplusplus (int & x, int & y){ int tmp = x; x=y; y=tmp; } El llamado es swap_en_Cplusplus(a,b);