SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
UNIVERSIDADE DA CORUÑA




            El lenguaje de programación C++




                    Fernando Bellas Permuy
Departamento de Tecnologías de la Información y las Comunicaciones (TIC)
                       Universidad de A Coruña
                     http://www.tic.udc.es/~fbellas
                            fbellas@udc.es
Introducción
• C++ extiende el lenguaje de programación C con conceptos de
  Orientación a Objetos.

• Es un lenguaje compilado.

• Índice:
  • Revisión del lenguaje C.

  • Mejoras (no OO) introducidas por C++.

  • Clases.

  • La herramienta “make” en Unix.

  • Herencia.

  • Sobrecarga de operadores.

  • Plantillas (templates).

  • Excepciones.

  • La librería estándar de C++.

  • Bibliografía.




                                                                1
Nociones básicas de C (1)
• Tipos de datos básicos.
          Tipo         Indentificador        Ejemplo de valores    Modificadores

Caracteres            char              'a', '9', '#', 10         unsigned
Enteros               int               23, -34, 0                long, short,
                                                                  unsigned
Reales                float             3, 3.0, 3e10
Reales (doble pre-    double            3, 3.0, 3e600             long
cisión)
“Booleans”            int               0 (false), != 0 (true)



• Operadores aritméticos: =, +, -, %, /, ++, --, y variantes de =

• Variables: locales, globales.

             #include <stdio.h>

             float e; /* Variable global */

             int main ()
             {
                 float v, t; /* Variables locales */

                 v = 30; /* Velocidad */
                 t = 5; /* Tiempo */

                 e = v * t;
                 printf("Velocidad: %fnTiempo: %fn", v, t);
                 printf("Espacio recorrido: %fn", e);

                 return 0;
             }




                                                                                   2
Nociones básicas de C (y 2)
• Operadores ++, --, y variantes de =

            i = 4;                        i = 4;
            j = 2 * (i++);                j = 2 * (++i);
            /* i = 5, j = 8 */            /* i=5, j = 10 */

                        i = 4;
                        i %= 3; /* i = i % 3; */
                        i += 4; /* i = i + 4; */
                        /* i = 5 */



• Entrada salida con printf/scanf y similares.

 #include <stdio.h>

 int main ()
 {
     float v, t, e;

     printf("Velocidad: ");
     scanf("%f", &v);
     printf("Tiempo: ");
     scanf("%f", &t);
     e = v * t;

     printf("Velocidad: %5.2f; Tiempo: %5.2f; Espacio: %5.2fn",v,t,e);

     return 0;
 }



  • Caracteres de control en printf, scanf: d, o, x, c, s, f, e, p.

• En C++ hay una alternativa mejor: los streams de entrada/sal-
  ida.




                                                                          3
Control de flujo (1)
• Operadores relacionales: >, >=, <, <=, ==, !=
• Operadores lógicos: &&, ||, !
• if.. else..
                       if (condición) {
                           << sentencias >>
                       } else {
                           << sentencias >>
                       }

• switch-case-default
               switch (exp) {
                   case A:
                       << instrucciones >>
                       break;
                   case B:
                       << instrucciones >>
                       break;
                   ...
                   default:
                       << instrucciones por defecto >>
               }




            switch (letra) {
                case 'a':
                case 'e':
                case 'i':
                case 'o':
                case 'u': printf("Es una vocaln");
                          break;
                case 'ñ': printf("Nuestra querida ñn");
                          break;
                default: printf("Cualquier otro caracter");
            }




                                                              4
Control de flujo (y 2)
• Bucle while

                      while (condición) {
                         << instrucciones >>
                      }


• Bucle do.. while

                      do {
                         << instrucciones >>
                      } while (condición)

• Bucle for
                     for (inic; cond; incr) {
                        << instrucciones >>
                     }



                     for (i=1; i<=10; i++) {
                         printf(“%in“, d);
                     }




                     Operadores de bit
• & (AND), | (OR), ~ (NOT), ^ (XOR), >> (shift right), << (shift
  left).




                                                                   5
Estructuras de datos estáticas (1)
• Vectores.
       int vector[] = {1, 2, 3, 4, 5};
       int vector2[5] = {1, 2, 3, 4, 5};
       int matriz[10][10];
       char matriz3[4][5][6];

       int main ()
       {
           float matriz2[][3] = { {1, 2, 3}, {4, 5, 6} };

              int i, j;
              for (i=0; i<2; i++) {
                  for (j=0; j<3; j++) {
                       printf("%fn", matriz2[i][j]);
                  }
              }
              return 0;
       }


