Autor Tema: Simple suma en c  (Leído 4386 veces)

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Simple suma en c
« Respuesta #15 en: 19 de Noviembre de 2007, 23:24:19 pm »
Lo coloreo con la opcion de colorear PHP.
Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Comunidad PHPeros

Re: Simple suma en c
« Respuesta #15 en: 19 de Noviembre de 2007, 23:24:19 pm »

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: Simple suma en c
« Respuesta #16 en: 20 de Noviembre de 2007, 09:27:46 am »
Exacto ;)
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado C-ChacK

  • PHPer@ Fijo
  • ***
  • Mensajes: 147
  • Karma: 3
  • --] chacKos [--
    • Ver Perfil
Re: Simple suma en c
« Respuesta #17 en: 20 de Noviembre de 2007, 18:23:33 pm »
Ah ok jeje!! Yo tambien pondre algun ejemplo por aquí para ir aprendiendo poco a poco C++!!

Desconectado devesa

  • PHPerit@
  • *
  • Mensajes: 31
  • Karma: 4
    • Ver Perfil
Re: Simple suma en c
« Respuesta #18 en: 21 de Noviembre de 2007, 20:35:35 pm »
Una vez compilado el archivo, no me lo abre. ???

Desconectado C-ChacK

  • PHPer@ Fijo
  • ***
  • Mensajes: 147
  • Karma: 3
  • --] chacKos [--
    • Ver Perfil
Re: Simple suma en c
« Respuesta #19 en: 22 de Noviembre de 2007, 16:47:45 pm »
Si lo estas compilando con el dev-cpp, si te fijas ahi un boton para "compilar", otro para "ejecutar", y otro para "compilar y ejecutar", o puedes ir directamente al archivo creado que tiene formato .exe y ejecutarlo, ten en cuenta que el ejemplo no tiene ninguna instruccion para que se pare, por lo tanto una vez introduzcas los dos numeros se mostrara el resultado pero no te dara tiempo de verlo ya que se cerrara el programa, puedes ejecutarlo por la terminal o poner al final system("PAUSE") (creo que era asi). un saludo

Desconectado C-ChacK

  • PHPer@ Fijo
  • ***
  • Mensajes: 147
  • Karma: 3
  • --] chacKos [--
    • Ver Perfil
Re: Simple suma en c (Orientada a objetos)
« Respuesta #20 en: 23 de Noviembre de 2007, 20:38:02 pm »
Bueno os voy a poner el mismo ejemplo de la suma en c, pero orientado a objetos. Primero debemos crear un archivo con la extension .h que sera donde estará la definicion de la clase:

suma.h
Código: [Seleccionar]
#ifndef SUMA_H
#define SUMA_H

#include <iostream>

using namespace std;

class Suma
{
  private:
    int _Valor1;
    int _Valor2;
    int _Resultado;

  public:
    Suma();
    void FijarValores(int valor1, int valor2);
    void FijarResultado(int resultado);
    int ObtenerValor1() const;
    int ObtenerValor2() const;
    int ObtenerResultado() const;
    void Sumar();
};

#endif

Ahora debemos crear un archivo .c que contendra la implementacion y el programa principal.

suma.c
Código: [Seleccionar]
#include <iostream>
#include "suma.h"

using namespace std;

Suma::Suma() {}

void Suma::FijarValores(int valor1, int valor2) {
  _Valor1 = valor1;
  _Valor2 = valor2;
}

void Suma::FijarResultado(int resultado) {
  _Resultado = resultado;
}

int Suma::ObtenerValor1() const {
  return _Valor1;
}

int Suma::ObtenerValor2() const {
  return _Valor2;
}

int Suma::ObtenerResultado() const {
  return _Resultado;
}

void Suma::Sumar() {
  int resultado = ObtenerValor1() + ObtenerValor2();
  FijarResultado(resultado);
}

int main() {
  cout << "Sumar dos numeros" << endl;
  cout << "Valor 1: ";
  int v1;
  cin >> v1;
  cout << "Valor 2: ";
  int v2;
  cin >> v2;
  Suma S;
  S.FijarValores(v1, v2);
  S.Sumar();
  cout << "Resultado de la suma: " << S.ObtenerResultado() << endl;
  return 0;
}
Si alguien no entiende algo que lo pregunte que yo contestare  ;)
« Última modificación: 23 de Noviembre de 2007, 20:43:00 pm por C-ChacK »

