Zagadka: mając poniższy kod w C lub C++ i zakładając standardowy target x86 lub x64, odpowiedz, najlepiej bez kompilowania kodu, co powinna zwrócić funkcja f:

unsigned int m(unsigned short a, unsigned short b) {
return a * b;
}
unsigned int f()
  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@dupasmoka: @b33zon: Dzyń dzyń dzyń mamy prawidłową odpowiedź!
Standard mówi, że operacje arytmetyczne na małych typach dzieją się przez promocję do int. Zakładając 16-bitowe shorty i 32-bitowe inty, to o ile mnożenie dwóch unsignedshortów zmieściłoby się w unsignedincie, to już nie w zwykłym incie. Kompilator widzi, że 49999×49999 jest większe niż INT_MAX i że wynik m musiał się zmieścić w nieujemnym incie, więc wie, że niemożliwym wg
  • Odpowiedz
#zagadkaprogramistyczna #php

Małe zadanie na rozruszanie neuronów z rana. Szukamy najciekawszego sposobu na połączenie dwóch stringów. Można zarówno zastosować je bezpośrednio, jak również po przypisaniu do zmiennych. Może być klasycznie:

echo "foo" . "bar";


Może
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Lipathor:

Parse error: syntax error, unexpected ','


Mogłem od razu dodać, że rozwiązanie ma działać także przy przypisaniu i ma być deterministyczne.
  • Odpowiedz
Mirki, mam zadanie dla Was. Trzeba napisać kod, który zsumuje elementy tablicy (zakładamy, że w tablicy są tylko liczby całkowite dodatnie) bez użycia pętli, funkcji array_ i używania indeksu tablicy. Funkcja niech wygląda tak:

arraySum($arr, &$sum) { ... }

przykładowa tablica do zsumowania: array(1, 2, 3, 4, 5). Na ekranie przy takiej tablicy powinien się wyświetlić wynik = 15

#programowanie #zagadkaprogramistyczna #php
  • 33
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Andr3v: ++zmienna pwodouje powiekszenie PRZEd operacją. W tym zadaniu chodzi o to dlaczewog powimo operatora inkrementacji a pozostaje równe 4 po instrukcji sizeof()
  • Odpowiedz