• Registros o Estructuras.
     struct nombre {        struct TipoPunto {   punto.x = 1;
         Tipo1 campo1;          int x;           punto.y = 2;
         Tipo2 campo2;          int y;
         ...                } punto;
         TipoN campoN;
     } variable;


• Uniones.
       union Ejemplo {          struct FiguraColoreada {
           char caracter;           int color;
           int entero;              int tipoFigura;
       };                           union {
                                        struct Esfera e;
                                        struct Segmento s;
                                    } figura;
                                }




                                                                6
Estructuras de datos estáticas (y 2)
• Tipos definidos por el usuario (typedef).

                   typedef unsigned char TipoByte;

                   typedef struct {
                       int x;
                       int y;
                   } TipoPunto;


• Enumeraciones.

  enum Dia { Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo};




                                                                            7
Punteros (1)
• Un puntero es una variable cuyo contenido es una dirección
  de memoria.
• Operadores: &, *, ->
• Ejemplos:
           int x;                 TipoPunto* pPunto;
           int* px;
                                  pPunto->x = 1;
           x = 1;                 pPunto->y = 2;
           px = &x;
           *px = 2; /* x = 2 */


• Punteros y matrices.
          int i;
          int v[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
          int* p;

          for (i=0; i<10; i++) {
              printf("%dn", v[i]);
          }

          for (i=0, p=v; i<10; i++, p++) {
              printf("%dn", *p);
          }

          for (p=v; p != &(v[10]); p++) {
              printf("%dn", *p);
          }




                                                               8
Punteros (y 2)

• Cadenas de caracteres: Vectores de caracteres terminados en 0
  ('0').
            #include <stdio.h>

            char* mensaje = "hola";

            int main ()
            {
                char cadena[10];
                char* p = cadena;
                unsigned int longitud = 0;

                puts(mensaje);
                scanf("%9s", cadena);

                while (*p != 0) {
                    longitud++;
                    p++;
                }
                printf("Longitud: %dn", longitud);
                return 0;
            }




                                                                  9

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Lenguaje de programación c
Lenguaje de programación cLenguaje de programación c
Lenguaje de programación c
 
6 excepciones
6 excepciones6 excepciones
6 excepciones
 
Funciones en Lenguaje C
Funciones en Lenguaje CFunciones en Lenguaje C
Funciones en Lenguaje C
 
Gestión Dinámica de la Memoria
Gestión Dinámica de la MemoriaGestión Dinámica de la Memoria
Gestión Dinámica de la Memoria
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++ESTRUCTURAS DE CONTROL: BUCLES EN C++
ESTRUCTURAS DE CONTROL: BUCLES EN C++
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
 
Funciones con arrays y vectores en c
Funciones con arrays y vectores en cFunciones con arrays y vectores en c
Funciones con arrays y vectores en c
 
Tipos basicos de java
Tipos basicos de javaTipos basicos de java
Tipos basicos de java
 
Apuntadores y direccionamiento
Apuntadores y direccionamientoApuntadores y direccionamiento
Apuntadores y direccionamiento
 
Recursividad
RecursividadRecursividad
Recursividad
 
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
 
4 variables, arreglos, estructuras y enum
4 variables, arreglos, estructuras y enum4 variables, arreglos, estructuras y enum
4 variables, arreglos, estructuras y enum
 
Funciones en c++
Funciones en c++Funciones en c++
Funciones en c++
 
Semana 4 Javascript funciones y Metodos
Semana 4   Javascript funciones y MetodosSemana 4   Javascript funciones y Metodos
Semana 4 Javascript funciones y Metodos
 
Java básico
Java  básicoJava  básico
Java básico
 
02 - Tipos de datos escalares en Python 3
02 - Tipos de datos escalares en Python 302 - Tipos de datos escalares en Python 3
02 - Tipos de datos escalares en Python 3
 
FUNCIONES LENGUAJE C
FUNCIONES LENGUAJE CFUNCIONES LENGUAJE C
FUNCIONES LENGUAJE C
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
Clase 3introduccion a_lenguace_c
Clase 3introduccion a_lenguace_cClase 3introduccion a_lenguace_c
Clase 3introduccion a_lenguace_c
 

Destacado

Manual básico de programación en c++ prev
Manual básico de programación en c++ prevManual básico de programación en c++ prev
Manual básico de programación en c++ prevjtk1
 
El lenguaje de programación c++, apuntesprev
El lenguaje de programación c++, apuntesprevEl lenguaje de programación c++, apuntesprev
El lenguaje de programación c++, apuntesprevjtk1
 
El lenguaje de programación c#prev
El lenguaje de programación c#prevEl lenguaje de programación c#prev
El lenguaje de programación c#prevjtk1
 
Programación en c y c++ prev
Programación en c y c++ prevProgramación en c y c++ prev
Programación en c y c++ prevjtk1
 
(Meta 5.1) base de datos de alumnos dev c++
(Meta 5.1) base de datos de alumnos dev c++ (Meta 5.1) base de datos de alumnos dev c++
(Meta 5.1) base de datos de alumnos dev c++ Eli Diaz
 
Manual de lenguaje c++prev
Manual de lenguaje c++prevManual de lenguaje c++prev
Manual de lenguaje c++prevjtk1
 
Lenguaje de programacion java prev
Lenguaje de programacion java prevLenguaje de programacion java prev
Lenguaje de programacion java prevjtk1
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prevjtk1
 
Misterios d excel pre
Misterios d excel preMisterios d excel pre
Misterios d excel prejtk1
 
Curso de introducción a c++ para programadores en c prev
Curso de introducción a c++ para programadores en c prevCurso de introducción a c++ para programadores en c prev
Curso de introducción a c++ para programadores en c prevjtk1
 
Curso de lenguaje c prev
Curso de lenguaje c prevCurso de lenguaje c prev
Curso de lenguaje c prevjtk1
 
Actividad modulo1
Actividad modulo1Actividad modulo1
Actividad modulo1jtk1
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevjtk1
 

Destacado (13)

Manual básico de programación en c++ prev
Manual básico de programación en c++ prevManual básico de programación en c++ prev
Manual básico de programación en c++ prev
 
El lenguaje de programación c++, apuntesprev
El lenguaje de programación c++, apuntesprevEl lenguaje de programación c++, apuntesprev
El lenguaje de programación c++, apuntesprev
 
El lenguaje de programación c#prev
El lenguaje de programación c#prevEl lenguaje de programación c#prev
El lenguaje de programación c#prev
 
Programación en c y c++ prev
Programación en c y c++ prevProgramación en c y c++ prev
Programación en c y c++ prev
 
(Meta 5.1) base de datos de alumnos dev c++
(Meta 5.1) base de datos de alumnos dev c++ (Meta 5.1) base de datos de alumnos dev c++
(Meta 5.1) base de datos de alumnos dev c++
 
Manual de lenguaje c++prev
Manual de lenguaje c++prevManual de lenguaje c++prev
Manual de lenguaje c++prev
 
Lenguaje de programacion java prev
Lenguaje de programacion java prevLenguaje de programacion java prev
Lenguaje de programacion java prev
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prev
 
Misterios d excel pre
Misterios d excel preMisterios d excel pre
Misterios d excel pre
 
Curso de introducción a c++ para programadores en c prev
Curso de introducción a c++ para programadores en c prevCurso de introducción a c++ para programadores en c prev
Curso de introducción a c++ para programadores en c prev
 
Curso de lenguaje c prev
Curso de lenguaje c prevCurso de lenguaje c prev
Curso de lenguaje c prev
 
Actividad modulo1
Actividad modulo1Actividad modulo1
Actividad modulo1
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prev
 

Similar a El lenguaje de programacion c++ prev (20)

Lenguajec++
Lenguajec++Lenguajec++
Lenguajec++
 
Cpp
CppCpp
Cpp
 
Cpp
CppCpp
Cpp
 
Arreglos
ArreglosArreglos
Arreglos
 
programación Milton.pptx
programación Milton.pptxprogramación Milton.pptx
programación Milton.pptx
 
Chuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantesChuleta de lenguaje C para principiantes
Chuleta de lenguaje C para principiantes
 
Arreglos
ArreglosArreglos
Arreglos
 
Programación C++
Programación C++Programación C++
Programación C++
 
ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++ESTRUCTURAS ARRAYS Y DATOS C++
ESTRUCTURAS ARRAYS Y DATOS C++
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 
Python workshop
Python workshopPython workshop
Python workshop
 
Matrices
MatricesMatrices
Matrices
 
Introducción a C SHARP
Introducción a C SHARPIntroducción a C SHARP
Introducción a C SHARP
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Ejemplos c
Ejemplos cEjemplos c
Ejemplos c
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Codigos de programas
Codigos de programasCodigos de programas
Codigos de programas
 

Más de jtk1

Java schaum pre
Java schaum preJava schaum pre
Java schaum prejtk1
 
Programar java 2pre
Programar java 2preProgramar java 2pre
Programar java 2prejtk1
 
Serlets java pre
Serlets java preSerlets java pre
Serlets java prejtk1
 
Portada java 2
Portada java 2Portada java 2
Portada java 2jtk1
 
Piensa en java per
Piensa en java perPiensa en java per
Piensa en java perjtk1
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conprejtk1
 
Java jedi prev
Java jedi prevJava jedi prev
Java jedi prevjtk1
 
Java j2me prev
Java j2me prevJava j2me prev
Java j2me prevjtk1
 
Java ferca
Java fercaJava ferca
Java fercajtk1
 
Java desde 0 pre
Java desde 0 preJava desde 0 pre
Java desde 0 prejtk1
 
Java basico 2
Java basico 2Java basico 2
Java basico 2jtk1
 
Java angel estevan pre
Java angel estevan preJava angel estevan pre
Java angel estevan prejtk1
 
Java 3dpre
Java 3dpreJava 3dpre
Java 3dprejtk1
 
Java 2d
Java 2dJava 2d
Java 2djtk1
 
Introduc java pre
Introduc java preIntroduc java pre
Introduc java prejtk1
 
Guia de iniciación en java prev
Guia de iniciación en java prevGuia de iniciación en java prev
Guia de iniciación en java prevjtk1
 
Aprende java como si estuviera en primero pre
Aprende java como si estuviera en primero preAprende java como si estuviera en primero pre
Aprende java como si estuviera en primero prejtk1
 
52 ejercicios resueltos en pseudocodigoprev
52 ejercicios resueltos en pseudocodigoprev52 ejercicios resueltos en pseudocodigoprev
52 ejercicios resueltos en pseudocodigoprevjtk1
 
Serlets y jsp prev
Serlets y jsp prevSerlets y jsp prev
Serlets y jsp prevjtk1
 
Serlets y jsp pre
Serlets y jsp preSerlets y jsp pre
Serlets y jsp prejtk1
 

Más de jtk1 (20)

Java schaum pre
Java schaum preJava schaum pre
Java schaum pre
 
Programar java 2pre
Programar java 2preProgramar java 2pre
Programar java 2pre
 
Serlets java pre
Serlets java preSerlets java pre
Serlets java pre
 
Portada java 2
Portada java 2Portada java 2
Portada java 2
 
Piensa en java per
Piensa en java perPiensa en java per
Piensa en java per
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conpre
 
Java jedi prev
Java jedi prevJava jedi prev
Java jedi prev
 
Java j2me prev
Java j2me prevJava j2me prev
Java j2me prev
 
Java ferca
Java fercaJava ferca
Java ferca
 
Java desde 0 pre
Java desde 0 preJava desde 0 pre
Java desde 0 pre
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
 
Java angel estevan pre
Java angel estevan preJava angel estevan pre
Java angel estevan pre
 
Java 3dpre
Java 3dpreJava 3dpre
Java 3dpre
 
Java 2d
Java 2dJava 2d
Java 2d
 
Introduc java pre
Introduc java preIntroduc java pre
Introduc java pre
 
Guia de iniciación en java prev
Guia de iniciación en java prevGuia de iniciación en java prev
Guia de iniciación en java prev
 
Aprende java como si estuviera en primero pre
Aprende java como si estuviera en primero preAprende java como si estuviera en primero pre
Aprende java como si estuviera en primero pre
 
52 ejercicios resueltos en pseudocodigoprev
52 ejercicios resueltos en pseudocodigoprev52 ejercicios resueltos en pseudocodigoprev
52 ejercicios resueltos en pseudocodigoprev
 
Serlets y jsp prev
Serlets y jsp prevSerlets y jsp prev
Serlets y jsp prev
 
Serlets y jsp pre
Serlets y jsp preSerlets y jsp pre
Serlets y jsp pre
 

El lenguaje de programacion c++ prev

  • 1.
  • 2. UNIVERSIDADE DA CORUÑA El lenguaje de programación C++ Fernando Bellas Permuy Departamento de Tecnologías de la Información y las Comunicaciones (TIC) Universidad de A Coruña http://www.tic.udc.es/~fbellas fbellas@udc.es
  • 3. Introducción • C++ extiende el lenguaje de programación C con conceptos de Orientación a Objetos. • Es un lenguaje compilado. • Índice: • Revisión del lenguaje C. • Mejoras (no OO) introducidas por C++. • Clases. • La herramienta “make” en Unix. • Herencia. • Sobrecarga de operadores. • Plantillas (templates). • Excepciones. • La librería estándar de C++. • Bibliografía. 1
  • 4. Nociones básicas de C (1) • Tipos de datos básicos. Tipo Indentificador Ejemplo de valores Modificadores Caracteres char 'a', '9', '#', 10 unsigned Enteros int 23, -34, 0 long, short, unsigned Reales float 3, 3.0, 3e10 Reales (doble pre- double 3, 3.0, 3e600 long cisión) “Booleans” int 0 (false), != 0 (true) • Operadores aritméticos: =, +, -, %, /, ++, --, y variantes de = • Variables: locales, globales. #include <stdio.h> float e; /* Variable global */ int main () { float v, t; /* Variables locales */ v = 30; /* Velocidad */ t = 5; /* Tiempo */ e = v * t; printf("Velocidad: %fnTiempo: %fn", v, t); printf("Espacio recorrido: %fn", e); return 0; } 2
  • 5. Nociones básicas de C (y 2) • Operadores ++, --, y variantes de = i = 4; i = 4; j = 2 * (i++); j = 2 * (++i); /* i = 5, j = 8 */ /* i=5, j = 10 */ i = 4; i %= 3; /* i = i % 3; */ i += 4; /* i = i + 4; */ /* i = 5 */ • Entrada salida con printf/scanf y similares. #include <stdio.h> int main () { float v, t, e; printf("Velocidad: "); scanf("%f", &v); printf("Tiempo: "); scanf("%f", &t); e = v * t; printf("Velocidad: %5.2f; Tiempo: %5.2f; Espacio: %5.2fn",v,t,e); return 0; } • Caracteres de control en printf, scanf: d, o, x, c, s, f, e, p. • En C++ hay una alternativa mejor: los streams de entrada/sal- ida. 3
  • 6. Control de flujo (1) • Operadores relacionales: >, >=, <, <=, ==, != • Operadores lógicos: &&, ||, ! • if.. else.. if (condición) { << sentencias >> } else { << sentencias >> } • switch-case-default switch (exp) { case A: << instrucciones >> break; case B: << instrucciones >> break; ... default: << instrucciones por defecto >> } switch (letra) { case 'a': case 'e': case 'i': case 'o': case 'u': printf("Es una vocaln"); break; case 'ñ': printf("Nuestra querida ñn"); break; default: printf("Cualquier otro caracter"); } 4
  • 7. Control de flujo (y 2) • Bucle while while (condición) { << instrucciones >> } • Bucle do.. while do { << instrucciones >> } while (condición) • Bucle for for (inic; cond; incr) { << instrucciones >> } for (i=1; i<=10; i++) { printf(“%in“, d); } Operadores de bit • & (AND), | (OR), ~ (NOT), ^ (XOR), >> (shift right), << (shift left). 5
  • 8. Estructuras de datos estáticas (1) • Vectores. int vector[] = {1, 2, 3, 4, 5}; int vector2[5] = {1, 2, 3, 4, 5}; int matriz[10][10]; char matriz3[4][5][6]; int main () { float matriz2[][3] = { {1, 2, 3}, {4, 5, 6} }; int i, j; for (i=0; i<2; i++) { for (j=0; j<3; j++) { printf("%fn", matriz2[i][j]); } } return 0; } • Registros o Estructuras. struct nombre { struct TipoPunto { punto.x = 1; Tipo1 campo1; int x; punto.y = 2; Tipo2 campo2; int y; ... } punto; TipoN campoN; } variable; • Uniones. union Ejemplo { struct FiguraColoreada { char caracter; int color; int entero; int tipoFigura; }; union { struct Esfera e; struct Segmento s; } figura; } 6
  • 9. Estructuras de datos estáticas (y 2) • Tipos definidos por el usuario (typedef). typedef unsigned char TipoByte; typedef struct { int x; int y; } TipoPunto; • Enumeraciones. enum Dia { Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo}; 7
  • 10. Punteros (1) • Un puntero es una variable cuyo contenido es una dirección de memoria. • Operadores: &, *, -> • Ejemplos: int x; TipoPunto* pPunto; int* px; pPunto->x = 1; x = 1; pPunto->y = 2; px = &x; *px = 2; /* x = 2 */ • Punteros y matrices. int i; int v[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int* p; for (i=0; i<10; i++) { printf("%dn", v[i]); } for (i=0, p=v; i<10; i++, p++) { printf("%dn", *p); } for (p=v; p != &(v[10]); p++) { printf("%dn", *p); } 8
  • 11. Punteros (y 2) • Cadenas de caracteres: Vectores de caracteres terminados en 0 ('0'). #include <stdio.h> char* mensaje = "hola"; int main () { char cadena[10]; char* p = cadena; unsigned int longitud = 0; puts(mensaje); scanf("%9s", cadena); while (*p != 0) { longitud++; p++; } printf("Longitud: %dn", longitud); return 0; } 9