Sabtu, 17 Januari 2015

LATIHAN PERULANGAN PADA PASCAL (Bagian 3)


kasus

"Buatlah Program dengan 3 moodel perulangan Repeat-Until, While, dan For untuk permasalahan deret ukur 3, 9, 23, ..."

Baiklah langsung saja perhatikan di bawah ini

Perulangan Repeat - Until
   uses crt;
   var
     i,p,nilai   : integer;
   begin
     clrscr;
     writeln(' PERULANGAN REPEAT-UNTIL ');
     writeln('-------------------------');
     writeln;
     write('Masukkan Jumlah Deret = ');readln(p);
     writeln;
     nilai   :=3;
     i       :=1;
     repeat
     begin
          write(nilai:5);
          i      := i + 1;
          nilai  := nilai * 3;
     end;
     until i> p;
   readln;
   end.

   Tampilan program dan hasilnya:




Perulangan While
   uses crt;
   var
     i,deret,nilai   : integer;
   begin
     clrscr;
     writeln('    PERULANGAN WHILE     ');
     writeln('-------------------------');
     writeln;
     write('Masukkan Jumlah Deret : ');readln(deret);
     writeln;
     nilai   :=3;
     i       :=1;
     while i <= deret do
     begin
          write(nilai:5);
          i      := i + 1;
          nilai  := nilai * 3;
     end;
     readln;
     end.

  Tampilan program dan hasilnya:



Perulangan For
       uses crt;
   var
     i,p,nilai   : integer;
   begin
     clrscr;
     writeln('     PERULANGAN FOR      ');
     writeln('-------------------------');
     writeln;
     write('Masukkan Jumlah Deret : ');readln(p);
     nilai:=3;
     for i:= 1 to p do
     begin
          write(nilai:5);
          nilai  := nilai * 3;
     end;
   readln;
   end.

Berikut tampilan program dan hasilnya :

LATIHAN PERULANGAN PADA PASCAL (Bagian 2)

Kasus 1
Buatlah program untuk menghitung jumlah yang harus dibayar oleh nasabah jika meminjam uang disuatu koperasi dimana bunganya dijadikan pokok pada bulan berikutnya.

Bingung...? langsung saja ketikan listing di bawah ini pada pascal
       uses crt;
   var
     awal,akhir,rpbunga   : real;
     bunga, lama, i       : integer;
     mau                  : char;
   begin
     repeat
       clrscr;
       write('Pinjaman Awal = Rp. ');readln(awal);
       write('Bunga [%] = ');readln(bunga);
       write('Lamanya Pinjaman [Periode] = ');readln(lama);
       writeln('------------------------------------------------');
       writeln(' Periode Bunga [%] Pinjaman Pinjaman Bunga [Rp] ');
       writeln('                    Awal      Akhir');
       writeln('------------------------------------------------');
       for i:=1  to lama do
       begin
         akhir:=awal + ((bunga/100) * awal);
         rpbunga:=0.1 * awal;
         writeln(i:5, bunga:9, awal:11:0, akhir:11:0, rpbunga:10:0);
            awal:=akhir;
       end;
       writeln('Mau Menghitung Lagi ? [Y/N] : ');
       readln(mau);
       until mau='N';
   readln;
   end.

Jika suda di ketik maka tampilannya akan seperti di bawah ini


Tampilan Hasilnya :

Di bawah hasil hitungannya ada pertanyaan "Mau Hitung Lagi" Jika kita pilih Y maka akan di lakukan perhitungan lagi dari awal dan jika kita pilih T akan berhenti dan keluar


Kasus 2
Ubah perintah For dari kasus 1 dengan perintah While Do

Langsung saja ketikan scrib atau listing di bawah ini :
   uses crt;
   var
     awal,akhir,rpbunga   : real;
     bunga, lama, i       : integer;
     mau                  : char;
   begin
     repeat
     clrscr;
       write('Pinjaman Awal = Rp. ');readln(awal);
       write('Bunga [%] = ');readln(bunga);
       write('Lamanya Pinjaman [Periode] = ');readln(lama);
       writeln('------------------------------------------------');
       writeln(' Periode Bunga [%] Pinjaman Pinjaman Bunga [Rp] ');
       writeln('                    Awal      Akhir');
       writeln('------------------------------------------------');
       i:=1;
       while i <= lama do
       begin
         akhir:=awal + ((bunga/100) * awal);
         rpbunga:=0.1 * awal;
         writeln(i:5, bunga:9, awal:11:0, akhir:11:0, rpbunga:10:0);
            awal:=akhir;
         i:=i+1;
       end;
       writeln('Mau Menghitung Lagi ? [Y/N] : ');readln(mau);
       until mau='n';
   readln;
   end.

