Home > Cerita, Komputer, Pengetahuan > Program iseng tahun kemarin

Program iseng tahun kemarin

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.
  • Share/Bookmark

Related posts:

  1. 3 Hari untuk 3 Tahun
  2. Buat Dynamic Sidebar (Widgets) tuh, begini bukan?
Categories: Cerita, Komputer, Pengetahuan Tags:
  1. July 22nd, 2008 at 10:44 | #1

    kayaknya familiar :-?

    [Reply]

  2. July 22nd, 2008 at 10:55 | #2

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

    [Reply]

  3. July 22nd, 2008 at 12:02 | #3

    apah inih????….

    pS. susah bgt komen disinih…error teruzz…

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

    Berita terakhir dari lala : Kopdar RumahBlogger – Ragunan

    [Reply]

  4. July 22nd, 2008 at 13:04 | #4

    tuh kan ga masuk komennyah..
    !
    jgn2 dianggap spam

    Berita terakhir dari lala : Kopdar RumahBlogger – Ragunan

    [Reply]

  5. July 22nd, 2008 at 14:09 | #5

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

    [Reply]

  6. July 23rd, 2008 at 02:22 | #6

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

    [Reply]

  7. July 23rd, 2008 at 03:15 | #7

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

    [Reply]

  8. July 23rd, 2008 at 11:24 | #8

    LoL :D

    Berita terakhir dari scratchz : Mengetahui Kecocokan Pasangan dengan True Love

    [Reply]

  9. July 23rd, 2008 at 13:59 | #9

    @scratchz: komennya gak niat nih.. :p

    [Reply]

  10. July 23rd, 2008 at 14:51 | #10

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

    Berita terakhir dari Xaliber von Reginhild : Islam dan Nazi

    [Reply]

  11. July 23rd, 2008 at 15:25 | #11

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

    [Reply]

  12. July 24th, 2008 at 16:33 | #12

    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!!!

    [Reply]

  13. July 24th, 2008 at 16:40 | #13

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

    [Reply]

  14. July 25th, 2008 at 11:39 | #14

    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

    [Reply]

  15. July 25th, 2008 at 12:54 | #15

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

    [Reply]

  16. July 25th, 2008 at 15:12 | #16

    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

    [Reply]

  17. July 25th, 2008 at 15:53 | #17

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

    [Reply]

  18. August 20th, 2008 at 12:33 | #18

    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

    [Reply]

  19. jesika
    January 12th, 2009 at 18:29 | #19

    koko mineweepernya g bisa dijalanin??trus blok memproses datanya itu masih kosong…

    [Reply]

  1. No trackbacks yet.

Zona MIKIR is Digg proof thanks to caching by WP Super Cache