Total Tayangan Halaman

Minggu, 01 November 2015

Contoh Pemograman Pascal

Program pengurutan;
uses crt;
var
   a, b : array [1..100] of integer;
   i, j, n, max, min, num : integer;
begin
clrscr;
       write('Banyak data: ');
       readln(n);

       for i:=1 to n do begin
         write('Data ke ',i,' : ');
         readln(a[i]);
       if (i=1) then begin
         max:=a[i];
         min:=a[i];
       end;

       if (a[i] > max) then max:=a[i];
       if (a[i] < min) then min:=a[i];
       end;

       for i:=min to max do b[i]:=0;

       for i:=1 to n do
        b[a[i]]:=b[a[i]]+1;
       num:=1;
       for i:=min to max do
       for j:=1 to b[i] do begin
           a[num]:=i;
           num:=num+1;
       end;

       for i:=1 to n do write(a[i],' ');
readln;
end.

{Langkah-langkahnya:
Pass 1: array A [5][7][2][3][1][9][7]
                 1  2  3  4  5  6  7
        array B [0][0][0][0][0][0][0][0][0][0]
                 0  1  2  3  4  5  6  7  8  9
Pass 2: array A [5][7][2][3][1][9][7]
                 1  2  3  4  5  6  7
        array B [0][1][1][1][0][1][0][2][0][9]
                 0  1  2  3  4  5  6  7  8  9
Pass 3: array B [0][1][1][1][0][1][0][2][0][9]
                 0  1  2  3  4  5  6  7  8  9
        array A [1][2][3][5][7][7][9]}



Program Bubble;
uses crt;
var
   b: array [1..100] of integer;
   i, j, n, temp: integer;
begin
clrscr;
       write('Banyak Data: ');
       readln(n);
       for i:=1 to n do begin
       write('Data ke ',i,' : ');
       readln(b[i]);
       end;
       for i:=n downto 2 do
         for j:=2 to i do begin
         if (b[j-i] > b[j]) then begin
         temp:=a[j-1];
         b[j-1]:=b[j];
         b[j]:=temp;
         end;
         end;
       for i:=1 to n do write(b[i],' ');
readln;
end.


program apaajalah;
uses crt;
  const maks= 50;

  type larik=array[1..maks] of integer;
var n,i,min,temp,j:integer;
    l:larik;
begin
clrscr;
writeln('Masukkan jumlah data: ');readln(n);
   for i:=1 to n do begin
   writeln('Masukkan data ke-',i,': ');readln(l[i]);
   end;

   writeln('Data inputnya adalah: ');
   for i:=1 to n do
   write(l[i]);

   for i:=1 to n-1 do begin
   min:=i;
   for j:=i to n do begin
      if l[j] > l[min] then
      min:=j;
   end;

   temp:=l[i];
   l[i]:=l[min];
   l[min]:=temp;
   end;

writeln;
writeln('Data setelah diurutkan: ');
for i:=1 to n do write(l[i],' ');
readln;
readln;
end.

{Langkah-langkahnya
Misalnya: [4][6][1][3][5][2]
Pass 1: [6][4][1][3][5][2]
Pass 2: [6][5][1][3][4][2]
Pass 3: [6][5][4][3][1][2]
Pass 4: [6][5][4][3][2][1]}



Tidak ada komentar:

Posting Komentar