Winter 2020

PIC 10A: Introduction to Programming

Discussion Section 3A

Wonjun Lee



Week7

Tuesday

Exercise P4.2.

Write a procedure void sort2(int& a, int& b) that swaps the values of a and b if a is greater than b and otherwise leaves a and b unchanged. For example,

int u = 2;

int v = 3;

int w = 4;

int x = 1;

sort2(u, v); // u is still 2, v is still 3

sort2(w, x); // w is now 1, x is now 4

Solution
#include < iostream >

using namespace std;

void sort2(int& a, int& b)
{
  if(a>b)
  {
    int tmp = a;
    a = b;
    b = tmp;  
  }
}

int main()
{
  int u = 2;
  int v = 3;
  int w = 4;
  int x = 1;
  sort2(u,v);
  sort2(w,x);

  cout << "u : " << u << endl;
  cout << "v : " << v << endl;
  cout << "w : " << w << endl;
  cout << "x : " << x << endl;
}

Thursday

Exercise P4.2.

Write a procedure sort3(int& a, int& b, int& c) that swaps its three inputs to arrange them in sorted order.

For example,

int v = 3;

int w = 4;

int x = 1;

sort3(v, w, x); // v is now 1, w is now 3, x is now 4

Hint: Use sort2 of Exercise P4.2.

Solution
#include < iostream >

using namespace std;

void sort2(int& a, int& b)
{
  if(a>b)
  {
    int tmp = a;
    a = b;
    b = tmp;  
  }
}

void sort3(int& a, int& b, int& c)
{
  sort2(b,c);
  sort2(a,c);
  sort2(a,b);
}

int main()
{
  int v = 3;
  int w = 4;
  int x = 1;
  sort3(v, w, x);
  
  cout << "v : " << v << endl;
  cout << "w : " << w << endl;
  cout << "x : " << x << endl;
}