update
[archive.git] / Apkawa / Study / pascal / lab1_task_15 / old / task_1~1.bak
blob1fde0d30b450b27240b59a5153224319d9a1f68d
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   = 'task_15_mod_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     result_line: result_line_type;
22 procedure find_min_phone_and_first_letter_family( i: integer; var result_line: result_line_type );
23         var
24             t: integer;
25         begin
26             if i > 1 then
27                 begin
28                 if in_lines[i,START_FAMILY] <=  result_line[START_FAMILY]  then
29                     begin
30                     for t:=START_PHONE to END_PHONE do
31                         begin
32                         if in_lines[i,t] <> result_line[t] then
33                             begin
34                             if in_lines[i,t] < result_line[t] then
35                                 begin
36                                 result_line := in_lines[i];
37                                 end;
38                             break;
39                             end;
40                         end;
41                     end;
42                 end
43             else
44                 result_line := in_lines[i];
45         end;
46         {END procedure find_min_phone_and_first_letter_family}
47 begin
48     assign( in_file, IN_FILE_PATH);
49     reset( in_file);
50     assign( out_file, OUT_FILE_PATH);
51     rewrite( out_file);
53     for i:=1 to MAX_LINES do
54         begin
55             {START read from in_file and write in out_file}
56             readln( in_file, in_lines[i]);
57             writeln( out_file, in_lines[i]);
58             {END}
59             find_min_phone_and_first_letter_family( i, result_line );
60             
61         end;
62     close(in_file);
63     writeln(out_file);
64     writeln(out_file,'Result');
65     writeln(out_file,result_line);
66     close( out_file);
67 end.