1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài giảng ngôn ngữ lập trình fortran 90 phan văn tân

233 161 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ngôn Ngữ Lập Trình FORTRAN 90
Tác giả Phan Văn Tân
Trường học Chưa có thông tin
Chuyên ngành Ngôn ngữ lập trình
Thể loại Bài Giảng
Năm xuất bản Chưa có thông tin
Thành phố Chưa có thông tin
Định dạng
Số trang 233
Dung lượng 3,47 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Những yếu tố cơ bản của ngôn ngữ FORTRAN 1.1 Sơ l ợc về ngôn ngữ lập trình FOTRAN • Tập hợp các qui tắc đặc biệt để mã hoá những kiến thức cho máy tính hiểu đ ợc gọi là ngôn ngữ lập tr

Trang 1

Ng«n ng÷ lËp tr×nh FORTRAN 90

Phan V¨n T©n

Trang 2

Ch ơng 1 Những yếu tố cơ bản của

ngôn ngữ FORTRAN

1.1 Sơ l ợc về ngôn ngữ lập trình FOTRAN

• Tập hợp các qui tắc đặc biệt để mã hoá

những kiến thức cho máy tính hiểu đ ợc gọi là ngôn ngữ lập trình

• ý t ởng của FORTRAN đ ợc John Backus đề

xuất vào khoảng cuối năm 1953, ở New York,

và ch ơng trình FORTRAN đầu tiên đã đ ợc

chạy vào tháng 4 năm 1957

Trang 3

• N¨m 1966 lÇn ®Çu tiªn phiªn b¶n chuÈn cña ng«n ng÷ lËp tr×nh nµy ® îc Ên hµnh:

• FORTRAN cã nhiÒu bé biªn dÞch dßng kh¸c

nhau, cã thÓ lµm viÖc trªn c¸c hÖ ®iÒu

hµnh kh¸c nhau: DOS, WINDOWS, UNIX,

LINUX,

Trang 4

1.2 Chạy một ch ơng trình Fortran

• Yêu cầu phải có bộ phần mềm biên dịch của

FORTRAN phù hợp với hệ điều hành máy tính

và đã cài đặt vào máy tính, có thể vận

hành bình th ờng

• Làm quen dần và đi đến sử dụng thành

thạo bộ biên dịch: Cách vận hành, cách biên tập lời ch ơng trình, cách dịch kiểm tra lỗi, cách chạy ch ơng trình,

• Tr ớc hết hãy thử làm việc với những ch ơng

trình đơn giản, cố gắng hiểu rõ ch ơng

trình hoạt động nh thế nào

Trang 6

!VÝ dô 2: TÝnh gi¸ trÞ cña hµm A(t)=

! khi cho vµo gi¸ trÞ cña biÕn t

PROGRAM VD2

! Tinh gia tri ham A(t)

INTEGER T ! gia tri bien t

REAL A ! gia tri ham A(t)

PRINT*,’Cho gia tri cua bien t:’ READ*, T

