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