update
[archive.git] / Apkawa / Study / pascal / lab1_task_15 / task15_2.pas
blob548fe1b7c812f04301322ca1d3cd19b879a65ab2
1 program task_15_mod_2;
2 { use string array and use procedure }
3 { tips for fpc - "fpc -mTP name_prog.pas" }
4 const
5 IN_FILE_PATH = 'task_15.in';
6 OUT_FILE_PATH = 'task15_2.out';
7 MAX_LENGTH_LINE = 24;
8 MAX_LINES = 10;
9 START_FAMILY = 1;
10 END_FAMILY = 15;
11 START_PHONE = 16;
12 END_PHONE = MAX_LENGTH_LINE;
13 type
14 result_line_type = string[MAX_LENGTH_LINE];
15 in_lines_type = array [1..MAX_LINES] of string[MAX_LENGTH_LINE];
16 var
17 in_file, out_file: text;
18 i:integer;
19 in_lines: in_lines_type;
20 family_line, phone_line: result_line_type;
22 procedure find_min( i, START_PIECE, END_PIECE: integer; var result_line: result_line_type);
23 var
24 in_t : string;
25 res_t : string;
27 begin
28 if i > 1 then
29 begin
30 in_t := copy( in_lines[i], START_PIECE, END_PIECE);
31 res_t := copy( result_line, START_PIECE, END_PIECE);
32 if in_t < res_t then
33 result_line := in_lines[i];
34 end
35 else
36 result_line := in_lines[i];
37 end;
39 begin
40 assign( in_file, IN_FILE_PATH);
41 reset( in_file);
42 assign( out_file, OUT_FILE_PATH);
43 rewrite( out_file);
45 for i:=1 to MAX_LINES do
46 begin
47 {START read from in_file and write in out_file}
48 readln( in_file, in_lines[i]);
49 writeln( out_file, in_lines[i]);
50 {END}
51 find_min( i, START_FAMILY, END_FAMILY, family_line );
52 find_min( i, START_PHONE, END_PHONE, phone_line );
54 end;
55 close(in_file);
56 writeln( out_file);
57 writeln( out_file,'Result');
58 writeln( out_file, 'min family');
59 writeln( out_file, family_line);
60 writeln( out_file, 'min phone');
61 writeln( out_file, phone_line);
62 close( out_file);
63 end.