P. 1
Variable Dan Konstanta

Variable Dan Konstanta

|Views: 29|Likes:
Dipublikasikan oleh Luzz Niie Cute'zz
Pemograman komputer
Pemograman komputer

More info:

Published by: Luzz Niie Cute'zz on Mar 24, 2012
Hak Cipta:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

03/24/2012

pdf

text

original

Variabel dan konstanta

Contoh sederhana: mencari akar kuadrat
Mencari akar kuadrat:
aX^2+bX+c=0

Input a, b, c Output akar:
(-b + SQRT(b*b - 4*a*c))/(2*a) (-b - SQRT(b*b - 4*a*c))/(2*a)

Roots finding (cont.)
start Initialize a=1, b=-5, c=6 w = (b*b – 4*a*c) R1 = (-b + sqrt(w))/(2*a) R2 = (-b - sqrt(w))/(2*a) End

Roots finding (cont.)
PROGRAM ROOTSFINDING INTEGER a, b, c REAL x, y, z, w, r1, r2 a=1 b=-5 c=6 ! To calculate b*b – 4*a*c x = b*b y = a*c z = 4*y w = x-z r1 = (-b +SQRT(w))/(2*a) r2 = (-b – SQRT(w))/(2*a) WRITE(*, *) r1, r2 END PROGRAM

Deklarasi varibel, di awal blok Statemen: Memberi nilai pada variabel

statements: perhitungan statements:hasil output

Roots finding (cont.)
Kata kunci di Fortran90
PROGRAM ROOTSFINDING INTEGER a, b, c REAL x, y, z, w, r1, r2 a=1 b=-5 c=6 ! To calculate b*b – 4*a*c x = b*b y = a*c z = 4*y w = x-z r1 = (-b +SQRT(w))/(2*a) r2 = (-b –SQRT(w))/(2*a) WRITE(*, *) r1, r2 END PROGRAM

variabel konstanta operator

Variabel dan konstanta
Konstanta (mis., 1, -5, 6, 4, 2) variabel (mis., a, b, c, x, y, z, w) nama unik yang akan disimpan FORTRAN dalam memori dan akan digunakan kemudian
Perjanjian nama:
Karakter alphanumerik (huruf, angka, underscore) angka pertama tidak harus huruf Huruf besar dan kecil sama Jangan gunakan kata kunci fortran untuk nama variabel/konstanta

Tipe data variabel
INTEGER

mis., a, b, c
REAL

mis., x, y, z, w
LOGICAL COMPLEX CHARACTER contoh:

Tipe data sangat penting
INTEGER::a=1,b=-5,c=6 REAL::r1, r2

IMPLICIT NONE mengharuskan programmer mendeklarasika varibel.
Comment out “IMPLICIT NONE” write(*, *) r1, r3 ! You want to print r1 and r2, but by mistakes you type r3

Deklarasi
PROGRAM RootFinding IMPLICIT NONE INTEGER :: a, b, c REAL :: x,y,z,w REAL :: r1, r2 . . . END PROGRAM RootFinding

Deklarasi menyatakan pada kompiler:
Untuk mengalokasikan memori pada varibel Menentukan tipe memori yang digunakan Menentukan nama yang akan digunakan untuk menunjukkan pada memori tersebut

Deklarasi varibel
INTEGER a, b, c REAL x, y, z, w A=1 B=-5 C=6

INTEGER:: a=1, b=-5, c=6 REAL:: x, y, z, w

sama

Tingkat presisi varibel
INTEGER(KIND=2)::a atau INTEGER(2)::a 1 byte = 8 bits

11111111

KIND 1 2

BITs Value range 8 16 -2**7 <= a < +2**7 (mis., [-128,127]) -2**15 <= a < +2**15 (mis., [-32768,-32767]) -2**31 <= a < +2**31 -2**63 <= a < +2**63

4(default) 32 8 64

