Elektrotehnicki fakultet, Beograd  Laslo Kraus

Programski jezik C++ sa rešenim zadacima

Ispravke uz peto izdanje


Mesto Pogrešno Ispravno
strana: 12
odeljak: 1.3.4
red: ↓8
u četiri grupe u tri grupe
strana: 16
red: ↑19
Lokalni identifikatori imaju unutrašnje povezivanje, Kod lokalnih identifikatora ne postoji pojam povezivanja,
strana: 28
odeljak: 2.3.2
red: ↓3
za pojedine uloge konverzije za pojedine uloge operatora konverzije
strana: 29
red: ↑6
U trećoj naredbi … , a u četvrtoj naredbi U četvrtoj naredbi … , a u petoj naredbi
strana: 38
red: ↓14
konverzija koje i, ako konverzija koje je definisao programer i, ako
strana: 44
red: ↓1
i dve funkcije i jedne funkcije
strana: 46
red: ↑9
u datotečki doseg. u blokovski doseg funkcije h().
strana: 51
red: ↓15
(int)rand() / ((RAND_MAX+1.) * 10) (int)(rand() / (RAND_MAX+1.) * 10))
strana: 57
red: ↑21
samo za nepromenljive objekte. samo za promenljive objekte.
strana: 58
red: ↓17
y.b = x.b + a; y.b = x.b + b;
strana: 60
odeljak: 3.5
red: ↓5
U slučaju atributa U slučaju zajedničkog atributa
strana: 66
red: ↑3
niz elemenata objekata niz objekata
strana: 68
red: ↑13
objekata tipa Alfa objekata tipa Beta
strana: 73
Program 3.4
red: ↑4
static void dodaj (int i) ;

static void brisi () ;
static void stavi (int i) ;

