Download edilfe jose rojas montes

Document related concepts

Racket (lenguaje de programación) wikipedia , lookup

Julia (lenguaje de programación) wikipedia , lookup

Haxe wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Programación funcional wikipedia , lookup

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;
}