Koniec roku to bardzo dobra okazja do wszelkiej maści podsumowań. 2017 to był dla mnie zawodowo całkiem niezły rok:
Tag: DSP2017
Przegrałem “Daj się poznać”, ale i tak było fajnie – podsumowanie konkursu
W marcu tego roku wystartowałem w konkursie “Daj się poznać”. Moim projektem był Pierun – mój własny silnik blogowy. Prace nad jego ukończeniem trwają, ale jeszcze trochę czasu upłynie zanim przeniosę na niego mojego bloga. W trakcie trwania konkursu napisałem 40 postów, a wszyscy konkursowicze napisali ich razem prawie 8000.
W samym konkursie niestety nie udało mi się zostać zwycięzcą. Po głosowaniu wewnętrznym decydującym o dostaniu się do finału zająłem 3. miejsce (ex aequo z @nrmem), a w drugiej turze nie udało mi się nadrobić strat i ostatecznie skończyłem na miejscu x.
Zapraszam do lektury szczegółów.
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ś.
Misja Gynvaela 004
MISJA 004 goo.gl/ DIFFICULTY: ███░░░░░░░ [3/10] ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ Jeden z naszych agentów infiltruje siedzibę wrogiego syndykatu, i utknął pod drzwiami z elektronicznym zamkiem. Udało mu się dostać do elektroniki i zrzucić krótki program, który sprawdza wprowadzony kod i otwiera drzwi. Twoim zadaniem będzie wykonanie analizy poniższego programiku oraz znalezienie poprawnego kodu. #include <stdio.h> int check(char*b){char*p;for(p=b;*p;p++);if(((p-b)^42)!=47)return( ~0xffffffff);unsigned long long ch=0x1451723121264133ULL;for(p=b;* p;p++)ch=((ch<<9)|(ch>>55))^*p;return!!(14422328074577807877ULL== ch);}int main(void){char buf[1234];scanf("%1233s",buf);puts("nope" "\0good"+check(buf)*(6-1));return 0;} -- 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.
Kod, jak widać, jest trochę bardzo nieczytelny. Ok, to jest C, ale i tak powinno być lepiej. Dlatego pierwszym krokiem ku rozwiązaniu zadania było jego poprawne sformatowanie. Do tego użyłem http://format.krzaq.cc, mojego webowego frontendu dla clang-format.
Lawful Evil #2 – Pilne Kolos z struktur
Treść prośby1 o pomoc wyglądała następująco:
Zadanie 1
Zdefiniuj strukturę opisującą książkę zawierającą pola (ilość stron, numer
biblioteczny, termin wypożyczenia) , oraz zdefiniuj strukturę opisującą datę. W
programie dynamicznie utwórz zmienną typu strukturalnego z polem typu
strukturalnego , następnie wczytaj z klawiatury wartości pól, po czym wczytane
informacje wydrukuj na ekranie. Przed zakończeniem programu zwolnij pamięć po
dynamicznie utworzonej zmiennej. (3 pkt)
Zadanie 2
Napisz funkcję, która zwraca jako wartość wskaźnik do zmiennej strukturalnej
opisującej książkę. Zadaniem funkcji jest zaalokowanie zmiennej oraz ustalenie
wartości jej pól (wartości pól zmiennej wczytujemy z klawiatury).
Napisz program testujący działanie funkcji.Visual Studio
Wygląda na idealnego kandydata do tej kategorii.
1W sumie ciężko było powiedzieć czy to prośba, bo słowo “proszę” ani żadne podobne nie znajduje się w treści.
Ponowne podsumowanie postępów prac przy Pierunie
Wybaczcie aliterację, nie mogłem się powstrzymać. Rozwój Pieruna nie poszedł zbytnio do przodu w ciągu ostatnich kilku tygodni. Poprawiłem:
- dereferencję null pointera (thx, Rev!),
- kompilację na najnowszym archlinuksie,
- duplikację zawartości z perspektywy szukarek.