( 6

174

Trang 7

VÝ dô 3: Gi¶ sö b¹n cã $1000 göi tiÕt kiÖm

trong ng©n hµng, víi tiÒn l·i 9% mçi n¨m

Hái sau mét n¨m sè tiÒn cña b¹n b»ng bao

nhiªu?

NÕu lËp tr×nh cho m¸y tÝnh ta h·y t ëng t îng c¸c

b íc thùc hiÖn cña m¸y nh sau:

1 NhËn sè liÖu (sè tiÒn göi ban ®Çu vµ l·i suÊt)

2 TÝnh tiÒn l·i (9% cña 1000, tøc 90)

3 Céng tiÒn l·i vµo sè tiÒn gèc (90+1000, tøc

1090)

4 In (hiÓn thÞ) sè b¹n sÏ cã.

Trang 8

TienLai = LaiSuat * TienGoc

TienGoc = TienGoc + TienLai

PRINT*, ‘So tien se có la : ', TienGoc

END

Chạy ch ơng trình và chú ý rằng bây giờ

không đòi hỏi đầu vào (input) từ bàn phím (Tại sao?) Kết quả sẽ là 1.0900000E+03

(1090)

Trang 9

Tóm tắt

• Chư ơng trình máy tính là tập hợp các kiến

thức đ ợc mã hoá để giải quyết một vấn đề riêng biệt.

• Lệnh READ* của Fortran là để nhận dữ liệu

đ a vào cho máy tính.

• Lệnh PRINT* của Fortran là để in (hiển thị)

các thông báo dẫn h ớng cho ng ời dùng và kết quả tính toán, xử lý.

Trang 10

1.3 Cấu trúc chung của một ch ơng

trình FORTRAN

[PROGRAM TenChuongTrinh]

[Cac cau lenh Khai bao]

[Cac cau lenh thuc hien (than Chuong trinh)] END [PROGRAM [TenChuongTrinh]]

• Cac cau lenh Khai bao : Khai báo để ch ơng

trình cấp phát bộ nhớ, phân luồng xử lý,

• Cac cau lenh thuc hien : Qui tắc và trình tự

thực hiện tính toán, xử lý để đạt đ ợc kết quả

• END là câu lệnh bắt buộc phải có.

Trang 11

Cách đặt tên cho biến và hằng

• Ch ơng trình FORTRAN sẽ làm việc thông qua

các biến và hằng, đó là những vùng bộ nhớ đ ợc cấp phát để l u giữ các giá trị trong quá trình

tính toán, chúng đ ợc gán bởi Tên gọi theo qui ớc.

• Tên biến, tên hằng là một dãy ký tự viết liền

nhau, bao gồm các chữ cái tiếng Anh và chữ số

hoặc dấu gạch d ới, nh ng phải bắt đầu bằng

một chữ cái, không phân biệt chữ th ờng, chữ

Trang 12

B¶ng m· ASCII

Trang 14

1.4 CÊu tróc c©u lÖnh

• Tõ khãa: REAL, PRINT, READ,

• C©u lÖnh g¸n: VÕ Tr¸i = VÕ Ph¶i

– VÕ Tr¸i: Tªn biÕn, Tªn h»ng

– VÕ Ph¶i: Gi¸ trÞ, BiÓu thøc

– VÝ dô: TienGoc = 1000 ; TienLai = LaiSuat *

TienGoc

• C¸c c©u lÖnh víi tõ khãa:

– VÝ dô: READ*, T ;

PRINT*, ‘So tien se cã la : ', TienGoc

• Sö dông dÊu c¸ch (SpaceBar) trong c©u lÖnh

• Lêi chó thÝch trong ch ¬ng tr×nh

• Dßng nèi tiÕp

Trang 15

Gán nhãn cho câu lệnh

• Trong một ch ơng trình, mỗi câu lệnh có thể

đ ợc gán bởi một nhãn duy nhất là một số

nguyên d ơng nằm trong khoảng 1 99999

• Nhãn đ ợc ghi ở đầu và trên cùng dòng lệnh,

cách nội dung câu lệnh bởi ít nhất một dấu cách

• Nhãn câu lệnh dùng để đánh địa chỉ của

câu lệnh, nhờ đó ch ơng trình có thể chuyển

điều khiển đến câu lệnh khi cần thiết

Trang 16

• Cét 6: §¸nh dÊu dßng nèi tiÕp cña c©u lÖnh

• Cét 7-72: Néi dung c©u lÖnh

Trang 17

• Đối với FORTRAN 90:

– Lời chú thích:

• Bất kỳ một dòng lệnh hoặc một phần dòng lệnh nào đó nằm ở phía sau dấu chấm than (!) đều đ ợc xem là lời chú thích

• Khi gặp phần chú thích ch ơng trình dịch sẽ

bỏ qua.

Trang 18

Phong cách lập trình

• Phong cách lập trình thể hiện tính chất

nghiêm túc, t duy lôgic của ng ời lập trình

• Những điều nên làm:

– Khi viết ch ơng trình nên sử dụng cả chữ th

ờng, chữ hoa để dễ theo dõi

– Dùng lời chú thích để ghi chú, giải thích nội dung các đoạn mã ch ơng trình

– Nên phân cấp các câu lệnh để bố trí sắp

xếp thụt, thò cho hợp lý, dễ kiểm soát

– Đặt tên các biến sao cho mang tính gợi nhớ,

không quá dài, cũng không quá ngắn

– Sử dụng dấu cách một cách thích hợp để nhìn

ch ơng trình sáng sủa, đẹp đẽ hơn

Trang 19

1.5 Các Kiểu dữ liệu

• Một cách t ơng đối FORTRAN định nghĩa

hai kiểu dữ liệu cơ bản là Kiểu Số và Kiểu

• Dung l ợng bộ nhớ mà các biến chiếm giữ xác

định bởi số byte đ ợc cấp phát

• 1 byte = 8 bit

Trang 20

KiÓu D÷ liÖu Sè byte chiÕm gi÷ MiÒn gi¸ trÞ hîp lÖ

INTEGER 4 –2,147,483,648 2,147,483,647

INTEGER *1 1 –128 127

INTEGER *2 2 –32,768 32,767

INTEGER *4 4 –2,147,483,648 2,147,483,647

REAL 4 –3.4028235E+38 –1.1754944E–38 (6)

REAL *4 4 +1.1754944E–38 to +3.4028235E+38 (6)

REAL *8 8

–1.797693134862316D+308 –2.225073858507201D–308

+2.225073858507201D–308 +1.797693134862316D+308 DOUBLE PRECISION 8

COMPLEX 8 (mét cÆp hai sè thùc 4 byte)

COMPLEX *4 8

COMPLEX *8 16 (mét cÆp hai sè thùc 8 byte)

DOUBLE COMPLEX 16

Trang 21

KiÓu D÷ liÖu Sè byte chiÕm gi÷ MiÒn gi¸

Trang 22

PhÐp to¸n trªn c¸c kiÓu d÷ liÖu

• PhÐp to¸n sè häc:

Tªn gäi Ký hiÖu Sö dông víi

– Céng: + REAL, INTEGER, COMPLEX

– Trõ: - REAL, INTEGER, COMPLEX

– Nh©n: * REAL, INTEGER, COMPLEX

– Chia: / REAL, INTEGER, COMPLEX

– Lòy thõa: ** REAL, INTEGER, COMPLEX

• PhÐp to¸n quan hÖ:

– B»ng: EQ (==) BiÓu thøc so s¸nh c¸c – Kh«ng b»ng: NE (/=) kiÓu sè, kiÓu ký tù

– Lín h¬n: GT (>)

– Lín h¬n hoÆc b»ng: GE (>=)

– Nhá h¬n hoÆc b»ng: LE (<=)

Trang 23

PhÐp to¸n trªn c¸c kiÓu d÷ liÖu

• PhÐp to¸n gép:

– Gép hai chuçi ký tù: // Chuçi ký tù

Trang 24

• VÝ dô

X >= 0

Lín h¬n hoÆc b»ng

.GE hoÆc >=

B ** 2 - 4 * A * C > 0

Lín h¬n.GT hoÆc >

A /= 0 Kh«ng b»ng

.NE hoÆc /=

B ** 2 == 4 * A * C

B»ng.EQ hoÆc ==

B ** 2 LE 4 * A * C

Nhá h¬n hoÆc b»ng

.LE hoÆc <=

A < 1e-5Nhá h¬n

.LT hoÆc <

VÝ dô

ý nghÜa PhÐp to¸n

quan hÖ

Trang 25

PhÐp chia sè nguyªn vµ biÓu thøc

Trang 26

Thứ tự u tiên thực hiện các phép

toán

Biểu thức Phép toán và thứ tự u

tiên Thự tự thực hiện

Kiểu số * , / (2) Từ trái sang phải Kiểu số + , − (3) Từ trái sang phải

Quan hệ EQ., NE., LT., LE.,

.GT., GE. Không phân định

định

Lôgic EQV., NEQV (4) Từ trái sang phải

Trang 27

(-b + SQRT(DelTa)) / 2 / a

nh ng kh«ng thÓ viÕt:

(-b + SQRT(DelTa)) / 2 * a

a 2

b + ∆

Trang 28

.FALSE .TRUE.

KÕt qu¶ thùc hiÖn c¸c phÐp to¸n

NÕu ab lµ hai biÕn L«gic

§èi víi c¸c biÓu thøc sè:

Cã thÓ sö dông pha trén gi÷a REAL vµ INTEGER, kÕt qu¶ tr¶ vÒ tïy thuéc vµo kiÓu d÷ liÖu cña biÕn nhËn gi¸ trÞ

VÝ dô: a= -22.9; b=6.1 => x=a+b= -16.8; nh ng

n=a+b = -16

a= 2.9; b=6.8 => x=a+b= 9.7; nh ng

n=a+b = 9

Trang 29

Giải thích thêm về các biến lôgic

• Hai biến lôgic t ơng ứng với hai công tắc S1, S2

• Mạch nối tiếp t ơng ứng với phép toán AND.,

mạch song song t ơng ứng với phép toán OR.

• Trạng thái bóng đèn t ơng ứng với kết quả thực

hiện phép toán đối với S1 và S2

• Mạch nối tiếp: Đèn sáng khi S1 và S2 đều đóng

• Mạch song song: Đèn sáng khi S1 hoặc S2 đóng

Trang 30

L = S1 and S2 ! Mac noi tiep

! L = S1 or S2 ! Mac song song

PRINT*,’ Trang thai bong den SANG la TRUE, TAT la FALSE’

PRINT*, ‘ Trang thai bong den la ‘,L

END

Trang 31

Khai báo ngầm định và khai báo hiện

• Khi khai báo biến và hằng (và cả hàm),

FORTRAN qui ớc ngầm định (khai báo ẩn –

IMPLICIT ) nh sau:

– Nếu không khai báo rõ ràng kiểu dữ liệu cho các biến thì những biến có tên bắt đầu bằng một trong các chữ cái I, J, K, L, M, N là những biến nguyên, số còn lại là những biến thực

– Các biến kiểu số (nguyên và thực) có thể không cần khai báo hiện (sử dụng khai báo ẩn)

• Các biến có kiểu CHARACTER hoặc LOGICAL

đều phải đ ợc khai báo hiện

• Có thể vô hiệu hóa khai báo ẩn của FORTRAN bằng câu lệnh:

IMPLICIT NONE

• Trong tr ờng hợp này tất cả các biến sử dụng trong ch ơng trình cần phải đ ợc khai báo hiện

Trang 32

• VÝ dô: H·y xÐt c¸c ch ¬ng tr×nh sau

INTEGER N REAL X

PRINT*,’ Cho mot so nguyen: ‘ READ*, N

X = 1.0 / N PRINT*,’ Nghich dao cua N = ‘, X

END

Trang 33

nhau bởi dấu phẩy (,).

• Mỗi lệnh READ đòi hỏi

phải đ a vào một bản ghi

2 3 4

Nh ng:

READ*, AREAD*, BREAD*, C

Sẽ đọc 3 bản ghi,

mỗi bản ghi có 1 giá trị, chẳng hạn:

234

Trang 34

¬ng øng víi c¸c biÕn trong ds_bien

Trang 35

• VÝ dô:

REAL Pi, Re

PARAMETER (Pi=3.1416, Re=6370.0)

PRINT*, ‘So PI=‘,Pi,’ Ban kinh Trai dat=‘, Re

END

Trang 36

Các lệnh vào ra đơn giản

• Sử dụng phép khởi tạo giá trị của biến bằng

lệnh khai báo

• Cú pháp:

Kiểu dữ liệu :: Var1= GiaTri1 , Var2= GiaTri2 ,

trong đó Var1, Var2 là tên các biến sẽ đ ợc

khởi tạo, GiaTri1, GiaTri2 là những giá trị khởi tạo gán cho các biến t ơng ứng

Trang 37

bởi dấu phẩy (,).

Mỗi lệnh PRINT hoặc WRITE

sẽ ghi ra một bản ghi mới.

• Ví dụ:

PRINT*, A, B, C

sẽ ghi một bản ghi

trên đó có 3 giá trị, chẳng hạn:

2 3 4

Nh ng:

PRINT*, APRINT*, BPRINT*, C

Sẽ ghi ra 3 bản ghi,

mỗi bản ghi có 1 giá trị, chẳng hạn:

234

Trang 39

bdk mét l îng b»ng Buoc

Sai

§óng

Trang 46

N2 10

CHO GIA TRI N1, N2:

I 1

0+1

TONG 1

CHO GIA TRI N1, N2:

1 10

2

I 2

1+2

TONG 3

CHO GIA TRI N1, N2:

1 10

3

I 3

3+3

TONG 6

CHO GIA TRI N1, N2:

1 10

4

I 4

6+4

TONG 10

CHO GIA TRI N1, N2:

1 10

5

I 5

10+5

TONG 15

CHO GIA TRI N1, N2:

1 10

6

I 6

15+6

TONG 21

CHO GIA TRI N1, N2:

1 10

7

I 7

21+7

TONG 28

CHO GIA TRI N1, N2:

1 10

8

I 8

28+8

TONG 36

CHO GIA TRI N1, N2:

1 10

9

I 9

36+9

TONG 45

CHO GIA TRI N1, N2:

1 10

10

I 10

45+10

TONG 55

CHO GIA TRI N1, N2:

1 10

10

TONG= 55

Trang 47

VÝ dô

• TÝnh c¨n bËc hai cña sè a theo ph ¬ng ph¸p

Newton:

1 NhËp vµo sè a

2 Khëi t¹o x b»ng 1 (g¸n gi¸ trÞ cho x b»ng 1)

3 LÆp l¹i 6 lÇn c¸c b íc sau ®©y:

Thay x bëi (x + a/x)/2

In gi¸ trÞ cña x

4 KÕt thóc ch ¬ng tr×nh

Trang 48

PROGRAM Newton ! Tinh can bac hai bang pp newton REAL A ! So se lay can bac hai

INTEGER I ! Bien dem phep lap

REAL X ! Gia tri gan dung cua can bac hai cua a

WRITE( *,*) ‘ Cho so se lay can bac hai: ‘

Trang 50

§óng

Trang 51

2) IF (bthuc logic) THEN