Desconectado Revancha

  • PHPero Avanzado
  • ****
  • Mensajes: 375
  • Karma: 22
  • Sexo: Masculino
    • Ver Perfil
Re: Simple suma en c
« Respuesta #21 en: 23 de Noviembre de 2007, 21:43:04 pm »
podrías explicar el código :P

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: Simple suma en c
« Respuesta #22 en: 23 de Noviembre de 2007, 23:51:35 pm »
Si C-ChacK explicalo paso a paso si no es mucho pedir ;)
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Simple suma en c
« Respuesta #23 en: 24 de Noviembre de 2007, 11:49:38 am »
Esta orientado a objetos pero usas algunas funciones innecesarios, muchas innecesarias.
Poniendo como public Valor1 y Valor2, sera mucho mas facil obtener los datos y modificarlos, y solo se necesitaria una funcion constructura, una para obtener el resultado y ya esta.

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado C-ChacK

  • PHPer@ Fijo
  • ***
  • Mensajes: 147
  • Karma: 3
  • --] chacKos [--
    • Ver Perfil
Re: Simple suma en c
« Respuesta #24 en: 24 de Noviembre de 2007, 16:16:13 pm »
Bueno aquí pongo el código explicado:

suma.h
Código: [Seleccionar]
#ifndef SUMA_H                                  // Definimos el archivo .h
#define SUMA_H

#include <iostream>                             // Incluimos la libreria iostream

using namespace std;                            // Usamos las rutinas estandar, ej: cout, endl...

class Suma                                      // Definimos la clase Suma
{
  private:                                      // Atributos privados de la clase
    int _Valor1;                                // Variable de tipo entero que almacena el valor del primer numero
    int _Valor2;                                // Variable de tipo entero que almacena el valor del segundo numero
    int _Resultado;                             // Variable de tipo entero que almacena el valor del resultado

  public:                                       // Metodos de la clase
    Suma();                                     // Constructor por defecto
    void FijarValores(int valor1, int valor2);  // Funcion que se encarga de fijar los valores de los valores a sumar
    void FijarResultado(int resultado);         // Funcion que se encarga de fijar el resultado final
    int ObtenerValor1() const;                  // Funcion que devuelve el valor1
    int ObtenerValor2() const;                  // Funcion que devuelve el valor2
    int ObtenerResultado() const;               // Funcion que devuelve el resultado
    void Sumar();                               // Funcion que suma los dos valores
};

#endif                                          // Cerramos la definicion de la clase


suma.c
Código: [Seleccionar]
#include <iostream>
// Incluimos la definicion de nuestra clase, en este caso la clase Suma
#include "suma.h"

using namespace std;

// Constructor por defecto
Suma::Suma() {
  FijarValores(0, 0);  // Inicializamos a 0
  FijarResultado(0);   // inicializamos a 0
}

// Funcion a la que se le pasa por parametro los valores 1 y 2 para fijarlos en los atributos privados
void Suma::FijarValores(int valor1, int valor2) {
  _Valor1 = valor1;
  _Valor2 = valor2;
}

// Funcion a la que se le pasa por parametro el valor del resultado para fijarlo en el atributo privado
void Suma::FijarResultado(int resultado) {
  _Resultado = resultado;
}

// Funcion que devuelve el valor1
// Es una funcion constante porque no vamos a modificar el valor
int Suma::ObtenerValor1() const {
  return _Valor1;
}

// Funcion que devuelve el valor2
// Es una funcion constante porque no vamos a modificar el valor
int Suma::ObtenerValor2() const {
  return _Valor2;
}

// Funcion que devuelve el resultado
// Es una funcion constante porque no vamos a modificar el valor del resultado
int Suma::ObtenerResultado() const {
  return _Resultado;
}

// Funcion que suma los dos valores y los asigna en una variable creada dentro de la funcion
// Luego fijamos el resultado en el atributo privado
void Suma::Sumar() {
  int resultado = ObtenerValor1() + ObtenerValor2();
  FijarResultado(resultado);
}

// Programa principal de tipo entero (int) que devuelve un cero (return 0)
int main() {
  cout << "Sumar dos numeros" << endl;
  cout << "Valor 1: ";
  int v1;                  // Definimos una variable para el primer resultado
  cin >> v1;               // Le asignamos el valor 1;
  cout << "Valor 2: ";
  int v2;                  // Definimos una variable para el primer resultado
  cin >> v2;               // Le asignamos el valor 2;
  Suma S;                  // Creamos un objeto de la clase Suma
  S.FijarValores(v1, v2);  // Fijamos los valores
  S.Sumar();               // Llamada a la funcion para sumar
  cout << "Resultado de la suma: " << S.ObtenerResultado() << endl;  // Mostramos el resultado
  return 0;
}


Claramente se podria hacer todo con una funcion constructora, pero cuando haya que hacer una programa mucho mas grande tan solo con la funcion del constructor no se podra hacer, lo he hecho asi para hacernos una idea de como funciona la programacion orientada a objetos y poco a poco ir desarrollando programas mas grandes.  ;)

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Simple suma en c
« Respuesta #25 en: 24 de Noviembre de 2007, 23:22:48 pm »
Solo un apunte...
Código: [Seleccionar]
#ifndef SUMA_H
Eso en realidad lo que hace es comprobar si esta definido SUMA_H, y si no lo esta, ejecuta el codigo entre eso y #endif.
Como entre #ifndef y #endif defines SUMA_H con #define SUMA_H, consigues que este archivo solo se incluya una vez en todo el documento, evitando las mismas definiciones una y otra vez, que devuelven tantos errores.

