Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2040Reprezentacjaiuruchamianiealgorytmów
2.4.4.Analizakodu
49
Wróćmydokoduprzedstawionegonalistingu2.1.Pierwszywiersz[1]zawieraprostyko-
mentarz,czylitekst,któregojedynymcelemjestdostarczeniedodatkowychinformacji
programistom.WC++komentarzerozpoczynająsięoddwóchukośników//ikończą
sięwrazzkońcembieżącegowiersza.Zobaczymywięcejtakichsymboliskładającychsię
zwielokrotnościpojedynczychznaków-oneniezbędnezewzględunaograniczoność
zbiorusymbolispecjalnychnakomputerowejklawiaturze.Wiersze[3,4]zawierajądwie
dyrektywy#include-pokażdejznichnastępujenazwaplikuujętawnawiasy<>.to
dyrektywypreprocesoraomówionewdodatkuA.1,którewrzeczywistościkopiująiwklejają
zawartośćwskazanegoplikuwbieżącemiejsce.Robisiętak,chcącwprowadzićkomponenty
programistycznenapisanejużprzezinnychprogramistów,któremożemyłatwowykorzystać,
niekłopoczącsięichsamodzielnąimplementacją.Przykładystanowiąobiektstd::cout
orazfunkcjastd::sqrt,którewykorzystamywkolejnychwierszach.Naszczęściecałeto
kopiowanieiwklejaniedokonywanejestwniewidocznysposóbwmomencierozpoczęcia
kompilacji,więcniewidzimybałaganuwnaszymkodzie.
Wnaszymprzykładziefunkcjamainjestzdefiniowanawwierszu[6],ajejciało-zbiór
liniikodu-zawartejestpomiędzynawiasamiklamrowymiwwierszach[7-17].intna
początkumainznaczy,żepowinnaonazwracaćwartośćcałkowitą,alewtymprzypadku
niematoznaczenia.
Pierwszyobiekt-zmiennaonazwiex-zostajezdefiniowanaizainicjalizowana
wwierszu[8].Jestonatypudouble.Typtenjestwykorzystywanydoreprezentowania
liczbzmiennoprzecinkowych,czyliwprzybliżeniuliczbrzeczywistych,cojestomawiane
wpodrozdziale7.4.Nawiasyklamrowe{o.o}oznaczają,żezmiennaxzostałazaini-
cjalizowanawartością0,cowdziedzinieliczbzmiennooprzecinkowychjestprecyzyjnie
wyrażanewpostacistałej0.0.
Wiersz[10]polecakomputerowi,abywyświetliłtekst"Enterx:"naekranie,tojest
wjakimśoknie.Udajesiętoosiągnąćzapomocąobiektustd::coutreprezentującego
strumieńwyjściowy(ekran)orazoperatora<<(razjeszczedwaznakiwzięterazemotrzy-
mująnoweznaczenie).Operatorten,wswejdomyślnejwersji,oznaczaprzesunięciebitowe
wlewoliczbycałkowitej.Zobaczymyjednak,żewC++operatorommożnaprzypisywać
inneznaczeniazależnieodkontekstu,wjakimdziałają.Jesttocałkiemprzydatnawłasność.
Odwrotnaakcjazostałazakodowanawwierszu[11]:komputerbędzieczekaćnaużyt-
kownika,bytenwprowadziłwartośćx.Zostajetozrealizowanezapomocą-odpowied-
nio-obiektustd::cinioperatora>>.Wrezultacietużpotym,jakużytkownikwciśnie
klawiszEnter,xzmieniswojązawartośćnato,cotylkozostałowprowadzonezklawiatury.
Niewszystkiewartościxmogąjednakzostaćwykorzystanedoobliczeniapierwiastka
kwadratowego.Stądteżwwierszu[13]warunekx>:o.o(toznaczy,czyxjestwiększe
lubrówne0.0)zostajesprawdzonyzapomocąinstrukcjiif-else(podrozdział3.13.2.1).
tudwiemożliwości:albowarunektenjestspełniony,awtedywykonanyzostajekod
zwiersza[14];alboteżjestonfałszywyiwykonanyzostaniealternatywnywiersz[16],
następującytużpoelsewlinii[15].
Wiersz[14]zasługujenakrótkiewyjaśnienie.Jestonniecobardziejskomplikowanyniż
wiersz[10],jakożepozatekstemwyświetlateżserięobiektów.Wszystkieoneodseparowane