Está en la página 1de 5

Taller sobre semana Uno:

Curso: Estructuras del lenguaje de Programacin C++


Unidad 1: Elementos bsicos del lenguaje.

Nombre estudiante: Juan David Snchez Obando Fecha: 17/08/10 1. Investigar el origen del lenguaje C / C++ R// C++ es heredero directo del lenguaje C que a su vez se deriva del lenguaje B. Otra fuente de inspiracin fue Simula 67 del que tom el concepto de clase. El lenguaje de programacin C fue desarrollado por Denis Ritchie de AT&T Bell Laboratories que se utiliz para escribir y mantener el sistema operativo UNIX. C es un lenguaje de propsito general que se puede utilizar para escribir cualquier tipo de programa, pero su xito y popularidad esta especialmente relacionado con el sistema operativo UNIX. Aunque C es un lenguaje muy potente, tiene dos caractersticas que lo hacen inapropiado. Primero, C requiere un nivel de sofistificacin a sus usuarios que les obliga a un difcil aprendizajea los programadores y segundo C fue diseado al principio de los setenta y la naturaleza de la programacin ha cambiado de modo significativo. Para subsanar estas deficiencias Bjarne Stroustrup de AT&T Bell Laboratories desarrollo C++ al principio de la dcada de los ochenta. Stroustrup diseo C++ como mejora de C. Se han presentado varias versiones de C++ y su evolucin se estudi por Stroustrup. Las caractersticas ms notables que han ido incorporndose a C++ son: herencia mltiple, generalidad, plantillas, funciones virtuales, excepciones, etc. Este tipo de programa sigue evolucionando ao tras ao. 2. Que son los componentes principales de un programa en C / C++, que significado lleva asociado el nombre main? R// Los componentes principales de un programa en C++ est definido por funciones (grupo de instrucciones que pueden o no hacer algn clculo), donde la funcin principal debe ser llamada main. El significado del nombre main es PRINCIPAL, nos hace referencia que esta funcin nunca se debe olvidar en un programa como funcin. 3. Defina una funcin, incluyendo las declaraciones de los parmetros formales para cada uno de los siguientes enunciados. Ejemplo: Una funcin llamada muestra devuelve una cantidad entera

RTA int muestra ( void ); Una funcin llamada raiz acepta dos parmetros enteros y devuelve un resultado en punto flotante RTA float raz(int , int ); Una funcin llamada convertir acepta un carcter y devuelve un carcter. RTA char convertir(char) Una funcin llamada prueba acepta un carcter y devuelve un entero largo. RTA long int prueba(char) 4. Diga cuales son las diferencias de C / C++ R// Hay diferencias entre estos dos, las ms notables son las limitaciones que tiene C con respecto a C++, algunas de estas son: No se pueden definir nuevos tipos: La facilidad typedef es esencialmente un mecanismo para especificar un sinnimo de un tipo existente. Las declaraciones de funcione no ayudan a la verificacin de tipos en las llamadas a funciones: Las versiones K&R de C no especificaban nada sobre tipos de parmetros. En ANSI C se ha introducido la declaracin de tipos de los parmetros, pero de modo opcional. C++ exige de modo obligatorio los prototipos. Cuando las funciones se compilan separadamente, no se realiza ninguna verificacin para asegurar que los tipos de argumentos corresponden a los tipos de parmetros: Si una funcin se compila separadamente, los compiladores C no verificaban que esta funcin es llamada consistentemente con respecto a su definicin. No existen tipos de coma flotante de simple precisin: Todas las variables de tipo float se convierten a double en expresiones o cuando se pasan como argumentos. C++soporta float como un tipo distinto. C++ incorpora nuevas caractersticas no encontradas en ANSI C. Las mejoras se pueden agrupar en tres categoras: Caractersticas de C++ que potencian a C Propsito Proporcionan mejora en legibilidad de cdigos. Permiten paso de parmetros por referencia. Permite que las funciones se expandan en lnea; similares a las ms macros, pero mayor eficacia de cdigo.

Caractersticas Nuevo estilo de comentarios Tipos referencia Funciones en lnea

Sobrecarga de operadores

Parmetros por omisin Sobrecarga de funciones

Los operadores estndar de C pueden trabajar con tipos definidos por el usuario, tal como un operador que sume nmeros complejos, cadenas o matrices. Permite especificar valores por omisin para parmetros de funciones. Permite que un grupo de funciones con nombres similares realicen tareas cuando son invocadas.

Extensiones al sistema de tipos de datos que permite disponer tipos definidos por el usuario ms robustos (fuertes).

Caractersticas Prototipo de funciones

Propsito Proporcionan verificaciones de tipos en las llamadas a funciones. Las etiquetas de struct, unin y enum Simplifica la sintaxis de los tipos son nombres de tipos definidos por el usuario. Operadores de asignacin de Soporta asignacin dinmica de tipos memoria definidos por usuarios hace la administracin dinmica de memoria ms segura. Enlazado con seguridad de tipos Captura errores de paso de parmetros realizando verificacin de tipos en tiempo de enlace. Biblioteca de nuevos flujos Permite mayor flexibilidad en la entrada y salida de tipos definidos por el usuario, soporta entrada/salida (E/S) orientada a objetos; permite especificar rutinas para convertir de un tipo a otro. Extensiones que incorporan propiedades OO. Extensin Clases Control de acceso Clases derivadas Funciones amigas Funciones virtuales Propsito Permitir a las funciones y datos agruparse juntos, se utilizan para crear objetos. Permite restringir el acceso a los datos y funciones de una clase. Clases que heredan propiedades de las clases base existentes y permite la reutilizacin y extensin de clases Permite acceso selectivo a miembros de acceso restringido de una clase. Mecanismo que facilita el polimorfismo y que determina la funcin a llamar en tiempo de ejecucin, no en tiempo de compilacin. Crean las funciones definidas por el usuario para la inicializacin de objetos. Se llaman automticamente para limpiar memoria cuando los

Constructores Destructores

objetos se tienen que borrar o liberar. 5.1. Cmo es la estructura de un programa C / C++? R// La estructura de un programa en C/C++ son: Directivas de preprocesador: Se pueden considerar como un editor de texto inteligente que consta de directivas, instrucciones al compilador antes de que se compile el programa principal. Las dos directivas ms usadas son #include y #define. Declaraciones globales: Estas indican al compilador que las funciones definidas por el usuario o variables as declaradas son comunes a todas las funciones de su programa. Las declaraciones globales se colocan antes de la funcin main(). Funcin main(): Es la funcin principal, solo se debe colocar una vez en el compilador, esta ejecuta los dems procedimientos y funciones. Funciones definidas por el usuario: Los programas se construyen en base a diferentes funciones, las cuales hacen diferentes tareas para que este se ejecute correctamente. Todas las funciones tienen una o ms sentencias de C++. Estas se invocan por su nombre y los parmetros opcionales. Comentarios del programa: Esta es cualquier informacin que se aade a su archivo fuente para proporcionar informacin de cualquier tipo. El compilador ignora los comentarios, no realiza una tarea concreta.

5.2.

Determine cul de las siguientes variables son vlidas. Si no son vlidos explicar por qu: a) registro1 b) 1registro c) archivo_3 R// Variables registro1 1registro archivo_3 $impuesto d) $impuesto e) nombre f) 123-456-12 g) nombre_y_direccin h) _subtotal i) cin

nombre 123-456-12 nombre_y_direccin _subtotal cin

Validacin Correcta. Incorrecta, debe comenzar con una letra o un underscore. Correcta Incorrecta, debe comenzar con una letra o un underscore. Tambien utiliza simbologa que no es correcta, ya que solo se pueden utilizar letras, nmeros y underscore. Correcta Incorrecto, Esta empieza con numeros Correcta Correcta Correcta, ya que no se encuentra en ninguna lista de las palabras claves que no se deben utilizar como forma de

declaracin de constantes o funciones, adems de comenzar por una letra. Pero creo que no se debera utilizar para evitar confusiones.

5.3. Cul de los siguientes pares de nombres de variables se consideran como idnticos y cules no: a) nombre, nombres b) direccin, Direccin c) cuenta, cuenta R// Nombres nombre, nombres direccin, Direccin cuenta, cuenta lista1, lista2 prom, prom car1, car_1 d) lista1, lista2 e) prom, prom f) car1, car_1 Clasificacin No son idnticos No son idnticos idnticos No son idnticos idnticos No son idnticos

5.4

Describa la declaracin apropiada para cada grupo de variables y formaciones: a) Variable entera: p, q R// int p, int q; Variables flotantes: x, y, z R// float x, float y, float z; Variables de carcter: a, b, c R// char a, char b, char c; Variable entera largo: contador R// long int contador; Variable de cadena de carcter: hola R// String hola;

b)

c)

d)

e)