contoh
program test implicit none integer(1)::a=127 integer(2)::b=128 write(*,*) "a=", a, “b=“,b End PROGRAM Output
a=127 b=-128

variabel precision (cont.)
REAL(KIND=4)
KIND 4(default) BITs 32

CHARACTER
KIND=1 only

8(equivalent to 64 DOUBLE PRECISION) 16 8*16

Ekspresi aritmatika
Ekspresi aritmatika dibentuk dengan menggunakan operasi:
+ (penambatah), - (pengurangan) * (perkalian ), / (pembagian) ** (pangkat)

Jika operan adalah integer, hasilnya juga integer Jika operan adalah riil, maka hasilnya juga riil Jika operan adalah campuran, hasilnya juga campuran

Ekspresi aritmatika
Operator variabel ….
mis., 5 + 2 *3 mis., b**2 – 4*a*c

Akan memiliki nilai secara otomatis:
mis. Nilai dari ekpresi 5 + 2*3 adalah 11

Ekspresi sederhana
1 + 3 --> 4 1.23 - 0.45 --> 0.78 3 * 8 --> 24 6.5/1.25 --> 5.2 8.4/4.2 --> 2.0 bukan 2, karena hasilnya adalah tipe REAL -5**2 --> -25 12/4 --> 3 13/4 --> 3 bukan 3.25. karena operannya adalah integer. 3/5 --> 0 bukan 0.6.

Urutan perhitungan
Urutan perhitungan.
+ dan – dihitung paling akhir
3 * 4 – 5 3 + 4 * 5 7 23

Operator dg tingkat urutan sama, dikerjakan yang kiri lebih dulu. Pangkat, kerjakan yang kanan lebih dulu Ekspresi dalam kurung dikerjakan lebih dulu

Arithmetic operators: precedence
operators () ** *, / +, urutan 1 2 3 4 (2+3)*4 = 20 2+3*4 = ? = 5 * 4 = 20 Or = 2+12 = 14

Arithmetic operators: associativity
operators () ** *, / +, associativitas Kiri ke kanan Kanan ke kiri Kiri ke kanan Kiri ke kanan

Associativitas menunjukkan urutan perhitungan ketika dua operator dengan urutan sama bertemu dg operator lain yang sama: 2**3**4 = 2**(3**4) = 2**81, 72/12/ 3 = (72/12)/3 = 6/3 = 2 30/5*3 = (30/5)*3 = 18 Jika *,/ associativitas dari kanan ke kiri 30/5*3 = 30/(5*3) = 2

contoh
2 * 4 * --> --> --> --> --> --> --> 5 / 3 ** 2 2 * 4 * 5 / [3 ** 2] 2 * 4 * 5 / 9 [2 * 4] * 5 / 9 8 * 5 / 9 [8 * 5] / 9 40 / 9 4

Hasilnya adalah 4, bukan 4.444444 karena semua operan adalah integer

contoh
100 + (1 + 250 / 100) ** 3 --> 100 + (1 + [250 / 100]) ** 3 --> 100 + (1 + 2) ** 3 --> 100 + ([1 + 2]) ** 3 --> 100 + 3 ** 3 --> 100 + [3 ** 3] --> 100 + 27 --> 127 Parentheses are evaluated first

contoh
1.0 + 2.0 * --> 1.0 --> 1.0 --> 1.0 --> 1.0 --> 1.0 --> 1.0 --> 1.0 --> 1.0 --> 1.0 --> 1.0 --> 1.0 --> 1.0 --> 2.5 3.0 / ( 6.0*6.0 + 5.0*44.0) ** 0.25 + [2.0 * 3.0] / (6.0*6.0 + 5.0*44.0) ** 0.25 + 6.0 / (6.0*6.0 + 5.0*55.0) ** 0.25 + 6.0 / ([6.0*6.0] + 5.0*44.0) ** 0.25 + 6.0 / (36.0 + 5.0*44.0) ** 0.25 + 6.0 / (36.0 + [5.0*44.0]) ** 0.25 + 6.0 / (36.0 + 220.0) ** 0.25 + 6.0 / ([36.0 + 220.0]) ** 0.25 + 6.0 / 256.0 ** 0.25 + 6.0 / [256.0 ** 0.25] + 6.0 / 4.0 + [6.0 / 4.0] + 1.5

