Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
66
20Wprowadzeniedoprogramowania
3
4
5
Return:a
ba%b
atmp
(zwróćazawierającenajwiększywspólnydzielnik)
(skopiujresztęzdzieleniaaprzezbdob)
(skopiujwartośćtmpdoa)
a.Nakartceobliczjakiśprzykład,dajmynato,przyjmując,żea:255,ab:221.
b.Zaimplementujalgorytm2.2.Wskazówka:abyzaimplementowaćpętlę,wykorzystaj
instrukcjęwhile(b!:0)lubfor(;b!:0;){zapętlinstruk-
cje_z_wierszy2-4}.
c.Zweryfikujdziałanieswojegoprogramu,ustawiającinnewartościaib.
2.Przeanalizujponiższyalgorytmrównegopodziałusłużącydoobliczeniaprzybliżonego
pierwiastkakwadratowegojakiejśwartościcałkowitej.
a.Napiszimplementacjęalgorytmu2.3.
b.Porównajzwróconewartościztymi,jakiedajekodzlistingu2.1.
Algorytm2.3.Algorytmrównegopodziałusłużącydoobliczaniaprzybliżeniapierwiastka
kwadratowegozliczbycałkowitej
Wejście:
Wyjście:
1
2
3
4
5
6
7
8
Wartośćxbędącaliczbącałkowitą
Przybliżeniepierwiastkakwadratowegozx
lower–bnd1
upper–bndx/2
whileupper–bnd>:lower–bnd
Return:(lower–bnd+upper–bnd)/2
mid–val(lower–bnd+upper–bnd)/2
ifmid–val*mid–val>x
else
upper–bndmid–val-1
lower–bndmid–val+1
(dlax>4pierwiastekniemożebyćwiększy)
(biegnietakdługo,jakdługowarunekjestspełniony)
(obliczwartośćśrodkową)
(sprawdź,którapołowa)
(zwróćwartośćśrodkową)
(obniżgórnągranicę)
(przesuńdolnągranicę)
3.Algorytmrównegopodziałuposiadateżinnezastosowania.Jestpomocnywzadaniach
związanychzprzeszukiwaniempowartościachmonotonicznych(https://pl.wikipedia.
org/wiki/Metoda_równego_podziału).Skorzystajzalgorytmurównegopodziału,by
odnaleźćpierwiastekfunkcji(tj.jejpunktzerowy).
4.Mogąpojawićsięproblemyprzywprowadzaniuwartościzwykorzystaniemobiektu
std::cin.Naprzykładwlinii[14]listingu2.2oczekiwanajestwartośćliczbowa,ale
użytkownikmożenp.wprowadzićabc.Abyzapobiectakimbłędom,statusoperacji
wczytywaniamożebyćsprawdzanytakjakwponiższymfragmenciekodu:
if(!(cin>>C–0))
{
cout<<"Błądwtrakciewprowadzaniawartości.\n"<<endl;
return-1;
}