type
tint= integer;
tfloat = single;
tdata = record
old,new,users:tint;
average: tfloat;
end;
tdb = array[0..9] of tdata;
const
user_count = 9;
type
tint= integer;
tfloat = single;
tdata = record
_old,_new,_users:tint;
_average: tfloat;
end;
tdb = array[0..user_count] of tdata;
function read_data (fn:string; var data:tdb; var count:tint) : boolean;
var
f:text;
begin
count:=0;
assign (f,fn);
{$I-} reset(f); {$I+}
if ioresult<> 0 then read_data:=false else begin
read_data:=true;
while not eof(f) do begin
with data[count] do readln(f,_old,_new,_users,_average);
end;
end;
close(f);
end;
var
i:tint;
d:tdb;
begin
if not read_data('d:\r.txt',d,i) then begin
writeln('error')
end else begin
get_win(d,i);
end;
end.
uses crt;
const
n = 3;
m = 3;
type
TSinger = record
songs : array [1..m] of byte; // old, new, compose
sr : single;
usersPos : byte;
usersPrs : byte;
end;
TTable = array [1..n] of TSinger;
procedure ReadTable(var T : TTable; usrs : word);
var
i,j : byte;
onePrs : single;
begin
onePrs := usrs / 100;
for i := 1 to n do
with T[i] do begin
writeln('Артист N ',i);
writeln;
sr := 0;
writeln('Введите оцники за старую, новую, и песню М. копозитора о Москве :');
for j := 1 to m do begin
write('points[',j,']='); readln(songs[j]);
sr := sr + songs[j];
end;
writeln;
sr := sr / m;
write('На какое место артиста определила публика : '); readln(usersPos);
if usrs > 0 then begin
write('Сколько человек проголосовало по телефону : '); readln(usersPrs);
usrs := usrs - usersPrs;
usersPrs := round(usersPrs / onePrs);
end
else usersPrs := 0;
writeln;
end;
end;
function FindWinner(T : TTable) : byte;
var
i,j : byte;
win : boolean;
begin
win := false;
FindWinner := 0;
i := 1;
while (i <= n) and not(win) do
with T[i] do begin
win := true;
win := (sr > 6);
if win then begin
win := (usersPos <= 5);
if win then win := (usersPrs >= 7);
end;
if not(win) then inc(i) else FindWinner := i;
end;
end;
function GetPrize(T : TTable; win : byte) : boolean;
var
all,j : byte;
prs : byte;
prize : boolean;
begin
all := 0;
with T[win] do begin
for j := 1 to m do
all := all + songs[j];
prize := ((all / 100) * songs[2] >= 30);
end;
end;
var
Table : TTable;
users : word;
winner : byte;
begin
clrscr;
write('Сколько зрителей пишло на концерт :'); readln(users);
ReadTable(Table, users);
winner := FindWinner(Table);
if winner <> 0 then begin
write('Победитель - участник N ',winner);
if GetPrize(Table, winner) then write(' и он получает приз мэра');
end;
readln;
end.