static void prazni () ;
strana: 73
Program 3.5
red: ↓7
if (! novi) exit (1); « Celu naredbu treba izbaciti. »
strana: 74
red: ↓3
U slučaju neuspeha, predviđen je prekid programa i povratak operativnom sistemu. « Celu rečenicu treba izbaciti. »
strana: 79
odeljak: 4.1.2
red: ↓6
{ vrednost , vrednost ,} = { vrednost , vrednost ,}
strana: 79
red: ↑8
u tački 0, u tački 2.3.4,
strana: 80
odeljak: 4.1.3
red: ↓8
moraju da se ne navedu. moraju da se navedu.
strana: 81
red: ↓9
automatski koriste u odgovarajućim trenucima. automatski koriste i/ili generišu u odgovarajućim trenucima.
strana: 83
red: ↓6
konstruktor kopije i konstruktor konverzije i
strane: 98-100 « Za logičke vrednosti na više mesta se koristi int, 0 i 1. » « Nije pogrešno, ali u duhu jezika C++ treba koristiti bool, false i true. »
strana: 106
red: ↑8
oba operanda oba operatora
strana: 113
red: ↓9
Na kraju, privremeni objekat se uništava automatski generisanim destruktorom (koji u ovom slučaju ne zadovoljava, jer ne oslobađa memoriju u dinamičkoj zoni!). Na kraju, privremeni objekat se uništava destruktorom.
strana: 119
red: ↓16 i 17
::operator delete ::delete
strana: 125
red: ↑15
Iz tumačenja jednog operanda Iz tumačenja jednog operatora
strana: 131
red: ↓2
#include "poli.h" #include "poli1.h"
strana: 146
red: ↑6
class C { int c; };
class D : public A { int d; };
class E : public A, public B { int e; };
class C : public A { int c; };
class D : public A, public B { int d; };
class E : public D { int e; };
strana: 147
red: ↓1
specifični za klasu E ili ih je klasa E nasledila. specifični za klasu D ili ih je klasa D nasledila.
strana: 147
slika: 6.3
red: ↓1
class V class V {
strana: 147
red: ↑7
     Redeklarisanje identifikatora unutar izvedene klase pokriva istoimeni član osnovne klase. Važno je naglasiti, da u slučaju metoda ovakvo redefinisanje identifikatora ne smatra se preklapanjem imena funkcija. Naravno, pod uslovom da metoda u izvedenoj klasi ima isti broj i tipove argumenata kao i u osnovnoj klasi.
     Član osnovne klase koji je pokrivanjem postao nevidljiv može, ipak, da se koristi i unutar izvedene klase pomoću operatora za razrešenje dosega (::), tj. pomoću izraza oblika Osnovna_klasa::član.
     Redeklarisanje identifikatora unutar izvedene klase pokriva istoimeni član osnovne klase. Član osnovne klase koji je pokrivanjem postao nevidljiv može, ipak, da se koristi i unutar izvedene klase pomoću operatora za razrešenje dosega (::), tj. pomoću izraza oblika Osnovna_klasa::član. Posebno se naglašava, da, u slučaju metoda, sve istoimene metode u osnovnoj klasi postanu nevidljive, bez obzira na broj i tipove argumenata tih metoda u osnovnoj i u izvedenoj klasi.
strana: 149
odeljak: 6.4
red: ↓5
calss B : A { int b; } ;
class C : A { int c; } ;
class D : B, C { int d; } ;
class B : public A { int b; } ;
class C : public A { int c; } ;
class D : public B, public C { int d; } ;
strana: 149
slika: 6.4.a
gore-desno
strana: 149
red: ↑4
calss B : virtual A { int b; } ;
class C : virtual A { int c; } ;
class D : B, C { int d; } ;
class B : public virtual A { int b; } ;
class C : public virtual A { int c; } ;
class D : public B, public C { int d; } ;
strana: 154
red: ↓13
Metode među kojima se vrši izbor pripadaju istoj klasi, neposredno ili nasleđivanjem iz osnovne klase. Metode među kojima se vrši izbor pripadaju istoj klasi.
strana: 154
red: ↑14
Tu se de facto radi o preklapanju imena metoda pa se izbor vrši na osnovu tipova argumenata. Tada se radi samo o sakrivanju imena metoda (videti odeljak 6.3).
strana: 155
red: ↓18
// Nije virt. metoda (samo preklapanje imena)! // Nije virt. metoda (samo pokrivanje imena)!
strana: 169
red: ↑11 i ↑2
for (tek=prvi; for (Elem* tek=prvi;
strana: 170
red: ↑5
za obradu zbirki za obradu zbirki geometrijskih figura
strana: 171
red: ↑10
Pošto se klase Figura i Iter u nastavku pominju samo kao pokazivački ili upučivački parametri ili vrednosti funkcija, dovoljno je da budu samo deklarisane. Pošto se klasa Iter u nastavku pominje samo kao pokazivački ili upučivački parametar ili vrednost funkcija, dovoljno je da bude samo deklarisana.
strana: 172
red: ↓7
class Figura;
class Iter;
#include "figura.h"
class Iter;
strana: 178
red: ↑13
apstraktne klase NIter. klase NIter.
strana: 182
red: ↑4
*n+=0 *niz+=0
strana: 183
program: 6.17
red: ↓6
#include "trougao.h" #include "trougao1.h"
strana: 191
program: 6.21
red: ↓4
#include "trougao.h" #include "trougao1.h"
strana: 201
odeljak: 7.5
red: ↓8
virtual ~exception () throw (), virtual ~exception () throw ();
strana: 202
program 7.1
red: ↑6
Vekt::operator[] operator[]
strana: 205
red: ↑5
s jednim rukovaocem s dva rukovaoca
strana: 206
red: ↓1, 2 i 6
Vektor Vekt
strana: 215
red: ↓4
strana: 222
red: ↑13
{ return strcmp(a,b) ? a : b; } { return strcmp(a,b)>0 ? a : b; }
strana: 223
red: ↑3
typename V = Niz<short> typename U = Niz<short>
strana: 225
red: ↓10
Vekt<float*,10> Vekt<float,10>
strana: 227
red: ↓2
// Generiše se A::A(int).
// Generiše se A::A(double).
// Generiše se A::A(char).
// Generiše se A::m(int).
// Generiše se A::m(char).
// Generiše se A::m(double).
// Generiše se A::A(int&).
// Generiše se A::A(double&).
// Generiše se A::A(char&).
// Generiše se A::m(int&).
// Generiše se A::m(char&).
// Generiše se A::m(double&).
strana: 227
red: ↓25
// Generiše se A<int>::m(int).
// Generiše se A<float>::m(char).
// Generiše se A<float>::m(double).
// Generiše se B<int>::m(int&).
// Generiše se B<float>::m(char&).
// Generiše se B<float>::m(double&).
strana: 227
red: ↑2
// Generiše se C::D<char>::m(int). // Generiše se C::D<char>::m(int&).
strana: 230
program: 8.4
red: ↓19
Fuzija nizova celih brojeva: Fuzija nizova tacaka:
strana: 230
program: 8.4
red: ↑11
Fuzija nizova celih brojeva: Fuzija nizova pravougaonika:
strana: 232
red: ↑10
na osnovu šablona iz programa 8.6 na osnovu šablona iz programa 8.5
strana: 233
red: ↑3
     U drugom slučaju isti stek može, u isto vreme, da sadrži objekte različitih, ali srodnih, klasnih tipova. Na primer, klasa Stek u tački 6.11.2 sadrži različite vrste figura (tačnije pokazivače na figure) izvedene iz zajedničke osnovne klase Figura.      U drugom slučaju isti stek može, u isto vreme, da sadrži objekte različitih, ali srodnih, klasnih tipova.
strana: 234
red: ↓10
po poretku i po opadajućem poretku. po rastućem poretku i po opadajućem poretku.
strana: 236
program: 8.10
red: ↓5
#include "pravoug.h" #include "pravoug1.h"
strana: 237
rezultat: 8.3
red: ↓2
% sortt % sortt <sortt.pod
strana: 239
red: ↓2
Standard za jezik C++ definiše bogatu biblioteku gotovih klasa i funkcija za često korišćene tipove podataka i postupke. Standard za jezik C++ definiše bogatu biblioteku gotovih klasa i funkcija za često korišćene strukture podataka i postupke.
strana: 239
red: ↓8
koje odgovarajuće radnje ostvaruju isto tako efikasno kao da su pisane upravo te tipove podataka. koje odgovarajuće radnje ostvaruju isto tako efikasno kao da su pisane upravo za te tipove podataka.
strana: 240
red: ↓3
Ove funkcije omogućuju da za programer za svoje klase Ove funkcije omogućuju da programer za svoje klase
strana: 240
red: ↑14
pair<T,U> make_pair (const A&, const B&); pair<A,B> make_pair (const A&, const B&);
strana: 240
red: ↑2
Par (a,b) je manji od para (c,d) ako je a<c||a==d&&b<d. Ostale relacije se izvode iz ove dve. U klasama T i U dovoljno je da su definisani operatori == i <. Par (a,b) je manji od para (c,d) ako je a<c||a==c&&b<d. Ostale relacije se izvode iz ove dve. U klasama A i B dovoljno je da su definisani operatori == i <.
strana: 242
red: ↓5
pomoću operatora ~. pomoću operatora !.
strana: 245
red: ↓26
Iteratori s više mogućnosti uvek mogu da se koriste za radnje nad zbirkama za koje su dovoljni iteratori s manje mogućnosti. Iteratori s manje mogućnosti uvek mogu da se koriste za radnje nad zbirkama za koje su dozvoljeni iteratori s više mogućnosti.
strana: 246
red: ↑5
cin << *i++); cin >> *i++);
strana: 248
red: ↑12
novi kapacitet neće biti manji od broja elemenata niza (size()). novi kapacitet neće biti manji od broja elemenata vektora (size()).
strana: 249
red: ↓20
i<size(), i<v.size();
strana: 249
red: ↑17
a treća i četvrta za nepromenljive zbirke. a druga i četvrta za nepromenljive vektore.
strana: 252
red: ↓17
void merge (list<T>& lst);
template <class U> void merge (list<T>& lst, U u);
void merge (list<E>& lst);
template <class U> void merge (list<E>& lst, U u);
strana: 253
red: ↓1
priority_queue priority_queue<>
strana: 253
red: ↓13
prioritetne liste prioritetnog reda
strana: 254
red: ↓19
pair<K,P> pair<const K,P>
strana: 254
red: ↑20
gde je u primerak klase U<K>. gde je u primerak klase U.
strana: 255
red: ↓17
čiji ključ je jednak k, čiji ključ je veći ili jednak k,
strana: 255
red: ↑9
sve elemente kopije svih elemenata
strana: 256
red: ↑2
iz odeljka 9.1.4 iz odeljka 9.2
strana: 260
red: ↓18
u odeljku 9.1.4 u odeljku 9.2
strana: 260
red: ↑3
Ako je prvi>=size() Ako je prvi>size()
strana: 261
red: ↓11
bitova na 0. Treća metoda bitova na 0. Četvrta metoda
strana: 262
red: ↑19
u(y,x)u(y<x) u(x,y)u(x<y)
strana: 262
red: ↑17
u(x,y)u(x<y) u(y,x)u(y<x)
strana: 263
red: ↓21
ItR transform (It prvi, It1 posl, ItR rez, Op1 f1 ItR transform (It prvi, It posl, ItR rez, Op1 f1
strana: 264
red: ↑2
vrednost atributa arg vrednost atributa rez
strana: 265
red: ↑8
Ova generička pronalazi Ova generička funkcija pronalazi
strana: 267
red: ↓15
void replace(It prvi, It kraj, const E& x, const E& novo) ; void replace(It prvi, It posl, const E& x, const E& novo) ;
strana: 267
red: ↑8
template <class It, class It, typename E> template <class It1, class It2, typename E>
strana: 267
red: ↑1
pokazuje iz poslednjeg pokazuje iza poslednjeg
strana: 268
red: ↑18
pokazuje iz poslednjeg pokazuje iza poslednjeg
strana: 271
slika: 9.1
strana: 281
program: 9.11
red: ↓22
Figura::operator=(crt); brisi(); kopiraj (crt); brisi(); Figura::operator=(crt); kopiraj (crt);
strana: 288
red: ↓13
<stdio> <cstdio>
strana: 294
red: ↑1
greska = podaci.read(vekt, n).gcount() < n greska = podaci.read((char*)vekt, n).gcount() < n
strana: 295
red: ↑16
podaci.seekp ((k−1)*duz).write (zapis, duz); podaci.seekp ((k−1)*duz).write ((char*)&zapis, duz);
strana: 297
slika 10.1
strana: 297
red: ↑15
Graf nasleđivanja Klasni dijagram
strana: 301
red: ↓20
fstream::open(ime, ios::out);
if (!is_open())             throw Greska(Greska::OTV);
if (!fstream::write((char*)&duz, sizeof(long)) ||
    !flush())               throw Greska(Greska::PIS);


fstream::open(ime, ios::out);
if (!is_open())             throw Greska(Greska::OTV);
close();
fstream::open(ime, ios::in | ios::out | ios::binary);
if (!fstream::write((char*)&duz, sizeof(long)) ||
    !flush())               throw Greska(Greska::PIS);
strana: 305
program: 10.5
red: ↓2
#include "rfile.h"
#include <iomanip>

#include "rfile.h"
#include <iostream>
#include <iomanip>
strana: 305
red: ↑18
ne koriste izuzeci izuzeci se ne koriste automatski
strana: 306
program: 10.6
red: ↓2
#include "rfile.h"
#include <iomanip>

#include "rfile.h"
#include <iostream>
#include <iomanip>

       
Autor: Laslo Kraus
E-pošta: kraus@etf.rs

Copyright © 2021, Laslo Kraus
Poslednja revizija: 14.7.2021.