Buenas, he estado buscando por internet pero no me queda muy claro, alguien sabria decirme un ejemplo de una clase y su invariante sin codificarlo simplemente describirlo. Y definicion de aserciones en c++?
Gracias. Un saludo
Cita de: alvaro22 en 23 Enero 2014, 16:05 PM
Buenas, he estado buscando por internet pero no me queda muy claro, alguien sabria decirme un ejemplo de una clase y su invariante sin codificarlo simplemente describirlo. Y definicion de aserciones en c++?
Gracias. Un saludo
que????? invariantes???? no te referiras a constantes???? un ejemplo de una clase es cualquier cosa: por ejemplo:
/*
Desarrollar un programa que permita registrar los datos de una serie
de productos que se venden en un almacén (código, nombre, marca, precio).
Se desea listar los productos cuyo precio sea mayor a 5000 Bsf. y aquellos
cuyo precio sea menor o igual a 5000 Bsf.
*/
#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
class producto {
public:
//atributos
float precio;
int codigo;
string marca, nombre;
//procedimientos
void leer();
void imprimir();
int precios(int precio);
};
int producto::precios(int precio)
{
if(precio <= 5000)
{
return 0;
}
else // precio > 5000
{
return 1;
}
}
void producto :: leer(){
cout<<"introduzca el nombre del producto: ";
cin>>nombre;
//cout<<"introduzca el codigo del producto: ";
//cin>>codigo;
cout<<"introduzca el precio del producto: ";
cin>>precio;
//cout<<"introduzca la marca del producto: ";
//cin>>marca;
}
void producto :: imprimir(){
//cout << "PRECIOS MENORES O IGUALES A 5000" << endl << endl;
if(precios(precio) == 0) // es menor o igual a 5000
{
cout << "Nombre del producto: " << nombre << endl;
cout << "Precio del producto: " << precio << endl;
}
else if (precios(precio) == 1) // es mayor a 5000
{
cout << "Nombre del producto: " << nombre << endl;
cout << "Precio del producto: " << precio << endl;
cout << "El precio es mayor a 5000." << endl << endl;
}
}
int main()
{
int op;
producto auto1;
auto1.leer();
auto1.imprimir();
getchar();
return(0);
}
Es el ejercicio de un chico que posteo hace poco una duda, ahi tienes una clase y su funcionamiento, pero pues no se sabe que es lo que pides, así que no se como ayudarte.
Cita de: dato000 en 23 Enero 2014, 17:03 PMinvariantes???? no te referiras a constantes?
Invariant (computer science) (http://en.wikipedia.org/wiki/Invariant_%28computer_science%29)
Class invariant (http://en.wikipedia.org/wiki/Class_invariant)
Un saludo
Pues no lo termino de entender...se trata de como los posibles valores verdaderos de una sentencia, validos para empezar y terminar una función?? en las clases es algo aún más confuso...
Buenas, gracias por las respuestas, si algo así pero no lo comprendo lo he leido en español y no lo consigo entender,se supone que cada clase puede tener su invariante... :S