Lenguaje C++. Scope (alcance)Scope (alcance) –Fichero: declaraciones que no pertenecen a función o clase alguna –Función: etiquetas –Local: cualquier.

Slides:



Advertisements
Presentaciones similares
Laboratorio Lenguaje de Programación ING2101
Advertisements

Curso de java básico (scjp)
Definición de Clases y Variables de referencia.
Fundamentos de la Programación Estructurada
Programación I Teoría III
Funciones. Programación, Algoritmos y Estructuras de Datos.
Tipos de Datos Básicos y Estructurados
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
FUNCIONES EN C.
Tema 1. Introducción a la programación (Lenguaje java).
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Algoritmos y Estructuras de Datos
Unidad 3 Punteros.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
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.
Funciones en lenguaje C
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Modificadores.
POO Java Módulo 3 Elementos de programas Identificadores
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Lenguaje C++ Ana Lilia Laureano-Cruces
Tema 9 Estructuras.
Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.
SCJP Sun Certified Programmer for Java 6
Semana 5 Subprogramas..
UNIDAD V Arreglos y Cadenas
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
Sintaxis de C# (Declaraciones y Tipos)
Capítulo 2 – Estructuras de Control
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
Herramientas de polimorfismo y herencia en C++
Introducción a los punteros Prof. Domingo Hernández.
Lenguaje C++ GRANADOS PAREDES GIBRÁN Lenguajes de Programación Dra. Ana Lilia Laureano Cruces.
Tipos de Datos. Entrada-Salida.. La entrada-salida (I/O) le permite a un programa comunicarse con el mundo exterior. Esta comunicación puede realizarse.
Resumen Fundamentos de Programación/ Programación I
Dinamismo y Contenedores Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires (C++ Avanzado) Depto. de Computación Algoritmos y Estructuras.
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
1 Definición y Conversión de datos Agustín J. González ELO-329.
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
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.
SCITMina | by Microsoft Bienvenidos Eduardo Daniel Tenorio Mayo Microsoft Student Partner Taller de Programación Orientada a Objetos Con C# Edgar Edel.
PRINCIPIOS DE PROGRAMACIÓN

El lenguaje C++ Isidro González Caballero (Universidad de Oviedo) Técnicas de Comp. en Física Santander, 13/12/
6. Clases y Métodos..  6.1 Structs  6.2 Funciones  6.3 Namespaces  6.4 Clases.
Fundamentos de Programación
CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.
Conceptos y Lenguaje Imperativo
MEMORIA DINÁMICA.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
1 Definición y Conversión de datos Agustín J. González ELO-329.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS PROF. M.I. JAIME ALFONSO REYES.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
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.
Transcripción de la presentación:

Lenguaje C++

Scope (alcance)Scope (alcance) –Fichero: declaraciones que no pertenecen a función o clase alguna –Función: etiquetas –Local: cualquier nombre declarado en un bloque pertenece al bloque. –Clase: declaraciones asociadas a una clase Cada variable tiene un “scope” o un contextoCada variable tiene un “scope” o un contexto

Lenguaje C++ Operadores y sentenciasOperadores y sentencias –Sentencias Misma sintaxis y semántica que las de CMisma sintaxis y semántica que las de C –Operadores idem sentencias excepto: new, delete, delete[], ::new, delete, delete[], :: > > SobrecargaSobrecarga

Lenguaje C++ Elementos del programa COMENTARIOSCOMENTARIOS // Comentario de una sola línea// Comentario de una sola línea /* Comentario multilínea *//* Comentario multilínea */ BLOQUES DE CÓDIGOBLOQUES DE CÓDIGO { Todos los bloques de código van entre corchetes }{ Todos los bloques de código van entre corchetes } FIN DE LINEAFIN DE LINEA Todas las instrucciones terminan con un punto y comaTodas las instrucciones terminan con un punto y coma

