Download edilfe jose rojas montes
Document related concepts
Transcript
TALLER C++ ALGORITMO Y PROGRAMACION ORIENTADA A OBJETOS EDILFE JOSE ROJAS MONTES INGENIERIA DE SISTEMAS RIOHACHA-GUAJIRA 2013 TALLER DE LENGUAJES DE PROGRAMACIÓN Y C++ 1. Que es un lenguaje de programación y cuál es su objetivo 2. Como se clasifican los lenguajes de programación de ejemplos 3. Haga un cuadro comparativo entre lenguaje de programación estructurado y lenguaje de programación orientado a objetos. 4. Que es el lenguaje C++ y cuáles son sus fortalezas y características fundamentales. En la actualidad cuantas versiones de C++ 5. Como es la estructura de un programa en C++, identifique cada uno de sus elementos. De un ejemplo de un programa. 6. Cuáles son los tipos de datos que existen en C++ 7. Que es una librería en C++ , enuncie las más importantes y diga para que sirven 8. Como se declara una librería. Como se declara una variable, una constante. 9. Como se asigna en C++ 10. Como se lee y se escribe en C++ con la librería stdio.h 11. Como se lee y se escribe en C++ con la librería iostream.h 12. Como se representan las primitivas secuenciales, condicionales incluyendo el DD y los ciclos repetitivos, para, mientras que y haga hasta. 13. Pase los cinco primeros algoritmos que tiene en su libreta a C++ Nota: El trabajo es individual y es en físico puede ser impreso o a manuscrito, para reforzar la investigación véase el video que aparece en la wiki. Solución 1. LENGUAJES DE PROGRAMACION Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML. Objetivo: servir de herramienta en la creación de programas que realicen una tarea especifica 2. Clasificación 1º El Lenguaje Máquina: es el lenguaje de programación que entiende directamente la computadora o máquina. Este lenguaje de programación utiliza el alfabeto binario, es decir, el 0 y el 1. Con estos dos únicos dígitos, conocidos como bits, forma lo que se conoce como cadenas binarias (combinaciones de ceros y unos) son con las que se escriben las instrucciones que el microprocesador de la computadora entiende nuestra peticiones. Fue el primer lenguaje de programación. Este tipo de lenguaje de programación dejo de utilizarse por su gran dificultad y por la facilidad para cometer errores. 2º Lenguajes de programación de bajo nivel: Son mucho mas fáciles de utilizar que el lenguaje máquina, pero dependen mucho de la máquina o computadora como sucedía con el lenguaje máquina. El lenguaje ensamblador fue el primer lenguaje de programación que trato de sustituir el lenguaje máquina por otro mucho más parecido al de los seres humanos. En este lenguaje se conoce como programa fuente a un programa de instrucciones escrito en lenguaje ensamblador por el programador, y programa objeto es la traducción a lenguaje máquina del programa fuente. Los lenguajes de este tipo pueden crear programas muy rápidos, pero son difíciles de aprender, son específicos de cada procesador, si nos llevamos el programa a otro computador será preciso reescribir el programa desde el comienzo. 3º Lenguajes de programación de alto nivel: Este tipo de lenguajes de programación son independientes de la máquina, lo podemos usar en cualquier computador con muy pocas modificaciones o sin ellas, son muy similares al lenguaje humano, pero precisan de un programa interprete o compilador que traduzca este lenguaje de programación de alto nivel a uno de bajo nivel como el lenguaje de máquina que la computadora pueda entender. Los lenguajes de programación de alto nivel son más fáciles de aprender porque se usan palabras o comandos del lenguaje natural, como por ejemplo del inglés. Este es el caso del BASIC, el lenguaje de programación más conocido. Existen muchos lenguajes de programación de alto nivel con sus diferentes versiones. Por esta razón es difícil su tipificación, pero una clasificación muy extendida desde el punto de vista de trabajar de los programas y la filosofía de su creación es la siguiente: Lenguajes de programación imperativos: entre ellos tenemos el Cobol, Pascal, C y Ada. Lenguajes de programación declarativos: el Lisp y el Prolog. Lenguajes de programación orientados a objetos: el Smalltalk y el C++. Lenguajes de programación orientados al problema: son aquellos lenguajes específicos para gestión. Lenguajes de programación naturales: son los nuevos lenguajes que pretender aproximar el diseño y la construcción de programas al lenguaje de las personas. Otra clasificación de los lenguajes de programación de alto nivel, es teniendo en cuenta el desarrollo de las computadoras según sus diferentes generaciones: Lenguajes de programación de primera generación: el lenguaje máquina y el ensamblador. Lenguajes de programación de segunda generación : los primeros lenguajes de programación de alto nivel imperativo (FROTRAN, COBOL). Lenguajes de programación de tercera generación: son lenguajes de programación de alto nivel imperativo pero mucho más utilizados y vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA). Lenguajes de programación de cuarta generación: usados en aplicaciones de gestión y manejo de bases de dados (NATURAL, SQL). Lenguajes de programación de quinta generación: creados para la inteligencia artificial y para el procesamiento de lenguajes naturales (LISP, PROLOG). EJEMPLOS: Alto nivel Ada,Modula-2,Pascal,Cobol,FORTRAN,Basic Nivel medio Java, C++, C,FORTH, Macroensamblador Nivel bajo Ensamblador 3. CUADRO COMPARATIVO PROGRAMACION ORIENTADA A PROGRAMACION ESTRUCTURADA OBJETOS - se basa en lenguajes que soportan sintáctica y semánticamente la unión entre los tipos abstractos de datos y sus operaciones * incorpora en su entorno de ejecución mecanismos tales como el polimorfismo y el envío de mensajes entre objetos. -Fomenta la reutilización y extensión del código. -Permite crear sistemas más complejos. -Relacionar el sistema al mundo real. -Facilita la creación de programas visuales. -Construcción de prototipos -Agiliza el desarrollo de software -Facilita el trabajo en equipo -Facilita el mantenimiento del software * Los programas son más fáciles de entender * Programas más sencillos y más rápidos. * Aumento de la productividad del programador. * Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en programación. * Los programas quedan mejor documentados internamente. EN CONCLUSION: La programación estructurada pretende resolver un problema de principio a fin en una sola estructura de código. La programación orientada a objetos, resuelve el problema identificando los actores que tienen participación en el problema e identificando también sus acciones. 4. LENGUAJE C++ C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido. Una particularidad del C++ es la posibilidad de redefinir los operadores (sobrecarga de operadores), y de poder crear nuevos tipos que se comporten como tipos fundamentales. EJEMPLO: /* Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin: cout(<<) y cin(>>)*/ #include <iostream> int main() { std::cout << "Hola mundo" << std::endl; CARACTERISTICAS DEL LENGUAJE C++ Las principales características del Lenguaje C son: 1.-Tiene un conjunto completo de instrucciones de control. 2.-Permite la agrupación de instrucciones. 3.-Incluye el concepto de puntero (variable que contiene la dirección de otra variable). 4.-Los argumentos de las funciones se transfieren por su valor. Algunas de las características más importantes que definen el lenguaje y que han permitido que sea tan popular, como lenguaje de programación son: Tamaño pequeño. Uso extensivo de llamadas a funciones. Comandos breves (poco tecleo). Lenguaje estructurado. Programación de bajo nivel (nivel bit) Implementación de apuntadores - uso extensivo de apuntadores para la memoria, arreglos, estructuras y funciones Las diversas razones por la cual se ha convertido en un lenguaje de uso profesional son: El uso de constructores de alto nivel. El poder manejar actividades de bajo-nivel. El generar programas eficientes. La posibilidad de poder ser compilado en una variedad de computadoras, con pocos cambios (portabilidad). Un punto en contra es que tiene una detección pobre de errores, lo cual en ocasiones es problemático para los principiantes VERSIONES DE C++ * XCode. * Borland C++ * Codewarrior C++ * Comeau C++ * Cygwin (GNU C++) * MINGW - Minimalist GNU for Windows. * Dev C++ (IDE que usa MinGW) * wx-Dev C++ (IDE basado en Dev C++) * Digital Mars C++ * DJ Delorie's C++ development system for DOS/Windows (GNU C++) * Edison Design Group C++ Front End * Green Hills C++ * HP C++ para UNIX y HP C++ para OpenVMS. * IBM C++ * Intel C++ * The LLVM Compiler Infrastructure. * Mentor Graphics/Microtec Research C++ * Microsoft Visual C++ * Microsoft Visual Studio Express Editions * Paradigm C++ * The Portland Group C++ * SGI C++ * Sun C++ * Sun Studio. * WindRiver's Diab C++ * ZinjaI ESTRUCTURA C++ EJEMPLO: /*estructura es un tipo de dato compuesto que me va a permitir definir variables o arreglos */ /* Guardar en una estructura los datos de alumno como; codigo, nombre, practica1 , practica2,promedio de practica, examen parcial,examen final y promedio final*/ #include <iostream.h> #include <stdlib.h> struct alumno { char codigo[8], nombre[40]; int p1, p2, pp, ep, ef, prom; } a; int main() { cout<<"Ingresar codigo: "; cin>>a.codigo; cout<<"Ingresar nombre: "; cin>>a.nombre; cout<<"Ingresar practica 1: "; cin>>a.p1; cout<<"Ingresar practica 2: "; cin>>a.p2; cout<<"Ingresar examen parcial: "; cin>>a.ep; cout<<"Ingresar examen final: "; cin>>a.ef; a.pp=(a.p1+a.p2)/2; a.prom=(a.pp+a.ep+a.ef)/3; cout<<"El promedio final de "<<a.nombre<<" es "<<a.prom<<endl; system("PAUSE"); return 0; } 6. TIPOS DE DATOS TIPO DATO ESPACIO MEMORIA RANGO unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32,768 a 32,767 unsigned int 32 bits 0 a 4,294,967,295 int 32 bits -2,147,483,648 a 2,147,483,647 unsigned long 32 bits 0 a 4,294,967,295 enum 16 bits -2,147,483,648 a 2,147,483,647 long 32 bits -2,147,483,648 a 2,147,483,647 float 32 bits 3.4 x 10-38 a 3.4 x 10+38(6 dec) double 64 bits 1.7 x 10-308 a 1.7*10+308(15 dec) long double 80 bits void sin valor 3.4 x 10-4932 a 1.1 x 10+4932 7. LIBRERÍA C++ Las bibliotecas o librerías contienen el código objeto de muchos programas que permiten hacer cosas comunes, como leer el teclado, escribir en la pantalla, manejar números, realizar funciones matemáticas, etc. Las bibliotecas están clasificadas por el tipo de trabajos que hacen, hay bibliotecas de entrada y salida, matemáticas, de manejo de memoria, de manejo de textos y como imaginarás existen muchísimas librerías disponibles y todas con una función especifica. Nota: Existe una discusión permanente sobre el nombre genérico de estos archivos. Una gran parte de personas consideran que el nombre adecuado es archivos de biblioteca, y estan en lo correcto. Sin embargo, la mayoría llamamos a estos archivos librerías, y también me incluyo entre estos. El error proviene del nombre en inglés, que es archivos library. Este término se traduce como biblioteca, y no como librería, que es la palabra en español más parecida fonéticamente. Sin embargo esta discusión es poco importante, desde nuestro punto de vista, ya que nos entendemos igualmente con las dos palabras. Hay un conjunto de bibliotecas (o librerías) muy especiales, que se incluyen con todos los compiladores de C y de C++. Son las librerías (o bibliotecas) ANSI o estándar. Pero también las hay no estándar, y dentro de estas las hay públicas y comerciales. En esta sección sólo usaremos algunas bibliotecas (o librerías) ANSI. ¿Qué son exactamente las librerías? En C++, se conoce como librerías (o bibliotecas) a cierto tipo de archivos que podemos importar o incluir en nuestro programa. Estos archivos contienen las especificaciones de diferentes funcionalidades ya construidas y utilizables que podremos agregar a nuestro programa, como por ejemplo leer del teclado o mostrar algo por pantalla entre muchas otras más. Al poder incluir estas librerías con definiciones de diferentes funcionalidades podremos ahorrarnos gran cantidad de cosas, imaginemos por ejemplo que cada vez que necesitemos leer por teclado, debamos entonces crear una función que lo haga (algo realmente complejo), al poder contar con las librerías en C++, podremos hacer uso de una gran variedad de funciones que nos facilitaran la vida y aumentarán la modularidad de nuestros códigos. Las librerías no son únicamente archivos externos creados por otros, también es posible crear nuestras propias librerías y utilizarlas en nuestros programas. Las librerías pueden tener varias extensiones diferentes, las más comunes son: .lib, .bpl, .a, .dll, .h y algunas más ya no tan comunes. En conclusión, las librearías son archivos (no siempre externos) que nos permiten llevar a cabo diferentes tareas sin necesidad de preocuparnos por cómo se hacen sino simplemente entender cómo usarlas. Las librearías en C++ permiten hacer nuestros programas más modulares y reutilizables, facilitando además crear programas con funcionalidades bastante complejas en unas pocas líneas de código. Algunas Librerías Estandar de C++ Librería fstream: Flujos hacia/desde ficheros. Permite la manipulación de archivos desde el programar, tanto leer como escribir en ellos. Librería iosfwd: Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estándar. Por ejemplo ostream. Librería iostream: Parte del a STL que contiene los algoritmos estándar, es quizá la más usada e importante (aunque no indispensable). Librería list: Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas Librería math: Contiene los prototipos de las funciones y otras definiciones para el uso y manipulación de funciones matemáticas. Librería memory: Utilidades relativas a la gestión de memoria, incluyendo asignadores y punteros inteligentes(auto_ptr). Librería new: Manejo de memoria dinámica Librería numeric: Parte de la librería numérica de la STL relativa a operaciones numéricas. Librería ostream: Algoritmos estándar para los flujos de salida. Librería queue: Parte de la STL relativa a contenedores tipo queue (colas de objetos). Librería stdio: Contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida. Librería stdlib: Contiene los prototipos de las funciones, macros, y tipos para utilidades de uso general. Librería string: Parte de la STL relativa a contenedores tipo string; una generalización de las cadenas alfanuméricas para albergar cadenas de objetos. Muy útil para el fácil uso de las cadenas de caracteres, pues elimina muchas d elas dificultades que generan los char Librería typeinfo: Mecanismo de identificación de tipos en tiempo de ejecución Librería vector: Parte de la STL relativa a los contenedores tipo vector; una generalización de las matrices unidimensionales C/C++ 8. ¿Cómo declarar una librería en C++? Veamos a continuación como se haría la declaración de unas cuantas librerías conocidas, recuerda que ese pueden declarar todas las librerías necesarias y siempre debe hacerse al comienzo del código fuente #include "iostream" #include "string" #include <math.h> #include <conio.h> using namespace std; Con esto debió quedar claro, como declarar librerías C++ al interior de un código fuente. Lo único adicional, es la línea que dice using namespace std; esta línea nos ayuda a declarar un espacio de nombre que evita tener que usarlo cada que accedemos a alguna función especifica de una librería. Teniendo este namespace declarado podemos llamar por ejemplo el comando cout >>, que pertenece a la librería iostream, sin embargo sin este namespace sería std::cout >>, imagina tener que hacer esto cada vez que uses algún comando o función de las librerías, sería bastante tedioso. Como se declara una constante y una variable VARIABLES Forma generica tipo nombre_de_variable; Ejemplo int numero; //tipo entero(int) nombre de la variable numero. char c; // tipo caracter(char) nombre de la variable c. CONSTANTES forma generica #define nombre_constante valor Ejemplo #define PI 3.14159 //nombre de la constante PI valor 3.14159 Otra forma const tipo nombre_variable=valor; Ejemplo const float precio=3.50; //nombre de la constante precio, tipo float, valor 3.50 9. en c++ se asigna con el signo = 10. Lectura: scanf(“ // ”,&variable); Escritura: printf(“La variable es: ”,variable); 11. Lectura: cin>> variable; Escritura: cout<<”su variable es:”<<variable; 12. Condicional si: Los condicionales se determinan por la palabra if que significa si y la instrucción else que significa en caso contrario, en este caso bajo el condicional solo existe una línea, por consiguiente no se hace necesario ni abrir ni cerrar la instrucción { }, lo que pasaría en el caso de que hubiera, mas de una instrucción ej: If (a>b) { .... ..... ... } Ciclo repetitivo para: for (k=1;k<=10;k++) Este ciclo se divide en tres partes principales A) La variable k toma un valor inicial de arranque, aunque c++, permite definir las variables en el mismo ciclo. B) k<=10; condición, de parada, para este caso que llegue a 10 C) k++; incremento, decimos que queremos incrementar la variable k en pasos de 1; se puede utilizar en sentido inverso k--, es decir decrementos. D) Como dentro del ciclo, no hay sino una instrucción, entonces no se requiere apertura ni cierre de llaves. Ciclos Mientras que (while) y ciclo haga hasta (do while) Sentencia while: esta sentencia de ciclo o bucle es muy sencilla pero muy potente, su estructura. while (<condición>) <sentencia> Puede ser también while (condición) { -------} Sentencia do while, este ciclo es muy utilizado cundo queremos realizar filtros (permitir el ingreso de datos dentro de un rango especificado) y cuando deseamos que se permita el ingreso al ciclo al menos una vez. Ejemplo: while (nota ¡=0) { do { cout<<"entre una nota"; cin>>nota; if (nota <0) || (nota >5) { cout<<"Error. Inténtelo nuevamente"; } } while (nota<0 ) || (nota >5); Al finalizar el ciclo do se cierra llaves l con un while, el cual termina con punto y coma. 13. 1. Hacer un algoritmo que me permita leer el nombre de una persona y saludar a esa persona por su nombre: /*Saludar por el nombre */ #include<iostream.h> #include<conio.h> main (){ char nom[30]; Cout<<"Digite su nombre"; Cin>>nom; Cout<<"Como Estas "<<nom; getch (); Return 0; } 2. Hacer un algoritmo que lea el sexo de una persona y me diga si es hombre o mujer: /*Programa para leer un sexo y decir si es hombre o mujer */ #include<iostream.h> #include<conio.h> main(){ int sexo; cout<<"Diga su sexo por favor:\n 1 Para Masculino \n 2 Para Femenino \n ---> "; cin>>sexo; if(sexo==1){ cout<<"Eres un hombre"; }else if(sexo==1){ cout<<"Eres mujer"; }else cout<<"\nOpcion No valida \n ENTER para salir"; getch(); return 0; } 3. Hacer un algoritmo que lea una vocal y nos diga que vocal leyó: /* Decir una vocal */ #include<iostream.h> #include<conio.h> main(){ char vocal; cout<<"Digite la vocal que desea leer: "; cin>>vocal; cout<<"So vocal Fue: "<<vocal; getch(); return 0; } 4. Hacer un algoritmo que me permita leer dos números, los sume y escriba el resultado: /*Leer dos numeros y sumarlos*/ #include<iostream.h> #include<conio.h> main(){ int numero1,numero2,suma; cout<<"Ingrese el primer numero: "; cin>>numero1; cout<<"\nIngrese el segundo numero: "; cin>>numero2; suma=numero1+numero2; cout<<"\nLa suma es: "<<suma; cout<<"\n Es decir: "<<numero1<<"+"<<numero2<<"="<<suma; getch(); return 0; } 5. Diseñar un algoritmo que me permita calcular el área y el perímetro de un rectángulo: /*Area Y Perimetro de Un Rectangulo*/ #include<iostream.h> #include<conio.h> main(){ int base, altura,area,p; cout<<"Por favor digite la base: "; cin>>base; cout<<"\nPor favor digite la altura: "; cin>>altura; area=base*altura; p=2*(base*altura); cout<<"\nEl Area del Rectangulo es: "<<area; cout<<"\nEl Perimetro del Rectangulo es: "<<p; getch(); return 0; } 6. Hacer un algoritmo que lea un color en español y los escribas en ingles solo teniendo en cuenta los colores primarios: /*Pasar un color primario a ingles*/ #include<iostream.h> #include<conio.h> #include<stdio.h> main(){ char color[100]; int a=2,b=2,c=2; cout<<"Diga Que Color Primario Quiere Pasar Al Ingles :"; gets(color); a = strcmp(color,"rojo"); b = strcmp(color,"azul"); c = strcmp(color,"amarillo"); if(a==0){ cout<<"Red"; }else if(b==0){ cout<<"Blue"; }else if(c==0){ cout<<"Yellow"; }else{ cout<<"No es un color primario"; } getch(); return 0; }