Re: i need help:""<
On Sep 15, 5:49 am, Erik Wikstr=F6m <Erik-wikst...@telia.com> wrote:
On 2007-09-14 23:40, CuTe_Engineer wrote:
On Sep 14, 8:47 pm, Erik Wikstr=F6m <Erik-wikst...@telia.com> wrote:
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 upp=
er
as data members, set, get, print, and constructors as member
functions. The class also has the four member functions add, subtrac=
t,
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 memb=
er
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 a=
ny
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=F6m- Hide quoted text -
- Show quoted text -
Erik thanks for helping me you are soo kind by the way my teacher is
not *really* bad i like him but maybe there is some thing wrong with
me loOol
ok now i understood your explaination but not everthing :"
can you show me example of how to use the constructor & when should we
use it ? i believe it is used to assgin values to the members in
class ..
void interval::addition(const interval&) const
Constructors are used when you create a new object. When an object is
created a constructor will be run, if you have not declared any
constructors the compiler will create a default one for you. Often when
you create an object you know what values you want it to have, so you
can pass those to the constructor. To create an interval between 3 and 7
use the constructor like this:
interval myInterval(3,7);
This is much better (cleaner, more efficient, etc.) than the alternative:
interval myInterval;
myInterval.set(3,7);
--
Erik Wikstr=F6m- Hide quoted text -
- Show quoted text -
this is my new prog. i hope it`s better now
you told that we shouldn`t put all these things in the function print
but i didn`t understand what should we do with it if we didn`t placed
it in print " what`s the benefit of print??"
is my constructor ok now?
sorry i don`t have the software at home to compile it so i can see my
mistakes.
#include<iostream>
#include<string>
using namespace std;
class interval
{
public:
interval();
interval(int ,int );
void set(int,int);
void print() const;
void addittion(const interval&) const;
void subtract(const interval&) const;
void multiply(const interval&) const;
void divide(const interval&) const;
void set(int,int);
void get(int&,int&);
private:
int lower;
int upper;
};
int main()
{
interval interval1,
interval interval2(3,6),
cout<<"Enter the lower and the upper limits of the first interval";
cin>>lower>>upper;
interval1.set(2,8)
cout<<endl;
cout<<"["<<lower<<","<<upper<<"]"<<endl;
cout<<"Enter the lower and the upper limits of the second
interval";
cin>>lower>>upper;
interval2.set(3,6)
cout<<endl;
cout<<"["<<lower<<","<<upper<<"]"<<endl;
interval.print();
return 0;
}
interval::interval()
{
lower=2
upper=8
}
interval::interval(int lower, int upper)
{
lower=3;
upper=6;
void interval::set(int,int)
{
lower=l;
upper=u;
}
void interval::get(int&,int&)const
{
lower=l;
upper=u;
}
void interval::addition(int,int,int,int)
{
int add1,add2;
add1=interval1.lower+interval2.lower;
add2=interval1.upper+interval2.upper;
}
void interval::subtract(int,int,int,int)
{
int sub1,sub2;
sub1=interval1.lower-interval2.upper;
sub2=interval1.upper-interval2.lower;
}
void interval::mutiplty(int,int,int,int);
{
int ac,ad,bc,bd,mul1,mul2;
ac=interval1.lower*interval2.second;
ad=interval1.lower*interval2.upper;
bc=interval1.upper*interval2.lower;
bd=interval1.upper*interval2.upper;
mul1=min(ac,ad,bc,bd);
mul2=max(ac,ad,bc,bd);
}
void divide(int,int,int,int);
{
int d1,d2;
if(interval1.lower==0&&interval1.upper==0)
cout<<"error"<<endl;
else
d1=1/interval1.lower;
d2=1/interval1.upper;
}
void print();
{
cout<<"The sum of the two intervals is:"<<"["<< add1 <<","<< add2
<<"]"<<endl;
cout<<"The subtraction of the two intervals is:"<<"["<< sub1
<<","<< sub2 <<"]";<<endl;
cout<<"The multiplication of the two intervals is:"<<"["<< mul1
<<","<< amul2 <<"]"<<endl;
cout<<"The reciprocal of the first interval is:"<<"["<< d1 <<","<<
d2 <<"]"<<endl;
}