wtorek, 13 grudnia 2011

Problem pięciu filozofów

Problem ucztujących filozofów jest jednym z klasycznych zagadnień programowania współbieżnego dotyczącego zagadnienia synchronizacji procesów. Został on wymyślony przez E. Dijkstra w 1965 roku. Wymyślił on zadanie dotyczące sytuacji, w której 5 komputerów chce uzyskać dostęp do 5 współdzielonych dysków. Niedługo potem, problem został przedstawiony na nowo przez T. Hoare jako problem ucztujących filozofów.

Pięciu filozofów jest przy stole i wykonują jedną z dwóch czynności – albo jedzą, albo rozmyślają. Stół jest okrągły, przed każdym z filozofów jest się miska ze spaghetti (albo ryżem, albo czymkolwiek), a pomiędzy każdą sąsiadującą parą filozofów leży widelec (ewentualnie pałeczka do ryżu, w zależności od wersji). Także każdy ma przy sobie dwie sztuki - po swojej lewej i prawej stronie. Ponieważ jedzenie potrawy jest trudne przy użyciu jednego widelca, zakłada się, że każdy filozof korzysta z dwóch. 



Zrealizowana aplikacja składa się tak naprawdę z dwóch programów napisanych w języku C. Jeden główny, który inicjuje semafory w pamięci dzielonej oraz uruchamia osobne procesy dla każdego z filozofów. Procesy komunikują się ze sobą za pomocą semaforów w pamięci współdzielonej z wykorzystaniem bibliotek sys/sem.h oraz sys/shm.h



poniedziałek, 21 listopada 2011

Zbiór Mandelbrota

Zbiór Mandelbrota to podzbiór płaszczyzny zespolonej, którego brzeg jest jednym ze sławniejszych fraktali. Może to Tobie niewiele mówić jednak ten obraz podoba się wielu osobom. To właśnie przybliżony obraz tego zbioru.


Program generuje właśnie taki obrazek. Do tego działa w wersji konsolowej i na konsoli również tworzy ten zbiór. Napisany w C++ z użyciem STLa.

środa, 9 listopada 2011

Magiczne kwadrat i kalkulator

Aktualnie sporo się dzieje. Rok akademicki już dobrze w połowie, nadchodzą kolokwia, zaliczenia i projekty, zatem ja również mam sporo pracy :) Ostatnio zrealizowane projekty dotyczyły głównie algorytmów. Stworzyłem m. in.:

  • Program obliczający kwadraty magiczne,
  • Kalkulator uwzględniający priorytety działań.



Oba programy są napisane w ANSI C.

niedziela, 16 października 2011

System plagiatowy

Znacie plagiat.pl? Ostatnio pracowałem właśnie nad takim ciekawym projekt. Funkcjonalność jego to:

  • upload (wgrywanie) plików do bazy danych,
  • porównywanie wgranych plików z bazą danych,
  • wyświetlanie raportu w procentach,
  • możliwość konfiguracji porównywania (długość fraz, znaki interpunkcyjne, duże małe znaki),
  • konwersja z PDFa, Worda, HTML, RTF, TXT.
Projekt został napisany w PHP, MySQL z użyciem frameworka symfony.

sobota, 17 września 2011

Pisanie programów na zaliczenie

Piszę programy dla studentów na zaliczenie zajęć. Używam następujących technologii: PHP, MySQL, HTML, CSS, Python, Visual Basic for Application, C, C++, Java, Pascal. Oferuję pomoc przy projektach.

Kontakt
Mail: programowanie.na.zaliczenie@gmail.com
Telefon: 663 53 83 63