§óng

Trang 52

3) IF (bthuc logic) THEN

Sai

§óng (C©u

lÖnh/Khèi lÖnh)_2

Trang 53

4) IF (bth_logic_1) THEN

(C©u lÖnh/Khèi lÖnh)_1 ELSE IF (bth_logic_2) THEN (C©u lÖnh/Khèi lÖnh)_2 ELSE IF (bth_logic_3) THEN (C©u lÖnh/Khèi lÖnh)_3

ELSE

(C©u lÖnh/Khèi lÖnh)_n END IF

Trang 54

bthuc logic_2

(C©u lÖnh/Khèi lÖnh)_2

§óng

bthuc logic_3

(C©u lÖnh/Khèi lÖnh)_3

Sai

§óng

Sai

Trang 55

PRINT*,' LOAI XUAT SAC'

ELSE IF (DIEM.GE.8) THEN

PRINT*,' LOAI GIOI'

ELSE IF (DIEM.GE.7) THEN

PRINT*,' LOAI KHA'

ELSE IF (DIEM.GE.5) THEN

PRINT*,' LOAI TRUNG BINH'

Trang 57

print*,' Ket thuc sau lan

lap thu ',i

if (M.LE.N) thenwrite(*,*)' Lap tu ',M, ' den ',N

Do i=M,N

