Enter password:
#include < iostream >
#include < string >
using namespace std;
class Student
{
public:
// constructor: to define the member variables
Student(); // default constructor
Student(const string& newname); // constructor with parameters
Student(const string& newname, int newage, const string& newUID);
void set_name(const string& newname); // mutator
void set_age(int newage);
string get_name() const; // accessor
int get_age() const; // accessor
string get_UID() const;
void print() const; // accessor
private:
string name;
int age;
string UID;
};
Student::Student()
{
name = "default";
age = 0;
UID = "NOT GIVEN";
}
Student::Student(const string& newname)
{
name = newname;
age = 0;
UID = "this is the second constructor!";
}
Student::Student(const string& newname, int newage, const string& newUID)
{
name = newname;
age = newage;
UID = newUID;
}
void Student::set_name(const string& newname)
{
name = newname;
}
void Student::set_age(int newage)
{
age = newage;
}
string Student::get_name() const
{
return name;
}
int Student::get_age() const
{
return age;
}
string Student::get_UID() const
{
return UID;
}
void Student::print() const
{
cout << "name : " << name << " age : " << age << " UID : " << UID << endl;
}
int main()
{
Student a1("john", 16, "1231231231");
cout << a1.get_age() << endl;
}
Enter password:
Write a function
double scalar_product(vector< double > a, vector< double > b)
that computes the scalar product of two vectors. The scalar product is
a0 b0 + a1 b1 + ... + an-1 bn−1
#include < iostream >
#include < vector >
using namespace std;
double scalar_product(vector< double > a, vector< double > b)
{
double sum = 0;
for(int i = 0; i < a.size(); ++i)
{
sum += a[i] * b[i];
}
return sum;
}
int main()
{
vector< double > a = {1, 2, 3};
vector< double > b = {2, 1, -1};
double answer = scalar_product(a,b);
cout << answer << endl; // Expect to print out 1
}
Write a function that computes the alternating sum of all elements in a vector. For example, if alternating_sum is called with a vector containing
1 4 9 16 9 7 4 9 11
then it computes
1 − 4 + 9 − 16 + 9 − 7 + 4 − 9 + 11 = −2
#include < iostream >
#include < vector >
using namespace std;
int alternating_sum(vector< int > a)
{
int sum = 0;
for(int i = 0; i < a.size(); ++i)
{
sum += pow(-1,i) * a[i];
}
return sum;
}
int main()
{
vector< int > a = {1,4,9,16,9,7,4,9,11};
int answer = alternating_sum(a);
cout << answer << endl; // Expect to print out -2
}
Write a procedure reverse that reverses the sequence of elements in a vector. For example, if reverse is called with a vector containing
1 4 9 16 9 7 4 9 11
then the vector is changed to
11 9 4 7 9 16 9 4 1
#include < iostream >
#include < vector >
using namespace std;
void reverse(vector< int >& a) // Important : I am using passing by reference here.
{
for(int i = 0; i < a.size()/2; ++i)
{
int tmp = a[i];
a[i] = a[a.size() - i];
a[a.size() - i] = tmp;
}
}
int main()
{
vector< int > a = {1,4,9,16,9,7,4,9,11};
reverse(a);
for(int i = 0; i < a.size(); ++i){
cout << a[i] << ", ";
}
cout << endl;
}
Write a function
vector< int > append(vector< int > a, vector< int > b)
that appends one vector after another. For example, if a is
1 4 9 16
and b is
9 7 4 9 11
then append returns the vector
1 4 9 16 9 7 4 9 11
#include < iostream >
#include < vector >
using namespace std;
vector< int > append(const vector< int >& a, const vector< int >& b)
{
// Create a new vector c (which is empty when initialized)
vector < int > c;
// push back all of items in a
for(int i=0; i < a.size(); ++i)
{
c.push_back(a[i]);
}
// push back all of items in b
for(int i=0; i < b.size(); ++i)
{
c.push_back(b[i]);
}
return b
}
int main()
{
vector< int > a = {1,4,9,16};
vector< int > b = {9,7,4,9,11};
vector< int > c = append(a, b);
for(int i = 0; i < a.size(); ++i){
cout << c[i] << ", ";
}
cout << endl;
}
Check the textbook to see the problem
#include < iostream >
#include < cmath > // We use fmax function
#include < vector > // We use vector function
using namespace std;
vector< int > merge(vector< int >& a, vector< int >& b)
{
vector< int > c;
int larget_num = fmax(a.size(), b.size());
for(int i=0 ; i < larget_num; ++i)
{
if(i < a.size())
{
c.push_back(a[i]);
}
if(i < b.size())
{
c.push_back(b[i]);
}
}
return c;
}
int main()
{
vector< int > a = {1,1,1,1};
vector< int > b = {3,3,3,3,3,3};
vector< int > c = merge(a,b);
for(int i=0;i < c.size(); ++i)
{
cout << c[i] << endl;
}
}
Check the textbook to see the problem
#include < iostream >
#include < vector > // We use vector function
using namespace std;
bool equals(vector< int >& a, vector< int >& b)
{
if(a.size() != b.size())
{
return false;
}
for(int i=0; i < a.size(); ++i)
{
if(a[i] != b[i])
{
return false;
}
}
return true;
}
int main()
{
vector< int > a = {1,1,1,1};
vector< int > b = {3,3,3,3,3,3};
bool same = equal(a,b);
cout << same << endl; // will return false
}
Check the textbook to see the problem
#include < iostream >
#include < vector > // We use vector function
using namespace std;
bool equals(vector< int >& a, vector< int >& b)
{
if(a.size() != b.size())
{
return false;
}
for(int i=0; i < a.size(); ++i)
{
if(a[i] != b[i])
{
return false;
}
}
return true;
}
void permutation(vector< int >& a) // Here you need to put & because you need to modify a vector at the end
{
vector< int > c; // initialize a new vector c
for(int i=0; i < a.size(); ++i)
{
c.push_back(a[(i+3) % a.size()]);
}
a = c;
}
bool same_elements(vector< int > a, vector< int > b)
{
// check if two vectors have the same number of items
if(a.size() != b.size())
{
return false;
}
for(int i=0; i < a.size(); ++i)
{
permutation(b);
if(equal(a,b) == true)
{
return true;
}
}
return false;
}
int main()
{
vector< int > a = {1,2,3,4};
vector< int > b = {4,1,2,3};
bool same = same_elements(a,b);
cout << same << endl; // will return true
}
Check the textbook to see the problem
#include < iostream >
#include < vector > // We use vectors
using namespace std;
// This function will check if an integer n is in a vector a
// Suppose a = {1,2,3} and n = 2. Then check(n,a) will return true.
bool check(int n, vector< int > a)
{
for(int i=0; i < a.size(); ++i)
{
// if one of items in a is equal to n then return true.
if(a[i] == n)
{
return true;
}
}
// if none of them equal to n then return false.
return false;
}
void remove_duplicates(vector< int >& a)
{
// initialzie a new vector c
vector< int > c;
for(int i=0; i < a.size(); ++i)
{
if(check(a[i], c) == false) // check if an integer a[i] is in a vector c. If it doesn't then push back to c.
{
c.push_back(a[i]);
}
}
a = c;
}
int main()
{
vector< int > a = {1,1,1,5,5,5,2,2,6,6,1,2,6};
remove_duplicates(a);
// This will print out 1, 5, 2, 6,
for(int i=0; i < a.size(); ++i)
{
cout << a[i] << ", ";
}
cout << endl;
}