Program iseng tahun kemarin

July 22, 2008 – 10:32 am

sudah lama aq gak nyentuh programming pascal. Pas liat kerjaan tahun kemaren, waduh jadi lupa-lupa gitu. Tahun kemaren 2007, pas sy kelas 2 SMA, sy ikutan lomba yang ada di STT Telkom (ITT). yah, walaupun gagal dalam babak penyisihan, tapi tim satu lagi berhasil. Ada soal-soal ttg programming gitu. Sya dah bwat penyelesaiannya. Mudah2an bener. (ini dibuat tahun kemaren. jadi, klo ditanya sekarang, aq gak begitu hapal ttg prog ini. Maklum otaknya dah gak dipake selama satu tahun tuk ngeprogram)

1. Chess Board. Tugasnya disuruh bwat papan catur. Berikut kodenya (mudah2an ngarti) :

var a,b,x,y :integer;

begin
  write('Masukkan Input : ');
  readln(a);
  if (a<1) or (a>20) then
  writeln('Masukkan nilai dari 1-20')
  else
  begin
    for x:=1 to a do
    for y:=2 to a+1 do
    begin
      gotoxy(x,y);
      b:=x+y;
      if b mod 2 = 0 then write(' ') else write('*');
    end;
  end;

end.

2. Hourglass.

var
  banyakAngka: integer;
  bBaris, bKolom, i, j,n: integer;

begin
  write('Masukkan angka: ');readln(banyakAngka);
  n:=banyakAngka;
  if (n<3) or (n>25) then writeln('Masukkan nilai antara 3-25 bilangan ganjil') else
  if n mod 2 = 0 then writeln('Masukkan nilai ganjil') else
  begin
  banyakAngka:=(2*(banyakAngka-2))+1;
  bKolom:=banyakAngka;
  bBaris:=banyakAngka div 2 + 1;

  for j:=1 to bBaris-1 do
  begin
    for i:=1 to bKolom do
    begin
      if (i<=j-1) or (i>=BKolom-(j-2)) then
      begin
        write(' ');
      end
      else
      begin
        write('*');
      end;
    end;
    writeln;
  end;

  for j:=bBaris downto 1 do
  begin
    for i:=bKolom downto 1 do
    begin
      if (i<=j-1) or (i>=BKolom-(j-2)) then
      begin
        write(' ');
      end
      else
      begin
        write('*');
      end;
    end;
    writeln;
  end;
  end;
end.

3.Reverse

const
  inp='reverse.in';
  out='reverse.out';

var
  vFileInput : text;
  TempLine   : string ;
  rText      : string ;
  lText,i,j,c: integer;
  vTextFile  : string ;

begin
  writeln('file : reverse.in');
  assign(vFileInput, inp);
  reset(vFileInput);
  if IOResult=0 then
  begin
    while not Eof(vFileInput) do
    begin
      Readln(vFileInput, TempLine);
    end;
    Close(vFileInput);
  end;
  writeln(templine);
  lText:=length(templine)+1;
  rText:=templine;
  for i:=1 to lText do
  begin
    rText[i]:=templine[ltext-i];
  end;
  writeln('file : reverse.out');
  Assign(vFileInput, out);
  {$I-}
  rewrite(vFileInput);

  writeln(vFileInput, rText);

  Close(vFileInput);
  {$I+}
  writeln(rText);
end.

4. Minesweeper….

type  tArChar = array [1..100,1..100] of char;
      tArInte = array [1..100,1..100] of integer;

const cFinp = 'mines.in';
      cFout = 'mines.out';

var   vFile   : Text;
      X,Y,i,j : integer ;
      vText,z : String ;
      MinChar : tArChar ;
      MinInte : tArInte ;
      X2,Y2   : integer ;
      V       : String;

begin
  {Membersihkan Memori}
  begin
    for i:=1 to 100 do
    for j:=1 to 100 do
    begin
      MinChar[i,j]:=' ';
      MinInte[i,j]:=0;
    end;
  end;

  {Membaca File}
  begin
    {Memasukkan File}
    assign(vFile, cFinp);
    reset(vFile);
    readln(vFile, Y, X);
    for j:=1 to Y do
    begin
      readln(vFile,vText);
      for i:=1 to X do MinChar[i+1,j+1] := vText[i];
    end;
    close(vFile);
    {Mencetak File Input}
    begin
      writeln('File   : ',cFinp);
      writeln('Ukuran : ',X,' x ',Y);
      for j:=2 to Y+1 do
      for i:=2 to X+1 do
      if i=X+1 then writeln(MinChar[i,j]) else write(MinChar[i,j]);
    end;
  end;
  {MemProses Data}
  begin
    {Mengubah Data}
    begin
      X2:=X+1;
      Y2:=Y+1;
      for j:=2 to Y2 do
      begin
        for i:=2 to X2 do
        begin
          if MinChar[i,j] = '*' then
          begin
            MinInte[i-1,j-1] := MinInte[i-1,j-1] +1 ;
            MinInte[i-1,j  ] := MinInte[i-1,j  ] +1 ;
            MinInte[i-1,j+1] := MinInte[i-1,j+1] +1 ;
            MinInte[i,  j-1] := MinInte[i,  j-1] +1 ;
            MinInte[i,  j  ] := 0 ;
            MinInte[i,  j+1] := MinInte[i,  j+1] +1 ;
            MinInte[i+1,j-1] := MinInte[i+1,j-1] +1 ;
            MinInte[i+1,j  ] := MinInte[i+1,j  ] +1 ;
            MinInte[i+1,j+1] := MinInte[i+1,j+1] +1 ;
          end;
        end;
      end;
    end;
  end;
  {File Output & Cetak}
  begin
    writeln('File output : ',cFout);
    assign(vFile, cFout);
    reset(vFile);
    rewrite(vFile);
    begin
      writeln(vFile,Y,' ',X);
      for j:=2 to Y2 do
      begin
        v:='';
        for i:=2 to X2 do
        begin
          if MinChar[i,j] = '*' then z:=' ' else str(MinInte[i,j],z);
          V:= v + z;
        end;
        writeln(v);
        writeln(vFile,V);
      end;
    end;
    close(vFile);
  end;
{EOF}
end.