Lenguaje C++ Tipo básico de datos Tipo de dato bool tiene dos valores asociados true o falseTipo de dato bool tiene dos valores asociados true o false DECLARACIÓN DE UNA VARIABLEDECLARACIÓN DE UNA VARIABLE Nombre_variable; Nombre_variable; INICIALIZACION DE UNA VARIABLEINICIALIZACION DE UNA VARIABLE Nombre_variable = [valor]; Nombre_variable = [valor]; EJEMPLO:EJEMPLO: int variable1;int variable1; bool variable2=true;bool variable2=true;

Lenguaje C++ Arreglos Un arreglo es un conjunto de tipos de datos básicosUn arreglo es un conjunto de tipos de datos básicos DECLARACIÓN DE UN ARREGLODECLARACIÓN DE UN ARREGLO Nombre_variable[Número de elementos]; Nombre_variable[Número de elementos]; INICIALIZACION DE UN ARREGLOINICIALIZACION DE UN ARREGLO Nombre_variable = {valor1, valor2, …, valorN}]; Nombre_variable = {valor1, valor2, …, valorN}]; EJEMPLO:EJEMPLO: char arreglo1[10];char arreglo1[10]; float arreglo2={1.5, 2.3, 6,7};float arreglo2={1.5, 2.3, 6,7};

Lenguaje C++ Arreglos Multidimencionales DECLARACIÓN DE UN ARREGLO MULTIDIMENCIONALDECLARACIÓN DE UN ARREGLO MULTIDIMENCIONAL Nombre_variable[Número de elementos][Numero de elementos]; Nombre_variable[Número de elementos][Numero de elementos]; INICIALIZACION DE UN ARREGLO MULTIDIMENCIONALINICIALIZACION DE UN ARREGLO MULTIDIMENCIONAL Nombre_variable = { {valor1, valor2, …, valorN}, {valor1, valor2, …, valorN} }; Nombre_variable = { {valor1, valor2, …, valorN}, {valor1, valor2, …, valorN} }; EJEMPLO:EJEMPLO: char arreglo1[10][10];char arreglo1[10][10]; int arreglo2[]={{1,2,3},{4,5,6}{7,8,9}};int arreglo2[]={{1,2,3},{4,5,6}{7,8,9}};

Lenguaje C++ Apuntadores y vectores Punteros y vectores.Punteros y vectores. char v[10]; //vector de 10 caracteres (0 a 9) char *p; // puntero a un carácter p = &v[3]; //p apunta al cuarto elemento de v punteros - operaciones asociadaspunteros - operaciones asociadas –int *p; //puntero a entero –int **p; //puntero a puntero a entero –int (*vp) [10]; //puntero a vector de 10 enteros –int (*fp) ( char, char *);// puntero a función

Lenguaje C++ Tipos definidos por el usuario ESTRUCTURAS (Registros)ESTRUCTURAS (Registros) struct date_s { int day, month, year; int day, month, year; } aDate; } aDate; La definición de arriba de aDate es también la declaración de una estructura llamada date_s. Podemos definir otras variables de este tipo referenciando la estructura por el nombre: struct date_s anotherDate; EnumeracionesEnumeraciones ClasesClases

Lenguaje C++ Funciones Regulares (similares a una función C).Regulares (similares a una función C). Miembros (asociadas a una clase).Miembros (asociadas a una clase). Nombre, lista de argumentos, tipo de retorno y cuerpo.Nombre, lista de argumentos, tipo de retorno y cuerpo. int miFuncion(int a); //firma o declaraciónint miFuncion(int a); //firma o declaración int miFuncion(int a){ //definiciónint miFuncion(int a){ //definición cout<<a; cout<<a; }

Lenguaje C++ Funciones extern int pow( float, int); int main() { for (int i = 0; i < 10; i++) for (int i = 0; i < 10; i++) cout << pow( 2, 5) << endl; }

Lenguaje C++ Funciones Paso de argumentosPaso de argumentos –Por valor - seguridad copiado en el almacenamiento local de la funcióncopiado en el almacenamiento local de la función la función accede a la copiala función accede a la copia –Por referencia - velocidad - retornos múltiples se copia la dirección del objeto que se esta pasandose copia la dirección del objeto que se esta pasando la función accede al objetola función accede al objeto –Por referencia constante - seguridad + velocidad Vectores: paso por referenciaVectores: paso por referencia

Lenguaje C++ Funciones Paso de argumentosPaso de argumentos –Por valor char a = ‘a’; miFuncion(a); –Por referencia char a = ‘a’; miFuncion(&a); Vectores: paso por referenciaVectores: paso por referencia char a[] = {‘a’,’b’} miFuncion(a);

Lenguaje C++ Funciones Sobrecarga de nombres.Sobrecarga de nombres. –int max(int, int); –int max( int, int, int); –int max(int *, int); –int max(float, int); –int max(int, float);

Lenguaje C++ Soporte para abstracción de datos Definición de un conjunto de operaciones asociadas a un tipo.Definición de un conjunto de operaciones asociadas a un tipo. Restricción del conjunto de operaciones que se pueden realizar sobre un tipo a las definidas para el mismo.Restricción del conjunto de operaciones que se pueden realizar sobre un tipo a las definidas para el mismo. CLASECLASE –nombre –datos miembros –funciones miembro –control de acceso

Lenguaje C++ Soporte para abstracción de datos Inicialización y destrucción.Inicialización y destrucción. Inicialización y asignación.Inicialización y asignación. Patrones.Patrones. Conversiones de tipoConversiones de tipo complex a = complex(1); Múltiples implementacionesMúltiples implementaciones

Lenguaje C++ Soporte para orientacion a objetos Funciones virtuales. Polimorfismo.Funciones virtuales. Polimorfismo. Clases abstractas.Clases abstractas. Clases patrón.Clases patrón. Herencia simple y múltiple.Herencia simple y múltiple. Encapsulado.Encapsulado.

Lenguaje C++ Lenguaje C++ Los objetos se crean al llegar a su definición.Los objetos se crean al llegar a su definición. Los objetos se destruyen cuando salen del bloque.Los objetos se destruyen cuando salen del bloque. Los objetos globales se crean una sola vez y se destruyen al terminar el programa.Los objetos globales se crean una sola vez y se destruyen al terminar el programa. Los objetos static son similares a los globales.Los objetos static son similares a los globales.

Lenguaje C++ Almacenamiento de objetosAlmacenamiento de objetos –estático (asignada al iniciarse el programa) –automático (asociada al bloque) –en la memoria disponible (obtenida con new)

Lenguaje C++ Clases. Tipo abstracto de datos definido por el usuario Interface e implementación class X { private: int i; public:f();protected:g();}; struct X { private: int i; public:f();protected:g();};

Lenguaje C++ clases ConstructoresConstructores –Funciones con el mismo nombre de la clase pero que no retornan nada. –Constructor de copia –Constructor por defecto –Constructores como conversores de tipo DestructoresDestructores –virtuales

Lenguaje C++ clases CONSTRUCTORESCONSTRUCTORES class Point {class Point { –int _x, _y; –public: Point() { _x = _y = 0; } –void setX(const int val); –void setY(const int val); –int getX() { return _x; } –int getY() { return _y; } };};

Lenguaje C++ clases DESTRUCTORESDESTRUCTORES class Point {class Point { –int _x, _y; –public: –Point() { _x = _y = 0; } –Point(const int x, const int y) { _x = x; _y = y; } –~Point() { /* ¡Nada qué hacer! */ } –void setX(const int val); –void setY(const int val); –int getX() { return _x; } –int getY() { return _y; } };};