Tu codigo esta muy bien, es bueno empezar a usar la POO :P
Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado C-ChacK

  • PHPer@ Fijo
  • ***
  • Mensajes: 147
  • Karma: 3
  • --] chacKos [--
    • Ver Perfil
Re: Simple suma en c
« Respuesta #26 en: 25 de Noviembre de 2007, 19:20:37 pm »
Si tienes razon TLX pero supe explicarme, jeje! Al fin y al cabo la mayoria de aplicaciones estan orientadas a objetos por no decir todas!! Poco a poco pondre algun ejemplo sencillo de POO (Programación Orientada a Objetos).  ;)

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: Simple suma en c
« Respuesta #27 en: 25 de Noviembre de 2007, 20:26:46 pm »
C-ChacK para reconocer tu esfuerzo te doy un karma+ y espero ese tuto de POO :P

Saludos
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado C-ChacK

  • PHPer@ Fijo
  • ***
  • Mensajes: 147
  • Karma: 3
  • --] chacKos [--
    • Ver Perfil
Re: Simple suma en c
« Respuesta #28 en: 25 de Noviembre de 2007, 20:39:43 pm »
Gracias! Se agradece el karma, la verdad que ultimamente no estoy mucho por aquí, estoy liado con las clases y eso pero bueno siempre hay algun momento para escribir algo jeje!! Un saludo!

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: Simple suma en c
« Respuesta #29 en: 26 de Noviembre de 2007, 00:02:22 am »
jeje no hay de que ;)
Tu tranquilo... tomate tu tiempo... además esta semana me voy a ausentar de manera considerable... tengo los examenes trimestrales con el temario desde setiembre hasta ahora de todas las asignaturas :S
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011