write(*,*) iEnddo

Elsewrite(*,*)' M > N'End If

END

Chó ý: Hai cÊu tróc kh«ng giao

nhau

Trang 58

Lệnh nhảy vô điều kiện

• Để chuyển điều khiển đến một câu lệnh

nào đó trong tr ờng hợp cần thiết hãy dùng lệnh:

GOTO m

trong đó m là nhãn câu lệnh sẽ đ ợc chuyển

điều khiển đến

• Chú ý quan trọng: Nếu lệnh GOTO không

nằm trong chu trình lặp hoặc trong phạm

vi tập câu lệnh do các lệnh khác kiểm soát

thì nhất thiết câu lệnh sau lệnh GOTO

phải có nhãn

Trang 59

IF (.NOT.L1) GOTO 10

I = 1

J = 2 GOTO 30

10 IF (.NOT.L2) GOTO 20

I = 2

J = 3 GOTO 30

20 I = 3

J = 4

30 CONTINUE

Trang 60

5) IF (bthuc SoHoc) m1, m2, m3

bthuc SoHoc

C©u lÖnh cã nh·n m1

= 0

< 0

C©u lÖnh cã nh·n m2

C©u lÖnh cã nh·n m3

> 0

Trang 61

30 PRINT*,' DAY LA SO DUONG'

