Chotkos's Blog

Programowanie i informatyka

Saper by Chotkos

Mamy miły niedzielny wieczór, książka od niemieckiego już prawie przestała protestować po tym jak ją wcisnąłem do plecaka i mogę wreszcie przejść do sedna.

Mam niesamowity zaszczyt i przyjemność zaprezentować moje nowe niezwykle grywalne dzieło:

Saper by Chotkos 2010

dla dociekliwych udostępniam kod gry

Najbliższe recenzje już w lutowym CDaction  xD

Styczeń 24, 2010 Posted by | Doświadczenia, Perełki | , | Dodaj komentarz

Rekurencja

„Aby zrozumieć rekurencję, trzeba najpierw zrozumieć rekurencję”

Słowa, które napisałem wyżej, mogą się wydać bezsensowne, ale na tym właśnie polega rekurencja. Zazwyczaj występuje w funkcjach, w których musimy robić coś wgłąb np. jakiegoś grafu, jest to eleganckie i nowoczesne rozwiązanie, chociaż dla niektórych trudne do zrozumienia.

Najprościej rzecz ujmując rekurencja jest wtedy, kiedy funkcja f(x) uruchamia funkcję f(x). Najlepiej zobrazuje to przykład.

funkcja(X)

{

  • powiększ a o 1
  • wypisz a
  • czy a>5 ?
  1. jeśli nie to uruchom funkcja(X)
  2. jeśli tak, to wypisz „nareszcie a=”  a.
  • napisz „costam”

}

kiedy już to przetłumaczycie na jakiś język programowania otrzymacie w konsoli:

1
2
3
4
5
nareszcie a=5
costam
costam
costam
costam
costam

Mogło was zastanowić dlaczego mamy tutaj 5x napisane „costam” i jest to na końcu a nie na początku. Pamiętaj że funkcja po zakończeniu serii rekurencji zacznie zamykać te funkcje które zaczęła wcześniej – myślę, że lepiej zobrazuje to rysunek:

wykres

kolory z wykresu odpowiadają kolorom w kodzie, czerwona kreska pionowa oznacza rekurencyjne uruchomienie funkcji. Kolorem niebieskim zaznaczyłem, gdzie kończy się dana funkcja. Wykres należy śledzić od dolnej czarnej kreski na której ustawiłem tą „piramidę”.

Warto poćwiczyć rekurencję na jakichś zadaniach np. na mainie, u mnie powinno się coś takiego niedługo pojawić w sprawdzarce – jak tylko wpadnę na dobry pomysł 😉

Styczeń 24, 2010 Posted by | Algorytmy, Programowanie | | Dodaj komentarz

Nowy projekt

Witam ponownie – wczoraj nic nie pisałem, bo dostałem zlecenie na napisanie prostej gry w sapera. Niestety po tym jak już wtłukłem prawie cały kod, zleceniodawca zaznaczył, że musi być to program napisany w rdzennym i standardowym C, a nie C++ -.-‚ mimo wszystko dokończę tą gierkę, bo szkoda, żeby się zmarnowało 120 linijek kodu. Oczywiście opublikuję jak skończę 😉

Od następnego weekendu wreszcie powinna ruszyć fala zadań i opisów algorytmów ( wreszcie ferie! ).

Styczeń 24, 2010 Posted by | Uncategorized | | Dodaj komentarz

Perełka na dziś

Strona przeżywa dzisiaj niemalże oblężenie,  które zgotowało mi contest.pl 😉 ale ja już chyba na dzisiaj kończę. Na dobranoc jeszcze zagadka którą zabił mojej klasie klina Pan od geografii –

„Co to jest – pupilek niezguby”

Rozwiązanie

Styczeń 22, 2010 Posted by | Perełki | | Dodaj komentarz

Zadanie do bisekcji

