Jūs esate

c++

Pirmoji programa su C# (C Sharp)

Turbūt dauguma pagal tradiciją pirmąsias programas rašote ir serijos "Hello, World". Na, kaip ir tradicija tokia: jei mokoma(si) naujos programavimo kalbos, pirma programa būna, kuri išspausdina ką nors į ekraną. Smagu. Na, maniškė ant C# yra serveriukas, kuris prisijungus išsiunčia tekstą "Hi" :) Per TCP/IP :) Pastebėjimas iš C# gyvenimo: kalba kaip JAVA. Tiksliau, C++ ir Javos mišinys. Man patiko :) http://www.ernestas.info/projects/csharp/tcp_server.zip

pthreads

Universitete per OS teorijos paskaitą išgirdau apie gijų (threads) mechanizmą Linux OS: branduolio lygio arba programinio lygio. Yra patogus daikčiukas, pavadintas phtreads. Naudojantis juo galima patogiai kurti gijas ir labai paprastai. http://en.wikipedia.org/wiki/POSIX_Threads duotas paprastas pavyzdukas - bet gerai iliustruoja visa gijų veikimo mechanizmą.

Reikalavimai programoms

Citata iš KTU 2-o kurso reikalavimų programoms:
Metodai atskiriems algoritmo veiksmams (pavyzdžiui, dviejų elementų sukeitimui masyvo rikiavimo metu) atlikti.
C++ programavimo kalboje tai atrodo taip:
#include < algorithm > // Kodas.... std::swap(array[i], array[i + 1]);
Bet, jei pagal reikalavimus taip negalima, teks atskirą metodą rašyti:
void swap(int array[], int first_number, int second_number) { int temp = array[first_number]; array[first_number] = array[second_number]; array[second_number] = temp; }

makefile pavyzdys

Jeigu programuojate su C/C++, turbūt dažnai tenka nurodyti daugybę C++ failų g++ programai (kažkas tokio: g++ failas.cpp kitas_failas.cpp desimtas_failas.cpp ir t.t.).

Laiko matavimas C++ kalboje

Funkcijos veikimo laiką C++ kalboje galima pasinaudojant clock() funkcija, kuri gyena ctime.h bibliotekoje: clock_t start = clock(); //Veiksmai... // clock_t ends = clock(); cout << "Veikimo laikas: " << (double) (ends - start) / CLOCKS_PER_SEC << endl; Visas šis gėris turėtų pateikti laiką. Problema tame, kad dabartiniai procesoriai labai greiti, taip kad naudos iš tokios funkcijos nedaug - bent jau GnomeSort rikiavimo atveju iš 10-ies skaičių...

Iš mistikos sferos

Turime klasės header faile konstruktoriaus/destruktoriaus aprašymą: Sorting() ir ~Sorting(). Klasės cpp faile: Sorting::Sorting() { } ir Sorting::~Sorting() { } Klausimas: kodėl to niekaip G++ kompiliuoti nenori? Tvirtina, jog: > g++ gbsort.cpp -Wall /tmp/ccy8OFFP.o: In function `main': gbsort.cpp:(.text+0x200): undefined reference to `Sorting::Sorting()' gbsort.cpp:(.text+0x244): undefined reference to `Sorting::~Sorting()' collect2: ld returned 1 exit status Kaip bebūtų keista, jei aš header faile pakeičiu Sorting() į Sorting() {} ir ~Sorting() į ~Sorting() {} - veikia.

Gnome Sort

Wikipedia'oje radau Gnome Sort algoritimą, kuris turėjo tik Python'o kalba parašytą metodą. Tad pridėjau aš ant JAVA tą patį metoduką. void gnomeSort(int array[]) { int n = 0; int temp = 0; while (n < array.length - 1) { if (array[n] > array[n + 1]) {    temp = array[n];    array[n] = array[n + 1];    array[n + 1] = temp;    if (n > 0)       n--;    else       n++; } else     n++; } Plačiau apie šį rikiavimo metodą: http://en.wikipedia.org/wiki/Gnome_sort

Puslapiai

Subscribe to c++