Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- /**parte 1 : Sobrecarga de funciones simples **/
- //https://docs.microsoft.com/es-es/cpp/c-language/cpp-integer-limits?view=vs-2019
- //-2147483648 a 2147483647
- int suma(int x, int y){
- cout <<"[paso por int]";
- return x + y;
- }
- float suma(float x, float y){
- cout <<"[paso por float]";
- return x + y;
- }
- bool suma(bool x, bool y){
- cout <<"[paso por bool]";
- return x || y;
- }
- /**parte 2 : templates **/
- int obtieneMayor(int x, int y){
- return ( x < y ) ? y : x;
- }
- float obtieneMayor(float x, float y){
- return ( x < y ) ? y : x;
- }
- bool obtieneMayor(bool x, bool y){
- return ( x < y ) ? y : x;
- }
- /**parte 3 : templates **/
- template <class Tipo>
- Tipo obtieneMayor(Tipo x, Tipo y){
- cout <<"[template]";
- return ( x < y ) ? y : x;
- }
- /**parte 4 : templates con arreglo**/
- template <class Tipo>
- Tipo mayorValorEnVector(Tipo v[], int n) {
- Tipo aux;
- aux = v[0];
- for(int i = 0; i < n; i++)
- aux = obtieneMayor(v[i], aux);
- return aux;
- }
- #include "exception"
- /***Parte 5 clases con templates ***/
- template <class Tipo>
- class OperacionesBasicas {
- public:
- OperacionesBasicas(){
- }
- OperacionesBasicas(Tipo _a, Tipo _b):a(_b), b(_b){
- }
- void setValorA(Tipo valor){
- a = valor;
- }
- Tipo getValorA(){
- return a;
- }
- void setValorB(Tipo valor){
- b = valor;
- }
- Tipo getValorB(){
- return b;
- }
- Tipo suma(){
- return a+b;
- }
- Tipo resta(){
- return a-b;
- }
- Tipo multiplicacion(){
- return a * b;
- }
- Tipo division(){
- if(b == 0)
- throw runtime_error("Math error: Attempted to divide by zero\n");
- return a / b;
- }
- private:
- Tipo a;
- Tipo b;
- };
- #include <iomanip>
- int main()
- {
- //parte 1
- cout <<"\nParte 1: ";
- cout <<"\nsuma: " <<suma(2000,567);
- cout << fixed;
- cout << setprecision(2); //#include <iomanip>
- cout <<"\nsuma: " <<suma(2000.0f,567.0f);
- cout <<"\nsuma: " <<suma(2000,567);
- cout <<"\nsuma: " <<suma(true, false);
- cout <<"\nParte 2: ";
- cout <<"\nobtieneMayor: " <<obtieneMayor(2000.0f,567.0f);
- cout <<"\nobtieneMayor: " <<obtieneMayor(2000,567);
- cout <<"\nobtieneMayor: " <<obtieneMayor(true, false);
- //Parte 3: omitir las funciones obtenerMayor con parámetros primitivos
- /**parte 4 : templates con arreglo**/
- int v1[6] = {4, 2, 78, 1, 2, 9};
- float v2[5] = {2.5, 2.2, 7, 0.1, 22.0};
- bool v3[3] = {1, 0, 1};
- cout <<"\nObtener mayor valor en arreglo";
- cout <<"\nV1: "<<mayorValorEnVector(v1, 6);
- cout <<"\nV2: "<<mayorValorEnVector(v2, 5);
- cout <<"\nV3: "<<mayorValorEnVector(v3, 3);
- //https://yzhong-cs.medium.com/change-editor-theme-for-code-blocks-windows-linux-mac-92e9c15cbca4
- /***Parte 5 clases con templates ***/
- OperacionesBasicas<int> o;
- o.setValorA(5);
- o.setValorB(2);
- cout <<"\nsuma: "<<o.suma();
- cout <<"\nresta: "<<o.resta();
- cout <<"\nmultiplicacion: "<<o.multiplicacion();
- cout <<"\ndivision: "<<o.division();
- return 0;
- }
Add Comment
Please, Sign In to add comment