Artykuł o bisekcji był nieco wcześniej ale dzisiaj wrzuciłem zadanie – Kolejka. Ogólnie to nie mam niestety dostępu do ograniczeń czasowych ( bo wilibyście się z bólu próbując się w nich wyrobić (-:[ ) dlatego też rozwiązania „na pałę” przechodzą, natomiast dla własnej uczciwości proszę o napisanie ich za pomocą bisekcji – w końcu robimy to żeby się czegoś nauczyć a nie szpanować miejscem w rankingu 😉

Styczeń 22, 2010 Posted by | Algorytmy, Programowanie | | Dodaj komentarz

Ideone.com

Muszę napisać tu o czymś ciekawym. Zapewne wiecie o projekcie Google Chrome OS, który zakłada, że już niedługo prawie w ogóle nie będziemy wykorzystywali dysków w naszych komputerach – wszystkie pliki i inne rzeczy znajdą swe miejsce w internecie, a w dodatku będziemy mieli również dostęp do aplikacji online. Piękna wizja nie?

No właśnie, tylko czy to jest dobre dla wszystkich? Wiecie… Panie z sekretariatu które nacodzień używają worda i exela raczej nie poczują problemu, ale powiecie że w sprawach takich jak programowanie liczą się różne parametry komputera, dostępność bibliotek, wersja kompilatora , blablablabla…

Możemy tak ględzić, tymczasem ktoś wpada na genialny pomysł i pewnie już od dziś zarabia niezłą kasę za niego – http://www.ideone.com

Środowisko programowania online! W lewym pasku wybieramy nasz ulubiony język programowania i odhaczamy „syntax highlite” – mamy środowisko programowania wygodniejsze pewnie od niektórych środowisk w tradycyjnej wersji, które jeszcze czasem da się spotkać.

  1. Strona pozwala zakodzić program,
  2. wgrać do niego input („click here to paste input (stdin) „) ,
  3. Skompilować! (submit)
  4. Testować do woli!

Polecam wszystkim którzy z jakichś względów nie mogą używać kompilatora na swoim komputerze ( a może i komórce-ile to możliwości daje!) Poza tym raczej można być pewnym że wszystko będzie sprawnie działać. Strona pozwala również na szybkie podzielenie się kodem w serwisach społecznościowych i ściągnięcie pliku źródła.

Jedyną wadą jest brak możliwości ściągnięcia pliku w formie skompilowanej .exe jednak da się bez tego żyć 😉

Styczeń 22, 2010 Posted by | Doświadczenia, Programowanie | | Dodaj komentarz

Reklama?

Szczerze mówiąc nie spodziewałem się, ale moja strona została zareklamowana na http://www.contest.pl dokładniej tutaj.

Ponieważ głupio mi zostawić sprawdzarkę właściwie pustą postanowiłem dorzucić nowe zadanko, do którego macie dostęp tutaj, jeżeli nie dajecie sobie rady to warto przeczytać jeden z wcześniejszych wpisów.

Dziękuję za promowanie bloga, umieszczam Was w blogrollu.

Styczeń 22, 2010 Posted by | Algorytmy, Doświadczenia, Programowanie | | Dodaj komentarz

Sesyjka

To jest artykuł opowieadający o doświadczeniach z programowaniem.

Opiszę dzisiaj wczorajszą wspaniałą batalię z zadaniem które miałem zadane w charakterze pracy domowej na kółko mazowieckie talenty.

Ogólnie rzecz ujmując to wczoraj miałem wczoraj trochę luzu i postanowiłem je zrobić. Było koło godziny 20:00 i w pokoju brzmiała przyjemna nutka Eastwest Rockers a przez dom nie przetaczała się bachoriada z krzykiem i wrzaskiem – innymi słowy idealne warunki do kodzenia.

Treść zadanka znajdziecie tutaj

Na gg był wtedy kumpel z kółka – Mateusz (MJMateusz) któremu wielce dziękuję. Szybko doszliśmy do wniosku, że należy łączyć najdłuższe deski z najkrótszymi. Na początku oczywiście kubełkowo sortujemy deski, następnie zmniejszamy ich ilość dodając do odpowiedniej zmiennej ilość płótna jaka była potrzebna.

Na początku kodziliśmy oddzielnie – ostatecznie mój kod przeszedł tylko 1 test, jego przechodził pierwsze 4, tak więc wysłał mi centralną część swojego kodu. Tutaj nastąpiła długa zawiecha… Nie mogłem w żaden sposób znaleźć błędu w tym co tam miałem – pewnie gdyby zawołać kobietę od razu do czegoś by się przyczepiła ( one mają to we krwi :/ ) ale w moim przypadku nie widziałem buga. Ostatecznie zrobiłem u siebie mały szacher-macher w kodzie i przeszedł 9/10  testów, z tym że nie robił testu nr. 9

Cały błąd polegał na tym, że u mnie w tym poporawionym kodzie nasz przejazd po tablicy w której mieliśmy ilości desek w komórce oznaczającej długość zaczynał się od 0 i kończył na najdłuższych deskach. Jednolinijkowa poprawka naprawiła sprawę nad którą kminiłem pewnie z 20 minut!

No ale co z tym testem nr 9?! Wg. sprawdzarki na SIO myliłem się w wyniku o coś koło 500 tys. a więc całkiem sporo. Błędy kardynalne były dwa:

  1. Za małe zmienne, trzeba było użyć unsigned long long int
  2. w tablicach zamiast np: int a[1000000] wystarczyło wpisać int a[1000001];

W taki oto sposób kilka minut po dziesiątej miałem już zaliczone zadanie i dodatkowe 10 punktów w rankingu. A dziś rano zaspałem na pierwszą lekcję, pozdrawiam panią od chemii ;P

Styczeń 20, 2010 Posted by | Doświadczenia | , , | Dodaj komentarz

Explorer traci poparcie

Hakerski atak cyberprzestępców na Google obnażył luki w zabezpieczeniach Internet Explorera, najpopularniejszej przeglądarki internetowej na świecie.

Zaufanie do niej spadło do tego stopnia, że francuskie i niemieckie władze odradzają swoim obywatelom jej używanie.

Francuski urząd zajmujący się bezpieczeństwem w sieci (CERTA) oficjalnie odradza używanie przeglądarki Microsoft Internet Explorer. To kolejny kraj, którego władze oficjalnie odradzają używania projektów Microsoftu. W piątek o ryzyku związanym z najpopularniejszą przeglądarką internetową na świecie poinformowało niemiecki Federalne Biuro ds. Bezpieczeństwa Technologii Informacyjnych (BSI).

Powodem bezprecedensowych zaleceń jest wykryta niedawno luka w zabezpieczeniach przeglądarek Internet Explorer. Francuski CERTA twierdzi, że wykryto ją w IE wersji 6,7 oraz najnowszej 8. Microsoft, ustami George’a Stathakopoulosa utrzymuje, że luka bezpieczeństwanie dotyczy IE 8. Ta najnowsza przeglądarka od Microsoftu jest elementem Windows 7, najnowszego systemu operacyjnego koncernu, który na rynku pojawił się w październiku ubiegłego roku.

Niemiecki i francuski urząd zwracają uwagę, że jak dotąd Microsoft nie udostępnił automatycznej aktualizacji dla Internet Explorera, która naprawiałaby wadę. Do czasu pojawienia się rozwiązania francuskie i niemieckie władze radzą internautom, by korzystali z alternatywnych przeglądarek.

Na wady w zabezpieczeniach Internet Explorera zwrócił uwagę nagłośniony w ubiegły wtorek ubiegłoroczny atak chińskich hakerów na Google i ok. 30 innych amerykańskich korporacji. Do włamania się na konta poczty Gmail cyberprzestępcy użyli m.in. luk w zabezpieczeniach Internet Explorera oraz Adobe Reader, najpopularniejszym programie do odczytu powszechnie używanych plików PDF.

Internet Explorer w wersji 6,7 i 8 jest używany przez 32 proc. polskich internautów. Ponad 50 proc. surfujących po sieci używa przeglądarki Firefox (dane za tydzień 4-10 stycznia). Udział Internet Explorera w światowym rynku przeglądarek to 62,7 proc. (dane za drugi tydzień stycznia).

Rzeczpospolita OnLine

Styczeń 18, 2010 Posted by | Informatyka ogólniej | | Dodaj komentarz

Sprawdzarka Uruchomiona!

Mam dobrą wiadomość, w prawym górnym rogu strony zauważyliście zapewne nową podstronę „Sprawdzarka zadań”. Dzisiaj w kilka minut udało mi się rozkręcić to do działającej postaci ;] co prawda jedyne zadanie jakie tam mam to zadanie testowe mające na celu sprawdzenie czy kompilator działa, ale już niedługo pojawią się nowe zadania do nowych zagadnień. Jestem z tego bardzo zadowolony bo teraz mogę widzieć wymierne wyniki pracy ;]

Styczeń 18, 2010 Posted by | Doświadczenia, Programowanie | | 1 komentarz