Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Prijedlozi i kritike za knjigu

[es] :: C/C++ programiranje :: Prijedlozi i kritike za knjigu

[ Pregleda: 2667 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Prijedlozi i kritike za knjigu07.09.2007. u 10:30 - pre 202 meseci
Prije tri godine izdao sam knjigu pod nazivom C++ Analiza i primjena. Ona obrađuje područja koja se rade u srednjoj školi i na prve dvije godine fakulteta, a za kojih pola godine treba izaći drugo izdanje koje sam jako puno proširio u ovisnosti na ovo prvo.

Općenito, drugo izdanje se bavi ne samo osnovama već i objektnim programiranjem i razvojem windows aplikacija upotrebom Botrlandovih alata, a od biblioteka se obrađuje OWL (zbog sličnosti s MFC-om), VCL i CLX (s Kylixom). Sadržaj je sljedeći:

SADRŽAJ

1. Uvod u programski jezik C++
1. C++ programski jezik.......................................................................................................
2. Što su to programi i što nudi programski jezik C++? ...................................................
3. Pisanje programa u C++u ...............................................................................................
4. Prvi program i analiza ....................................................................................................
5. Komentari u programu ................................................................................................

2. Varijable i konstante
1. Uvod.............................................................................................................................
2. Int (Cjelobrojni tip) ......................................................................................................
3. Float (Realni tip)...............................................................................................................
4. Char (Znakovni tip)......................................................................................................
5. Imenovane konstante i typedef deklaracija ..........................................................................
6. Enum konstante, long i double tipovi podataka ..........................................................
7. Kvalifikatori short, signed i unsigned.................................................................................
8. Cast i sizeof operatori .................................................................................................
9. Aritmetički operatori ..........................................................................................................
10. Dodjela vrijednosti izrazima.............................................................................................
11. Strukture i unije podataka.................................................................................................

3. Naredbe za ispis i unos podataka
1. Naredbe cout i cin ..........................................................................................................
2. Naredbe printf i scanf ..................................................................................................
3. Ispis i unos podataka - Dodatak..................................................................................
4. Pretvorbe tipova podataka ..............................................................................................

4. Naredbe za grananje
1. Uvod ................................................................................................................................
2. Relacijski i logički operatori .......................................................................................
3. Naredba IF ......................................................................................................................
4. Uvjetni operator ?...........................................................................................................
5. Naredba SWITCH ..........................................................................................................

5. Programske petlje
1. Uvod....................................................................................................................................
2. Naredba for.....................................................................................................................
3. Naredba while ......................................................................................................................
4. Naredba do-while ..............................................................................................................
5. Naredbe break i continue ..................................................................................................
6. Naredba goto ........................................................................................................................

6. Polja i pokazivači
1. Jedno i višedimenzionalna polja ..........................................................................................
2. Rad sa znakovima i znakovnim poljima ................................................................................
3. Sortiranje polja .............................................................................................................
4. Pokazivači i reference ..........................................................................................................
5. Dinamička alokacija i realokacija memorije ........................................................................
6. Pokazivači na pokazivače ...........................................................................................

7. Funkcije i pretprocesorske naredbe
1. Uvod ..................................................................................................................................
2. Funkcija kao blok naredbi ...................................................................................................
3. Primjene funkcija ..........................................................................................................
4. Funkcije i pokazivači ........................................................................................................
5. Statičke varijable funkcije ...............................................................................................
6. Funkcija main( ) ................................................................................................................
7. Rekurzije............................................................................................................................
8. Lista argumenata funkcije .................................................................................................
9. Podrazumijevani parametri funkcije ..................................................................................
10. Pretprocesorske naredbe ..................................................................................................

8. Rad sa datotekama
1. Uvod ..................................................................................................................................
2. Datoteke i C++ ................................................................................................................
3. Naredbe fscanf, fprintf... ...................................................................................................
4. Neformatirane datoteke ....................................................................................................
5. Zaštita podataka ............................................................................................................

9. Strukture i liste
1. Uvod .............................................................................................................................
2. STOG realiziran poljem ...............................................................................................
3. STOG realiziran listom .................................................................................................
4. Red realiziran cikličkim poljem ...................................................................................
5. Red realiziran listom .....................................................................................................
6. Sortirane i višestruko povezane liste ..............................................................................
7. Binarno pretraživanje ....................................................................................................

10. Uvod u klase
1. Uvod ................................................................................................................................
2. Konstrukcija klase ...........................................................................................................
3. Preopterećenje funkcije ..................................................................................................
4. Funkcije prijatelji ...........................................................................................................
5. Operatorske funkcije .......................................................................................................
6. Statički članovi klase ........................................................................................................
7. Nasljeđivanje klasa ........................................................................................................
8. Virtualne funkcije ...........................................................................................................
9. Predlošci .........................................................................................................................

11. Sigurnosne pretvorbe i iznimke
1. Uvod ................................................................................................................................
2. Pretvorba static_cast .....................................................................................................
3. Pretvorba dynamic_cast .....................................................................................................
4. Pretvorba reinterpret_cast .....................................................................................................
5. Pretvorba const_cast .....................................................................................................
6. Generiranje i obrada iznimki ........................................................................................
7. Standardne iznimke .........................................................................................................
8. Neprihvaćene iznimke .........................................................................................................
9. Funkcije s iznimkama .......................................................................................................

12. Kontrolne klase
1. Uvod ..............................................................................................................................
2. Klase TButton, TRadioButton i TGroupBox .......................................................................
3. Klase TCheckBox, TStatic i TGauge .................................................................................
4. Klase TSlider i TScrollBar ................................................................................................
5. Klase TListBox i TComboBox ..........................................................................................
6. Klase TEdit, TEditFile i TEditSearch ..............................................................................
7. Operatori new i delete ......................................................................................................
8. Fontovi i objekti ..............................................................................................................
9. Rad sa porukama ............................................................................................................
10. Nadogradnja kontrolnih klasa .........................................................................................

13. Dijalozi i prozori
1. Uvod ..............................................................................................................................
2. Dijalozi Open i SaveAs ....................................................................................................
3. Dijalog ChooseColor ......................................................................................................
4. Dijalog ChooseFont .........................................................................................................
5. Karakteristike prozora ......................................................................................................
6. Poruke prozora .................................................................................................................
7. Rad sa više prozora ...........................................................................................................

14. Grafička obrada
1. Uvod ..............................................................................................................................
2. Uređivanje prozora ............................................................................................................
3. Funkcije za crtanje ............................................................................................................
4. Funkcija Paint ............................................................................................................
5. Ispis podataka .............................................................................................................

15. Resource Workshop
1. Uvod ...........................................................................................................................
2. Ikona i kursor ............................................................................................................
3. Izbornik .......................................................................................................................
4. Dijalog .......................................................................................................................
5. Bitmap .......................................................................................................................
6. DLL resursi .............................................................................................................

16. C++ Builder
1. Uvod ..............................................................................................................................
2. Standardni i dodatni objekti ...........................................................................................
3. Win32 i sistemske kontrole .............................................................................................
4. Dijalozi i Win 3.1 kontrole ..............................................................................................
5. Kreiranje i korištenje prozora ......................................................................................
6. Windows XP manifest ...............................................................................................
7. Konfiguracijske datoteke i Windows registar ................................................................
8. Aplikacije kao poslužitelji ...........................................................................................
9. Dretve i procesi ...........................................................................................................

17. Baze podataka
1. Uvod .........................................................................................................................
2. Borland Database Engine ....................................................................................................
3. ODBC .......................................................................................................................
4. ADO komponente ....................................................................................................
5. Filtriranje, sortiranje i pretraživanje tablica ............................................................
6. Konekcije u vrijeme zahtjeva .....................................................................................
7. Izrada izvještaja ..........................................................................................................

18. Mrežno programiranje
1. Uvod .........................................................................................................................
2. Internet Socket komponente ......................................................................................
3. TCP klijent-server ...................................................................................................
4. UDP klijent-server ...................................................................................................
5. SMTP i POP ............................................................................................................
6. Windows servisi ...................................................................................................

19. Biblioteke i komponente
1. Uvod .........................................................................................................................
2. Statičke biblioteke .........................................................................................................
3. Dinamičke biblioteke ................................................................................................
4. Borland komponente ..................................................................................................
5. ActiveX i COM .........................................................................................................
6. Active Form ...............................................................................................................

20. Linux aplikacije
1. Uvod .........................................................................................................................
2. Kylix i C++ ................................................................................................................
3. CLX biblioteka ..........................................................................................................
4. Životni ciklus i komunikacija ....................................................................................
5. Prijenos aplikacija .......................................................................................................

21. Zadaci za vježbu
1. Osnovni zadaci .............................................................................................................
2. Uvjetne naredbe ...........................................................................................................
3. Programske petlje ........................................................................................................
4. Polja i pokazivači .........................................................................................................
5. Funkcije .......................................................................................................................
6. Datoteke .......................................................................................................................

Pošto sam po ovom forumu već vidio da se rješavaju zadaci iz prvog izdanja odlučio sam ovdje iznijeti sadržaj drugog izdanja kojeg trenutno imam. Ono što bih molio jest da date svoje prijedloge i/ili kritike glede sadržaja. Možda sam nešto predvidio, u nedovoljnoj mjeri opisao ili čak i zaboravio. Uostalom, mislim da će i vama kao potencijalnim čitateljima biti draže da sudjelujete u samom razvoju knjige.

primjer poglavlja: http://vtszg.hr/forum/attachme...achmentid=305&d=1171901225

Na ovom izdanju već radim 3 godine i nije još uvijek gotovo. U svakom slučaju detaljnije će biti objašnjene baze podataka i mrežno programiranje, no sve još ovisi o rokovima koje imam, a oni su poprilično kratki zbog ugovorenih recenzija. Stoga, opalite dok još imam vremena da nešto izmijenim, dodam ili sl..


Zahvaljujem
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.fibertel.com.ar.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: Prijedlozi i kritike za knjigu08.09.2007. u 12:01 - pre 202 meseci
Evo liste nekih stvari koje bi valjalo promeniti:

1. Primer 10.2.1 počinje sa ovim:
Code:
#include <iostream.h>

To svakako treba promeniti u moderniju varijantu
Code:
#include <iostream>

U istom primeru implementacija metode void f() izgleda ovako
Code:
void Objekt::f(){
    [b]cout[/b] << "Funkcija Objekt::f()";
}

cout se navodi bez prefiksa std:: a pritom nigde u primeru se ne vidi using namespace std; . Mislim da to samo može da zbuni početnika. Primeri treba da su potpuno ispravni u svakom pogledu i da prosto prekucavanje koda u editor može da proizvede program.

Isti komentar za hedere važi za sve primere koje imaš u ovom poglavlju. Takodje primecujem da koristis klasicne C hedere (math.h, string.h itd.). Nije neophodno ali je pozeljno graditi moderan pristup c++. Hederi standardne C biblioteke imaju svoju verziju i u C++ koja je preporučena za korišćenje (string.h - cstring, math.h - cmath itd.). Ne bi bilo loše promeniti i te hedere ili bar na nekom mestu napomenuti i tu mogućnost.

Dalje u svim primerima imas funkciju main deklarisanu kao void main() (!!!). Ovo je zastareli relikt koji nikako ne treba navoditi i/ili upotrebljavati ni u jednoj novoj knjizi. Standard propisuje int main(int argc, char argv**) ili bar int main().

Uzevši u obzir sve pomenuto evo izmenjenog primera 10.2.2:
Code:

#include <iostream>
#include <cmath>
using namespace std;

/***************  Klasa Tocka  ***************/
class Tocka
{
    private:
        float x, y;

    public:
        Tocka(float a, float b);    // konstruktor
        float X() {return x;}        // vraca x koordinatu tocke
        float Y() {return y;}         // vraca y koordinatu tocke
};

Tocka::Tocka(float a, float b){        // tijelo konstruktora klase
    x = a;
    y = b;
}
float UdaljenostTocaka(Tocka A, Tocka B)
{
    return pow(pow(A.X()-B.X(), 2) + pow(A.Y()-B.Y(), 2), 0.5);
}

int main()
{
    Tocka A(1, 1), B(2, 2);
    cout<< UdaljenostTocaka(A, B) << endl;
    return 0;
}


To je onako na prvi pogled. Nadam se da ti je ovo pomoglo.

Tko leti vrijedi
 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
85.94.120.*



Profil

icon Re: Prijedlozi i kritike za knjigu08.09.2007. u 12:48 - pre 202 meseci
Citat:
17. Baze podataka
1. Uvod .........................................................................................................................
2. Borland Database Engine ....................................................................................................
3. ODBC .......................................................................................................................
4. ADO komponente ....................................................................................................
5. Filtriranje, sortiranje i pretraživanje tablica ............................................................
6. Konekcije u vrijeme zahtjeva .....................................................................................
7. Izrada izvještaja ..........................................................................................................


Na koje si se reports-e koncentrisao konkretno?

Ne znam, cini mi se da ima dosta toga interesantnog...

Npr. sta bi JA volio da imam u nekoj knjizi je npr. malo vise price o DLL-ovima ( izrada, povezivanje, i pogotovo prica o mogucim problemima kod kreiranja dll-a u BCB-u koristeci VCL jer koliko sam cuo i procitao problemi postoje, ali nisam dovoljno upoznat...) Imam dosta knjiga, ali ovo nije ni u jednoj od njih obradjeno...

Takodje, JA bih volio imati malo vise price o kreiranju sopstvene klase u BCB-u ( izvedene od neke postojece ) i rad sa portovima iz istog.

Eto cisto predlog, kakvu bih JA knjigu volio kupiti. Kazem, sve knjige koje ja imam pisu o bukvalno istim stvarima.

Koliko vidim tvoja knjiga ne spada u taj stereotip vec je pravo osvjezenje . Pogotovo ko radi u Borlandovim alatima...

Nadam se da sam ti dao bar neku korisnu ideju...

there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Prijedlozi i kritike za knjigu10.09.2007. u 09:27 - pre 202 meseci
Citat:
kiklop74: Evo liste nekih stvari koje bi valjalo promeniti:

1. Primer 10.2.1 počinje sa ovim:
Code:
#include <iostream.h>

To svakako treba promeniti u moderniju varijantu

Modernije ali za početknika složenije jer traži još jednu naredbu tj. upotrebu std imenika, a to opet za sobom povlači nova pitanja poput što je to namespace, uses itd.. Zato sam i pisao ovaj skraćeni oblik da što manje kompliciram i što više pojednostavim one najosnovnije programe. Čak i u srednjoj školi (barem gdje sam ja završio) tako rade pa sam mislio da će zato biti pristupačnije.

Citat:
kiklop74: Evo liste nekih stvari koje bi valjalo promeniti:
Code:
#include <iostream>

U istom primeru implementacija metode void f() izgleda ovako
Code:
void Objekt::f(){
[b]cout[/b] << "Funkcija Objekt::f()";
}

cout se navodi bez prefiksa std:: a pritom nigde u primeru se ne vidi using namespace std; . Mislim da to samo može da zbuni početnika. Primeri treba da su potpuno ispravni u svakom pogledu i da prosto prekucavanje koda u editor može da proizvede program.

Kako sam u cijeloj knjizi bio dosljedan i svugdje koristio zaglavlje <iostream.h> podrazumijeva se da ne treba namespace. No, u svakom slučaju ću vidjeti da stavim i upotrebu imenika ali tek kad još malo pogledam i ostale literature na ovu temu...

Citat:
kiklop74: Evo liste nekih stvari koje bi valjalo promeniti:
Isti komentar za hedere važi za sve primere koje imaš u ovom poglavlju. Takodje primecujem da koristis klasicne C hedere (math.h, string.h itd.). Nije neophodno ali je pozeljno graditi moderan pristup c++. Hederi standardne C biblioteke imaju svoju verziju i u C++ koja je preporučena za korišćenje (string.h - cstring, math.h - cmath itd.). Ne bi bilo loše promeniti i te hedere ili bar na nekom mestu napomenuti i tu mogućnost.

Mogućnost korištenja tih zaglavlja će biti navedena, no samu knjigu sam pisao tako da što više bude korisnija i onima koji uče C jezik. Ipak, na fakultetima C jezik "dominira" u početnim godinama učenja, a C++ tek na objektno orjent. prog.

Citat:
kiklop74: Evo liste nekih stvari koje bi valjalo promeniti:
Dalje u svim primerima imas funkciju main deklarisanu kao void main() (!!!). Ovo je zastareli relikt koji nikako ne treba navoditi i/ili upotrebljavati ni u jednoj novoj knjizi. Standard propisuje int main(int argc, char argv**) ili bar int main().

Diskutabilno je da li main treba vratiti nešto ili ne. Pošto se sama vrijednost vraća operacijskom sustavu svega je par slučajeva gdje se to može iskoristiti. Štoviše, u knjizi tu povratnu vrijednost nisam nigdje koristio te sam opet radi jednostavnosti koda koristio void jer nema return. Profesor na faksu je forsirao da main vraća int jer je to "pristojno", međutim, to obrazloženje je meni bezveze. Ja ne personaliziram računalo, programe itd. i iskoristio sam svoju autorsku slobodu i u knjizi navodio void. Međutim, pošto noviji prevoditelji čak ni ne podržavaju void main, već baš traže da vraća int, to će u svakom slučaju biti ispravljeno na svakom mjestu u knjizi.

Glede argumenata komandne linije... opet mislim da je nepotrebno uvoditi takvo što ukoliko se zaista ne koristi. Za početnika je to za sada komplikacija jer opet uvodi neke pojmove poput argumenata funkcije, polja, pokazivača itd.


U svakom slučaju zahvaljujem na detaljnim primjedbama. Bilo je korisno.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Prijedlozi i kritike za knjigu10.09.2007. u 09:36 - pre 202 meseci
Citat:
IDE: Na koje si se reports-e koncentrisao konkretno?

Ne znam, cini mi se da ima dosta toga interesantnog...

Npr. sta bi JA volio da imam u nekoj knjizi je npr. malo vise price o DLL-ovima ( izrada, povezivanje, i pogotovo prica o mogucim problemima kod kreiranja dll-a u BCB-u koristeci VCL jer koliko sam cuo i procitao problemi postoje, ali nisam dovoljno upoznat...) Imam dosta knjiga, ali ovo nije ni u jednoj od njih obradjeno...

Trenutno sam opisao QuickReport, no onak više kao pregled jer se više ne koristi osim za održavanje već postojećih aplikacija. Međutim, sad čim nađem vremena "bacam" se na pisanje o Rave reportu.

Glede dll-ova... Od svih tema u knjizi mislim da sam tu temu najdetaljnije obradio. Opisao sam probleme koji se tamo susreću, počevši od onih gdje se iz drugih programskih jezika/razvojnih okruženja pozivaju dll funkcije, pa do razlika između VC++ i BCB prevoditelja, runtime linking problema, rad s dll resursima, COM komponentama itd. Uglavnom... poprilično detaljno je taj dio obrađen.

Citat:
IDE: Na koje si se reports-e koncentrisao konkretno?
Takodje, JA bih volio imati malo vise price o kreiranju sopstvene klase u BCB-u ( izvedene od neke postojece ) i rad sa portovima iz istog.

Ima primjera gdje sam to obrađivao. Primjerice, kod izvođenja TForm klase, ali najčešće pri radu s TThread klasom. Čak sam to radio i za OWL biblioteku (tema 12.10).

Zahvaljujem
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Prijedlozi i kritike za knjigu02.09.2008. u 13:30 - pre 190 meseci
Naslovnica, sadržaj i poglavlje o klasama:

http://forum.sztvz.hr/attachme...achmentid=880&d=1220220097

Knjiga je još uvijek u postupku prijeloma, ali uskoro bude finalizirana i "dotjerana".
 
Odgovor na temu

[es] :: C/C++ programiranje :: Prijedlozi i kritike za knjigu

[ Pregleda: 2667 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.