Pokazywanie postów oznaczonych etykietą programming. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą programming. Pokaż wszystkie posty

poniedziałek, 14 kwietnia 2014

[C++] Przeładowywanie operatorów

C++ to doskonałe narzędzie głównie z tego powodu, że pozwala robić programiście prawie wszystko, na co on ma ochotę.
Jedną z tych rzeczy jest właśnie przeładowanie operatorów.

Składnia

Przeładowanie można implementować na 2 sposoby:
  1. poprzez funkcję zaprzyjaźnioną
  2. metodę będącą składową klasy
Jaka jest różnica?
Pisząc a@b w pierwszym wypadku wywołanie będzie równoważne do:

 operator@(a,b);

Natomiast w drugim będziemy wołać metodę na rzecz któregoś obiektu:

a.operator@(b);

Przykład:

Powiedzmy, że chcemy sobie przeładować abstrakcyjny operator "@".
Czyli mają naszą klasę typ_arg i chcemy móc korzystać z wyrażenia "a@b"
(tak, żeby było to wyrażenie przemienne, tzn. a@b == b@a).

W klasie musimy sobie zaprzyjaźnić ten operator w następujący sposób.

friend typ_arg operator@(const typ_arg& arg1,const typ_arg& arg2);

Przeładowywanie operatora wypisywanie strumieniowego

Znajduje się w pliku nagłówkowym <ostream> (tym samym w <iostream>).

friend std::ostream& operator<<(std::ostream&, const typ_arg&);

operator << zawsze pobiera jako argument strumień wyjściowy a potem go zwraca, kiedy skończy go modyfikować w odpowiedni sposób.

czwartek, 23 stycznia 2014

Programowanie AVR

Czas na nowe hobby!
Niedługo, będę zaczynał moją przygodę z programowaniem mikrokontrolerowym.
Wybór padł na chip Atmel'a - Atmegę 8.
Pierwsze projekty powinny się pojawiać na przestrzeni kilku następnych tygodni.

Póki co garść linków, które były dla mnie pomocne :
 -> Mikrokontrolery
 -> Darmowe ebooki z Organizacji i architekury Komputerów, dość przydatne, jeśli chodzi o teoretyczną podbudowę całości.
 -> Ebooki o mikroprogramowaniu.

środa, 5 czerwca 2013

Programming resources, czyli chciałbym zacząć programować

Trzeba przyznać, że mało jest rzeczy, które byłby równie ciekawe oraz zmuszające do wysiłku umysłowego jak programowanie. Nie jestem programistą, ale zawsze chciałem się nauczyć programować.
Dopiero od niedawna zacząłem się o tym poważniej myśleć.  Można powiedzieć, że pod tym względem jestem geekiem. Dostałem grube tomisko o C++ dla początkujących i staram się tym zajmować.
Chociaż pewnych podstaw nauczyłem się jeszcze w gimnazjum za sprawą dość fajnej nauczycielki jaką miałem przez rok. Bawiłem się wtedy Turbo Pascalem, nawet pamiętam, że mi na jego temat pożyczyła książkę. No, ale po jej przerobieniu utknąłem w martwym punkcie. Nie bardzo wiedziałem, gdzie szukać przydatnych informacji.

Dopiero niedawno udało mi się znaleźć ciekawe i przede wszystkim (jak mi się wydaje) użyteczne źródła informacji. Jeżeli jakimś cudem szukając czegoś na temat początków z programowaniem uda ci się czytelniku natrafić na tego bloga, to poniżej zamieszczam listę linków wraz z opisem.

Jeszcze na wstępie muszę ci coś powiedzieć. Jeśli chcesz się zająć programowaniem na poważnie i myślisz o pracy w branży, to bez dwóch zdań musisz znać angielski. I to na naprawdę przyzwoitym poziomie.

Przydatne linki

Internet wbrew pozorom jest pełen wiedzy, która czeka na odkrycie. Wystarczy tylko głębiej pogrzebać. Z polskich stron oraz blogów polecam :
  • http://cpp0x.pl/ - dość oczywista strona, jeśli interesuje cię C++. Dokumentacja do samego C++ i kilku często używanych bibliotek. Jest w czym przebierać.
  • http://gynvael.coldwind.pl/ - naprawdę świetna strona prowadzona przez programistę, który naprawdę wie o czym pisze, miałem okazję dowiedzieć się o jego blogu dzięki Magazynowi Programista, który na pewno jest również źródłem wiedzy wartym uwagi 
  • Dział programowanie w Wikibooks - tak wiem, pewnie to jest jeden z pierwszych wyników wyskakujących w Google. Zdaję sobie sprawę również z faktu, że większość podręczników jest niedokończona, ale być może jesteś bardziej doświadczony - podziel się swoją wiedzą. Uważam jednak, że zawsze można sobie tu rzucintualnie jest jeszcze wersja angielska, która jest zdecydowanie lepiej rozbudowana (chociaż jej też przć okiem, przynajmniej na spisy treści, które na pewno podpowiedzą czego szukać dalej. Eweydałoby się rozbudowanie). Zajrzeć nie zaszkodzi.

Kursy on-line

Jeżeli mówimy o podstawach, to większość skieruje nas w stronę Pythona. Ja osobiście myślę, że im więcej języków tym lepiej. Jednak myśląc o Pythonie i  podstawach programowania to niezrównany bez wątpienia jest kurs MIT 6.00 Intro to Computer Science and programming, który można znaleźć na YouTube. Dodatkowo na stronie MIT OpenCurseWare można znaleźć materiały, które zostały rozdane podczas wykładów studentom. Ponadto MIT ma bardzo bogatą ofertę nie tylko związaną z CS, polecam się pobawić z ich stroną, można znaleźć na prawdę wiele interesujących kursów.

Jeżeli chodzi o WebDev to bezwątpienia dobrą stroną jest Codecademy. Budowa strony w HTML5 z użyciem CSS oraz Javascriptu wraz z jQuery, obsługa strony serwerowej z PHP lub Ruby, dodatkowo kurs Pythona oraz popularnych APIs (np. od YouTube). Wszystko w jednym miejscu, umieszczone w quasi-social media obudowie, która motywuje do działania poprzez przyznawanie punktów oraz badges.

Niestety, nie znalazłem niczego tak dobrego w mowie ojczystej jak kursy oferowane po angielsku. Inne kursy on-line oferowane są na przykład przez takie strony jak :
Tutaj w większości kursy prowadzone są przez prawdziwe uczelnie z całego świata. Odbywają się z różną częstością i w różnych dziedzinach ( nie tylko Computer Science czy Computer Engineering).

Mam nadzieję, że mój bełkot do czegoś się przyda. Wiem, ile czasu mnie zajęło przeszukiwanie sieci, może komuś to ułatwi start.