3d Graphics programming
OpenGL Works
Programming language:
OpenGL, C# (OpenTK)
Description:
Video recording of interactive OpenGL 3d scenes.
Image processing programming
Treasure Hunting
Programming Language:
C#
Description:
As an input, this program uses an image file (map) with arrows with small marks on them and other objects a.k.a. treasures. The task of the program is to trace a path from the start point (red arrow) to the treasure, using the directions of the arrows: it follows the direction that the current arrow shows, until another arrow is found. This process continues till the found object is not an arrow, but a treasure.
Different types of objects are recognized by their eccentricity parameter. There may be a lot of distracting arrows and fake treasures on the map, but only the right way will be found.
An output of the program is an image file of a map with a correct path from the first arrow to the treasure.
Files:
Archive with the source code (rar)
Blur & Enlightenment
Programming Language:
C#
Description:
This program is used for enlightenment of dark images. Program algorithm is based on ideas from a Retinex algorithm. At first it creates a blurred version of an input image and then the enlightened image is made, based on the previous result.
Files:
Archive with the source code (rar)
Imperative programming
Music Information Database for Unix
Programming Language:
Written in C
Description:
This program will help you to structure information about music.
Files:
Archive with the source code (rar)
Help:
You may use these commands: add: to add the record to the base print: to show all the records in the base find: to search for the record by its number in the base search: to search for all the records by the artist or by the song name change: to change the record with the current number in the base delete: to delete the record from the base by its number there exit: to exit the program After typing the command follow the further instructions.
Online Graphics Card Game for Unix
Programming Language:
Written mostly in C, but since vector from namespace std is used, the language is C++.
Description: This is a popular Russian card game “the Fool” implemented as an online graphics multiplayer game (2-6 players) for Unix.
Files:
Archive with the source code (rar)
Help:
‘h’ is used for Hearts ‘b’ is used for Diamonds ‘t’ is used for Clubs ‘p’ is used for Spades
Calculator for mathematical expressions
Programming Language:
Written in C language.
Description:
This program is designed to calculate difficult mathematical expressions in integer numbers. One of the program’s features is the possibility to use variables. The program uses a tree-based algorithm to parse the expressions.
Files:
Archive with the source code (rar)
Help:
You may use the following tokens in the program: Unary operations: ~ - the operation of addition to 1; + - unary plus; - - unary minus; Binary operations: + - addition; - - subtraction; * - multiplication; % - mod; / - division without remainder; | - including bit OR; & - bit AND; ^ - excluding OR; <<,>> - shift left, shift right; Other operations: () - grouping; = - assignment (can be used with variables only, has the lowest priority) You may use variables. Each expression has to end with ';'.
Object-oriented programming
Queueing model (Bank)
Programming Language:
ActionScript 3.0
Description:
Program is created for modelling a work of a bank. To make it less boring, the graphic part was made in a frenzy style =)
In the end of every day and every week, a statistics report about bank efficiency is shown. It includes bank profit, clients lost, maximum crowd and average crowd.
You may change the following attributes to watch the bank service efficiency dynamics:
1) Number of bank clerks
2) Maximum (average) period between two clients coming into bank
3) Maximum time of service
4) Maximum and dangerous queue length
5) An effect of an unsatisfied customer (how strong does he affect the further interest to a bank)
6) Modelling step length (in minutes)
Help:
You may skip non-working hours by pressing "Space".
Files:
Archive with the source code (rar)
Report and Program structure description (doc)
Functional programming
Polynomial Simplifier
x + 3 x => 4 x
x + 3 x ^ 2 – 7 y ^ 3 + 2 y ^ 3 => x + 3 (x ^ 2) – 5 (y ^ 3)
x – 3 * (4 x – (5 * 6 * y – 28 y)) => – 11 x + 6 y
(x + y) * (x – y) * (2 x + 3 y) => 2 (x ^ 3) + 3 (x ^ 2) y – 2 x (y ^ 2) – 3 (y ^ 3)
(x + y) * (x + y) => (x ^ 2) + 2 x y + (y ^ 2)
(x + y) * (x + y) * (x + y) => (x ^ 3) + 3 (x ^ 2) y + 3 x (y ^ 2) + (y ^ 3)
Programming Language:
Lisp
Description:
This program is created to simplify polynomials.
Files:
Archive with the source code (rar)
Help:
Terms must be separated by spaces.
Pascal Language Interpreter
Result on the following program:
{Program with errors} (* Pascal Program { --------------- }*) { ---------------(* Pascal Program *) } Program; const n=2,m=4; var i,j,k:integer; p,q,r,i:boolean; {There is already a variable i} h,l:integer; begin m:=4+m; {Wrong assinment} p:=34+10; q:=true; j:=i+3*(1+n); {Wrong type usage} if (q) the {Wrong IF structure} l:=8+4; if(not q) then a:=41; {Assignment of the unknown variable} else begin h:=35+true; {Wrong type usage} p:=false or q; end for i:=1 5 do {Wrong FOR structure} begin if ( not p) then begin writeln(i,j); j:=j+1; end else begin writeln(h); h:=h+1; end end end.
Programming Language:
Refal
Description:
Pascal Language interpreter, capable of parsing programs with common language structures.
You may download the test files with Pascal programs from screenshot below.
Files:
Archive with the source code (rar)
Logic programming
Useful function set
Programming Language:
Prolog
Description:
Set operations: sublist, sort, subset, intersection, union, subtraction, sub_tree, min_path, short_path, cyclic, is_connected
Files:
Archive with the source code (rar)
Genealogy tree
Programming Language:
Prolog
Description:
Program for storage and correction of genealogy trees, capable of showing the type of relationship between any people in the base.
Help:
Interface is mostly written in Russian, and program features are using some specific Russian language constructions, like cases, so adapting it in English would be a tedious task. This is why it is only available in Russian.
Files: