Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
C++. Sztuka
programowania
Autor: Herbert Schildt
Tumaczenie: Magorzata Koziej (rozdz. 2), Marcin Miklas
(rozdz. 2, 7, 9), Marcin Samodulski (rozdz. 1, 3 6, 8)
ISBN: 83-7361-679-9
Tytu oryginau: The Art of C++
Format: B5, stron: 384
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
O Autorze .......................................................................................... 9
Wstp ............................................................................................. 11
Rozdzia 1. Potga C++ ..................................................................................... 13
Zwiza, lecz bogata skadnia.......................................................................................... 14
Potne biblioteki............................................................................................................ 14
Biblioteka szablonw STL .............................................................................................. 15
Programista ma wadz.................................................................................................... 16
Precyzyjne sterowanie ..................................................................................................... 17
Przecianie operatorw.................................................................................................. 17
Przejrzysty, zwizy model obiektowy ............................................................................ 18
Dziedzictwo C++............................................................................................................. 18
Spis treci
5
Operator typeof ....................................................................................................... 133
Ptla repeat-until ..................................................................................................... 134
Translator eksperymentalnych elementw jzyka C++ ................................................. 135
Uycie translatora.......................................................................................................... 143
Jak dziaa translator? ..................................................................................................... 144
Deklaracje globalne................................................................................................. 144
Funkcja main() ........................................................................................................ 145
Funkcje gettoken() i skipspaces()............................................................................ 146
Przeksztacanie ptli foreach ................................................................................... 149
Przeksztacanie wyraenia cases ............................................................................. 152
Przeksztacanie operatora typeof............................................................................. 154
Przeksztacanie ptli repeat-until............................................................................. 155
Program demonstracyjny............................................................................................... 157
Pomysy do wyprbowania ........................................................................................... 163
Spis treci
7
Instrukcje switch i break ......................................................................................... 348
Przetwarzanie ptli while ........................................................................................ 350
Przetwarzanie ptli do-while................................................................................... 351
Ptla for................................................................................................................... 353
Obsuga instrukcji cin i cout.................................................................................... 354
Biblioteka funkcji interpretera Mini C++ ...................................................................... 356
Plik nagwkowy mccommon.h .................................................................................... 358
Kompilacja i konsolidacja interpretera Mini C++ ......................................................... 360
Demonstrowanie dziaania interpretera Mini C++ ........................................................ 360
Udoskonalanie interpretera Mini C++ ........................................................................... 368
Rozszerzanie interpretera Mini C++.............................................................................. 369
Dodawanie nowych elementw jzyka C++ ........................................................... 369
Dodawanie elementw pomocniczych .................................................................... 370
Rozdzia 6.
Obliczenia finansowe
w C++
Poza wszystkimi duymi i skomplikowanymi aplikacjami, takimi jak: kompilatory, przegldarki internetowe, edytory tekstw, bazy danych i programy ksigowe, ktre zdominoway wiat komputerw, istnieje pewna grupa programw bdcych zarwno poytecznymi, jak i nieskomplikowanymi. Programy te wykonuj rne obliczenia finansowe,
na przykad wyznaczaj wysoko raty kredytu, przysz warto lokaty, pozosta warto kredytu. adne z wymienionych oblicze nie s bardzo skomplikowane ani nie wymagaj obszernego kodu, lecz uzyskujemy dziki nim cakiem uyteczne informacje.
Poniewa jzyk C++ najlepiej nadaje si do tworzenia potnych aplikacji systemowych, czsto nie docenia si jego moliwoci w dziedzinie oblicze finansowych. Jest
to oczywicie bd. Jzyk C++ charakteryzuje si doskonaymi waciwociami w tym
zakresie, gdy oferuje szeroki zakres funkcji matematycznych i wydajny mechanizm
arytmetycznych operacji zmiennoprzecinkowych. Ponadto, ze wzgldu na fakt, e kod
wykonywalny generowany na podstawie kodu C++ jest ekstremalnie wydajny, jzyk
C++ stanowi doskonay wybr dla programw wykonujcych zoone analizy finansowe i modelowanie.
Aby pokaza, z jak atwoci mona wykonywa obliczenia finansowe posugujc
si jzykiem C++, w tym rozdziale stworzonych zostanie kilka maych programw,
ktre obliczaj:
1. Wysoko raty;
2. Przysz warto lokaty;
3. Pocztkow warto inwestycji wymagan do otrzymania podanej
przyszej wartoci;
4. Pocztkow warto inwestycji wymagan do otrzymania okrelonych
wypat;
5. Maksymaln wielko regularnej wypaty z danej lokaty;
6. Pozosta kwot kredytu.
192
Programy te mog by wykorzystywane w niezmienionej postaci lub mona je przystosowa do konkretnych potrzeb. Pomimo tego, e s to najprostsze programy w tej
ksice, moe si okaza, e bdziesz ich uywa najczciej.
193
)5 . )
67
8
"
(
Aby obliczy wysoko raty kredytu, wprowad wymagane dane. Oto przykadowy
przebieg programu:
*'+ ',/0 ,
. !"""
*'+ ',/0
' '12 '
. 9
*'+ 3-
. :
*'+ 3- 4
' ,. !8
. 8"#;<
194
a rednie oprocentowanie roczne wynosi 6 procent. Przedstawiony tutaj program odpowie na to pytanie.
Aby obliczy przysz warto inwestycji, uyj nastpujcego wzoru:
Przysza warto = lokata ((oproc / rocznaCzstKapit) + 1) rocznaCzstKapit liczbaLat
gdzie oproc okrela oprocentowanie lokaty, lokata to pocztkowa wysoko wkadu,
rocznaCzstKapit oznacza czstotliwo kapitalizacji odsetek w roku, a liczbaLat to
dugo lokaty wyraona w latach. W przypadku naliczania odsetek raz do roku, czstotliwo kapitalizacji odsetek w roku wynosi oczywicie 1.
W poniszym programie w celu obliczenia przyszej wartoci inwestycji przedstawiony
wzr zosta uyty w ciele funkcji . Do funkcji tej przekazujemy oprocentowanie lokaty, dugo lokaty w latach oraz roczn czstotliwo kapitalizacji odsetek.
Funkcja zwraca przysz warto lokaty.
// Obliczanie przyszej wartoci lokaty.
6
=
>6
>6
!""#" // przekszta procenty na uamki
! &
>6
$
$ '
(
#))
67
8
6 =
195
"
(
196
67
8
"
(
197
przez 20 lat. Pytanie, ktre powiniene sobie zada, brzmi: jak duo musz zgromadzi, aby zapewni sobie tak emerytur. Odpowied znajdziesz, wykorzystujc nastpujcy wzr:
Pocztkowa warto = ((wysWyp liczbaWypRocznie) / oproc)
(1 (1 / (oproc / liczbaWypRocznie + 1) liczbaWypRocznie liczbaLat))
gdzie oproc okrela wysoko oprocentowania lokaty, wysWyp to podana wysoko
regularnych wypat, liczbaWypRocznie oznacza zakadan liczb wypat na rok, a liczbaLat to okres wypacania wyraony w latach.
W poniszym programie w celu obliczenia pocztkowej wysokoci lokaty przedstawiony wzr zosta uyty w ciele funkcji
. Do funkcji tej przekazujemy zaoon warto docelow regularnej wypaty, oprocentowanie lokaty, okres wypacania
wyraony w latach oraz roczn liczb wypat. Funkcja zwraca pocztkow wymagan
warto lokaty.
// Obliczanie pocztkowej wartoci inwestycji
// wymaganej do otrzymania okrelonych regularnych wypat.
*D
>6
!
8
>6
!""#" // przekszta procenty na uamki
! *D $
>6
! &
>6
$
8 ! % ! '
! $
8
(
'
'
#))
198
67
8
"
(
67
8
7' '
"
(
199
200
Obliczanie wartoci
pozostaego kredytu
Czsto potrzebna jest informacja dotyczca tego, ile kredytu zostao do spacenia.
Mona to atwo obliczy, znajc pocztkow kwot kredytu, jego oprocentowanie,
wysoko raty oraz liczb dokonanych wpat. Aby pozna pozosta kwot kredytu,
trzeba zsumowa dokonane wpaty, odejmujc od kadej wpaty odsetki, a nastpnie
odj tak otrzyman liczb od pocztkowej kwoty kredytu.
Przedstawiona tutaj funkcja oblicza pozosta do spacenia kwot kredytu.
Do funkcji tej przekazujemy pocztkow warto kredytu, oprocentowanie lokaty,
wielko raty, liczb spat w roku i liczb dokonanych wpat. Funkcja zwraca pozosta kwot kredytu.
// Oblicza pozosta kwot kredytu.
!""#" // przekszta procenty na uamki
6
"
&&
%
% $
(
#))
201
67
8
"
(
Pomysy do wyprbowania
Istnieje wiele innych oblicze finansowych, ktre mog Ci si przyda, jak choby
obliczanie stopy oprocentowania lokaty lub wysoko regularnych wpat prowadzcych do uzyskania okrelonej przyszej wartoci. Moesz take wygenerowa plan
amortyzacji kredytu.
By moe zechcesz stworzy wiksz aplikacj obejmujc wszystkie przedstawione
w tym rozdziale obliczenia. Uytkownik mgby wybiera odpowiedni opcj z menu.