Ostatnio dodane

15.07.2010 - Maciej Piróg
TrudnośćTrudność

Własny język programowania. Część 4: Parser programów

Część 1.    Część 2.    Część 3.    Część 4.

W czwartej części dopełnimy dzieła i dołożymy ostatnią cegłę brakującą do pełnego interpretera. Nadamy w końcu naszemu językowi kształt, czyli składnię konkretną.

13.07.2010 - Maciej Piróg
TrudnośćTrudność

Własny język programowania. Część 3: Reprezentacja i interpretacja języka programowania

Część 1.    Część 2.    Część 3.    Część 4.

W trzeciej części cyklu stworzymy w końcu "dorosły" (choć bardzo prosty) język programowania przypominający język C oraz napiszemy samo serce interpretera, czyli klasy, które przechowują w pamięci oraz wykonują programy napisane w naszym języku.

11.07.2010 - Maciej Piróg
TrudnośćTrudność

Własny język programowania. Część 2: Parser + wyrażenia = kalkulator

Część 1.    Część 2.    Część 3.    Część 4.

W drugiej części cyklu dotyczącego interpretera prostego języka programowania zajmiemy się parsowaniem, czyli przekształcaniem napisów reprezentujących wyrażenia w drzewa wyrażeń. Ponieważ umiemy już obliczać wartości wyrażeń przedstawionych jako drzewa, powstanie kalkulator (czyli interpreter języka wyrażeń arytmetycznych).

15.06.2010

Systemy cząsteczkowe -- część 1

Systemy cząsteczkowe są techniką pozwalającą na uzyskanie ciekawych efektów graficznych bez dużego nakładu pracy. Za ich pomocą realizowane są efekty, takie jak ogień, dym, deszcz czy śnieg. W tym artykule postaram się opowiedzieć, czym są systemy cząsteczkowe i pokazać realizację kilku efektów.

15.06.2010 - Krzysztof Dryś
TrudnośćTrudnośćTrudność

Prawdopodobieństwo warunkowe i algorytm, który zadziwi Twoją panią od polskiego

Czy rachunek prawdopodobieństwa może się gdzieś przydać? Okazuje się, że tak - i to w pozornie odległej dziedzinie. W tym artykule zobaczymy, jak wykorzystać rachunek prawdopodobieństwa do stworzenia algorytmu, który rozpoznaje części mowy. Przekonajcie się, jak to możliwe, że te dwie rzeczy w ogóle mają coś wspólnego!

07.06.2010 - Filip Sieczkowski
TrudnośćTrudnośćTrudnośćTrudność

Trwałe struktury danych

W tym artykule opowiem nieco o zupełnie odmiennym od standardowego podejściu do tworzenia struktur danych ─ strukturach trwałych, a także przedstawię implementacje kilku najpopularniejszych struktur ─ stosów, drzew wyszukiwań binarnych i kolejek ─ w wersji trwałej.

10.05.2010 - Marcin Oczeretko
TrudnośćTrudność

Microsoft XNA, część 2

    W tym artykule kończymy pisanie prostej gry w siatkówkę, rozpoczęte w części pierwszej.

10.05.2010 - Marcin Oczeretko
TrudnośćTrudność

Microsoft XNA, część 1

    Wielu z nas myślało kiedyś o napisaniu własnej gry. Często jednak zapał mija podczas pracochłonnego pisania setek linijek kodu, aż w końcu wspaniały projekt umiera zapomniany. Korzystając z Microsoft XNA, możemy bardzo szybko stworzyć prostą grę i nie będzie to wymagało szczególnie dużego nakładu pracy. Jeśli tylko znasz podstawy języka C#, możesz jeszcze dziś zagrać w napisaną przez siebie grę!

26.04.2010 - Olgierd Humeńczuk
TrudnośćTrudność

Arkanoid 3D krok po kroku II

W poprzedniej części nauczyliśmy się jak tworzyć okno z przypiętym kontekstem Open GL, reagujące na podstawowe zdarzenia. Umiemy także wyświetlić ( na razie za pomocą linii ) sześcian. W tej części zajmiemy się tematem światła w grafice czasu rzeczywistego i m.in. nauczymy się korzystać z modelu, który oferuje biblioteka Open GL. Zapraszam do lektury.

26.04.2010 - Łukasz Milewski
Trudność

SVN czyli system kontroli wersji

Wyobraźmy sobie, że piszemy program albo sprawozdanie czy książkę. Oczywiście cały czas zmieniamy wpisany tekst - poprawiamy akapity, usuwamy i dodajemy funkcje, zmieniamy algorytmy i kolejność rozdziałów. W tym wszystkim pomaga nam kolega - bardzo nam się spieszy i przekonaliśmy go aby napisał za nas część pracy. W pewnym momencie uświadamiamy sobie, że wczorajsza wersja danego rozdziału była lepsza. Jednocześnie chcielibyśmy zachować jedno zdanie z przedwczoraj. Dodatkowo nasz kolega właśnie przesłał swoją część i domaga się aby szybko dołączyć ją do wyniku. Jak sobie z tym poradzić? Zaraz poznamy rozwiązanie.

25.04.2010 - Łukasz Milewski
TrudnośćTrudność

