Advertisement
huyhung94

Phân việc(Only Tiến)

Sep 22nd, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.78 KB | None | 0 0
  1. program phanviec;
  2. uses crt;
  3. var
  4.    cv:array[1..10,1..10]of integer;
  5.    a,x,pa_max:array[1..100] of integer;
  6.    i,j,hs,hs_max,n,t:integer;
  7.  
  8. Procedure Ve_pa(mau:integer); {Thu tuc ve phuong an co the xay ra. }
  9.                                     {Nguoi nao lam viec nao thi se to mau: mau}
  10.    var i,j,k:integer;
  11.    begin
  12.        clrscr;
  13.        textcolor(white);
  14.        write('   ');
  15.        for k:=1 to n do write('V',k,' ');
  16.        for i:=1 to n do
  17.            begin
  18.                writeln;
  19.                write('N',i,' ');
  20.                for j:=1 to n do
  21.                    if x[i]<>j then
  22.                       write(cv[i,j]:2,' ')        {Ve Truog hop viec khong ai lam}
  23.                    else
  24.                        begin                   {Ve truog hop viec co nguoi lam}
  25.                             textcolor(mau);
  26.                             write(cv[i,j]:2,' ');
  27.                             textcolor(white);
  28.                        end;
  29.            end;
  30.        writeln;
  31.        if mau=4 then writeln('Tong hieu suat MAX: ',hs_max)
  32.           else
  33.               if mau<>15 then
  34.                  begin
  35.                    writeln('Tong hieu suat: ',hs);
  36.                    writeln('Hieu suat MAX: ',hs_max);
  37.                  end;
  38.    end;
  39.  
  40. Function TinhHS:integer;
  41.    var k:integer;
  42.    begin
  43.         hs:=0;
  44.         for k:=1 to n do
  45.             hs:=hs+cv[k,x[k]];
  46.         TinhHS:=hs;
  47.    end;
  48.  
  49. procedure phan_viec(j:integer);
  50. var k,i:integer;
  51. begin
  52.  For i:=1 to n do
  53.    if a[i]=0 then     {a=0: Viec nay chua ai lam}
  54.      begin            {a=1: Viec nay da co nguoi lam}
  55.        x[j]:=i;     {nguoi j lam viec i}
  56.        a[i]:=1;     {danh dau viec i da co ng lam}
  57.        if (j<n) then
  58.           phan_viec(j+1)
  59.        else
  60.            if TinhHS>=hs_max then
  61.               begin
  62.                    for k:=1 to n do
  63.                        pa_max[k]:=x[k];
  64.                    hs_max:=TinhHS;
  65.                    Ve_pa(4); {Ve phuong an max: mau do}
  66.               end
  67.            else Ve_pa(14);  {Ve phuong an tim duoc: mau vang}
  68.       delay(1500);
  69.       a[i]:=0;
  70.      end;
  71. end;
  72.  
  73. begin
  74.   clrscr;
  75.   hs_max:=0;
  76.   {Nhap du lieu}
  77.   writeln('Nhap so nguoi, so cong viec: ');
  78.   readln(n);
  79.   {Gan tat ca cac cviec k ai lam}
  80.   for i:=1 to n do
  81.       a[i]:=0;
  82.   {Nhap hieu suat cviec}
  83.   for i:=1 to n do
  84.       for j:=1 to n do
  85.     begin
  86.     write('Hieu suat cong viec ',j,' cua nguoi ',i,' la: ');
  87.     readln(cv[i,j]);
  88.     end;
  89.   writeln('Nhan Enter de tiep tuc.');
  90.   readln;
  91.   {In ma tran hieu suat}
  92.   writeln('Ma tran hieu suat cong viec.');
  93.   writeln;
  94.   ve_pa(15);
  95.   writeln('Nhan Enter de tiep tuc');
  96.   readln;
  97.   {Tim va ve cac phuong an}
  98.   phan_viec(1);
  99.   ve_pa(15);
  100.   writeln('Tong hieu suat lon nhat: ',hs_max);
  101.   writeln('Nhan Enter de thoat.');
  102.   readln;
  103. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement