Wednesday, October 22, 2014

[PASCAL] Kumpulan Soal dan Jawaban Perulangan For, Repeat, While



Berikut ini adalah beberapa contoh soal dan jawaban dari perulangan For, Repeat, While pada Pascal.


1.      Buatlah sebuah program untuk menampilkan bilangan kelipatan 3, dengan range berupa inputan dari user. Gunakan struktur repeat…until
Contoh inputan :
Awal  : 1
Akhir : 10
Kelipatan 3 : 3 6 9
Awal  : 15
Akhir : 30
Kelipatan 3 : 15 18 21 24 27 30


uses crt;
var
        naw, nak, kel: integer;

begin
clrscr;
    write('Masukkan nilai Awal   : '); readln(naw);
    write('Masukkan nilai Akhir  : '); readln(nak);

        if naw mod 3 = 0 then
                naw := naw
        else
                 repeat
                 begin
                  naw := naw + 1;
                 end;
                 until naw mod 3 = 0;

    write('Kelipatan             : ');
   
    repeat
    begin
         write(naw, '  ');
     naw := naw + 3;
    end;

    until naw > nak;

        readln;
end.





2.     Buatlah tabel perkalian menggunakan For. Kemudian buat juga dengan menggunakan While.
Input: Masukkan angka untuk tabel perkalian: 5
          Akan dikalikan dari 1 s.d: 20
Output :
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
.....dst
5 * 19 = 95
5 * 20 = 100


uses crt;
var
 a, n, h: integer;

begin
clrscr;

 write('Masukkan angka yang ingin dikalikan    : '); readln(a);

 n := 1;
 while n <= 20 do
 begin
    h := n * a;
    writeln(a, ' x ', n, ' = ', h);
    n := n + 1;
 end;
 readln;

end.





3.     Buatlah program untuk menghitung nilai faktorial suatu bilangan yang diinputkan oleh user.
Rumus faktorial adalah sebagai berikut :
n! = n*(n-1)*(n-2)*…*(n-(n-1))
n merupakan inputan dari user.
Boleh menggunakan struktur pengulangan  manapun.
Contoh inputan
Faktorial dari : 3
3! = 3*2*1=6
Faktorial dari : 5
5! = 5*4*3*2*1 = 120


uses crt;
var
 n, x, j, f: integer;

begin
clrscr;
 write('Masukkan nilai n    : '); readln(n);

 j := 1;
 x := n;
 write(n, '! = ');

 while (x > 0) do
 begin
    if (x = 1) then
         begin
        write(x, ' = ', j);
         end
    else
         begin
        write(x, ' x ');
         end;

        j := j * x;
    x := x - 1;
 end;
 readln;

end.




4.     Buatlah deret goyang beserta penjumlahannya.
Input:    Masukkan angka: 10
Output: Deret goyang: 1 -2 3 -4 5 -6 7 -8 -9 -10
             Jumlah deret goyang: -5


uses crt;
var
 x, j, a, n: integer;

begin
clrscr;
 write('Masukkan angka        : '); readln(x);

 a := 1;
 j := 0;
 n := 1;

 repeat
 begin
  if a mod 2 = 0 then
   begin
    a := a * (-1);
    write(a, ' ');
   end
  else
   begin
    a := a;
    write(a, ' ');
   end;

   j := j + a;
   n := n + 1;

  if a < 0 then
    a := a * (-1) + 1
  else
    a := a + 1;
 end;
 until n > x;

 writeln;

 write('Jumlah deret goyang   : ', j);
 readln;
end.



5.     Buatlah sebuah program untuk menghitung gaji n karyawan, n merupakan sebuah bilangan bulat yang akan diinputkan oleh user, kemudian akan dihitung gaji perkaryawan dengan ketentuan sebagai berikut :
Gaji per jam : Rp 10.000,-
Bila jam kerja > 7 jam, maka sisa jam kerja dihitung sebagai lembur yg besarnya 1.5 * gaji per jam
Kemudian ditampilkan total gaji karyawan yang harus dibayarkan oleh perusahaan.
Jumlah jam kerja tiap karyawan akan diinputkan oleh user
Contoh inputan
Jumlah karyawan : 3 [inputan user]
Jam kerja karyawan 1 : 8 [inputan user]
Total Gaji : 85000
Jam kerja karyawan 2 : 6 [inputan user]
Total Gaji : 60000
Jam kerja karyawan 3 : 12 [inputan user]
Total Gaji : 145000

Total Gaji karyawan : 290000


uses crt;
var
 kar, juk, jak: integer;
 gaj, tob: real;
begin
clrscr;
 write('Masukkan Jumlah Karyawan   : '); readln(kar);

 tob := 0;
 juk := 1;
 repeat
  begin
   write('Masukkan Jam Kerja Karyawan ', juk, '  : '); readln(jak);
   if (jak > 7) then
    begin
     gaj := (((jak - 7) * 10000 * 1.5) + (7 * 10000));
    end
   else
    begin
     gaj := jak * 10000;
    end;

    tob := tob + gaj;
        juk := juk + 1;
   write('Total Gaji   : ', gaj:0:0); writeln;

  end;
 until juk > kar;

 write('Total Gaji Karyawan   : ', tob:0:0); readln;
end.





6.     Buatlah program pengulangan bersarang dengan sintaks FOR untuk menampilkan output sebagai berikut:
*
**
***
****


uses crt;
var
 n, c, i: integer;

begin
clrscr;
 write('Masukkan Batasan Bintang   : '); readln(n);

 for c := 1 to n do
 begin
  for i := 1 to c do
   begin
    write('*');
   end;
  writeln;
 end;
 readln;

end.


0 comments:

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More