Witam,
jako, że w sieci nie ma nigdzie odpowiedzi do ćwiczeń zamieszczonych w Symfonii C++ postanowiłem sporządzić klucz. Mam nadzieję, że odnajdziecie poprawne odpowiedzi. Jeśli gdzieś znajdą się błędy proszę śmiało pisać.
Zaczynamy!!!
Rozdział 1 – Startujemy!
I odp. Prawidłowe nazwy zmiennych to (Według kompilatora Dev-C++) :
1
2
3
4
5
| int predkosc4;
int ilosc_powtorzen_cyklu_robotniczego;
int _zmienna;
int LICZBA_KONWERTEROW;
int export_pszenicy; |
Odradzana nazwa zmiennej to „_zeminna” bowiem znak podkreślenia na początku zmiennej jest wykorzystywany przez kompilator do wlasnych celów.
II odp.
- edycja
- kompilacja
- linkowanie
III odp. TAK
IV odp. TAK
1
| cout<<"test"; a=a+b; cin<<a; |
V odp. Znak średnika ‘ ; ‘ oznacza koniec instrukcji.
VI odp. Definicja jest równocześnie deklaracją.
VII odp. Białe znaki to te, które wpisujemy z klawiatury, ale na wydruku ich nie widać:
- spacja
- tabulator
- enter
VIII odp. Nazwa cout była zadeklarowana w bibliotece iostream
IX odp. Notepad++ etc.
X odp. Do tłumaczenia kodu źródłowego programu na kod maszynowy.
XI odp. Liker służy do dołączania bibliotek do głównego programu.
XII odp. TAK Dev-C++
XIII odp.
1
2
3
4
5
6
| #include <iostream>
using namespace std;
int main() {
cout << "w i t a m y" << endl << "na" << endl << "p" << endl<< "o" << endl << "kladzie" << endl;
system("pause");
} |
XIV odp.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #include <iostream>
int main()
{
double cal;
double centymetry;
double przelicznik = 2.54;
std::cout << "Podaj wysokosc w calach: ";
std::cin >> cal;
centymetry = cal * przelicznik;
std::cout << "\n";
std::cout << cal << " cal(i) - to jest: "
<< centymetry << " centymetrow\n";
} |
XV odp. Deklaracja określa nazwę zmiennej do przechowywania pewnych danych
XVI odp.
1
2
3
| /* komentarz blokowy */
// komentarz liniowy |
XVII odp. Tylko przykład ‘ b ‘ jest prawidłowy, ponieważ komentarzy blokowych nie wolno zagnieżdżać.
Kilka dni temu rozpocząłem swoją przygodę z kursem szybkiego czytania. W internecie jest sporo płatnych propozycji, ale znajdują się również kursy, które nie nadszarpnął naszego portfela. Jedyną inwestycją jest nasz czas, a zyski ogromne. Ja rozpocząłem swoją przygodę od strony:
http://www.szybkieczytanie.info
Jedyne czego mi brakowało to programu dzięki, któremu mógłbym badać swoje postępy. Oczywiście możemy mozolnie liczyć słowa przeczytanego artykułu czy to inne go tekstu ze stoperem w dłoni. Jeśli jednak interesuje Cię inne rozwiązanie, bez zastanowienia możesz ściągnąć mój program Faster Reader. To maleńka aplikacja, która jest bardzo pomocna, za oszczędzi nam wiele czasu. Oto jak wygląda:

Jego obsługa jest bardzo intuicyjna i z pewnością nie nastręczy nikomu problemów. Pomiar szybkości czytania sprawia wiele frajdy, bo kto nie lubi dowiadywać się o swoich postępach.
Zachęcam do pobierania:

Witam!
Dzisiaj znalazłem odrobinę czasu, żeby powalczyć z algorytmami. Padło na algorytmy sortowania. Pracuję z książką Macieja M. Sysło „Algorytmy”. Niezła pozycja, wiedza jest wyłożona bardzo przystępnie. Jedyny feler książki to kody źródłowe w języku Pascal, ale to nie duży problem. Kiedyś pisałem na zaliczenie program, który miał być podsumowaniem pracy z algorytmami sortowania. Znajdziecie w nim takie oto przykłady :
Bubble Sort
Quick Sort
Heap Sort
Merge Sort
Shaker Sort
Insert Sort

tutaj można pobrać program: „Przegląd algorytmów sortowania”
Mam nadzieję, że program się przyda kody algorytmów pochodzą z książki „Algorytmy, struktury danych i techniki programowania”, przerobiłem je w ten sposób, aby można było je wkleić bezpośrednio do edytora i skompilować.
Pozdrawiam Levik !!!
Nadszedł weekend czas odpoczynku tak długo przez nas wyczekiwany – nareszcie będzie można się wyluzować np. na Olimpiadzie informatycznej organizowanej przez LOK (Liga Obrony Kraju). Konkurs dzielił się w mojej kategorii (czyli ‘S’) na dwie części praktyczną oraz teoretyczna.
W części praktycznej do napisania był program rozwiązujący „Problem Collatza” z tej części jestem zadowolony kod był krótki, przejrzysty i co najważniejsze działał prawidłowo, niestety dla pewnych danych mój program działa zbyt długo skończyło się na 17 punktach na 20 możliwych.
Część teoretyczna to po prostu test składający się z 20 pytań w którym kilka odpowiedzi jest prawidłowych. Niestety w tej części nie było już tak różowo. Za moment muszę posprawdzać swoje odpowiedzi i wreszcie zaspokoić ciekawość. Na szczęście wszystko dobrze się skończyło i uplasowałem się na 5 pozycji. Mogło być lepiej, ale pocieszający jest fakt, że drużynowo ( 4 osoby) zajęliśmy 2 miejsce. Puchar jest ?? JEST !!!
Zaraz sprawdzę prawidłowe odpowiedzi i … no właśnie chyba postawię na dobre kino dzisiaj już wystarczy bitów, bajtów, kodów, rekurencji i innych wynalazków.
Jeśli jesteś osobą szukającą informacji na temat konkursu z chęcią podzielę się przykładowymi testami (część praktyczna i teoretyczna). Wiem to paradoks… w sieci jest bardzo mało materiałów na temat konkursu, a zainteresowanie spore. Masz pytania pisz śmiało!

Pozdrawiam Levik
Jeśli tak jak ja odnalazłeś gdzieś w głębi swojej duszy potrzebę wysłania danych na www metodą POST, a nie masz na stronie formularza z pomocą przybywa cURL. Jeśli pozwolisz poprowadzę Cię przez proces instalacji w Dev-C++. Biblioteka pozwala na wysyłanie lub pobieranie treści formularzy. Przykładowy kod który pojawi się na końcu tego wpisu po bardzo delikatnych przeróbkach wystarczy przenieść do pliku *.php i będzie działał bez zarzutów. Wszystko za sprawą tego, że cURL posiada interfejsy do 30 języków programowania. Chcesz dowiedzieć się więcej pl.wikipedia.org/wiki/CURL
Zakładam, że korzystasz z Dev-C++ najbezpieczniej zainstalować paczki po przez:
Narzędzia –> Sprawdź czy są nowe uaktualnienia/pakiety (gdy otworzy się okno jako devpak server wybieramy devpaks.org)
klikamy – check for updates gdy ukarze nam się cały listing dostępnych bibliotek zaznaczamy:
-zlib
-openssl
-libcurl
Paczki muszą zostać zainstalowane w takiej kolejności ze względu na występujące między nimi zależności.
Po zakończonej instalacji możesz utworzyć projekt. Przejdź do opcji projektu i kliknij się w | Parametry | tam w polu tekstowym
| Konsolidator | wpisz:
-l curl
-l winmm
-l ssl
-l crypto
-l z
-l gdi32
-l ws2_32
Następnie w | Kompilator C++| dopisz:
-DCURL_STATICLIB
Ostatnią czynnością, jaką należy wykonać to w opcjach kompilatora dodać katalog do plików nagłówkowych C++. W moim przypadku to: D:\programy\Dev-Cpp\include\curl. Jak obiecałem na koniec przykładowy kod.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <stdio.h>
#include <curl.h>
int main(void){
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://localhost/login.php");
curl_easy_setopt(curl, CURLOPT_POST, 1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "login=levik&password=tajne");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
system("pause");
} |
Prawdą jest, że mysql++ to rewelacyjna biblioteka, ale nie jestem w stanie policzyć ile godzin walczyłem, żeby ją zainstalować i skompilować program na moim Xubuntu 7.04. Cała historia, zaczęła się od pomysłu na bota, o którym zapewne jeszcze nie raz napiszę. Wracając do sedna – bot miał komunikować się z bazą danych. Zacząłem szperać i trafiłem na mysql++ jako w pełni darmowe rozwiązanie, o którym wszyscy wypowiadają się w samych superlatywach. Z tej strony www.tangentsoft.net/mysql++/ zassałem paczki (2.3.2) i do dzieła.
Pakiety, jakie należy zainstalować, aby wogóle zacząć myśleć o mysql++ to:
mysql-client i libmysqlclient15-dev
Następnie możemy przejść do wydania poleceń (na moim sprzęcie troszkę to wszystko trwało – Toshiba 1800-554):
# ./configure
# make
# make install
Po tym wszystkim pomyślałem „no to teraz biorę się do roboty”, ale niestety to był dopiero początek…
Mój kompilator rzecz jasna g++ korzystam również z IDE – Anjuta. W moim przypadku polecenie kompilacji wygląda tak :
g++ test.cpp -o test -I /usr/local/include/mysql -I /usr/local/include/mysql++ -l mysqlpp -l mysqlclient
Wszystko pięknie, niestety jest jeszcze jedno „ale” program nie zadziała, jeśli nie dodamy tej linii kodu:
/usr/local/lib
do pliku /etc/ld.so.conf, następnie jako root wydajemy polecenie
#ldconfig
Dopiero teraz możemy cieszyć się naszym programem, poniżej wklejam przykładowy kod. Jeśli pojawią się jakieś pytania problemy piszcie śmiało.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| #include <iostream>
#include <mysql.h>
using namespace std;
using namespace mysqlpp;
int main() {
try {
char db[] = "nazwa_bazy_danych";
char host[] = "host";
char user[] = "user";
char passwd[] = "spass";
Connection c(db, host, user, passwd);
if(c)
cout << "==> Połączenie OK";
else
cout << "==> Sprawdz połącznie - ERROR ";
} catch (Exception& e) {
cout << "==> Error: " << e.what() << endl;
}
} |