ZWI #2 – zaprzyjaźniona pojedyńcza specjalizacja szablonu

Do napisania tej notki zainspirowało mnie to pytanie na forum. Lekko parafrazując podany kod, szablon klasy wyglądał następująco:

template<typename T>
void bar(Foo<T> f)
{
    DBG(f.val);
}
 
template<typename T>
struct Foo
{
    Foo(T val) : val{val} {}
 
    template<typename U>
    friend void bar(Foo<U>);
 
private:
    T val;
};

Misja Gynvaela 008

MISJA 008            goo.gl/gg4QcA                  DIFFICULTY: █████████░ [9/10]
┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅

Otrzymaliśmy dość nietypową prośbę o pomoc od lokalnego Instytutu Archeologii.
Okazało się, iż podczas prac remontowych studni w pobliskim zamku odkryto
niewielki tunel. Poproszono nas abyśmy skorzystali z naszego autonomicznego
drona wyposażonego w LIDAR (laserowy skaner odległości zamontowany na obracającej
się platformie) do stworzenia mapy tunelu.

Przed chwilą dotarliśmy na miejsce i opuściliśmy drona do studni. Interfejs I/O
drona znajduje się pod poniższym adresem:

  http://gynvael.coldwind.pl/misja008_drone_output/

Powodzenia!

--

Korzystając z powyższych danych stwórz mapę tunelu (i, jak zwykle, znajdź tajne
hasło). Wszelkie dołączone do odpowiedzi animacje są bardzo mile widziane.

Odzyskaną wiadomość (oraz mapę) umieśc w komentarzu pod tym video 🙂
Linki do kodu/wpisów na blogu/etc z opisem rozwiązania są również mile widziane!

HINT 1: Serwer może wolno odpowiadać a grota jest dość duża. Zachęcam więc do
cache'owania danych na dysku (adresy skanów są stałe dla danej pozycji i nigdy
nie ulegają zmianie).

HINT 2: Hasło będzie można odczytać z mapy po odnalezieniu i zeskanowaniu
centralnej komnaty.

P.S. Rozwiązanie zadania przedstawie na początku kolejnego livestreama.

Misja Gynvaela 007

MISJA 007            goo.gl/f6ogMR                  DIFFICULTY: █░░░░░░░░░ [1/10]
┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅
Otrzymaliśmy zaszyfrowaną wiadomość. Podobno użyty został potężny algorytm ROTn,
ale ze zmieniającym się kluczem. Klucz podobno zmienia się w prosty do
przewidzenia sposób, więć zostawiamy rozkodowanie wiadomości Tobie:

  KFGS WUSTRX DBZAYE KIGHFL RPNOMS

--

Odzyskaną wiadomość umieśc w komentarzu pod tym video 🙂
Linki do kodu/wpisów na blogu/etc z opisem rozwiązania są również mile
widziane!

P.S. Rozwiązanie zadania przedstawie na początku kolejnego livestreama.

Misja Gynvaela 006

MISJA 006            goo.gl/te47XT                  DIFFICULTY: ███░░░░░░░ [3/10]
┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅
Przeglądając stare dokumenty z lat '60 zeszłego wieku natrafiliśmy na taką oto
notatkę:

  c5 c2 c3 c4 c9 c3 40 82 a8 93 82 a8 40 86 81 91 95 a8 40 87 84
  a8 82 a8 40 82 a8 93 40 93 96 87 89 83 a9 95 a8 4b 40 c1 93 85
  40 95 89 85 40 91 85 a2 a3 4b

Przypuszczamy, że to jakieś zdanie w języku Polskim, ale nie udało nam się tego
zdekodować. Zrzucimy to więc na Ciebie. Powodzenia!

--

Odzyskaną wiadomość umieśc w komentarzu pod tym video 🙂
Linki do kodu/wpisów na blogu/etc z opisem rozwiązania są również mile
widziane!

P.S. Rozwiązanie zadania przedstawie na początku kolejnego livestreama.

