CHƯƠNG 1 : GIỚI THIỆU CHUNG VỀ NGÔN NGỮ LẬP TRÌNH FORTRAN 1.1 Sơ lược về lịch sử ngôn ngữ lập trình Fortran. Fortran ( hay FORTRAN ) được viết tắt từ cụm từ Mathematical FORmula TRANslating System ( hệ thống dịch công thức toán học ) , là ngôn ngữ lập trình cấp cao đầu tiên , kiểu biên dịch ( compiler ) , do John Warner Backus ( 1924 – 2007 ) cùng một nhóm kỹ sư điện toán thuộc tập đoàn công nghiệp máy tính IBM ( International Business Machines ) thiết kế và phát triển từ giữa những năm 50 của thế kỷ XX. Ban đầu tên ngôn ngữ được viết là FORTRAN , nhưng xu hướng hiện nay được viết chuẩn hóa thành Fortran ( chỉ viết hoa kí tự đầu ) .2 Phạm vi ứng dụng. Ngôn ngữ lập trình Fortran hiện nay có đầy đủ tính năng của một ngôn ngữ lập trình cấp cao hiện đại, hỗ trợ nhiều kiểu lập trình , có khả năng ứng dụng trên nhiều lĩnh vực khác nhau , tuy nhiên Fortran thích hợp hơn cho các ứng dụng tính toán số trong lĩnh vực khoa học kỹ thuật , khoa học tự nhiên và được xem là ngôn ngữ lập trình rất phổ biến đối với các sinh viên, kỹ sư, khoa học gia thuộc các lĩnh vực nêu trên tại các nước Âu Mỹ .3 Các phiên bản của ngôn ngữ Fortran.
FORTRAN (1957) , FORTRAN II ( 1958) , FORTRAN III (1958) , FORTRAN IV (1961) , FORTRAN 66 (1966) được xem là các phiên bản cũ , lỗi thời. Các phiên bản được sử dụng phổ biến hiện nay là FORTRAN 77 , Fortran 90 (chuẩn hóa năm 1991) và Fortran 95. Phiên bản Fortran 90 , được xem là cột mốc quan trọng trong lịch sử phát triển ngôn ngữ Fortran , có rất nhiều điểm mới so với FORTRAN 77 như văn bản chương trình hay tập tin nguồn ( source code ) được phép viết theo kiểu “ định dạng tự do “ ( free format ) , khác với kiểu “ định dạng cố định theo cột “ ( fixed format ) của các phiên bản trước ; các cấu trúc điều khiển , xử lý mảng , xử lý vào / ra , cấp phát động , chương trình con , đơn vị chương trình module tạo nhiều thuận lợi hơn cho người lập trình. Phiên bản Fortran 95 bổ sung một số ít các nội dung mới vào Fortran 90 và bỏ đi một vài điểm lỗi thời vẫn còn giữ trong Fortran 90.
Các phiên bản tiếp theo là Fortran 2003 ( hỗ trợ lập trình hướng đối tượng ) , Fortran 2008 và phiên bản sau cùng là Fortran 2018. Một số công ty, tổ chức phát triển ngôn ngữ Fortran đã cho ra đời nhiều biến thể khác nhau từ Fortran chuẩn ( Standard Fortran ) bằng cách thêm vào một số chức năng mở rộng. Các phiên bản Fortran chuẩn được ANSI ( American National Standards Institute - Viện tiêu chuẩn quốc gia Hoa Kỳ ) và ISO ( International Organization for Standardization - Tổ chức quốc tế về tiêu chuẩn hóa ) xem xét và công bố. Chương trình viết bằng Fortran chuẩn đảm bảo tính khả chuyển ( portable ) , chạy ổn định trên các hệ máy tính khác nhau có cài đặt trình biên dịch Fortran.
Phần trình bày trong tài liệu này sẽ tập trung vào phiên bản Fortran 90 và sử dụng các trình biên dịch Fortran trên nền hệ điều hành Windows. Phần thực hành minh họa các chương trình Fortran 90 , chúng ta sử dụng phần mềm miễn phí Force 2.9p , được download tại trang web : http://force.html Tên tập tin download : Force209G95Setup.exe , kích thước 3,55 MB. Phần mềm Force là một môi trường phát triển tích hợp IDE ( Integrated Development Environment ) gọn nhẹ , có chức năng biên dịch và chạy các chương trình viết bằng FORTRAN 77 hoặc Fortran 90. Force sử dụng trình biên dịch miễn phí G77/GFortran của GNU Compiler Collection (GCC) và G95.
Khi cài đặt xong , chúng ta mở file Force2.exe , sẽ thấy hiển thị cửa sổ môi trường phát triển tích hợp IDE của Force 2. Trong môi trường này , chúng ta sẽ soạn tập tin nguồn ( văn bản chương trình dạng text ) , tiến hành biên dịch , liên kết ( lệnh compile ) và nếu không có lỗi sẽ tiến hành chạy kiểm tra ( lệnh run ) chương trình. 2 Ngoài ra , chúng ta có thể chọn các trình biên dịch Fortran khác như sau để chạy kiểm tra cùng một chương trình nguồn : Sử dụng môi trường IDE của SilverFrost qua chương trình FTN95 Personal Edition ( chương trình miễn phí phục vụ học tập , chạy test ) với file có tên ftn95_personal.8 , kích thước 48, 071 MB ) , được download tại trang web : https://www.com/32/ftn95/ftn95_personal_edition.aspx Khi download về máy tính xong , chúng ta chạy file ftn95_personal.exe để cài đặt chương trình vào một thư mục tùy chọn , ví dụ D :\FTN95. Sau đó chúng ta chạy file plato.exe để mở môi trường IDE Plato.
Từ đây , có thể soạn thảo , biên dịch , liên kết và chạy các chương trình Fortran. Phần hướng dẫn sơ lược sử dụng các trình biên dịch này sẽ được trình bày ở cuối chương.2 Bộ kí tự của Fortran. Văn bản chương trình Fortran ( source code , source file ) .1 Bộ kí tự của Fortran. Bộ kí tự của Fortran bao gồm : a) Chữ viết thường : từ a đến z ; ( 26 chữ cái tiếng Anh ) b) Chữ viết hoa : từ A đến Z ; c) Chữ số : 0 đến 9 ; ( 10 chữ số ) d) Kí tự nối chân : _ ; ( underscore ) e) Các kí tự khác : = + - * /( ) < > ,.
Các đơn vị văn bản chương trình như từ khóa ( keyword ) , tên biến , tên hằng , tên chương trình , xâu kí tự , biểu tượng …sử dụng các kí tự trong bộ kí tự Fortran. Kí hiệu các phép toán số học cộng, trừ, nhân, chia được viết : + - * / ; riêng phép lũy thừa sử dụng hai dấu * viết liên tiếp ( ví dụ : 2**3 = 23 = 8 ) .2 Soạn thảo văn bản chương trình ( tập tin nguồn dạng *.f90 ) Để soạn một văn bản chương trình Fortran 90 , có thể dùng trình soạn thảo văn bản Notepad hoặc soạn thảo ngay trong môi trường Force. Tập tin nguồn phải được lưu ( save as ) dưới dạng có phần đuôi là *.f90 , để trình biên dịch có thể nhận dạng được loại tập tin và phiên bản Fortran phù hợp ( Tập tin văn bản soạn theo định dạng cố định có phần đuôi là *.f , được giới thiệu ở cuối chương ; tập tin văn bản của Fortran 95 có phần đuôi là *. Fortran 90 không phân biệt chữ hoa với chữ thường trong văn bản chương trình ( case insensative ) trừ việc thể hiện nội dung trong xâu kí tự ( string of characters ).
Trong các văn bản chương trình trước đây , người lập trình viết các dòng lệnh bằng chữ IN HOA nhưng xu hướng hiện nay là viết văn bản bằng chữ thường hoặc kết hợp cả hai .3 Phương thức chung tạo tập tin thi hành (executable file) từ văn bản chương trình. a) Trong môi trường DOS hoặc Windows , các ngôn ngữ lập trình cấp cao ( như Fortran, C, Pascal,…) tạo tập tin thi hành có đuôi *.exe theo hai bước : Bước 1 : Biên dịch ( compiling ) tập tin nguồn ( source code , file dạng text do người lập trình soạn thảo ) sang tập tin đối tượng ( object code ) dạng nhị phân ( binary code ). Bước 2 : Liên kết ( linking ) một hoặc vài tập tin đối tượng và các tập tin thư viện có liên quan để tạo thành tập tin thi hành được ( executable file ). Tập tin thi hành *.exe sau đó có thể chạy độc lập bên ngoài môi trường IDE.
b) Sơ đồ minh họa : 3 Tập tin nguồn Tập tin đối tượng Tập tin thi hành ( Source code ) ( Object code ) ( Executable code ) Biên dịch Liên kết ( Compiling ) ( Linking ) File1.exe Thư viện Libraries Hình 1.1 : Các bước biên dịch , liên kết , tạo tập tin thi hành .4 Một ví dụ về chương trình Fortran. Để có một cái nhìn tổng quát về việc soạn thảo tập tin nguồn của Fortran và cách thức biên dịch , liên kết và chạy chương trình trong môi trường Force , chúng ta xem qua một ví dụ đơn giản dưới đây .1 Văn bản chương trình tính chu vi và diện tích hình tròn. Trong cửa sổ Force , vào menu File , chọn New. Khung cửa sổ soạn thảo hiện ra và con trỏ xuất hiện ở dòng đầu tiên.
Chúng ta vào nội dung văn bản chương trình như dưới đây và lưu tập tin dưới tên hinhtron. Văn bản chương trình được xem là một tập các chỉ thị ( tập lệnh ) dạng text được sắp xếp theo một thứ tự từ trên xuống dưới và được viết theo các quy tắc về cú pháp rất chặt chẽ của ngôn ngữ Fortran nhằm ra lệnh cho máy tính thực hiện một nhiệm vụ xác định nào đó. Phần đánh số dòng trong cửa sổ soạn thảo là tự động nhằm giúp người lập trình dễ dàng tham chiếu đến các dòng lệnh. Khi chúng ta soạn thảo tập tin nguồn , các từ khóa trong văn bản , các dòng ghi chú và một số đơn vị cú pháp trong văn bản sẽ tự động có màu thích hợp giúp chúng ta dễ phân biệt các đối tượng khác nhau trong văn bản.
Trong văn bản ví dụ dưới đây , các từ khóa ( keyword ) của Fortran được in đậm. program HinhTron implicit none ! phan khai bao real :: r,chuvi,dientich ! khai bao 3 bien la so thuc real, parameter :: pi = 3.14159 ! khai bao hang so pi ! phan tinh toan print*,'Cho biet ban kinh r :' ; read*,r chuvi = 2.0*r*pi dientich = r*r*pi ! xuat ket qua print*,'Chu vi : ',chuvi print*,'Dien tich : ',dientich read* ! tam dung man hinh de xem ket qua , co the thay bang lenh pause end program HinhTron 4 Hình 1.2 : Soạn thảo tập tin nguồn trong cửa sổ Force .2 Biên dịch, liên kết và chạy chương trình hinhtron. Bước biên dịch,liên kết : chọn menu Run , chọn mục Compile (phím tắt Ctrl – F9). Khi biên dịch , liên kết xong , nếu không có lỗi cửa sổ Process hiển thị như sau : Hình 1.3 : Cửa sổ Process thông báo việc biên dịch hoàn tất , không có lỗi .