You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.1 KiB
Plaintext
105 lines
2.1 KiB
Plaintext
6 years ago
|
{ Julius Riegel, 20.12.18 }
|
||
|
|
||
|
unit utils;
|
||
|
|
||
|
interface
|
||
|
uses
|
||
|
crt,
|
||
|
Graph;
|
||
|
type
|
||
|
person = record
|
||
|
pname : String[10];
|
||
|
psurname : String[10];
|
||
|
number: Integer;
|
||
|
end;
|
||
|
|
||
|
function int_to_str(i: Integer): String;
|
||
|
procedure write_file(fname: String; data: person);
|
||
|
function read_file(fname: String): person;
|
||
|
procedure drawrectnums(nums: Array of Integer; size: Integer);
|
||
|
procedure init_graphics;
|
||
|
procedure graphictext(x, y, size: Integer; text: String);
|
||
|
|
||
|
implementation
|
||
|
|
||
|
function int_to_str(i: Integer): String;
|
||
|
begin
|
||
|
Str(i, int_to_str);
|
||
|
end;
|
||
|
|
||
|
procedure write_file(fname: String; data: person);
|
||
|
var
|
||
|
outfile: File of person;
|
||
|
|
||
|
begin
|
||
|
Assign(outfile, fname);
|
||
|
Rewrite(outfile);
|
||
|
Write(outfile, data);
|
||
|
Close(outfile);
|
||
|
end;
|
||
|
|
||
|
function read_file(fname: String): person;
|
||
|
var
|
||
|
infile: File of person;
|
||
|
begin
|
||
|
Assign(infile, fname);
|
||
|
Reset(infile);
|
||
|
Read(infile, read_file);
|
||
|
Close(infile);
|
||
|
end;
|
||
|
|
||
|
function format_num(num: Integer) : String;
|
||
|
var
|
||
|
tempstr: String;
|
||
|
begin
|
||
|
tempstr := int_to_str(num);
|
||
|
if (tempstr = '0') then
|
||
|
tempstr := '*';
|
||
|
format_num := tempstr;
|
||
|
end;
|
||
|
|
||
|
procedure init_graphics;
|
||
|
var
|
||
|
gdriver,
|
||
|
gmode : Integer;
|
||
|
begin
|
||
|
DetectGraph(gdriver, gmode);
|
||
|
InitGraph(gdriver, gmode, '');
|
||
|
end;
|
||
|
|
||
|
procedure graphictext(x, y, size : Integer; text: String);
|
||
|
begin
|
||
|
SetTextStyle(0, 0, round(size/40));
|
||
|
OutTextXY(x, y, text);
|
||
|
end;
|
||
|
|
||
|
procedure drawrectnums(nums: Array of Integer; size: Integer);
|
||
|
var
|
||
|
xsize,
|
||
|
ysize,
|
||
|
xstart,
|
||
|
ystart: Integer;
|
||
|
|
||
|
begin
|
||
|
xsize := GetMaxX;
|
||
|
ysize := GetMaxY;
|
||
|
xstart := Round(xsize/2) - round(size/2);
|
||
|
ystart := Round(ysize/2) - round(size/2);
|
||
|
SetTextStyle(0, 0, round(size/40));
|
||
|
OutTextXY(xstart+size, ystart, format_num(nums[0]));
|
||
|
OutTextXY(xstart+size, ystart+size, format_num(nums[1]));
|
||
|
OutTextXY(xstart, ystart+size, format_num(nums[2]));
|
||
|
OutTextXY(xstart, ystart, format_num(nums[3]));
|
||
|
end;
|
||
|
|
||
|
procedure draw_lines(xstart, ystart, size: Integer);
|
||
|
begin
|
||
|
Line(xstart, ystart, xstart+size, ystart);
|
||
|
Line(xstart+size, ystart, xstart+size, ystart+size);
|
||
|
Line(xstart+size, ystart+size, xstart, ystart+size);
|
||
|
Line(xstart, ystart+size, xstart, ystart);
|
||
|
end;
|
||
|
|
||
|
begin
|
||
|
{ Main Body }
|
||
|
end.
|