Re: i need help:""<
On 2007-09-14 15:06, CuTe_Engineer wrote:
hii,
i have cs assignment i tried to solve it but i still have many
errors , plzz help mee :"< it`s not cheating becuz i`ve tried & wrote
the prog. i just wanna you to show me my mistakes
#these are the operations
[a, b] + [c, d] = [a+c, b+d],
[a, b] - [c, d] = [a-d, b-c],
[a, b] * [c, d] = [min(ac, ad, bc, bd), max(ac, ad, bc, bd)],
1/[a, b] = [1/b, 1/a] only if 0 not in [a,b].
& the Question is to Write the class interval that has lower and upper
as data members, set, get, print, and constructors as member
functions. The class also has the four member functions add, subtract,
multiply, and divide.
Implement the class members, and write a driver that declares two
objects of the class interval and prints the results of the four
operations on the two declared objects.
Sample input / output:
Enter the lower and upper limits of the first interval: 2 8
[2, 8]
Enter the lower and upper limits of the second interval: 3 6
[3, 6]
The sum of the two intervals is: [5, 14]
The subtraction of the two intervals is: [-4, 5]
The multiplication of the two intervals is: [6, 48]
The reciprocal of the first interval is: [0.5, 0.125]
this is my prog
#include<iostream>
#include<string>
using namespace std;
class interval
{
int lower;
int upper;
public:
interval(int l, int u);
Do not forget the constructor.
void set(int,int)const;
Not const, see below for explanation.
void get (int,int);
Will not work, see below.
void print();
void print() const;
void addtion(int,int,int,int);
void add(const interval&) const;
void subtract(int,int,int,int);
void subtract(const interval&) const;
void mutiplty(int,int,int,int);
void multiply(const interval&) const;
void divide(int,int,int,int);
void divide(const interval&) const;
};
int main()
{
interval first,second;
Remove those, you (now) have a constructor, make sure to also use it.
int l,u;
cout<<"Enter the lower and the upper limits of the first interval";
cin >> l >> u;
interval first(l, u);
cout<<"["<<first.l<<","<<first.u<<"]"<<endl;
first.set(l,u);
No! 1) they are called lower and upper, not l and u, 2) they are
private, you should never change them unless through the usage of member
functions, 3) you should use print() to show their value.
Same goes for this the second one.
print();
print() is a member, you need an object to call it.
return 0;
}
interval::interval(int l, int u)
{
// Insert code here, unless you know about initialisation lists in
// which case you should use them.
}
void interval::set(int,int)const
Cannot use const here, it indicates that this function does not make any
changes to the object, which is obviously does.
{
lower=l;
upper=u;
}
void interval::get(int,int)
No, this does not work, you need to pass them as references, or return a
struct containing their values or make get_upper() and get_lower()
functions.
void interval::addtion(int,int,int,int)
You should pass another interval as parameters
void interval::addition(const interval&) const
{ int add1,add2;
add1=first.l+second.l;
add2=first.u+second.u;
}
And you should use the constructor to create the new object.
The same goes for the rest of the functions.
void print();
void interval::print() const
{
cout<<"The sum of the two intervals is:
[ "<<add1<<","<<add2<<"]"<<endl;
cout<<"The subtraction of the two intervals is:
[ "<<sub1<<","<<sub2<<"]"<<endl;
cout<<"The mutiplication of the two intervals is:
[ "<<mul1<<","<<mul2<<"]"<<endl;
cout<<"The reciprocal of the first interval is:
[ "<<d1<<","<<d2<<"]"<<endl;
}
And what are add1 and add2? All those operations should be performed in
main() and it should look something like
cout << "The sum of the two intervals is: ";
(first + second).print();
I hope you have much time left until you need to turn the assignment in
because you have obviously not been paying attention during the lessons
(or your instructor is *really* bad).
--
Erik Wikstr?m