Lenguaje C++ clases FriendFriend Nosotros podemos definir que funciones o clases sean amigos de una clase para permitirles acceso directo a sus miembros de datos privados. Por ejemplo, que la función para el operador + tuviese acceso a los miembros de datos privados _real e _imag de la clase Complex. Con ese fin declaramos que el operador + sea amigo de la clase Complex:Nosotros podemos definir que funciones o clases sean amigos de una clase para permitirles acceso directo a sus miembros de datos privados. Por ejemplo, que la función para el operador + tuviese acceso a los miembros de datos privados _real e _imag de la clase Complex. Con ese fin declaramos que el operador + sea amigo de la clase Complex: class Complex {class Complex {... public: public:... friend Complex operator +( const Complex &, const Complex & );friend Complex operator +( const Complex &, const Complex & ); };}; Complex operator +(const Complex &op1, const Complex &op2) {Complex operator +(const Complex &op1, const Complex &op2) { double real = op1._real + op2._real, imag = op1._imag + op2._imag; return(Complex(real, imag));double real = op1._real + op2._real, imag = op1._imag + op2._imag; return(Complex(real, imag)); } }

Lenguaje C++ clases Construcción de objetosConstrucción de objetos –automáticos variables locales: se ejecuta su constructor cada vez que el programa pasa por la declaraciónvariables locales: se ejecuta su constructor cada vez que el programa pasa por la declaración –secuencia de construcción - destrucción inicialización y asignacióninicialización y asignación –en memoria disponible new, deletenew, delete –int* ip = new int(7); –delete ip; –int* iap = new int[10]; –delete [] iap;

Lenguaje C++ clases y herencia class Point3D : public Point {class Point3D : public Point { int _z; int _z; public:public: – Point3D() { setX(0); setY(0); _z = 0; } –Point3D(const int x, const int y, const int z) { setX(x); setY(y); _z = z; } –~Point3D() { /* Nada que hacer */ } –int getZ() { return _z; } – void setZ(const int val) { _z = val; } }; };

Lenguaje C++ clases y herencia múltiple class DrawableString : public Point, public DrawableObject {class DrawableString : public Point, public DrawableObject {... public:... public: –DrawableString(...){... } –~DrawableString() {... }... };};

Guía de referencia rápida de lenguaje C Operaciones de entrada/salidaOperaciones de entrada/salida Entrada (leer valores por vía teclado)Entrada (leer valores por vía teclado) scanf(“%cf_tipo1%cf_tipo2…”, &var_tipo1, &var_tipo2,…); Salida Mostrar en pantalla una cadena con formato y/o una lista de variablesSalida Mostrar en pantalla una cadena con formato y/o una lista de variables printf(“texto %cf_tipo1 %cf_tipo2…”,var_tipo1, var_tipo2,…); *cf = código de formato

Guía de referencia rápida de lenguaje C Estructuras de controlEstructuras de control Un algoritmo simple presenta flujo secuencial, sin embargo, no todos los algoritmos son así ya que es necesario realizar procedimientos más complejos que involucren ya sea elegir una o varias alternativas o realizar el mismo procedimiento varias vecesUn algoritmo simple presenta flujo secuencial, sin embargo, no todos los algoritmos son así ya que es necesario realizar procedimientos más complejos que involucren ya sea elegir una o varias alternativas o realizar el mismo procedimiento varias veces El control de flujo de un lenguaje especifica el orden en el que se ejecuta cada sentencia o instrucciónEl control de flujo de un lenguaje especifica el orden en el que se ejecuta cada sentencia o instrucción Tenemos entonces tres tipos principales de estructuras de control: Estructura secuencial, estructuras de decisiónes o selecciones y los ciclos o estructuras de repeticiónTenemos entonces tres tipos principales de estructuras de control: Estructura secuencial, estructuras de decisiónes o selecciones y los ciclos o estructuras de repetición

Guía de referencia rápida de lenguaje C Estructuras de controlEstructuras de control Estructura secuencialEstructura secuencial

