Programación 1 Presentación de c++ Prof. Gabriel Matonte matonteg@gmail.com
Lenguaje C++ B. Stroustrup, mediados de los 80, AT&T Paso de la programación tradicional (C) a estilos de abstracción de datos y orientación a objetos Conserva características del C y añade nuevos conceptos
Lenguaje C++ Estandarización C con Classes Añade objetos a C Conservar la eficiencia, portabilidad, y disponibilidad de C Comité ANSI X3J16, 1991 Última versión adoptada por ISO, julio 1998
Lenguaje C++ Cambios con respecto a C Añadir orientación a objetos Mejorar la seguridad en los tipos 'a' es char, no int "a" es const char*, no char* f() es equivalente a f(void) Se pueden utilizar const int como dimension de arrays Las etiquetas de estructuras (Structure tags) son tipos (type names)
Lenguaje C++ Cambios con respecto a C Mejoras en entrada/salida - IOStreams /* Primer programa en C */ #include <stdio.h> #include <iostream.h> int main () { printf("Bienvenido a C! \n"); system("PAUSE"); return 0; }
Lenguaje C++ Introducción Componentes de un Programa C/C++ Sentencias Comentarios Ficheros de “include” y “fuente” La función main()
Lenguaje C++ Introducción Sentencias C/C++ Las sentencias contienen una o mas expresiones llamadas a función, operaciones numéricas, etc. Terminan con un punto y coma Pueden abarcar mas de una línea
Lenguaje C++ Introducción Comentarios C/C++ C++ agrega un nuevo comentario que se inicia con dos barras (//) y que llega hasta el final de la línea. Se pueden usar ambos estilos de comentarios, por ejemplo para comentar bloques grandes de código : /* El comentario de C puede incluir // y se puede extender sobre varias líneas */ // /* Este es el estilo de comentarios de C++ */ hasta el fin de línea
Lenguaje C++ Introducción Ficheros de “include” y “fuente” La directiva #include inserta el texto de un fichero en el flujo de compilación antes de que comience Ficheros de cabecera (.h) Generalmente contienen declaraciones de funciones y definiciones de constantes Del sistema Los componentes de la biblioteca estándar tienen ficheros de cabecera (header) #include <stdio.h> Del usuario (#ifndef .... #define ..... #endif) #include "mydefs.h" Ficheros de código fuente (.cc, .cpp)
Lenguaje C++ Introducción /* first.c: A First Program */ #include <stdio.h> int main() { printf("** Welcome to C/C++ **"); printf("(You'll be glad you came!)"); return 0; } ** Welcome to C/C++ ** (You'll be glad you came!)
Lenguaje C++ Introducción Componentes de un Programa C Un programa C es una colección de funciones. procedimientos, subrutinas variables globales opcionales Puede estar escrito en un solo fichero o en varios Una función es una colección de sentencias delimitadas por { llaves } main() es especial
Lenguaje C++ Introducción Construcción de un ejecutable C/C++ F3.h F1.h F2.h S1.c S2.c S2.obj S1.obj Prog.exe
Lenguaje C++ Introducción Módulos El concepto de módulo en c++ se refiere a unidades de compilación separadas. Similar al concepto en C. El “linker” C++ es mas estricto que el de C
Lenguaje C/C++ Introducción Entrada / salida estándard en C Permite E/S de consola, ficheros, y sobre canales definidos en memoria 3 flujos de E/S predefinidos: stdin“standard input” (teclado) stdout“standard output” (pantalla) stderr“standard error” (pantalla) Las funciones de consola utilizan implicitamente stdin o stdout
Lenguaje C/C++ Introducción #include <stdio.h> int main()//avg.c: Promedio 2 enteros { int num1, num2; float sum; printf(“Ingrese el primer número:"); scanf("%d",&num1); printf(“Ingrese el segundo número:"); scanf("%d",&num2); sum = num1 + num2; printf(“El promedio es: %f\n", sum/2); return 0; }
Lenguaje C/C++ Introducción Resultado Ingrese el primer número: 10 Ingrese el segundo número: 23 El promedio es: 16.500000 Si queremos solo dos decimales: printf(“El promedio es:%.2f\n", sum/2); El promedio es: 16.50
Lenguaje C++ Introducción Resumen Los programas pueden estar en uno o mas ficheros de texto Los ficheros fuente pueden #include uno o mas ficheros de cabecera Los ficheros fuente contienen una o mas funciones Las funciones contienen sentencias 3 flujos de E/S predefinidos