Rabu, 19 Januari 2011

Tugas Teori Algoritma dan Pemrograman (bag.2)

Buatlah Algoritma kemudian terjemahkan ke dalam bahasa pemrograman pascal 

4. Menampilkan bilangan kelipatan tiga dari angka 1 s/d 20
5. Menampilkan bilangan ganjil dari angka 1 s/d 100
6. Menampilkan bilangan genap dari angka 1 s/d 50
7. Menampilkan bilangan prima dari angka 1 s/d 20
8. Menampilkan bilangan kelipatan 3 dan kelipatan 5 dari angka 1 s/d 30



Penyelesaian

4. Algoritma untuk menampilkan bilangan kelipatan 3 dari 1 s/d 20:
  1. menentukan nilai awal A:=3
  2. untuk i:=1 sampai 6 lakukan:
    • cetak A (nilai awal)
    • berikutnya cetak A:=A+3 lakukan sampai i ke 6, berhenti.
    listing program:
  1. uses crt;  
  2. var A, i: byte;  
  3. begin  
  4.   clrscr;  
  5.   A:=3;  
  6.   for i:=1 to 6 do  
  7.    begin  
  8.      write(A:4);  
  9.      A:=A+3;  
  10.    end;  
  11.   readln;  
  12. end.  

5. Algoritmanya untuk menampilkan bilangan ganjil dari 1 s/d 100:
  • untuk a:=1 sampai 100 lakukan:
    • jika a mod 2=1 maka
    • cetak a
    listing program:
  1. uses crt;  
  2. var a: byte;  
  3. begin  
  4.   for a:= 1 to 100 do  
  5.    begin  
  6.      if a mod 21 then  
  7.      write(a:4);  
  8.    end;  
  9.   readln  
  10. end.   


6. Algoritma untuk menampilkan bilangan genap dari 1 s/d 50:
  • untuk a:=1 sampai 50 lakukan:
    • jika a mod 2= 0 maka
    • cetak a.
    listing program:
  1. uses crt;  
  2. var a: byte;  
  3. begin  
  4.   clrscr;  
  5.   for a:= 1 to 50 do  
  6.    begin  
  7.      if a mod 20 then  
  8.      write(a:4);  
  9.    end;  
  10.   readln  
  11. end.  

7. Algoritma untuk menampilkan bilangan prima dari 1 s/d 20:
    Cara pertama menggunakan variabel bertipe boolean (true/false):
  1. bilangan prima hanya akan habis bila dibagi 1 dan bilangan itu sendiri.
  2. sehingga pasti akan ada sisa hasil bagi (mod) jika dibagi bilangan lebih dari 1 sampai bilangan sebelum bilangan itu (x-1).
  3. untuk nilai x= 2 sampai 20 lakukan:
    • mengeset status bilangan prima menjadi true.
    • pengecekan mulai dari 2 sampai x-1.
    • jika x habis dibagi bilangan yang ada antara 2 sampai x-1, berarti x bukan bilangan prima. Variabel prima yang awalnya true berubah jadi false dan pengecekan tidak perlu dilanjutkan (break).
    • jika dari bilangan antara 2 sampai x-1 tak satupun yang habis dibagi, maka variabel prima yang dideklarasikan sebagai true tidak berubah nilai (tetap true). Sehingga bilangan tersebut adalah bilangan prima dan akan ditampilkan ke layar.
    • ulangi lagi dari point 4 hingga nilai x = 20.
     Listing Program:
  1. uses crt;  
  2. var x,y: integer;  
  3.     prima: boolean;  
  4. begin  
  5.   clrscr;  
  6.   for x:= 2 to 20 do  
  7.    begin  
  8.      prima:= true;  
  9.      for j:= 2 to x-1 do  
  10.       begin  
  11.         if x mod y= 0 then  
  12.          begin  
  13.            prima:= false;  
  14.            break;  
  15.          end;  
  16.       end;  
  17.       if prima then write(x:4);  
  18.    end;  
  19.    readln;  
  20. end.  
     Cara kedua menyeleksi jumlah nol dari sisa bagi:
  1. Telah kita ketahui bahwa bilangan prima hanya akan memiliki sisa bagi= 0 ketika dibagi dengan angka 1 dan bilangan itu sendiri.
  2. Berarti jika bilangan prima dibagi dengan bilangan berapapun hanya memiliki 2 kesempatan mendapatkan sisa bagi=0.
  3. Ketika jumlah sisa bagi=0 lebih dari 2  berarti bilangan tersebut bukan bilangan prima, tidak ditampilkan ke layar.
     Listing Program:
  1. uses crt;  
  2. var i,j, jumlahnol: integer;  
  3. begin  
  4.   clrscr;  
  5.   for i := 1 to 20 do  
  6.    begin  
  7.      jumlahnol:= 0;  
  8.      for j:= 1 to i do  
  9.       begin  
  10.         if i mod j = 0 then  
  11.         jumlahnol:= jumlahnol+1;  
  12.       end;  
  13.      if jumlahnol = 2 then  
  14.      write(i:4);  
  15.     end;  
  16.   readln  
  17. end.  


8. Algoritma untuk menampilkan bilangan kelipatan 3 dan kelipatan 5 dari
    angka 1 s/d 30:
  • Untuk i:= 1 sampai 30 lakukan:
    • jika (i mod 3= 0) dan (i mod 5 =0)
    • maka cetak i.
     Listing Program:
  1. uses crt;  
  2. var i: byte;  
  3. begin  
  4.   for i:= 1 to 30 do  
  5.    if (i mod 3=0and (i mod 5=0)   
  6.    then write(i:4);  
  7.   readln  
  8. end

Tidak ada komentar:

Posting Komentar