Imię ..........Piotr
Nazwisko ........Lewicki
Wiek ..
Wzrost 72.4409449 inch
Waga ...2574.9728 oz
Narodowość .........Polska

06-07-2009

Symfonia C++ standard – odpowiedzi do ćwiczeń rozdział 1

Filed under: C++ — Tagi: , , — Levik @ 16:31

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

1
2
3
cout
<<
"test";

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ć.

27-06-2009

Kurs szybkiego czytania – pomiar szybkości czytania – Faster Reader

Filed under: C++ — Tagi: , , — Levik @ 21:20

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:

fasterreader

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:
df

16-03-2009

Algorytmy sortowania C++

Filed under: C++ — Tagi: , — Levik @ 15:13

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

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 !!!

11-08-2008

Olimpiada Informatyczna LOK – 5 miejsce

Filed under: C++ — Tagi: , — Levik @ 16:09

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!

kam_and_lev

Pozdrawiam Levik

12-07-2008

Dev-C++ cURL

Filed under: C++ — Tagi: , , , , — Levik @ 18:31

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");
}

07-07-2008

MySQL++ – genialny wynalazek

Filed under: C++ — Tagi: , , , — Levik @ 07:09

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 IDEAnjuta. 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;
}
 
}

- by levik@wp.pl L3VIK -

Jesteś gościem numer - Twój adres IP to: 38.107.179.210