lista4.pdf
(
57 KB
)
Pobierz
106421460 UNPDF
UniwersytetZielonog
ó
rski
InstytutSterowaniaiSystem
ó
wInformatycznych
ProgramowanieobiektowewC++
Lista4
Wstƒpdoklas
1
‚
wiczenia
1.Niechbƒdziedanytypz“o»onyreprezentuj¡cyliczbƒ
zespolon¡:
Zrealizowa¢nastƒpuj¡ce¢wiczenia:
(a)zde
niowa¢konstruktordomniemany,
(b)prze“adowa¢operator
-
wwersjijednoargu-
mentowejorazdwuargumentowej,
(c)prze“adowa¢operatorpreinkrementacjioraz
postinkrementacji,
(d)prze“adowa¢operatorynewidelete,takaby
prowadzi¢statystykƒzu»ywanejpamiƒci.
classfLiczbaZespolona{
private:
floatRe,Im;
public:
//uzupe“ni¢wew“asnym
//zakresie;-)
};
4.Przeanalizowa¢poni»szyfragmentkodu
Zadeklarowa¢izde
niowa¢:
#include<iostream.h>
classsamochod{
intfiltr_powietrza;
public:
intakumulator,zbiornik_paliwa;
//...
(a)konstruktorinicjalizuj¡cy(zastosowa¢listƒini-
cjalizacyjn¡),
(b)konstruktordomniemany,
(c)metodƒdodajumo»liwiaj¡c¡dodaniedw
ó
ch
liczbzespolonych,
(d)funkcjƒoperatorow¡
+
wykonuj¡c¡zadaniez
punktu(1c)wwersjiglobalnejorazjakosk“a-
dow¡klasy,
(e)funkcjƒoperatorow¡
+
wykonuj¡c¡dodawa-
niewarto–cirzeczywistejdoliczbyzespolo-
nej,takabymo»liwaby“anotacjaprzemien-
na(adok“adniej:
oat+fLiczbaZespolonaoraz
fLiczbaZespolona+
oat),zde
niowa¢obiekty
inapisa¢przyk“adowewywo“aniafunkcji.
};
samochodA,B;
int*wsk1;
intsamochod::*wsk2=&samochod::akumulator;
voidmain(){
wsk1=&(A.akumulator);
cout<<*wsk1<<A.*wsk2;
wsk1=&(B.akumulator);
cout<<*wsk1<<B.*wsk2;
//...
}
2.Danyjestprzyk“adklasy:
Oceni¢poprawno–¢instrukcji:
classwizytowka{
public:
char*nazw;char*imie;char*tel;
(a)wsk1=&(B.zbiornik_paliwa);
(b)wsk1=&(B.filtr_powietrza);
(c)wsk2=samochod::filtr_powietrza;
(d)wsk2++;
(e)wsk1++;
};
Zadeklarowa¢izde
niowa¢:
5.Okre–li¢poprawno–¢nastƒpuj¡cychdeklaracji,po-
da¢r
ó
wnie»przyczynydlakt
ó
rychs¡poprawneb¡d„
nie?
(a)konstruktorinicjalizuj¡cy(domniemany),
(b)konstruktorkopiuj¡cy,
(c)operatorprzypisania
=
umo»liwiaj¡cyskopio-
waniezawarto–ciobiektu,
(d)destruktor.
(a)f(inti,intj,intk=0);f(inti,intj);
(b)f(inti,charj);f(intj);
(c)f(constintk);f(intk);
(d)f(constint&k);f(int&k);
Zde
niowa¢obiektyinapisa¢przyk“adowewywo“a-
niafunkcji.
6.Okre–lonyzosta“zal¡»eknastƒpuj¡cejklasywektor
zde
niowanajako
3.Dlanastƒpuj¡cejstruktury:
classMacierz2D{
staticintpamiec;
int(*T)[n][m];
classwektor{
intx,y,z;
public:
//...pozosta“yinterfejs
};
};
Doda¢implementacjƒnastƒpuj¡cychelement
ó
w:
8.Niechbƒdziedanaklasamacierzzde
niowananastƒ-
puj¡co:
(a)konstruktordomniemany,
(b)konstruktorinicjuj¡cyzlist¡inicjalizacyjn¡,
(c)sk“adowefunkcjeoperatorowe
+
,
,
*
umo»-
liwiaj¡cedodawanie,odejmowanieimno»enie
wektor
ó
w,
(d)funkcjezpunktu(c)wwersjiglobalnej.
classmacierz{
intliczba_wierszy,liczba_kolumn;
public:
float*tablica;
...
};
7.Dlaklasystring:
Zde
niowa¢:
classstring{
introz;
char*wsk;
public:
//...metody
(a)konstruktoryinicjuj¡cy(domniemany)ikopiu-
j¡cy,
(b)sk“adowefunkcjeoperatorowe
+
,
-
,
*
,
umo»liwiaj¡cedodawanie,odejmowanieimno-
»eniemacierzy,
(c)funkcje
+
,
-
,
*
realizuj¡ceprzemienne
dodawanie,odejmowanieimno»eniemacierzy
przezskalar,
(d)operatorprzypisania
=
umo»liwiaj¡cyskopio-
waniemacierzy,
(e)funkcjƒsk“adow¡obliczaj¡c¡wyznacznikma-
cierzykwadratowej,
(f)destruktor.
};
Dokona¢implementacji:
(a)nastƒpuj¡cychkonstruktor
ó
w:standardowy(z
list¡inicjalizacyjn¡),domniemanyikopiuj¡cy,
(b)metody:zwracaj¡cerozmiar“a«cucha,skleja-
j¡cedwa“a«cuchywjeden,odwracaj¡cekolej-
no–¢literw“a«cuchuipor
ó
wnuj¡c¡zawarto–¢
dw
ó
ch“a«cuch
ó
w,
(c)destruktor,
(d)funkcjeoperatorowe
,
oraz
=
.
9.Stosuj¡cwska„nikidosk“adowychklasyposortowa¢
50elementow¡wygenerowan¡losowotablicƒobiek-
t
ó
wz¢wiczenia2wed“ugzadanegopola(dopor
ó
w-
nania“a«cuch
ó
wznak
ó
wmo»nazastosowa¢funkcjƒ
strcmpzpakietustring.h).
Czyponi»szede
nicjekonstruktor
ó
ws¡poprawne?
Odpowied„uzasadni¢.
(a)string::string(chart[]):
wsk(newchar[roz+1]),
roz(strlen(t))
10.Zaprojektowa¢specjalnywska„nikdowarto–citypu
ca“kowitego,kt
ó
rybƒdziezapamiƒtywa“10ostatnio
wskazywanychprzezniegoadres
ó
woraz20adres
ó
w
ostatnioutworzonychegzemplarzytakiegowska„ni-
ka.Nastƒpnieprze“adowa¢operatoryinkrementacji
idekrementacjidlatejklasyobiekt
ó
w.
{
strcpy(wsk,t);
}
(b)string::string(string);
Plik z chomika:
elaroma
Inne pliki z tego folderu:
lista1.pdf
(66 KB)
lista2.pdf
(56 KB)
lista3.pdf
(65 KB)
lista4.pdf
(57 KB)
lista5.pdf
(104 KB)
Inne foldery tego chomika:
Zgłoś jeśli
naruszono regulamin