Minggu, 19 Oktober 2014

8 SOAL PENGULANGAN DARI PAK DOSEN

program ripit_ganjil;
uses crt;

var
  n,a, akhir : integer;

begin
clrscr;
  write('awal: '); readln(n);
  write('akhir: '); readln(akhir);
  write('kelipatan: ');
  a := n;
  repeat
  begin
    if  (a mod 3 = 0) then
       write(a,' ');
       a := a + 1;
  end;
  until (a > akhir);
  readln();
end.











program whilee_perkalian;
uses crt;

var
  a, b, perkalian: integer;

begin
clrscr;
  write('perkalian: '); readln(perkalian);
  write('sampai perkalian: '); readln(b);
  a := 1;
  while  a <= b do
  begin
    writeln(perkalian,' * ', a ,' = ',perkalian * a);
    a := a + 1;
  end;
  readln();
end.

DAN MENGGUNAKAN FOR

 program perxan_dgnfor;
uses crt;

var
  perkalian, a, b : integer;

begin
  clrscr;
  write('perkalian: '); readln(perkalian);
  write(' akan dikalikan sampai? '); readln(b);
  for a := 1 to b do
  begin
    writeln(perkalian,' * ', a ,' = ',perkalian * a,' ');
  end;
  readln();
end.







program faktorial_pengulangan;
uses crt;

var
  akhir, awal, i : integer;
begin
  clrscr;
  writeln('faktorial (!)');
  write('faktorial dari: '); readln(akhir);
  awal := 1;
  i := 1;

  write(akhir,' != ');
  write(akhir);
  while ( i <= akhir - 1) do
  begin

     write(' * ',akhir - i);
     awal := awal * i;
     i := i + 1;

  end;
  write(' = ',awal * akhir);
  readln();
end.





program deret_goyang;
uses crt;

var
  n, a, total : integer;

begin
  clrscr;
  write('masukan anga: '); readln(n);
  write('deret goyang: ');

  total := 0;
  for a := 1 to n do
  begin
     if (a mod 2 = 0) then
      begin
        a := (a * -1);
        total := total + a;
        write(a,' ');
        a := (a * -1);
      end
     else
      begin
        write(a,' ');
        total := total + a;
      end;
  end;
  writeln('jumlah deret goyang ',total);
  readln();
end.

 




 


program karyawan;
uses crt;

var
 total, jjk, gaji : real;
 i,n : integer;

begin
  clrscr;
  write('masukan jumlah karyawan: '); readln(n);
  total := 0;
  for i := 1 to n do
  begin
     write('jam kerja karyawan ' , i , ' : ' ); readln(jjk);
     if (jjk > 7) then
     begin
        gaji := 7 * 10000 + ((jjk - 7) * (3 * 10000) / 2);
     end
     else
     begin
        gaji := jjk * 10000;
     end;
     writeln('total gaji: ',gaji:0:0);
     total := total + gaji;
  end;
  writeln();
  writeln('total gaji karyawan: ',total:0:0);
  readln();
end.

 


program game_bintang;
uses crt;

var
  i,j,k : integer;

begin
clrscr;

  for i := 1 to 4 do
  begin
     for j := 1 to i do
     begin
        write(' * ');
     end;
     writeln;
  end;
  readln();
end.










program game_angka;
uses crt;
{game membentuk bintang dengan angka}

var
  i, j, n : integer;

begin
clrscr;
   write('jumlah angka: '); readln(n);
   for i := 1 to n do
   begin
     for j := 1 to n do
     begin
         if (i=j) or ((i+j)=(n+1))then
            write(i,' ')
         else
            write(' ')

     end;
     writeln;
     writeln;
   end;
   readln();
end.

 


program belahketupat;
uses crt;

var
 i,j,n,d,e : integer;

begin
 clrscr;
 write('jumlah bintang: '); readln(n);
 d := ( n div 2 )+ 1;
 e := n div 2;


 if (n mod 2 <> 0)then
 begin
   for i :=1 to d do
   begin
     if i > 1 then
       for j := 1 to n do
       begin
          if(j-1=(n/2)+1-i)or ((j+1)=(n/2)+1+i) then
             write(' * ')
          else
             write(' ');
      end

   else
   for j := 1 to n do
   begin
      if (j=(n/2)+1)then
         write(' * ')
      else
         write(' ');
 end;

   writeln;
 end;

   for i:=n div 2 downto 1 do
   begin
       if i > 1 then
       for j := 1 to n do
       begin
          if(j-1=(n/2)+1-i)or ((j+1)=(n/2)+1+i)then
             write(' * ')
          else
             write(' ');
    end

   else
   for j :=1 to n do
   begin
      if (j=(n/2)+1)then

         write(' * ')
      else
         write(' ');
   end;


 end;
end
else
begin
   for i := 1 to e do
 begin
 if i > 1then
       for j := 1 to n do
       begin
          if(j-1=(n/2)-i)or ((j+1)=(n/2)+1+i)then
             write(' * ')
          else
             write(' ')
    end

   else
   for j :=1 to n do
   begin
      if (j=(n/2)) or (j=(n/2)+1)then
         write(' * ')
      else
         write(' ');
   end;

   writeln;
 end;

   for i:=n div 2 downto 1 do
   begin
   if i > 1 then
       for j := 1 to n do
       begin
          if(j-1=(n/2)-i)or ((j+1)=(n/2)+1+i)then
             write(' * ')
          else
             write(' ');
    end

   else
   for j:=1 to n do
   begin
      if (j=(n/2)) or (j=(n/2)+1)then
         write(' * ')
      else
         write(' ');
   end;

   writeln;
 end;
 end;
   readln();
end.