Jika suda di ketik maka tampilannya akan seperti di bawah ini:



Tampilan Hasilnya :

sama seperti di hasil program dari kasus 1 di bawah hasil hitungannya ada pertanyaan "Mau Hitung Lagi" Jika kita pilih Y maka akan di lakukan perhitungan lagi dari awal dan jika kita pilih T akan berhenti dan keluar.

LATIHAN PERULANGAN PADA PASCAL (Bagian 1)

Kasus 1
Buatlah program untuk mencetak bilangan bulat sbb: 15  13  11  9  7  5  3  1 menggunakan struktur perulangan Repeat-Until, While dan For!

      1.  Perulangan repeat-until
          Ketikkan listing di bawah ini di pascal

     uses crt;
     var i:integer;
     begin
     clrscr;
     writeln(' ----------------------- ');
     writeln(' PERULANGAN REPEAT UTNIL ');
     writeln(' ----------------------- ');
     writeln;
     i := 15;
     repeat
     begin
     if i mod 2 = 1 then
     write(i:3);
     i:=i-1;
     end;
     until i<1;
     readln;
     end.

     Jika sudah maka gambarnya seperti di bawah ini




 Hasilnya :




      2.  Perulangan while 
           Ketikkan listing di bawah ini di pascal

            uses crt;
            var i:integer;
            begin
              clrscr;
              writeln(' ----------------------- ');
              writeln('     PERULANGAN FOR      ');
              writeln(' ----------------------- ');
              writeln;
              for i:= 15 downto 1 do
              begin
                if i mod 2 = 1 then
                write(i:3);
              end;
            readln;
            end.

           Jika sudah maka gambarnya seperti di bawah ini



Hasilnya :


        2.  Perulangan while 
             Ketikkan listing di bawah ini di pascal
           
          uses crt;
          var i:integer;
          begin
           clrscr;
           writeln(' ----------------------- ');
           writeln('    PERULANGAN WHILE     ');
           writeln(' ----------------------- ');
           writeln;
           i:=15;
           while i >=1 do
           begin
            if i mod 2 = 1 then
            write(i:3);
            i:=i-1;
           end;
           readln;
           end.

              Jika sudah maka gambarnya seperti di bawah ini



Hasilnya



Kasus 2
Ada katak masuk kedalam sumur sedalam 31.2 m. 5 hari pertama katak bias naik 3 m tiap pagi dan merosot 1 meter tiap malam, 10 hari berikutnya katak bias naik 2 meter tiap pagi dan merosot 1.25 m tiap malam, selanjutnya naik 2 m tiap pagi dan merosot 1.5 m tiap malam, berapa hari katak tersebut dapat keluar dari sumur?

Bingung....? Langsung saja ketik listing dibawah ini di pascalnya masing-masing

uses crt;
var merosot, kedalaman, selisih : real;
    hari, naik    : integer;
begin
clrscr;
     write('Masukkan Kedalaman Sumur : '); readln(kedalaman);
     writeln('----------------------------------------------------------');
     writeln('Jumlah Hari    Naik    Merosot    Jumlah Naik    Kedalaman');
     writeln('                                    Per Hari');
     writeln('----------------------------------------------------------');
     hari    := 1;
     naik    := 3;
     merosot := 1;
     selisih := naik - merosot;
     while kedalaman>0 do
     begin
       kedalaman := kedalaman-selisih;
       writeln(hari:7, naik:10, merosot:12:2, selisih:12:2, kedalaman:14:2);
       hari := hari+1;
       if (hari>5) and (hari<=15) then
          begin
               naik    := 2;
               merosot := 1.25;
               selisih := naik-merosot;

          end;
    end;
readln;
end.

Jika sudah maka gambarnya seperti di bawah ini


Hasilnya :