Zad. 1. Napisz program, który wykona zamianę wartości zmiennych typu całkowitego:
Rozwiązanie
Załóżmy, że nasze zmienne nazywają się a i b.
Niech a = 3 i b = 5.
pod zmienną pomocniczą pom zapisujemy to co znajduje się pod zmienną a
pom = a
następnie wartość zmiennej a nadpisujemy wartością zmiennej b,
a = b
w ostatnim kroku, nadpisujemy wartość zmiennej b wartością zmiennej pom, która przechowuje wartość początkową zmiennej a:
b = a
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int a, b, pom;
cout<<"Podaj wartość zmiennej a: ";
cin>>a;
cout<<"Podaj wartość zmiennej b: ";
cin>>b;
system("cls");
cout<<"Przed zamianą: a = "<<a<<", b = "<<b<<endl;
//zamiana wartości zmiennych
pom = a;
a = b;
b = pom;
cout<<"Po zamianie: a = "<<a<<", b = "<<b<<endl;
system("PAUSE");
return 0;
}
Niech a = 3 i b = 5.
a = a - b (a = 3 - 5 = - 2)
b = b + a (b = 5 + (-2) = 3)
a = b - a (b = 3 - (-2) = 5)
Taki sposób zamiany wartości zmiennych jest nieefektywny, ponieważ potrzebuje większej ilości operacji arytmetycznej (w pierwszym przypadku nie wykonuje się żadnej operacji arytmetycznej).
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int a, b;
cout<<"Podaj wartość zmiennej a: ";
cin>>a;
cout<<"Podaj wartość zmiennej b: ";
cin>>b;
system("cls");
cout<<"Przed zamianą: a = "<<a<<", b = "<<b<<endl;
//zamiana wartości zmiennych
a = a - b;
b = b + a;
a = b - a;
cout<<"Po zamianie: a = "<<a<<", b = "<<b<<endl;
system("PAUSE");
return 0;
}