50 PRINT*,' KET THUC CHUONG TRINH' PAUSE

END

Trang 62

Thao tác với hằng và biến ký tự

CHARACTER (Len=n) Danh_Sach

CHARACTER Var1*n1, Var2*n2,

trong đó:

Danh_Sach là tên các biến/hằng ký tự, đ ợc liệt

kê cách nhau bởi dấu phẩy (,)

n, n1, n2, là những số nguyên d ơng chỉ độ

dài (số ký tự) cực đại của dãy ký tự

Trang 63

VÝ dô

• Ch ¬ng tr×nh sau ®©y sÏ hái tªn b¹n, khi b¹n

gâ tªn m×nh vµo, m¸y sÏ ® a ra lêi chµo mõng b¹n:

Chó ý: - Trong tr êng hîp nµy, khi nhËp gi¸ trÞ

cña biÕn ký tù, kÕt qu¶ cã thÓ kh¸c nhau gi÷a

cã dïng dÊu nh¸y vµ kh«ng dïng dÊu nh¸y

- Ph©n biÖt ch÷ th êng vµ ch÷ hoa,

dÊu c¸ch vµ kh«ng cã dÊu c¸ch

VÝ dô: ‘Ha Noi’ ‘HaNoi’ ‘Hanoi’ ‘hanoi’

Trang 64

• Nếu độ dài dãy ký tự (giá trị) gán cho biến v

ợt quá độ dài cực đại của biến thì nội dung của biến chỉ chứa phần bên trái nhất của dãy

• Ví dụ:

CHARACTER Name*7

Name = ‘Hoang Hong Ha’

Kết quả là Name =‘ Hoang H ’

Trang 65

Khèi lÖnh_2

CASE DEFAULT

Khèi lÖnh_n END SELECT [ Ten_cau_truc]

Trang 66

Rẽ nhánh với lệnh CASE

• Diễn giải:

Bắt đầu: Xác định giá trị của (Bieu_Thuc_Chon)

Nếu giá trị của Bieu_Thuc_Chon thuộc tập (Chon1) thì

Trang 67

• VÝ dô: TÝnh sè ngµy trong th¸ng:

INTEGER Month, Year

Print'(A\)',' Xem thang nao?'

Print*,' Thang ', Month,' Nam 2000 co 29 ngay'

Else IF (Mod(Year,4).EQ.0.AND.Mod(Year,100).NE.0) then Print*,' Thang ', Month,' Nam ', Year,' co 29 ngay'

Trang 68

• VÝ dô: Go mot ky tu va cho biet do la chu cai hay chu so

WRITE (*, *) "Day la ky tu ", Char

END SELECT GET_ANSWER

END

Trang 70

END DO

KÕt qu¶: 5 4 3 2 1

DO I = 6, 1, -2 WRITE( *, '(I3)', ADVANCE = 'NO' ) I

END DO

KÕt qu¶: 6 4 2

H·y kh¶o s¸t c¸c ®o¹n ch ¬ng tr×nh sau

Trang 71

• Trong đó bdk là một biến nguyên, BThuc1,

BThuc2, và BThuc3 là những biểu thức nguyên hợp lệ, Ten_ChuTrinh là tên của chu trình Giá trị

