Praxisaufgabe
parent
c6cfacb410
commit
35d49d8c8e
@ -0,0 +1,105 @@
|
||||
{ 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.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,38 @@
|
||||
{ Julius Riegel, 20.12.18 }
|
||||
|
||||
program programm1;
|
||||
|
||||
uses
|
||||
utils in './lib/utils.pas';
|
||||
|
||||
const
|
||||
fname = './persons/Name';
|
||||
|
||||
procedure gen_entry(fnum: Integer);
|
||||
var
|
||||
temp_person: person;
|
||||
curr_fname : String;
|
||||
begin
|
||||
curr_fname := fname + int_to_str(fnum) + '.prs';
|
||||
Write(' Name: ');
|
||||
ReadLn(temp_person.pname);
|
||||
Write(' Surname: ');
|
||||
ReadLn(temp_person.psurname);
|
||||
temp_person.number := Random(101);
|
||||
WriteLn(' Number is: ', temp_person.number);
|
||||
WriteLn;
|
||||
write_file(curr_fname, temp_person);
|
||||
end;
|
||||
|
||||
var
|
||||
i : Integer;
|
||||
|
||||
begin
|
||||
Randomize;
|
||||
WriteLn;
|
||||
for i := 1 to 4 do
|
||||
begin
|
||||
gen_entry(i);
|
||||
end;
|
||||
WriteLn('[+] All names saved.');
|
||||
end.
|
@ -0,0 +1,41 @@
|
||||
{ Julius Riegel, 20.12.18 }
|
||||
|
||||
program programm2;
|
||||
|
||||
uses
|
||||
utils in './lib/utils.pas';
|
||||
|
||||
const
|
||||
fname = './persons/Name';
|
||||
|
||||
function reading_file_int(fnum: Integer): Integer;
|
||||
var
|
||||
curr_fname: String;
|
||||
temp_entry: person;
|
||||
|
||||
begin
|
||||
curr_fname := fname + int_to_str(fnum) + '.prs';
|
||||
temp_entry := read_file(curr_fname);
|
||||
graphictext(10, 20*fnum, 80, 'file' + int_to_str(fnum) + ': ' + curr_fname);
|
||||
reading_file_int := temp_entry.number;
|
||||
end;
|
||||
|
||||
var
|
||||
i: Integer;
|
||||
numsum, num: Integer;
|
||||
nums: Array [0..3] of Integer;
|
||||
|
||||
begin
|
||||
WriteLn;
|
||||
numsum := 0;
|
||||
init_graphics();
|
||||
for i := 1 to 4 do
|
||||
begin
|
||||
num := reading_file_int(i);
|
||||
nums[i-1] := num;
|
||||
numsum := numsum + num;
|
||||
end;
|
||||
graphictext(10, 100, 80, ('sum: '+ int_to_str(numsum)));
|
||||
drawrectnums(nums, 80);
|
||||
ReadLn;
|
||||
end.
|
Loading…
Reference in New Issue