• Ei tuloksia

Olio-ohjelmointi 1. Välikoe 16.10.2009 HYV8SN Ratkaisut

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "Olio-ohjelmointi 1. Välikoe 16.10.2009 HYV8SN Ratkaisut"

Copied!
3
0
0

Kokoteksti

(1)

Olio-ohjelmointi 1. Välikoe 16.10.2009 HYV8SN Ratkaisut

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() {

string as,nimi;

int num;

cout << "Nimi ?" << endl;

getline(cin,nimi);

cout << "Numero ?" << endl;

cin >> num;

cout << "Arvosanasi on ";

switch(num) {

case 5:

as="kiitettävä";

break;

case 4:

case 3:

as="hyvä";

break;

case 2:

case 1:

as="tyydyttävä";

break;

case 0:

as="hylätty";

break;

default:

as="tuntematon !";

break;

}

cout << "Opiskelijan " << nimi << " arvosana on " << as << endl;

return 0;

}

(2)

2. Tee ohjelma, joka kysyy käyttäjältä merkkijonon ja tutkii onko se palindromi, eli sama merkkijono nurinpäin (esimerkiksi "saippuakauppias").

#include <iostream>

#include <algorithm>

using namespace std;

int main() {

string s1;

cout << "Anna merkkijono" << endl;

cin >> s1;

string s2=s1;///Sijoitetaan alkup. merkkijono s2:een reverse(s1.begin(),s1.end());///Käännetään s1

if (s1 == s2)

cout << "On palindromi" << endl;

else

cout << "Ei ole palindromi" << endl;

return 0;

}

3. Mitkä ovat muuttujien 1, 2, 3, 4 ja 5 arvot a. Ensimmäisen funktiokutsun jälkeen b. Toisen funktiokutsun jälkeen ?

(0.5 p / oikea vastaus). Vihje: Muuttujalla ei välttämättä ole arvoa ollenkaan…

Muuttuja 1 on globaali muuttuja. Se näkyy funktioon f. Arvoa kasvatetaan funktiossa f lauseella ::i++; Ensimmäisen kutsun jälkeen arvo on siis 1 ja toisen kutsun jälkeen 2.

Muuttuja 2 on pääohjelmassa määritelty paikallinen muuttuja. Muuttuja viedään viittausparametrin kautta funktioon f(&i) , joten funktio pystyy muuttamaan sen arvoa. Ensimmäisen kutsun jälkeen arvo on 2 ja toisen 3.

Muuttuja 3 on funktiossa f määritelty paikallinen muuttuja. Sitä ei ole olemassa pääohjelman suorituksen aikana, joten sillä ei ole arvoa kummassakaan tapauksessa.

Muuttuja 4 on funktiossa f määritelty staattinen muuttuja. Se on olemassa koko ohjelman suorituksen ajan kun se on ensimmäisen funktiossa käynnin

yhteydessä luotu. Funktiossa sen arvoa kasvatetaan, joten ensimmäisen kutsun jälkeen arvo on 4 ja toisen jälkeen 5.

Muuttuja 5 on itse asiassa pääohjelman muuttujan i (Muuttuja 2) aliasnimi, koska kyseessä on viittausparametrillinen funktiokutsu. Muuttuja k on kuitenkin

funktion paikallinen muuttuja, joten sillä ei ole arvoa pääohjelmassa.

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);

void tayta_taulukko(int &);

int main()

(3)

{

int luvut[N];

srand(unsigned(time(NULL)));

for_each(luvut,luvut+N,tayta_taulukko);

cout << endl << endl;

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);

return 0;

}

void tayta_taulukko(int &i) {

static int n;

//Ensin kasvatetaan n, sitten vasta sijoitus.

//Nyt lähtee 1:stä eikä nollasta.

i=++n;

}

void tulosta(int i) {

cout << i << " ";

}

Viittaukset

LIITTYVÄT TIEDOSTOT

The Extrinsic Object Construction must have approximately the meaning'the referent ofthe subject argument does the activity denoted by the verb so much or in

Kahta

jolle syötetään kaksi kokonaislukua, ja joka palauttaa toden, jos luvut ovat samat, ja epätoden, jos ne eivät ole samoja.. Tee myös pääohjelma, jonka avulla voit testata

Tee ohjelma, joka sisältää laatikko-luokan. Luokan tietojäseninä ovat laatikon syvyys, leveys ja korkeus. Toteuta luokkaan muodostin, jonka avulla olio voidaan alustaa. Toteuta

Arvoa kasvatetaan funktiossa f lauseella ::i++; Ensimmäisen kutsun jälkeen arvo on siis 1 ja toisen kutsun jälkeen 2.. Muuttuja 2 on pääohjelmassa määritelty

Tee luokkiin tarvittavat muodostimet sekä metodit, joiden avulla voit laskea

Tytin tiukka itseluottamus on elämänkokemusta, jota hän on saanut opiskeltuaan Dallasissa kaksi talvea täydellä

Explain the reflection and transmission of traveling waves in the points of discontinuity in power systems2. Generation of high voltages for overvoltage testing