Sztuczki i haczyki II – errata

2008-06-09 by muczachan

Dla czytających z RSS-a, pojawił się  poprawiony tekst.

Sztuczki i haczyki II

2008-06-09 by muczachan

Poprzednio było o konieczności uważania na optymalizację, dzisiaj o kolejności wykonywania działań. Notacja skrócona, ale tym razem chyba jasna. ‘x’ jest globalne.

F() = x++; return 2^x
G() = x++; return 3^x
H() = x++; return 5^x

Jaki będzie wynik x=1; return F() * (G() + H())? Bez jakiejkolwiek optymalizacji, tym haczykiem proszę się nie przejmować.

a) w C/C++;
b) Java
c) C#.

Zadanie dodatkowe: co kompilator z czymś takim zazwyczaj robi?

Zadanie z gwiazdką: kiedy a+(b+c) będzie różne od (a+b)+c?

Głupie pytania XVI

2008-06-06 by muczachan

Jesteś recepcjonistą w dość nietypowym hotelu. Nie dość, że ma on nieskończoną liczbę pokojów, to jeszcze wszystkie one są zajęte. Ale z pewnością sobie poradzisz z poniższymi zadaniami, w końcu goście hotelowi też są nietypowi i od razu wykonują wszelkie polecenia wydane przez głośniki interkomu umieszczone w każdym pokoju.

a) Przyjechał samochód z pięcioma turystami. Jak ich umieścić w hotelu?
b) Przyjechał bus z nieskończoną liczbą turystów. Jak tych umieścić w hotelu?
c) Przyjechała nieskończona liczba busów, w każdym nieskończenie wielu turystów. Jak ich porozmieszczać?

Wszystko, oczywiście, jest wykonalne.

Sztuczki i haczyki I

2008-06-04 by muczachan

Co poniższe wypisze:

int i = 0;
cout << ++i << ++i << ++i << endl;
i = 0;
cout << i++ << i++ << i++ << endl;

Twórcze rozwinięcie poprzedniej sugestii (by Kleofas).

W innej wersji:

i=0;
print ++i;
print i++;

Głupie pytania XV

2008-05-28 by muczachan

Mamy sobie ciasto. Czekoladowe. Z lukrem. Bardzo ważne że z lukrem. Ciasto było wypiekane w prostokątnej blasze. Więc też jest prostokatne. Oraz czekoladowe. I z lukrem. Lukier jest bardzo ważny. Niestety jakiś złoczyńca wyciął sobie kawałek z tego ciasta. Prostokątny kawałek. W przekroju, znaczy. Ale całkiem ładnie wyciął. Pionowo. I nie za blisko ścianek, żeby ładna dziura została. Prostokątna.

I jak tu teraz podzielić to ciasto na pół, żeby dokładnie było? I sprawiedliwie. Bo lukier jest bardzo ważny. Jednym cięciem podzielić.

Co każdy programista wiedzieć powinien XIX

2008-05-26 by muczachan

Czym się różni ++i od i++. (Podpowiedziene przez rahna.)

Głupie pytania XIV

2008-05-19 by muczachan

Wracając do piratów z poprzedniej zagadki:

Słabo poszło. 6 piratów i tylko jedna, niepodzielna, złota moneta. Starym zwyczajem najstarszy z nich proponuje jakiś podział łupu, po czym wszyscy głosują nad jego przyjęciem. Najstarszy ma również głos rozstrzygający jeśli zachodzi potrzeba. Jeśli plan został odrzucony, proponujący zostaje zabity a obecnie najstarszy proponuje swój plan.

W tym zadaniu pirat jest istotą doskonale logiczną, najwyżej ceni sobie własne życie, na drugim miejscu mamonę, a na końcu jest koszenie konkurencji. Starszeństwo jest dobrze określone, nie ma nieporozumień.

Jaki plan podziału powinien zaproponować najstarszy pirat?

Co każdy programista wiedzieć powinien XVIII

2008-05-16 by muczachan

Chwilowo zabrakło mi inwencji. Znaczy, mnóstwo rzeczy jeszcze zostało, ale już bardziej specyficznych, a nie tyczących się ogółu programistów.

Jeśli jakieś sugestie, to bardzo proszę pisać.

Głupie pytania XIII

2008-05-14 by muczachan

5 piratów ma do podzielenia między siebie 100 złotych monet. Starym zwyczajem najstarszy z nich proponuje jakiś podział łupu, po czym wszyscy głosują nad jego przyjęciem. Najstarszy ma również głos rozstrzygający jeśli zachodzi potrzeba. Jeśli plan został odrzucony, proponujący zostaje zabity a obecnie najstarszy proponuje swój plan.

W tym zadaniu pirat jest istotą doskonale logiczną, najwyżej ceni sobie własne życie, na drugim miejscu mamonę, a na końcu jest koszenie konkurencji. Starszeństwo jest dobrze określone, nie ma nieporozumień.

Jaki plan podziału powinien zaproponować najstarszy pirat?

Co każdy programista wiedzieć powinien XVII

2008-05-12 by muczachan

O co chodzi z Unikodem.