Sabtu, 08 Desember 2012

Record Pertandingan Bola

uses wincrt;
type ttim = record
          nama:string[10];
          menang,seri,kalah,m,k,nilai:byte;
     end;
     tdaf=array[1..10] of ttim;
     turut=array[1..10] of shortint;
     tjadi=array[1..10] of byte;
var tim:tdaf;
    i,j,n,skora,skorb,indeks:byte;
    urut: turut;
    jadi: tjadi;
    maks: shortint;
begin
     write('Jumlah tim:');readln(n);
     for i:=1 to n do
     with tim[i] do begin
         write('Nama tim ke-',i,':');readln(nama);
     end;
     for i:=1 to n-1 do
         for j:=i+1 to n do begin
             writeln('Pertandingan ',tim[i].nama,' vs ',tim[j].nama,':');
             write('   Gol ', tim[i].nama,':');readln(skora);
             write('   Gol ', tim[j].nama,':');readln(skorb);
             tim[i].m:=tim[i].m+skora;
             tim[j].m:=tim[j].m+skorb;
             tim[i].k:=tim[i].k+skorb;
             tim[j].k:=tim[j].k+skora;
             if skora>skorb then begin
                tim[i].menang:=tim[i].menang+1;
                tim[j].kalah:=tim[j].kalah+1;
             end
             else if skora<skorb then begin
                  tim[j].menang:=tim[j].menang+1;
                  tim[i].kalah:=tim[i].kalah+1;
             end
             else begin
                  tim[i].seri:=tim[i].seri+1;
                  tim[j].seri:=tim[j].seri+1;
             end;
         end;
     for i:=1 to n do tim[i].nilai:=tim[i].menang*3+tim[i].seri*1;
     for i:=1 to n do urut[i]:=tim[i].nilai;
     for i:=1 to n do begin
         maks:=-1;
         for j:=1 to n do
             if urut[j] > maks then begin
                indeks:=j;
                maks:=urut[j];
             end;
         jadi[i]:=indeks;
         urut[jadi[i]]:=-1;
     end;
     readln;
     writeln;
     writeln('               Klasemen Akhir Turnamen');
     writeln('--------------------------------------------------------');
     writeln('| Nama Tim |Menang| Seri | Kalah | Selisih Gol | Nilai |');
     writeln('--------------------------------------------------------');
     for i:=1 to n do begin
         indeks:=jadi[i];
         writeln('|',tim[indeks].nama:10,'|',tim[indeks].menang:4,'  |',tim[indeks].seri:4,'  |',
         tim[indeks].kalah:4,'   |',tim[indeks].m:5,' -',tim[indeks].k:2,'    |',tim[indeks].nilai:4,'   |');
     end;    
     writeln('--------------------------------------------------------');
end.

Tidak ada komentar:

Posting Komentar

array data mahasiswa

program array_1Dimensi; uses  winCrt; var  nim,nm,smstr,mk,grade:array[1..4] of string;  nh,uts,uas:array[1..4] of integer;  na:array...