SeamCarving: Jak usunąć obiekt z obrazu przy pomocy skalowania?

Najlepsze algorytmy to takie, które korzystają z prostych idei i jednocześnie mają bardzo ciekawe zastosowania. Niewątpliwie jednym z nich jest SeamCarving - algorytm opracowany w 2007 roku. Skaluje obrazy, biorąc pod uwagę ich zawartość. Jednym z jego najbardziej praktycznych zastosowań jest usuwanie obiektów ze zdjęć.

23.04.2010 - Olgierd Humeńczuk
TrudnośćTrudność

Arkanoid 3D krok po kroku

Celem tego cyklu jest stworzenie gry komputerowej wzorowanej na pomyśle znanym z klasycznego już Arkanoid. Postaramy się odmłodzić tę grę dodając jej jeden wymiar, dzięki czemu nie tylko zyska przydomek 3d ale pozwoli nam się "pobawić" grafiką trójwymiarową. Grę będziemy pisać od podstaw w języku C++.

20.04.2010 - Krzysztof Dryś
TrudnośćTrudność

Kolory i kompresja

Jak sprawić, by zdjęcia zajmowały mniej miejsca? Czy wszystkie kolory są równe? I jak wiedza zdobyta na biologii może przydać się w informatyce? Odpowiedzi na te wszystkie pytania znajdziecie w tym artykule!

20.04.2010 - Krzysztof Dryś
TrudnośćTrudnośćTrudnośćTrudność

Pochodne i krawędzie

W tym artykule zajmiemy się szukaniem krawędzi na obrazach. Najpierw dowiemy się, po co się to robi. Potem nauczymy się szukać krawędzi przy pomocy komputerów. W tym celu posłużymy się takimi pojęciami jak: kwantyle, maksima lokalne i pochodne. Okażą się one bowiem, zupełnie niespodziewanie, bardzo przydatne w tym zagadnieniu.

17.03.2010 - Adam Błaszkiewicz
TrudnośćTrudność

DirectX: Trójwymiarowy labirynt od podstaw - Część II

W poprzednim artykule utworzyliśmy proste okno w WinApi i wyrenderowaliśmy w nim oteksturowany trójkąt za pomocą Direct3D. Teraz, mając na celu zaprogramowanie trójwymiarowego labiryntu, zajmiemy się mniej technicznymi rzeczami i napiszemy kod bezpośrednio dotyczący samego labiryntu. Nie będziemy wykorzystywać praktycznie niczego nowego, wystarczy nam sama znajomość C++ i wiedza zdobyta podczas czytania poprzedniego artykułu.

15.03.2010 - Adam Błaszkiewicz
TrudnośćTrudność

DirectX: Labirynt 3D od podstaw

W tutorialu tym utworzymy labirynt 3D, używając DirectX. Będziemy mogli się w nim poruszać nie tylko w jednej płaszczyźnie, lecz także w górę i w dół - będzie to prawdziwie trójwymiarowy labirynt.

08.03.2010 - Krzysztof Kercz
TrudnośćTrudność

Synteza mowy II: Akcent i zabawa dźwiękiem

Kontynuujemy nasze zmagania na drodze ku stworzeniu syntezatora mowy. Poprzednio opowiedzieliśmy o zamianie tekstu pisanego na ciąg fonemów i skończyliśmy na zaprojektowaniu algorytmu, który takiej zamiany dokonywał. Dziś osiągniemy kolejny stopień wtajemniczenia.

25.02.2010 - Agata Murawska
TrudnośćTrudność

Kto jest najbogatszy i czy to naprawdę miłość?

Czy zdarzyło Wam się kiedyś zakochać? Strasznie głupia sprawa, ale Alicja i Bob nie są pewni, co do siebie czują. Żadne z nich nie zdecyduje się powiedzieć drugiemu, że go (nie) kocha, póki nie usłyszy podobnej deklaracji od drugiej strony. Sytuacja wydaje się bez wyjścia - póki któreś z nich nie "pęknie", będą trwali w zawieszeniu. Zawieszona Alicja nie jest w stanie programować, a Bob projektować protokołów kryptograficznych - trzeba więc coś zrobić, żeby pomóc nieszczęsnej parze.

23.02.2010 - Tomasz Górzny
TrudnośćTrudnośćTrudnośćTrudność

Answer these queries

W tym artykule prezentuję rozwiązania trzech zadań ze SPOJa. Wszystkie pochodzą z (dość długiego) cyklu "Answer these queries" i (mimo dość podobnie wyglądających sformułowań) wymagają połączenia kilku różnych, i to dość nietrywialnych, pomysłów. Ze względu na zróżnicowany poziom trudności lekturę polecam zarówno początkującym, jak i starym wyjadaczom.

19.02.2010 - Wiktor Janas
TrudnośćTrudnośćTrudnośćTrudność

Query on a tree III

Każdy może czasem potrzebować k-tego elementu w n-wierzchołkowym drzewie. Przedstawimy kilka sposobów, mniej lub bardziej efektywnych, jak go znaleźć. Po drodze dowiemy się dlaczego STL wcale nie jest taki fajny, jak szukać mediany i że oszczędzanie połowy pracy na każdej operacji daje świetne efekty.

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com