Olio-ohjelmointi 1. valikoe 31.10.2008
HYV7SN
1. Tee ohjelma, joka kysyy opiskelijan nimen ja Olio-ohjelmointikurssin arvosanan.
Ohjelma tulostaa arvosanan tekstimuodosssa siten, että 5 = Kiitettävä, 3 ja 4 = Hyvä, 1 ja 2 = Tyydyttävä ja 0 = Hylätty.
#include <iostream>
using namespace std;
int main() {
char nimi[30];
int numero;
cout << "Nimi :";
cin.getline(nimi,30);//Tässä ei tullut virhettä jos oli cin >>
cout << "Arvosana numerona: ";
cin >> numero;
cout << "Opiskelijan " << nimi << " arvosana on ";
if (numero==5)
cout << "kiitettävä." << endl;
else if (numero==4 || numero == 3) cout << "hyvä." << endl;
else if (numero==2 || numero == 1) cout << "tyydyttävä." << endl;
else if (numero==0)
cout << "hylätty." << endl;
else
cout << "tuntematon." << endl;
return 0;
}
2. Tee viittausparametria käyttävä funktio void swap(int &,int &);
joka vaihtaa syötteenä annettujen kahden muuttujan sisällöt keskenään. Tee myös pääohjelma, jolla voit testata funktiosi toimintaa.
#include <iostream>
using namespace std;
void swap(int &,int &); //Viittausparametrit
int main() {
int eka=1,toka=2;
cout << eka << " " << toka << endl;
swap(eka,toka);
cout << eka << " " << toka << endl;
return 0;
}
void swap(int &a,int &b) {
int temp=a;
a=b;
b=temp;
}
3. Kirjoita STL:n vector-luokkaa käyttävä ohjelma, joka kysyy käyttäjältä lukuja
silmukassa. Lukujen syotto loppuu, kun syotetaan 0. Ohjelma tulostaa syötetyt luvut suuruusjärjestyksessä sekä lukujen lukumäärän.
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector <int> luvut;
vector <int>::iterator it;
int luku;
do {
cout << "Luku ?" << endl;
cin >> luku;
if (luku != 0)
luvut.push_back(luku);
} while (luku != 0);
sort(luvut.begin(),luvut.end());
for (it=luvut.begin();it!=luvut.end();it++) cout << *it << endl;
cout << "Lukuja " << luvut.size() << " kpl." << endl;
system("PAUSE");
return 0;
}
4. Tee lottorivin arvontaohjelma, joka arpoo lottorivin, eli 7 lottonumeroa ja 3 lisänumeroa. Lotossa on 39 numeroa.
#include <iostream>
#include <algorithm>
using namespace std;
const int N=39;
void tulosta(int);
int main() {
int luvut[N];
srand(unsigned(time(NULL)));
for (int i=1;i<=N;i++) luvut[i-1]=i;
random_shuffle(luvut,luvut+N);
cout << "Hyvää iltaa." << endl;
cout << "Arvotaan 7 lottonumeroa." << endl;
for_each(luvut,luvut+7,tulosta);
cout << endl << "Arvotaan 3 lisänumeroa."<< endl;
for_each(luvut+7,luvut+10,tulosta);
system("PAUSE");
return 0;
}
void tulosta(int i) {
cout << i << " ";
}