Guía de referencia rápida de lenguaje C Estructuras de controlEstructuras de control DecisiónSimpleDobleAnidadaMúltiple Expresión condicional

Guía de referencia rápida de lenguaje C Decisiones simplesDecisiones simples

Guía de referencia rápida de lenguaje C Decisiones doblesDecisiones dobles

Guía de referencia rápida de lenguaje C if (condición1) { /*bloque1*/} else if(condición2) { /*bloque2*/} else if(condición3) {…} else if(condiciónN) {/*bloqueN*/}else{/*bloqueN+1*/} Decisiones anidadas

Guía de referencia rápida de lenguaje C DecisiónDecisiónmúltiple

Guía de referencia rápida de lenguaje C Expresión condicionalExpresión condicional Se usa para simplificar una decisión doble que afecta a una única variable.Se usa para simplificar una decisión doble que afecta a una única variable. var = condición ? expresión1: expresión2; Por ejemplo: Se puede abreviar como if(condición) a = 5.7; else a = sqrt(10.0); a = condición ? 5.7 : sqrt(10.0);

Guía de referencia rápida de lenguaje C Estructuras de controlEstructuras de control Estructuras de repetición (ciclos, loops, lazos o bucles)Estructuras de repetición (ciclos, loops, lazos o bucles) Ciclossimpleswhiledo-whileforanidados

Guía de referencia rápida de lenguaje C Estructuras de control Ciclo while

Guía de referencia rápida de lenguaje C Estructuras de control Ciclo do-while

Guía de referencia rápida de lenguaje C Estructuras de control

Guía de referencia rápida de lenguaje C ArreglosArreglos Un arreglo es un conjunto ordenado de variables del mismo tipo que se encuentran reunidas bajo un mismo nombreUn arreglo es un conjunto ordenado de variables del mismo tipo que se encuentran reunidas bajo un mismo nombre La forma de declarar un arreglo en C esLa forma de declarar un arreglo en C es tipo nombredelarreglo[tamaño]; La forma de acceder a cada elemento del arreglo es por medio de un índice, p. ej.La forma de acceder a cada elemento del arreglo es por medio de un índice, p. ej. arrentero[4] = 18;

Cadenas en C En C las cadenas no se definen en forma explícita, se definen como arreglos de caracteres:En C las cadenas no se definen en forma explícita, se definen como arreglos de caracteres: char nombre_cadena[tamaño]char nombre_cadena[tamaño] char cadena[7];char cadena[7]; scanf(“%s”,cadena); /*suponiendo que se tecleo hola*/scanf(“%s”,cadena); /*suponiendo que se tecleo hola*/ ‘h’‘h’‘o’‘o’‘l’‘l’‘a’‘a’‘\0’

Cadenas en C Se considera que toda cadena lleva al final de ella un “fin de cadena” o “terminador nulo”, el cuál permite delimitar a la cadena.Se considera que toda cadena lleva al final de ella un “fin de cadena” o “terminador nulo”, el cuál permite delimitar a la cadena. Se debe considerar el fin de cadena cuando se trabaje con ellas, así al definir el tamaño de la cadena siempre se debe de tener en cuenta su terminador nulo y reservar siempre un espacio adicional para el tamaño que se quiera asignar a la cadena.Se debe considerar el fin de cadena cuando se trabaje con ellas, así al definir el tamaño de la cadena siempre se debe de tener en cuenta su terminador nulo y reservar siempre un espacio adicional para el tamaño que se quiera asignar a la cadena.

Funciones que manipulan cadenas NombreDescripción getsLee cadenas con espacios en blanco putsMuestra una cadena en pantalla strcpyCopia el contenido de una cadena en otra strcatConcatena 2 cadenas strcmpCompara 2 cadenas strlenLongitud de una cadena Están definidas en la biblioteca string.h

Apuntadores en C