ngầm định của BThuc3 là 1

• Số vòng lặp của chu trình DO đ ợc xác định bởi MAX ((BThuc2BThuc1+ BThuc3) / BThuc3, 0)

Chú ý: FORTRAN còn cho phép sử dụng chu trình

DO với các tham số thực (bdk, BThuc1, BThuc2,

BThuc3 là những số thực)

Trang 72

Vong2: DO bdk2=

Khèi lÖnh END DO Vong1 .

END DO Vong2

Trang 73

• VÝ dô: TÝnh tæng ®iÓm thi §¹i hoc cña c¸c thÝ sinh

Trang 74

• Nói chung không có gì khác biệt lớn giữa

cấu trúc tổng quát và cấu trúc thông th ờng

tr ớc đây đã xét, ngoại trừ thêm

trí của khối cấu trúc

Trang 76

VÝ dô: LËp ch ¬ng tr×nh gi¶i Ph ¬ng tr×nh bËc 2

1 NhËp c¸c hÖ sè a, b, c

2 NÕu a=0: Gi¶i Ph ¬ng tr×nh bx + c = 0

– NÕu b=0:

1 NÕu c=0: Tr¶ lêi = V« sè nghiÖm

2 NÕu c ≠ 0: Tr¶ lêi = V« nghiÖm

– NÕu b≠ 0: Tr¶ lêi = nghiÖm x=-c/b

3 NÕu a0: Gi¶i Ph ¬ng tr×nh ax^2 + bx + c = 0

Trang 77

XetDelTa: IF (DelTa<0) THEN

Print*,’Phuong trinh KHONG CO NGHIEM THUC’ ELSE XetDelTA

Trang 78

• Trong nhiều tr ờng hợp lệnh chu trình th ờng

đ ợc kết hợp với các lệnh READ, PRINT hoặc WRITE để nhập hoặc kết xuất dữ liệu

• Hãy xét hai ví dụ sau đây:

2 3 4 5Kết quả là:

1 2 3

4 5

Trang 79

Định dạng dữ liệu

Để đọc/ghi dữ liệu có qui cách FORTRAN cho phép

sử dụng định dạng FORMAT d ới các hình thức sau

Ký hiệu

Trong đó: w là độ rộng tr ờng, d là số chữ số sau dấu chấm thập phân, m là số ký tự mà một số nguyên chiếm, kể cả chữ số 0 đứng tr ớc, n là số ký tự bỏ qua

Trang 80

Write(*,11) J, K

11 FORMAT(1x, ‘J= ‘,I5,’ K=

‘,I7.7) Print*,’Hai so thuc X,Y:’

Write(*,’(2F10.3,)’) X,Y Print*,’Hai so thuc A,B:’

Trang 81

970 FORMAT (' ABC"DEF')

WRITE (*, '('' ABC''''DEF'')')

WRITE (*,*) 'ABC''DEF'

WRITE (*,*) "ABC'DEF"

Trang 82

Lặp không xác định

• Kết hợp IF & GOTO

m Câu lệnh đầu vòng lặp

Các câu lệnh tiếp theo trong vòng lặp

IF (điều kiện) GOTO m

! hoặc:

IF (điều kiện) THEN

Các câu lệnh xử lý tr ớc khi lặp lại

GOTO m

END IF

Ngày đăng: 17/10/2022, 18:16

HÌNH ẢNH LIÊN QUAN

Bảng mã ASCII - Bài giảng ngôn ngữ lập trình fortran 90   phan văn tân
Bảng m ã ASCII (Trang 12)
Bảng mã ASCII - Bài giảng ngôn ngữ lập trình fortran 90   phan văn tân
Bảng m ã ASCII (Trang 13)
Hình thang. Số N càng lớn tổng diện tích này  càng tiệm cận tới giá trị đúng của Tích phân - Bài giảng ngôn ngữ lập trình fortran 90   phan văn tân
Hình thang. Số N càng lớn tổng diện tích này càng tiệm cận tới giá trị đúng của Tích phân (Trang 95)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w