teacher

teacher
be the fanatic of mathematics

Sunday, January 8, 2012

Procedure dalam Progran PASCAL

Mencoba berbagi..
Tugas ini saya kerjakan untuk memenuhi tugad MID semester Ganjil untuk Algoritma dan Pemrograman II: membuat program yang isinya tentang procedure (yang menurut aku lumayan rumit). Setelah banyak ditemui kendala, dan dengan perubahan di sana-sini, finally it has done..
Alhamdulillahh :)
This is it**

program Segitiga;
uses wincrt;



var
pil: byte;
ans: char;

     {sub program}
     procedure Jenis_Segitiga;
     var
      A, B, C, x, y: integer;
     begin
     clrscr;
           gotoxy(30,1); writeln('--=o Nur Fadlilah o=--');
           gotoxy(30,2); writeln('     06101008027      ');
           writeln;
           gotoxy(30,4); writeln('=========================');
           gotoxy(30,5); writeln('Menentukan Jenis Segitiga');
           gotoxy(30,6); writeln('=========================');
           writeln;
           write('Masukkan sisi A (dalam cm): '); readln(A);
           write('Masukkan sisi B (dalam cm): '); readln(B);
           write('Masukkan sisi C (dalam cm): '); readln(C);
           writeln;
           x:= sqr(C);
           y:=sqr(A)+sqr(B);
           if (x<y) then
              write('Segitiga dengan sisi A:',A,', sisi B:',B,', dan sisi C:',C,' merupakan Segitiga Lancip')
           else
           if(x=y) then
              write('Segitiga dengan sisi A:',A,', sisi B:',B,', dan sisi C:',C,' merupakan Segitiga Siku-siku')
           else
           if(x>y) then
              write('Segitiga dengan sisi A:',A,', sisi B:',B,', dan sisi C:',C,' merupakan Segitiga Tumpul');
      end;

      {sub program}
      procedure Luas;
      var   L: array[1..100] of real;
            alas, tinggi: array[1..100] of integer;
            i,n: integer;
      begin
      clrscr;
             gotoxy(30,1); writeln('--=o Nur Fadlilah o=--');
             gotoxy(30,2); writeln('     06101008027      ');
             writeln;
             gotoxy(30,4); writeln('========================');
             gotoxy(30,5); writeln('Menghitung Luas Segitiga');
             gotoxy(30,6); writeln('========================');
             writeln;
             write('Mau menghitung luas berapa segitiga? '); readln(n);
             for i:=1 to n do
                 begin
                 write('Masukkan alas segitiga ',i,': '); readln(alas[i]);
                 write('Masukkan tinggi segitiga ',i,': '); readln(tinggi[i]);
                 L[i]:=1/2*(alas[i]*tinggi[i]);
                 writeln;
                 end;
                 for i:= 1 to n do
                 begin
                 writeln('Luas segitiga ke-',i,'adalah ',L[i]:0:3);
                 end;
             writeln;      
      end;
     
      {Sub program}
      procedure Keliling;
      var   K: array[1..100] of real;
            a,b,c: array[1..100] of integer;
            i,n: integer;
      begin
      clrscr;
             gotoxy(30,1); writeln('--=o Nur Fadlilah o=--');
             gotoxy(30,2); writeln('     06101008027      ');
             writeln;
             gotoxy(30,4); writeln('============================');
             gotoxy(30,5); writeln('Menghitung Keliling Segitiga');
             gotoxy(30,6); writeln('============================');
             writeln;
             write('Mau menghitung keliling berapa segitiga? '); readln(n);
             writeln;
             for i:=1 to n do
                 begin
                 write('Masukkan sisi a segitiga-',i,': '); readln(a[i]);
                 write('Masukkan sisi b segitiga-',i,': '); readln(b[i]);
                 write('Masukkan sisi c segitiga-',i,': '); readln(c[i]);
                 K[i]:=a[i]+b[i]+c[i];
                 writeln;
                 end;
                 for i:=1 to n do
                 writeln('Keliling segitiga ',i,' adalah: ',K[i]:0:3);
                 writeln;
      end;
               
      {sub program}
      procedure Menyusun_Angka;
      var i,j,n : integer;
      begin
      clrscr;
      gotoxy(30,1); writeln('--=o Nur Fadlilah o=--');
      gotoxy(30,2); writeln('     06101008027      ');
      writeln;
      gotoxy(30,4); writeln('==============');
      gotoxy(30,5); writeln('Menyusun Angka');
      gotoxy(30,6); writeln('==============');

      writeln;
      write('Masukkan jumlah baris: '); read(n);
      for i:=1 to n do
          begin
          gotoxy(40-3*i,i+10);
          for j:=1 to i do
          write (i:6);
          writeln;
          writeln;
          end;
      end;

      {sub program}
      procedure Menyusun_Bintang;
      var i,j,n: integer;
      begin
      clrscr;
      gotoxy(30,1); writeln('--=o Nur Fadlilah o=--');
      gotoxy(30,2); writeln('     06101008027      ');
      writeln;
      gotoxy(30,4); writeln('=========================');
      gotoxy(30,5); writeln('Menyusun Bintang Segitiga');
      gotoxy(30,6); writeln('=========================');
      writeln;
      write('Masukkan jumlah baris: '); read(n);
      for i:=1 to n do
            begin gotoxy(40-3*i,i+10);
            for j:=1 to i do
            write('*':6);
            writeln;
            writeln;
            end;
      end;
     
      {sub program}
       procedure Menyusun;
       var s: integer;
       begin
       clrscr;
        gotoxy(30,1); writeln('--=o Nur Fadlilah o=--');
        gotoxy(30,2); writeln('     06101008027      ');
        writeln;
        gotoxy(25,4); writeln('***************************');
        gotoxy(25,5); writeln('*                         *');
        gotoxy(25,6); writeln('*        M E N U          *');
        gotoxy(25,7); writeln('*   1. Menyusun Angka     *');
        gotoxy(25,8); writeln('*   2. Menyusun Bintang   *');
        gotoxy(25,9); writeln('*                         *');
        gotoxy(25,10);writeln('***************************');
        writeln;
        gotoxy(25,14); write('Pilih nomor: '); read(s);

                     case s of
                     1 : begin
                         Menyusun_Angka;
                         end;
                     2 : begin
                         Menyusun_Bintang;
                         end;
                     3 : begin
                         exit;
                         end;
        end;
        end;

      {sub program}
       procedure Hitung_Luas_Keliling;
       var s: integer;
       begin
       clrscr;
        gotoxy(30,1); writeln('--=o Nur Fadlilah o=--');
        gotoxy(30,2); writeln('     06101008027      ');
        writeln;
        gotoxy(25,4); writeln('**************************');
        gotoxy(25,5); writeln('*        M E N U         *');
        gotoxy(25,6); writeln('*   1. Luas Segitiga     *');
        gotoxy(25,7); writeln('*   2. Keliling Segitiga *');
        gotoxy(25,8); writeln('**************************');
        writeln;
        gotoxy(25,11); write('Pilih nomor: '); read(s);
        clrscr;
                     case s of
                     1 : begin
                         Luas;
                         end;
                     2 : begin
                         Keliling;
                         end;
                     3 : begin
                         exit;
                         end;
        end;
        end;
       
