Đội hình thi đấu của một đội bóng được thể hiện bởi ba số X, Y, Z trong đó X là số cầu thủ hậu vệ, Y là số cầu thủ tiền vệ, Z là số cầu thủ tiền đạo. Khi đã biết chính xác tên các cầu thủ cũng như chức năng của mỗi cầu thủ thì ta có thể biết được chính xác đội hình thi đấu của đội bóng đó. Viết chương trình thực hiện yêu cầu:
- Dữ liệu: file văn bản có tên BDA.INP có 11 dòng, mỗi dòng ghi tên một cầu thủ tiếp theo là dấu cách và chức năng của cầu thủ đó, chức năng là một trong các cặp kí tự: TD-Tiền đạo, TV- Tiền vệ, HV-Hậu vệ, TM-Thủ môn.
- Kết quả: ghi vào file văn bản có tên BDA.OUT theo cấu trúc:
Dòng đầu ghi 3 số X, Y, Z mỗi số cách nhau một dấu cách
Dòng thứ hai ghi tên các cầu thủ tiền đạo
Dòng thứ ba ghi tên các cầu thủ tiền vệ
Dòng thứ tư ghi tên các cầu thủ hậu vệ
Dòng thứ năm ghi tên thủ môn.
VD
BDA.INP BDA.OUT
Vinh -TD 4 4 2
Em -TV Vinh – Tien
Hoang -HV Em -Phuong - Tai - Phong
Phuong -TV Hoang -Thanh - Thinh - Duc
Tai -TV Son
Thanh -HV
Son -TM
Thinh -HV
Phong -TV
Duc -HV
Tien -TD
Giải
var
f:text;
a,b,h:array[1..100] of string;
n:string;
i,x,y,z,k,m:integer;
begin
assign(f,'bda.inp');
reset(f);
for i:= 1 to 11 do
begin
readln(f,b[i]);
n:=b[i];k:=0; m:=length(b[i]);
h[i]:= n[m-1]+ n[m];
repeat
k:=k+1;
a[i]:= a[i] + n[k]
until n[k+1]= ' ';
writeln(h[i]);
end;
close(f);
assign(f,'bda.out');
rewrite(f);
for i:= 1 to 11 do
begin
if h[i] = 'HV' then x:= x+1;
if h[i] = 'TV' then y:= y+1;
if h[i] = 'TD' then z:= z+1;
end;
writeln(f,x,' ',y,' ',z);
for i:= 1 to 11 do
if h[i] = 'TD' then
begin
z:= z-1;
write(f,a[i]);
if z<> 0 then write(f,' - ')
else writeln(f);
end;
for i:= 1 to 11 do
if h[i] = 'TV' then
begin
y:= y-1;
write(f,a[i]);
if y<> 0 then write(f,' - ')
else writeln(f);
end;
for i:= 1 to 11 do
if h[i] = 'HV' then
begin
x:= x-1;
write(f,a[i]);
if x<> 0 then write(f,' - ')
else writeln(f);
end;
for i:= 1 to 11 do
if h[i] = 'TM' then writeln(f,a[i]);
close(f);
readln;
end.
No comments:
Post a Comment
Cảm ơn bạn đã nhận xét