Mixed Mode Expressions
Jika satu operan adalah INTEGER, sedang lainnya adalah REAL
Nilai INTEGER dikonversi menjadi REAL Perhitungan dimulai Hasilnya REAL 1 + 2.5 3.5 1/2.0 0.5 2.0/8 0.25 -3**2.0 -9.0 4.0**(1/2) 1.0 (since 1/2 0)

Contoh Mixed Mode
25.0 ** 1 / 2 * 3.5 ** (1 / 3) 25.0 ** 1 / 2 * 3.5 ** (1 / 3) 25.0 ** 1 / 2 * 3.5 ** (1 / 3) 25.0 ** 1 / 2 * 3.5 ** ([1 / 3]) [25.0 ** 1] / 2 * 3.5 ** 0 25.0 / 2 * [3.5 ** 0] 25.0 / 2 * 1.0 [25.0 / 2] * 1.0 12.5 * 1.0 12.5

Statements
Statemen pemberian nilai:
variabel = ekspresi mis., b = -5 (tidak boleh dibalik)

General statement:
INTEGER a, b, c write (*,*) ‘Hello world!’

Pemberian nilai
Syntax:
variable = ekspresi

Semantik
1. 2.

3.

Jika tipe hasil perhitungan sama dengan tipe variabel, maka hasil perhitungan disimpan menjadi variabel Jika tidak, maka dikonversi dulu baru disimpan – If the value is REAL and the variabel is INTEGER remove the decimal part (truncate) – If the value is INTEGER and the variabel is REAL convert the value to a decimal Nilai awal variabel diganti/dihapus

Pemberian nilai: contoh
REAL::X=3.5 X=2 * 2.4 ! X=4.8 INTEGER X=3 X=2 * 2.4 ! X=4 X=2 * 2.6 ! X=5

Revisi: mencari akar kuadrat
PROGRAM ROOTSFINDING INTEGER::a=1, b=-5, c=6 REAL x, r1, r2 ! To calculate b*b – 4*a*c x = b**2- 4*a*c r1 = (-b +SQRT(x))/(2*a) r2 = (-b – SQRT(x))/(2*a) WRITE(*, *) r1, r2 END PROGRAM

Deklarasi varibel, di awal blok

statements: perhitugnan statements:Output results

Contoh mencari akar kuadrat
PROGRAM Q1 IMPLICIT NONE INTEGER :: I, J, K REAL :: A, B, C A = 3.2 + 4 B = 22/7 C = 22.0/7.0 I = 3.7 + MOD(78,5) J = 45/3*3+1-3*4 K=C WRITE(*,*) I,J,K,A,B,C END PROGRAM Q1 a) 6 34 3 b) 7.200 3.000 3.143 c) 6.700 34.000 3.143 d) 6 34 3

7.200 6 7.200 7.200

3.000 34 3.000 3.143

3.143 3 3.143 3.143

contoh
What does the following program output? PROGRAM midterm REAL A,B,C INTEGER I,J,K A = 3.5 I=A J = 5.25 K = I*2 B = A*I C = J/3 WRITE (*,*) A,B,C,I,J,K END PROGRAM midterm

A. 3.5 10.5 1. 3 5 B. 3.5 12.25 1. 3 5 C. 3.5 10.5 1. 3 5 D. 3.5 10.5 1.75 3 5 E. None of the above

7 6 6 6

Tugas
Buat program untuk mengkonversi suhu: No absen ganjil: celcius farenheit No absen genap: farenheit celcius

You're Reading a Free Preview

Mengunduh
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->