Info "Program iseng tahun kemarin":


This entry was posted on Tuesday, July 22nd, 2008 at 10:32 am and is filed under Cerita, Komputer, Pengetahuan eith tags . You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

  1. 18 Responses to “Program iseng tahun kemarin”

  2. 1. Komentar Petra Novandi pada Jul 22, 2008

    kayaknya familiar :-?

  3. 2. Komentar t4rum4 pada Jul 22, 2008

    @Petra Novandi: familiar.. hehehe.. namanya juga prog iseng..

  4. 3. Komentar lala pada Jul 22, 2008

    apah inih????….

    pS. susah bgt komen disinih…error teruzz…

    jadi we’ll see.. masuk nda ini komen..

    Berita terakhir dari lala : Kopdar RumahBlogger - Ragunan

  5. 4. Komentar lala pada Jul 22, 2008

    tuh kan ga masuk komennyah..
    !
    jgn2 dianggap spam

    Berita terakhir dari lala : Kopdar RumahBlogger - Ragunan

  6. 5. Komentar t4rum4 pada Jul 22, 2008

    @lala: masuk kok!! klo pake FireFox… harus di refreshh.. masih pake offline data kalee. :p

  7. 6. Komentar ichanx pada Jul 23, 2008

    what da fuc.k? pasti inih kode buat ngebobol brankas bank yah??? ngaku!!!!!!!

  8. 7. Komentar t4rum4 pada Jul 23, 2008

    @ichanx: hahaha.. bukan kok. nanti mo bwat ah. hahahahaha.. :D

  9. 8. Komentar scratchz pada Jul 23, 2008

    LoL :D
    Berita terakhir dari scratchz : Mengetahui Kecocokan Pasangan dengan True Love

  10. 9. Komentar t4rum4 pada Jul 23, 2008

    @scratchz: komennya gak niat nih.. :p

  11. 10. Komentar Xaliber von Reginhild pada Jul 23, 2008

    Wah, ada fungsi if-nya bikin saya ingat akan RPG Maker… :D *ngawur*

    Berita terakhir dari Xaliber von Reginhild : Islam dan Nazi

  12. 11. Komentar t4rum4 pada Jul 23, 2008

    @Xaliber von Reginhild: walah.. jadi ke RPG toh.. :p

  13. 12. Komentar atrix pada Jul 24, 2008

    wew… bingung kalo liat rumus2 kek gitu… mengingatkan aku pada pelajaran kelas 2 sma yaitu visual basic, soalnya biasanya nilai kompie w selalu diatas *narsis* 85 ato A, tapi kalo visual basic, saya selalu dapat 60 ato 65 aja… ato C+ :(
    Berita terakhir dari atrix : Rossi Menang!!!

  14. 13. Komentar t4rum4 pada Jul 24, 2008

    @atrix: wahh.. VB. Pemrograman Virus tuh.. :) seringnya pake VB sih.. :P

  15. 14. Komentar herry setyono - boelansabit pada Jul 25, 2008

    pascal? itu mah bahasa fosil
    tp walaupun fosil, tuh bahasa mmg bagus untuk jd media belajar programming. hehe…

    salut…kecil2 dah jago nih

    Berita terakhir dari herry setyono - boelansabit : Potong Rambut

  16. 15. Komentar t4rum4 pada Jul 25, 2008

    @herry setyono - boelan sabit: yahh dibilang fosil.. sekarang apa? VB? C++??

  17. 16. Komentar Eru Reed pada Jul 25, 2008

    Haha soal begituan..

    jadi inget waktu IOI nasional di jogja

    dari mulai classic traveling salesman, life-game, sampe catur 8 ratu itu

    Pusing ampe mabok wk wk wk

  18. 17. Komentar t4rum4 pada Jul 25, 2008

    @Eru Reed: hahaha… untungnya ga sampe koid. :D

  19. 18. Komentar iing pada Aug 20, 2008

    Wah, ini sih bahasa pascal, tapi terlihat di poin ke nomor 3. itu bahasa pascal dengan compiler Delphi. Apalagi terlihat dari caraa membaca datanya. ini bukan penyelesaian menggunakan pascal opensource lagi. udah pake delphi sih. Jadi inget skripsi saya 2tahun yang lalu. pusing di tulis dan baca filenya. Jangan2 kamu nyontek punya saya ya? atau ngulik sendiri? ahh, pasti sempet liat source saya ya? beneran nggaaa?? ah, yang bener? *maksa tea* wkwkwkwk. Udah gitu saya merasa terganggu ama yang ngomong pascal itu fosil. bahasa pascal, C++, fortran, basic dll juga fosil (malah pascal ad asetelah C). cuma sekarnag udah ada compiler yang baru. harap diingat programming language, algorithm, dan compiler itu sesuatu yang berbeda. hho. wah, jadi ingin ngulik assembler uyyy… keinginan tak tercapai dari SMA. hahahaha

Post a Comment