#include <iostream>
using namespace std;
int imprime_tabla(int opcion);
int main()
{
int opcion=0;
cout << "Tablas de multiplicar\n";
cout<< "Ingresa que tabla deseas";
cin >> opcion;
imprime_tabla(opcion);
}
int imprime_tabla(int opcion)
{
for (int b=1;b < 11;b++){
cout << opcion;
cout << " x ";
cout << b;
cout << "=";
cout << opcion * b ;
cout << "\n";
}
}
viernes, 25 de mayo de 2018
Calculadora
#include <iostream>
using namespace std;
float funcion_suma(float valor1,float valor2);
float funcion_resta(float valor1,float valor2);
float funcion_multiplica(float valor1,float valor2);
float funcion_divide(float valor1,float valor2);
int main()
{
int opcion=0;
float valor1=0;
float valor2=0;
cout <<"Calculadora\n" << "1-.Suma\n" <<"2-.Resta\n" <<"3-.Multiplicacion\n" << "4-.Division\n";
cout << "Seleccionar una opcion\n";
cin >> opcion;
cout << "\n Ingresa valor1 ";
cin >> valor1;
cout << "\n Ingresa valor2 ";
cin >> valor2;
switch(opcion)
{
case 1: cout << "El resultado es: ";
cout << funcion_suma(valor1, valor2);
break;
case 2: cout << "El resultado es: ";
cout << funcion_resta(valor1, valor2);
break;
case 3: cout << "El resultado es: ";
cout << funcion_multiplica(valor1, valor2);
break;
case 4: cout << "El resultado es: ";
cout << funcion_divide(valor1, valor2);
break;
}
}
float funcion_suma(float valor1, float valor2)
{
return valor1+valor2;
}
float funcion_resta(float valor1, float valor2)
{
return valor1-valor2;
}
float funcion_multiplica(float valor1, float valor2)
{
return valor1*valor2;
}
float funcion_divide(float valor1, float valor2)
{
return valor1/valor2;
}
using namespace std;
float funcion_suma(float valor1,float valor2);
float funcion_resta(float valor1,float valor2);
float funcion_multiplica(float valor1,float valor2);
float funcion_divide(float valor1,float valor2);
int main()
{
int opcion=0;
float valor1=0;
float valor2=0;
cout <<"Calculadora\n" << "1-.Suma\n" <<"2-.Resta\n" <<"3-.Multiplicacion\n" << "4-.Division\n";
cout << "Seleccionar una opcion\n";
cin >> opcion;
cout << "\n Ingresa valor1 ";
cin >> valor1;
cout << "\n Ingresa valor2 ";
cin >> valor2;
switch(opcion)
{
case 1: cout << "El resultado es: ";
cout << funcion_suma(valor1, valor2);
break;
case 2: cout << "El resultado es: ";
cout << funcion_resta(valor1, valor2);
break;
case 3: cout << "El resultado es: ";
cout << funcion_multiplica(valor1, valor2);
break;
case 4: cout << "El resultado es: ";
cout << funcion_divide(valor1, valor2);
break;
}
}
float funcion_suma(float valor1, float valor2)
{
return valor1+valor2;
}
float funcion_resta(float valor1, float valor2)
{
return valor1-valor2;
}
float funcion_multiplica(float valor1, float valor2)
{
return valor1*valor2;
}
float funcion_divide(float valor1, float valor2)
{
return valor1/valor2;
}
viernes, 11 de mayo de 2018
Conceptos
¿Qué es una
clase?
Es una construcción que
permite crear tipos personalizados propios mediante la agrupación de variables
de otros tipos, métodos y eventos. Una clase es como un plano. Define los datos
y el comportamiento de un tipo. Si la clase no se declara como estática, el
código de cliente puede utilizarla mediante la creación de objetos o instancias
que se asignan a una variable. La variable permanece en memoria hasta todas las
referencias a ella están fuera del ámbito. Si la clase se declara como
estática, solo existe una copia en memoria y el código de cliente solo puede
tener acceso a ella a través de la propia clase y no de una variable de
instancia.
Cada una tiene sus propias
características y ventajas. Un programador que conoce estas características
sabe cuando debe usar una y no otra, de manera que su desarrolla un buen
software. Los tipos de clases son:
Class. Public: Son muy
comunes, accesibles desde cualquier otra clase en la misma librería (de otro
modo hay que importarlas).
Class. Abstract: Aquellas que
tienen por lo menos un método abstracto. No implementan sus métodos, sino que
dan las bases para que sean implementados en la herencia.
Class. Final: Son las que
terminan la cadena de herencia. Útiles por motivos de seguridad y eficiencia de
un programa, ya que no permiten crear más sub-divisiones por debajo de esta
clase.
Class. Synchronizable:
Especifica que sus métodos son sincronizados, evitando problemas con los thread
(hilo de ejecución), de forma que estos no pueden empezar a correr un método si
no ha acabado el otro.
¿Qué es una herencia?
La herencia es específica de
la programación orientada a objetos, donde una clase nueva se crea a partir de
una clase existente. La herencia (a la que habitualmente se denomina subclase)
proviene del hecho de que la subclase (la nueva clase creada) contiene las
atributos y métodos de la clase primaria. La principal ventaja de la herencia
es la capacidad para definir atributos y métodos nuevos para la subclase, que
luego se aplican a los atributos y métodos heredados.
Esta particularidad permite
crear una estructura jerárquica de clases cada vez más especializada. La gran
ventaja es que uno ya no debe comenzar desde cero cuando desea especializar una
clase existente. Como resultado, se pueden adquirir bibliotecas de clases que
ofrecen una base que puede especializarse a voluntad (la compañía que vende
estas clases tiende a proteger las datos miembro usando la encapsulación).
¿Qué es un polimorfismo?
La palabra polimorfismo
proviene del griego y significa que posee varias formas diferentes. Es uno de
los conceptos esenciales de la programación orientada a objetos. Así como la
herencia está relacionada con las clases y su jerarquía, el polimorfismo lo
está con los métodos.
En general, hay tres tipos de
polimorfismo: el polimorfismo de sobrecarga, el polimorfismo paramétrico
(también llamado polimorfismo de plantillas) y el polimorfismo de inclusión
(también llamado redefinición o subtipado).
Polimorfismo de sobrecarga
El polimorfismo de sobrecarga ocurre cuando las funciones del mismo nombre existen, con función similar, en clases que son completamente independientes unas de otras (estas no tienen que ser clases secundarias de la clase objeto). Por ejemplo, la clase complex, la clase image y la clase linkpueden todas tener la función display. Esto significa que no necesitamos preocuparnos sobre el tipo de objeto con el que estamos trabajando si todo lo que deseamos es verlo en la pantalla.Por lo tanto, el polimorfismo de sobrecarga nos permite definir operadores cuyos comportamientos varían de acuerdo a los parámetros que se les aplican. Así es posible, por ejemplo, agregar el operador + y hacer que se comporte de manera distinta cuando está haciendo referencia a una operación entre dos números enteros (suma) o bien cuando se encuentra entre dos cadenas de caracteres (concatenación).
Polimorfismo paramétrico
El polimorfismo paramétrico es la capacidad para definir varias funciones utilizando el mismo nombre, pero usando parámetros diferentes (nombre y/o tipo). El polimorfismo paramétrico selecciona automáticamente el método correcto a aplicar en función del tipo de datos pasados en el parámetro.Por lo tanto, podemos por ejemplo, definir varios métodos homónimos de addition() efectuando una suma de valores. El método int addition(int,int) devolvería la suma de dos números enteros. Por su parte, float addition(float, float) devolvería la suma de dos flotantes. En cuanto a char addition(char, char) daría por resultado la suma de dos caracteres definidos por el autor.
Una signature es el nombre y tipo (estático) que se da a los argumentos de una función. Por esto, una firma de método determina qué elemento se va a llamar.
Polimorfismo de subtipado
La habilidad para redefinir un método en clases que se hereda de una clase base se llama especialización. Por lo tanto, se puede llamar un método de objeto sin tener que conocer su tipo intrínseco: esto es polimorfismo de subtipado. Permite no tomar en cuenta detalles de las clases especializadas de una familia de objetos, enmascarándolos con una interfaz común (siendo esta la clase básica).Imagina un juego de ajedrez con los objetos rey, reina, alfil, caballo, torre y peón, cada uno heredando el objeto pieza. El método movimiento podría, usando polimorfismo de subtipado, hacer el movimiento correspondiente de acuerdo a la clase objeto que se llama. Esto permite al programa realizar el movimiento.de_pieza sin tener que verse conectado con cada tipo de pieza en particular.
¿Cómo hacer métodos (funciones) en una clase?
Un método de instancia es el que se invoca siempre sobre una instancia (objeto) de una clase. Por ejemplo p1.getNombre(); siendo p1 un objeto de tipo Persona es un método de instancia: para invocarlo necesitamos una instancia de persona. Un método de clase es aquel que puede ser invocado sin existir una instancia.
Ejemplo:
// Programa OPP01.CPP
#include <iostream>
#include <cstring>
using std::cout;
using std::endl;
// Esto define la clase CRender
class CRender {
public:
char buffer[255];
void m_Renderizar(const char *cadena);
};
/* implementar m_Renderizar() para la c;*/
void CRender::m_Renderizar(const char *cadena){
strcpy(buffer, cadena);//copia la cadena
return;
}
int main (int argc, char **argv){
// crear 2 objetos CRender
CRender render1, render2;
render1.m_Renderizar("Inicializando el objeto render1");
render2.m_Renderizar("Inicializando el objeto render2");
cout << "buffer en render1: ";
cout << render1.buffer << endl; // tenemos acceso a buffer ya que es publico.
cout << "buffer en render2: ";
cout << render2.buffer << endl;
return (0);
}
Este programa imprime:
buffer en render1: Inicializando el objeto render1
buffer en render2: Inicializando el objeto render2
Ejemplo de Funciones
Ejemplo
de paso de parámetros por valor:
Por valor:
Por valor:
#include
<iostream>
using
namespace std;
iut << "Introduce un numero
entero: ";
cin >> num;
rent invertir (int);
int main()
{ int num;
int resultado;
cosultado = invertir(num);
cout << "Numero introducido:
" << num << endl;
cout << "Numero con las cifras
invertidas: " << resultado << endl;
}
int
invertir(int num)
{
int inverso = 0, cifra;
while (num != 0)
{
cifra = num % 10;
inverso = inverso * 10 + cifra;
num = num / 10;
}
return inverso;
}
Por referencia:
#include <iostream>
using namespace std;
int funcion(int &n, int &m);
int main() {
int a, b;
a = 10; b = 20;
cout << "a,b ->" << a << ", " << b << endl;
cout << "funcion(a,b) ->" << funcion(a, b) << endl;
cout << "a,b ->" << a << ", " << b << endl;
/* cout << "funcion(10,20) ->"
<< funcion(10, 20) << endl; // (1)
es ilegal pasar constantes como parámetros cuando
estos son referencias */
return 0;
}
int funcion(int &n, int &m) {
n = n + 2;
m = m - 5;
return n+m;
}
Suscribirse a:
Comentarios (Atom)
Tablas de multiplicar
#include <iostream> using namespace std; int imprime_tabla(int opcion); int main() { int opcion=0; cout << "Tablas de...
-
Los ciclos o también conocidos como bucles, son una estructura de control esencial al momento de programar. Tanto C como C++ y la mayoría d...
-
Concepto de Problema No hay un concepto determinado del problema, depende del contexto en el que se está desarrollando. Debemos resalta...
-
La calculadora básica realiza en CodeBlocks tiene 4 funciones: sumar, restar,y potencia dividir y multiplicar. Este código fue realizado con...



