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.


Tuesday, October 14, 2014

Soal Dan Jawaban WHILE DO serta Game Singkat [PASCAL]

1. Buat algoritma dan program yang mencetak bilangan ganjil antara 1 sampai

 dengan n. Dimana n di inputkan oleh user


           uses crt;
var
        n, a: integer;

begin
clrscr;
        writeln('Masukkan Batasan Bil Ganjil   : '); readln(n);

        a := 1;
        while a <= n do
        begin
                write(a, '  ');

                a := a + 2;
        end;
        readln;
end.

2. Buat algoritma dan program yang meminta inputan n jumlah bilangan. 

 Kemudian program menghitung rata-rata dari semua bilangan tersebut.


           uses crt;
var
        n, j, a, r: real;


begin
clrscr;
        write('Masukkan batasan Nilai   : '); readln(n);

        j := 0;
        r := 0;
        a := 1;

        while a <= n do
        begin
                write(a:2:0, ' ');
                j := j + a;
                r := j / a;
                a := a + 1;
        end;
        readln;

        writeln('Rata rata nya adalah     : ', r:0:2); readln;

end.
3. Buat algoritma dan program game sederhana. Game ini akan menginisialisasi

  sebuah variable dengan sebuah karakter dan user akan menebak karakter

  tersebut. Game akan berhenti jika tebakan user benar.



           uses crt;
var
        t, j: string;
        n: integer;

begin
textbackground(99);
clrscr;
        textcolor(7);
        writeln('                 Ini Adalah Sebuah Game Singkat     ');
        write('               Game ini dibuat oleh M Lukmanul Hakim  ');
        readln;

        clrscr;

        textcolor(14);
        writeln('    Disini Saya sudah Menyimpan HURUF yang harus kalian tebak!    ');
        readln;

        clrscr;

        textcolor(15);
        writeln('           Kalian hanya tinggal menebak satu buah Huruf     ');
        readln;

        clrscr;

        textcolor(15);
        writeln('                            Oke Langsung Saja....       ');
        readln;

        clrscr;

        textcolor(15);
        writeln('                  Masukkan Sebuah Huruf Tebakkan!    '); readln(t);

        j := 'v';
        n := 1;

        while t <> j do
        begin
                textcolor(11 + n);
                textbackground(15 + n);
                write('                Wahh Masih Kurang Tepat!!! SEMANGAT!     '); readln;
                n := n + 1;

                clrscr;
                writeln('                    Masukkan Huruf nya Lagi!:       '); readln(t);
        end;


        clrscr;

        textcolor(15);
        writeln('                 Hahahaha Bagus Tebakkan Tepat Sekali !     '); readln;

        clrscr;

        writeln('                             Gampang Bukan?                  '); readln;


end.
4. Buatlah program pengulangan untuk menghitung jumlah sederet bilangan 

   berurut yang dimulai dari 1 hingga bilangan inputan. Contoh:
   INPUT  : 7
  PROSES  : 1+2+3+4+5+6+7
  OUTPUT  : 28

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

begin
clrscr;
        write('Masukkan Batas Nilai   : '); readln(n);

        j := 0;
        a := 1;
        while a <= n do
        begin
                if a = 1 then
                write(a)
                else
                write(' + ', a);
                j := j + a;
                a := a + 1;
        end;
        readln;

        write('Jumlah nya             : ', j);
        readln;

end.