Senin, 18 April 2011

Virtual Lab ATA 2006 – 2007
Matematika Lanjut 2

  1. Jelaskan aturan penulisan dalam Fortran !
Jawab:
Aturan Penulisan Fortran :
1.    Kolom pertama merupakan Komentar atau metacommand (C, *, $).
2. Kolom 1 sampai 5 untuk penulisan label statement berupa angka.
3. Kolom 6 untuk indikasi sambungan dari baris sebelumnya.
4. Kolom 7 sampai 72 untuk penulisan Statement FORTRAN.
5. Kolom 73 sampai 80 tidak digunakan (Untuk Komentar bebas).

  1. Apa perbedaan Statement Stop dan End!
Jawab:
-          STOP
STOP berfungsi menghentikan proses operasi pengerjaan program secara logika dan cirinya penulisannya bebas, yang merupakan indikator bahwa operasi program secara logika telah berakhir. Pada umumnya statement STOP selalu mengiringi statement END didalam penulisan bahasa pemrograman FORTRAN.
-          END
Bentuk umum :
{statement}
END
Dapat berupa ENDCASE, ENDFOR, ENDIF, ENDWHILE
[unit]
END digunakan untuk memberitahu komputer sebagai batas akhir dari statement program. Statement END harus diletakkan paling akhir di suatu program, tidak boleh diberi label statement dan harus berdiri sendiri tidak boleh digabung dengan statement lainnya




3.     Apa perbedaan Procedure dan Function!
Jawab:

Ø Procedure (Prosedur)
Procedure adalah suatu bagian yang terpisah dari program dan dapat diaktifkan dimanapun didalam program. Procedure dibuat jika program akan dibagi menjadi beberapa blok modul. Procedure dibuat didalam program dengan cara mendeklarasikannya dibagian deklarasi procedure. Kata cadangan PROCEDURE digunakan sebagai judul dari bagian deklarasi procedure, diikuti oleh identifier yang merupakan nama procedurenya dan secara optional dapat diikuti lagi oleh kumpulan parameter yang diakhiri dengan titik koma.
Bentuk Umum :
Procedure
( statement 1)
( statement 2)
( statement 3)
-          Function (Fungsi)
·         Bersifat otonom, sehingga nama-nama variabel didalam subprogram boleh sama dengan nama-nama variabel didalam program pemanggil dengan tidak terjadi kesalahan, oleh karena memang pada prinsipnya terpisah. Boleh melakukan operasi READ atau WRITE, boleh memanggil subprogram yang lain.
·         Dipanggil langsung dengan namanya.
·         Argumen-argumen hanya merupakan input, output keluar melalui nama subprogram function. Sehingga akibatnya, input bisa banyak(sebab argumen-argumen bisa banyak), tetapi output selalu hanya satu yaitu melalui nama function.
·         Boleh mempunyai lebih dari satu statement RETURN, maupun juga statement STOP.
·         Hubungan antar argumen dalam program pemanggil dan program dipanggil adalah hubungan atas dasar posisi, bukan atas dasar nama variabel.
·         Argumen-argumen dapat berupa konstanta maupun variabel baik real ataupun integer.

Memiliki bentuk umum :
FUNCTION nf(arg1, arg2,…argm)
Keterangan :
nf : nama subprogram function, sekaligus sebagai nama variabel outputnya, apabila namanya real maka sifat functionya real, begitu pula jika integer
Arg1,arg2,…argm : argumen-argumen yang dikirim dari program
pemanggil kesubprogram function. Argumen boleh berupa variabel ataupun konstanta, baik real maupun integer.

  1. Buatlah program Fortran