{main program}
begin
repeat
repeat
clrscr;
gotoxy(30,1); writeln('--=o Nur Fadlilah o=--');
gotoxy(30,2); writeln('     06101008027      ');
writeln;
gotoxy(20,4); writeln('**********************************************');
gotoxy(20,5); writeln('*                   M E N U                  *');
gotoxy(20,6); writeln('*  1. Menentukan Jenis Segitiga              *');
gotoxy(20,7); writeln('*  2. Menghitung Luas atau Keliling Segitiga *');
gotoxy(20,8); writeln('*  3. Menyusun Segitiga Angka atau Bintang   *');
gotoxy(20,9); writeln('**********************************************');
writeln;
gotoxy(20,13); write('Pilihan: '); read(pil);
if pil=1 then
begin
Jenis_Segitiga;
end
else
    if pil=2 then
    begin
    Hitung_Luas_Keliling;
    end
       else
       if pil=3 then
       begin
       Menyusun;
       end
          else
          write('Maaf nomor yang anda masukkan salah. Mau ulang lagi?[Y/T]: '); readln(ans);
until upcase (ans) <> 'Y';

write('>> Mau coba lagi? Kembali ke menu awal [Y/T]: '); readln(ans);
until upcase (ans) <> 'Y'; 
end.

No comments:

Post a Comment