Lawful Evil #4 – pętla switch

W tym odcinku opiszę problem z wątku zatytułowanego oryginalnie “Pilnie Potrzebna POMOC Program Obliczający Średnią C++”:

Zadanie: Napisz program, który wczytuje w pętli liczby różne od zera i oblicza ich sumę oraz średnią. Wczytanie zera oznacza zakończenie działania pętli i wyświetlenie obliczonych wartości. W C++.
Najlepiej w Dev-C++.
Będę wdzięczny za wszelkie wskazówki.
Czekam na odpowiedź.

Lawful Evil #3 – średnia i zliczanie elementów w tablicy

W tym odcinku opiszę problem z wątku zatytułowanego “Siema potrzebuj prosty program w c++ w visual studio ktoś potrafi ?”:

Napisz program, który zapisuje do tablicy 10 elementowej liczby rzeczywiste
dodatnie, w momencie, gdy podana przez użytkownika liczba jest ujemna program
wyświetla informację o błędnej liczbie i prosi o podanie innej liczby.
Po zakończeniu wprowadzania program powinien wywołać funkcję, która znajdzie
średnią wartość tablicy i policzy ile elementów tablicy jest większych od średniej.
Po zakończeniu działania funkcji w programie głównym mają zostać zapisane w
zmiennych wartość średnia oraz ilość liczb większych od średniej.

Misja Gynvaela 005

MISJA 005            goo.gl/BX0XeI                  DIFFICULTY: ██░░░░░░░░ [2/10]
┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅
Jeden z naszych agentów dostał się wczoraj w nocy do silnie strzeżonej placówki
dyplomatycznej i zrobił zdjęcie kartki z hasłem do jednego z ich serwerów.
Fotografię otrzymaliśmy nieco po północy, ale wygląda na to, że jest uszkodzone.

  http://gynvael.vexillium.org/ext/m5_tajne.png

Przeanalizuj powyższą fotografię i spróbuj odzyskać wykradzione hasło.

--

Odzyskaną wiadomość umieść w komentarzu pod tym video 🙂
Linki do kodu/wpisów na blogu/etc z opisem rozwiązania są również mile
widziane!

P.S. Rozwiązanie zadania przedstawię na początku kolejnego livestreama.

Opisany poziom sugeruje trudność zadania, ale, parafrazując pewnego popularnego polskiego polityka (partii PZPR): wyraźnie je przeszacowuje.

Jak zadawać pytania na forum

W poście Najczęściej spotykane błędy w pytaniach na forum opisałem najczęstsze i najbardziej frustrujące problemy z pytaniami na forach. W tym postaram się przekazać kilka rad jak unikać błędów podczas zadawania pytań, co robić aby pytanie było dobre i jak pomóc innym pomóc Tobie.

W skrócie można powiedzieć: wykaż minimum chęci i zainteresowania. Jeśli nie widać, że Tobie zależy na rozwiązaniu problemu, to tym bardziej nie będzie na tym zależało kompletnie obcym ludziom.

Dodatkowo, podobnie jak w metodzie gumowej kaczuszki, często sam akt przygotowywania opisu problemu jest wystarczający, aby znaleźć jego przyczynę i ją zlikwidować.

Najczęściej spotykane błędy w pytaniach na forum

Dość sporo udzielam się na szeroko pojętych forach pomagając ludziom z C++, a czasem również z innymi językami. W związku z tym bardzo często spotykam się z fatalnie zadanymi pytaniami. W tym wpisie wyleję swoją frustrację na najczęstsze z nich, w kolejności nieuporządkowanej. Porady jak uniknąć tych błędów oraz jak zadawać pytania znajdują się we wpisie Jak zadawać pytania na forum.

Nie będę prezentował żadnych linków, aby nikogo konkretnego nie zawstydzać, ponieważ nie o to w tym wpisie chodzi. Ale jeśli dostałeś od kogoś linka do tego posta, to jest szansa, że wstydzić się powinieneś. Albo powinnaś.