a.     Program Menghitung Luas segitiga
Jawab:
integer a,b,c,d
write (*,’(24(/))’)
write(*,’(a)’)'————————-’
write(*,’(a)’)'Menghitung Luas Segitiga’
write(*,’(a)’)'————————-’
write(*,’(a,\)’)'Masukkan Alas : ‘
read(*,’(I2)’)b
write(*,’(a,\)’)'Masukkan Tinggi : ‘
read(*,’(I2)’)c
d=(b*c)/2
write(*,*)’ ‘
write(*,’(a,F3,\)’)'Luas Segitiga Adalah : ‘,d
stop
end
b.     Program Penjumlahan Matriks
Jawab:
integer x(5,5),y(5,5),z(5,5),a,b,c,d,e,f,g,h,i,j
1 WRITE (*,’(24(/))’)
write(*,’(a)’)'Penjumlahan Matriks ordo 2×2′
write(*,’(a)’)'————————–’
a = 2
read(*,*)
WRITE (*,’(24(/))’)
write(*,’(a)’)'Penjumlahan Matriks ordo 2×2′
write(*,’(a)’)'————————–’
write(*,’(a)’)'Menentukan nilai elemen matriks I’
write(*,’(a)’)'———————————’
DO 10 c=1,a
DO 20 d=1,a
write(*,’(a,I1,a,I1,a,\)’)'nilai elemen [',c,'][',d,'] = ‘
read(*,’(I2)’)x(c,d)
20 CONTINUE
10 CONTINUE
WRITE (*,’(24(/))’)
write(*,’(a)’)'Penjumlahan Matriks ordo 2×2′
write(*,’(a)’)'————————–’
write(*,’(a)’)'Menentukan nilai elemen matriks II’
write(*,’(a)’)'———————————’
DO 30 g=1,a
DO 40 h=1,a
write(*,’(a,I1,a,I1,a,\)’)'nilai elemen [',g,'][',h,'] = ‘
read(*,’(I2)’)y(g,h)
40 CONTINUE
30 CONTINUE
WRITE (*,’(24(/))’)
write(*,’(a)’)’ Penjumlahan Matriks ordo 2×2′
write(*,’(a)’)’ ————————–’
write(*,’(a)’)’ Matriks I’
write(*,’(a)’)’ ———’
DO 50 c=1,a
DO 60 d=1,a
write(*,’(I2,a,\)’)+(c,d),’ ‘
60 CONTINUE
write(*,*)’ ‘
50 CONTINUE
write(*,’(a,/)’)’ ‘
write(*,’(a)’)’ Matriks II’
write(*,’(a)’)’ ———-’
DO 70 g=1,a
DO 80 h=1,a
write(*,’(I2,a,\)’)y(g,h),’ ‘
80 CONTINUE
write(*,*)’ ‘
70 CONTINUE
read(*,*)
write(*,’(a,/)’)’ ‘
write(*,’(a)’)’ Hasil Penjumlahannya’
write(*,’(a)’)’ ——————’
DO 90 i=1,a
DO 100 j=1,a
z(i,j)=x(i,j)+y(i,j)
100 CONTINUE
90 CONTINUE
DO 110 i=1,a
DO 120 j=1,a
write(*,’(I3,a,\)’)z(i,j),’ ‘
120 CONTINUE
write(*,*)’ ‘
110 CONTINUE
stop
end

  1. Apa hasil (output) dari program berikut ini!
A.    PROGRAM 1, Bila banyaknya deret 5
                 INTEGER A,B,C
                 WRITE (*,'(24(/))')
                 WRITE (*,'(A,\)') 'Masukkan Banyak Deret = '
                 READ (*,'(I2)') N
                 A=N
                 B=1
                 DO 10 I=1,N
                 DO 20 J=1,A
                 WRITE (*,'(A,\)') ' '
 20            CONTINUE
                 WRITE (*,'(I1,\,A,I1)') A,' ',A
                 DO 30 J=1,B
                 WRITE (*,'(A,\)') ' '
  30           CONTINUE
                 WRITE (*,'(I1,\,A,I1)') A,' ',A
                 WRITE (*,*)
                 A=A-1
                 B=B+2
   10           CONTINUE
                 STOP
   END 

Jawab:
Output :
Masukkan Banyak Deret = 5
5 5 5 5
4 4 4 4
3 3 3 3
2 2 2 2
1 1 1 1

B.     Program 2 Bila banyaknya deret 5
   INTEGER A,B,C
    WRITE (*,'(24(/))')
    WRITE (*,'(A,\)')'Masukkan Banyaknya Deret = '
     READ (*,'(I2)') N
     A=N
     C=N-1
     B=1
     DO 10 I = 1,N
DO 20 J = 1,A
     WRITE (*,'(A,\)') ' ' 
20 CONTINUE
IF (A .EQ. N) THEN WRITE (*,'(I1)') A
     ELSE WRITE (*,'(I1,\)') A
     DO 30 K=1,B
     WRITE (*,'(A,\)') ' '
30 CONTINUE
     WRITE (*,'(I1)') A
     B=B+2
     ENDIF
     A=A-1
10  CONTINUE
     A=2
     B=B-4
     IF (N .NE. 1) THEN
         DO 40 I=1,C
         DO 50 J=1,A
         WRITE (*,'(A,\)') ' '
   50  CONTINUE
         IF (C .EQ. 1) THEN
            WRITE (*,'(I1)') A
          ELSE
            WRITE (*,'(I1,\)') A
          DO 60 K=1,B
             WRITE (*,'(A,\)') ' '
   60    CONTINUE
           WRITE (*,'(I1)') A
             ENDIF
           A=A+1
           B=B-2
           C=C-1
   40   CONTINUE
          ENDIF      
          STOP
          END  
Jawab:
Output :
Masukkan Banyaknya Deret = 5
5
4 4
3 3
2 2
1 1
2 2
3 3
4 4
5

C.             Program 3 Bila banyaknya deret 5
      INTEGER A,B,C
      WRITE (*,'(24(/))')
      WRITE (*,'(A,\)') 'Masukkan Jumlah Deret = '
      READ (*,'(I2)') N
      A=N
      DO 10 I=1,N
      B=I
      DO 20 J=1,A
        WRITE (*,'(I2,\,A)') B,' '
        B=B+2
   20  CONTINUE
         WRITE(*,*)
         A=A-1
  10 CONTINUE  
      STOP
      END 
Jawab:
Output :
Masukkan Jumlah Deret = 5
1 3 5 7 9
2 4 6 8
3 5 7
4 6
5

Tidak ada komentar:

Posting Komentar