Program bintang sama sisi dengan pascal

13/01/2011 17:29

Di artikel kali ini saya akan membahas bagaimana membuat program yang menampilkan bintang/asterik yang berbentuk segitiga sama sisi,,

ada dua macam output yang diharapkan:

output 1:

ouput 2:

 

nah,, bagusan mana yah kira - kira?? hehe..

tapi bukan bagus atau tidaknya yang akan saya bahas disini,, tetapi tingkat kesulitannya,,

kita mulai dari output yang pertama dulu,, kalau anda perhatikan,, jumlah bintang/asterik pada tiap barinya hanya bertambah 1,, baris pertama = 1 bintang, baris kedua=2 bintang, dst,, dan kalau diperhatikan dengan seksama,, cobalah hilangkan spasi yang ada diantara bintang - bintang tersebut(bukan spasi yang sebelum bintang). hasilnya akan menjadi output bintang rata kanan (klao ga tau kaya gimana liat artikel program bintang rata kanan dengan java),, betul ga??

nah,, jadi untuk membuat output yang pertama tidaklah terlalu sulit,,listingnya sama dengan jika kita membuat program bintang rata kanan, kita cuma harus menambahkan spasi setelah mencetak bintang,, seperti ini listingnya:

uses crt;

var

        x,y,z : integer;

begin

        clrscr;

        write ('masukan jumlah baris: ');

        readln(x);

        for y:=1 to x do

        begin

                for z:=1 to x-y do

                begin

                        write(' ');

                end;

                for z:=1 to y do

                begin

                        write('* ');

                end;

                writeln();

        end;

readln();

end.

 
sel;anjutnya,, kita bahas output kedua,, nah,, tingkat kesulitannya pada program ini lebih rumit karena bintangnya rapet2..(apa sehh??) haha,,
intinya, output kedua ini, jumlah bintang tiap barisnya selalu ganjil, baris pertama = 1 bintang, baris kedua = 3 bintang,dst dan berbentuk segitiga sama sisi.langsung aja kita liat listingnya:
 
uses crt;
var
        p,q,x,y,z:integer;
begin
        clrscr;
        write('masukan jumlah baris: ');
        readln(x);
        for y:=1 to x do
        begin
                p:=y*2;
                z:=1;
                for q:=1 to x-y do
                begin
                        write(' ');
                end;
 
                while(z < p) do
                begin
                        write('*');
                        z:=z+1;
                end;
                writeln();
        end;
readln();
end.
 
demikian bahasan programnya,, maaf klao jelasin logikanya agak ribet,, memang agak sulit kalo menjelaskan logika program, tapi akan lebih mengerti kalo mencoba sendiri..
selamat mencoba^_^

Back

Search site

Copyright@outtaste.co.cc