Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 122 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
122
Dung lượng
1,29 MB
Nội dung
ễn Đạ t Ti ến BỘ NỘI VỤ TRƯỜNG ĐẠI HỌC NỘI VỤ HÀ NỘI uy TẬP BÀI GIẢNG Ng TIN HỌC ĐẠI CƯƠNG cư ơn g - (Dành cho sinh viên ngành Hệ thống thông tin – Trình độ Đại học) Chủ biên: Nguyễn Đạt Tiến Ti n họ c đạ i Giảng viên Trung tâm Tin học - Ngoại ngữ Phó giám đốc Trung tâm Thơng tin - Thư viện Hà Nội, 9-2021 ễn Đạ t Ti ến BỘ NỘI VỤ TRƯỜNG ĐẠI HỌC NỘI VỤ HÀ NỘI uy TẬP BÀI GIẢNG Ng TIN HỌC ĐẠI CƯƠNG Chủ biên: Nguyễn Đạt Tiến Các thành viên: Bùi Thị Thanh Lê Minh Tuấn Ti n họ c đạ i cư ơn g - (Dành cho sinh viên ngành Hệ thống thơng tin – Trình độ Đại học) Hà Nội, 9-2021 MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG BÀI TOÁN VÀ THUẬT TOÁN .10 1.1 Bài toán 10 1.1.1 Phát biểu toán 10 1.1.2 Giải tốn máy tính .10 1.2 Thuật toán .12 Ti ến 1.2.1 Khái niệm 12 1.2.2 Các đặc trưng thuật toán 12 1.2.3 Một số thuật toán .13 Đạ t 1.3 Biểu diễn thuật toán 16 1.3.1 Ngôn ngữ tự nhiên .16 ễn 1.3.2 Sơ đồ khối 17 uy 1.3.3 Mã giả lập 18 Câu hỏi thảo luận tập chương 20 Ng CHƯƠNG TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH .22 - 2.1 Tổng quan lập trình 22 2.1.1 Giới thiệu chung 22 2.1.2 Các phương pháp lập trình 23 ơn g 2.2 Lập trình ứng dụng 27 2.2.1 Lập trình Desktop 27 cư 2.2.2 Lập trình Web 27 i 2.2.3 Lập trình Mobile 28 đạ 2.3 Ngơn ngữ lập trình 29 2.3.1 Bắt đầu chương trình 30 họ c 2.3.2 Các thành phần ngôn ngữ lập trình 32 2.3.3 Khối lệnh .45 n 2.3.4 Cấu trúc điều khiển 46 Ti 2.3.5 Cấu trúc lặp 48 2.4 Chương trình dịch 51 2.4.1 Trình biên dịch 51 2.4.2 Trình thơng dịch 52 Câu hỏi tập chương 54 CHƯƠNG NGƠN NGỮ LẬP TRÌNH PASCAL 56 3.1 Tổng quan .56 3.1.1 Giới thiệu chung 56 3.1.2 Cấu trúc chương trình Turbo Pascal 57 3.1.3 Soạn thảo Turbo Pascal 58 3.2 Các thành phần 66 3.2.1 Các phần tử 66 3.2.2 Các kiểu liệu đơn giản 68 3.2.3 Khai báo hằng, biến, kiểu, biểu thức, câu lệnh 81 3.3 Cấu trúc điều khiển 92 Ti ến 3.3.1 Câu lệnh ghép 92 3.3.2 Câu lệnh điều kiện IF…THEN…ELSE 93 3.3.3 Câu lệnh lựa chọn CASE OF 95 Đạ t 3.4 Câu lệnh lặp 96 3.4.1 Vịng lặp có số bước lặp xác định FOR .97 3.4.2 Vịng lặp có số bước lặp khơng xác định REPEAT WHILE 99 ễn 3.5 Mảng .101 uy 3.5.1 Mảng chiều 102 Ng 3.5.2 Mảng nhiều chiều 106 3.6 Xâu kí tự 108 - 3.6.1 Khai báo .108 3.6.2 Một số hàm, thủ tục xử lý liệu xâu kí tự 109 g 3.7 Chương trình 112 ơn 3.7.1 Khái niệm chương trình con, hàm thủ tục 112 cư 3.7.2 Truyền tham số cho chương trình .114 3.7.3 Biến toàn cục, biến địa phương 116 Ti n họ c đạ i Câu hỏi tập chương 119 DANH MỤC HÌNH ẢNH Hình - Biểu diễn thuật toán sơ đồ khối 18 Hình - Cấu trúc chung chương trình Pascal 58 Hình - Giao diện soạn lệnh phần mềm Borland Pascal 7.0 60 Hình - Các lệnh thực đơn File 60 Hình - Cách ghi nội dung file khác, đường dẫn khác .61 Ti ến Hình - Cách ghi nội dung file khác, đường dẫn ổ đĩa khác 62 Hình - Soạn thảo câu lệnh ngơn ngữ lập trình Pascal 62 Hình - Thơng báo trình biên dịch chương trình 63 Đạ t Hình - Giao diện hộp thoại mở tệp TP 64 Hình 10 - Sơ đồ thống kê kiểu liệu Pascal .68 Ti n họ c đạ i cư ơn g - Ng uy ễn Hình 11 - Mơ hình cấu trúc câu lệnh ghép 87 DANH MỤC BẢNG Bảng - Các hình vẽ để biểu diễn sơ đồ khối 17 Bảng - Bảng mô tả giá trị biểu thức logic (bảng chân lý) 69 Bảng - Bảng mơ tả phép tốn so sánh 71 Bảng - Bảng danh mục kiểu liệu số nguyên 71 Bảng - Ký hiệu ý nghĩa phép so sánh 74 Ti ến Bảng - Các phép toán logic biểu diễn cho bit 74 Bảng - Các kiểu liệu số thực 77 Bảng - Bảng mã ASCII (America, Standard Code for Information Interchange) 79 Đạ t Bảng - Quy tắc thực biểu thức, phép toán 84 Bảng 10 - Liệt kê loại câu lệnh Pascal 85 ễn Bảng 11 - Mô tả mảng hai chiều hàng, 10 cột 106 Ti n họ c đạ i cư ơn g - Ng uy Bảng 12 - Một số hàm, thủ tục thông dụng 118 BẢNG KÝ HIỆU VIẾT TẮT STT Ký hiệu Nghĩa đầy đủ ASCII America Standard Code for Information Interchange CNTT Công nghệ thông tin CPU Central Processing Unit –Bộ xử lý trung tâm CSS Cascading Style Sheets language- Ngôn ngữ định kiểu theo tầng (dùng kết hợp với ngôn ngữ HTML) GPS Global Positioning System – Hệ thống định vị toàn cầu HTML Hyper Text Makup Language – Ngôn ngữ đánh dấu siêu văn IDE Integrated Development Environment - Môi trường phát triển tích hợp NNLT Ngơn ngữ lập trình OOP Object Oriented Programming – Lập trình hướng đối tượng 10 PHP Hypertext Preprocessor – Ngơn ngữ lập trình kịch SDK Software Development Kit – Bộ công cụ phát triển phần mềm TP Turbo Pascal (Ngơn ngữ lập trình Pascal chạy hệ điều hành MS-DOS CP/M, phát triển hãng Borland) W3C World Wide Web Consortium - Tổ chức tiêu chuẩn quốc tế cho World Wide Web Đạ t g 11 ễn uy Ng - Ti ến cư i đạ c họ n Ti 13 ơn 12 LỜI NÓI ĐẦU Tập giảng Tin học đại cương tài liệu nội bộ, dùng làm học liệu bắt buộc cho sinh viên ngành Hệ thống thông tin – Trường Đại học Nội vụ Hà Nội, nhằm chuẩn hóa thống nội dung học tập – giảng dạy Nghiên cứu tài liệu này, sinh viên nắm kiến thức bản, có hệ thống học phần Tin học đại cương 2, đáp ứng yêu cầu trình đào tạo ngành Ti ến Học phần Tin học đại cương trình độ đại học, ngành Hệ thống thông tin Trường Đại học Nội vụ Hà Nội có 03 tín chỉ, hướng tới mục tiêu: uy ễn Đạ t Cung cấp cho sinh viên hiểu biết khái quát toán cách xử lý tốn máy tính, trình bày phân tích tốn ngơn ngữ tự nhiên, lựa chọn xây dựng thuật tốn Từ sử dụng phương thức chuẩn hóa ngành công nghệ thông tin để biểu diễn thực bước thuật tốn ngơn ngữ lập trình Sau bước xử lý câu lệnh lập trình, máy tính trả kết toán - Ng Bồi dưỡng say mê lĩnh vực cơng nghệ thơng tin nói chung đam mê lập trình xử lý tốn cho sinh viên; tạo thói quen sáng tạo ứng dụng cơng nghệ thơng tin giúp xử lý tình đời sống ơn g Giúp sinh viên có tảng kiến, kỹ lập trình để chuẩn bị cho nghiên cứu, học tập học phần khác liên quan ngành đào tạo Kỹ thuật lập trình bản, Lập trình hướng đối tượng, Lập trình ứng dụng,… i cư Nội dung tập giảng Tin học đại cương bao gồm mảng kiến thức sau: Ti n họ c đạ - Bài toán thuật toán (chương 1): Giới thiệu chung phát biểu toán giới thiệu khái niệm thuật tốn, tìm hiểu số thuật tốn thường gặp Sau nghiên cứu nội dung chương này, người đọc cần đạt kiến thức, kỹ phát biểu tốn, phân tích tốn, lựa chọn áp dụng thuật toán phù hợp để giải tốn Từ đó, biết cách biểu diễn thuật tốn hình thức khác để giải tốn - Các ngơn ngữ lập trình (chương 2): Giới thiệu tổng quan ngơn ngữ lập trình máy tính, phương pháp lập trình ứng dụng, giới thiệu số ngơn ngữ lập trình thơng dụng Đồng thời giới thiệu chương trình dịch giúp cho lập trình viên dịch câu lệnh sang ngôn ngữ để máy hiểu thực công việc - Nghiên cứu thực tế ngơn ngữ lập trình (chương 3): Giới thiệu thành phần ngơn ngữ lập trình Pascal cấu trúc chương trình, cấu trúc liệu, cách khai báo sử dụng liệu phục vụ chương trình Tìm hiểu cấu trúc điều khiển cấu trúc rẽ nhánh, cấu trúc lặp Ngồi ra, số thành phần khơng thể thiếu ngơn ngữ lập trình liệu có cấu trúc mảng liệu, khai thác xâu kí tự chương trình trình bày chi tiết từ cú pháp, giải thích ví dụ minh họa cụ thể Cụ thể chương sau: Chương 1: Bài toán thuật toán (ThS Bùi Thị Thanh biên soạn) Ti ến Chương 2: Tổng quan ngôn ngữ lập trình (ThS Lê Minh Tuấn biên soạn) Chương 3: Ngơn ngữ lập trình Pascal (ThS Nguyễn Đạt Tiến biên soạn) Đạ t Chúng tơi mong nhận ý kiến góp ý bạn đọc để Tập giảng hoàn thiện ễn Xin chân thành cảm ơn! Ti n họ c đạ i cư ơn g - Ng uy NHĨM TÁC GIẢ CHƯƠNG BÀI TỐN VÀ THUẬT TOÁN Ti ến Mục tiêu: Chương cung cấp cho người đọc tổng quan khái niệm toán, thuật toán giới thiệu số thuật toán thường gặp sống phương pháp luận kỹ phát biểu tốn, phân tích tốn, lựa chọn áp dụng thuật toán phù hợp để giải toán thực tế 1.1 Bài toán Đạ t 1.1.1 Phát biểu toán ễn Trong phạm vi tin học, toán quan niệm việc muốn máy tính thực Ng uy Ví dụ: viết dịng chữ hình, giải phương trình bậc hay quản lý sinh viên, quản lý điểm,… - Khi sử dụng máy tính để giải toán ta cần quan tâm tới yếu tố sau: liệu đầu vào (Input) cần lấy thơng tin (Output) Do để giải toán ta cần xác định rõ thông tin đầu vào thông tin đầu tốn cư ơn g Ví dụ: Bài tốn giải phương trình bậc nhất: ax+b=0 - Input: Các hệ số a,b - Output: nghiệm x i 1.1.2 Giải tốn máy tính n họ c đạ Để giải tốn máy tính phụ thuộc nhiều vào hiểu biết người toán, tiếp đến hiểu biết người sử dụng để khai thác máy tính Thơng thường để giải tốn máy tính dựa vào nguyên tắc sau: Ti Bước 1: Xác định toán Mỗi toán đặc tả thành phần đầu vào (Input) đầu (Output) Việc xác định tốn xác định rõ thành phần Các thơng tin cần nghiên cứu cẩn thận để lựa chọn thuật tốn, cách thể đại lượng cho đại lượng phát sinh q trình giải tốn ngơn ngữ lập trình thích hợp 10 3.6 Xâu kí tự Để xử lý chuỗi văn bản, Pascal đưa kiểu liệu gọi xâu ký tự định nghĩa từ khóa String Xâu ký tự liệu bao gồm dãy ký tự bảng mã ASSCII Chúng ta hiểu xâu kí tự mảng kí tự có số chạy từ đến độ dài cực đại, phần tử thứ chứa độ dài thực xâu Ti ến 3.6.1 Khai báo Đạ t Một xâu kí tự định nghĩa từ khóa String, theo sau số kí tự cực đại có xâu kí tự, đặt cặp ngoặc vng String[Độ dài cực đại]; ễn Ví dụ: uy Var Ng Tenfile: String[20]; - Dong:string[80]; g Trong nhớ, xâu kí tự chiếm số byte số kí tự cực chứa kí tự, cộng với byte chứa số kí tự có xâu i cư ơn Ví dụ: Biến Tenfile khai báo gán giá trị: Tenfile:= ‘Vidu.pas’ Khi này, độ dài xâu kí tự Tenfile kí tự, độ dài cực đại cho phép tenfile 20 c đạ Để kiểm tra độ dài thực xâu kí tự, sử truy xuất đến phần tử [0] xâu kí tự qua ví dụ sau đây: họ Dodai: = ord(Tenfile[0]); Ti n Ngoài ra, Pascal cung cấp cho người dùng hàm Length(s) để trả độ dài xâu kí tự s Một xâu chữ rỗng (tức khơng chứa ký tự kể dấu cách) Length(s) = Để truy cập vào ký tự xâu kí tự với tên biến số đặt ngoặc vuông truy nhập vào phần tử mảng Chỉ số chạy từ tới độ dài cực đại xâu kí tự Ví dụ: 108 Tenfile[1]= ‘V’; Tenfile[2]= ‘i’; Trong thực tế, truy xuất phần tử xâu, người dùng cần phải kiểm tra độ dài xâu để xác định ký tự cuối để tránh trường hợp sử dụng lệnh truy xuất đến phần tử nằm ngồi khoảng độ dài xâu kí tự Ví dụ: Ti ến If i >= length(Tenfile) then Writeln(‘Da den ki tu cuoi cung cua xau’); Một số phép toán xâu kí tự: Đạ t - Phép cộng xâu: Xâu kí tự sử dụng toán hạng biểu thức để ghép xâu kí tự qua dấu cộng (+) uy ễn Ví dụ: Ta có biến S1:= ‘Hà Nội’ S2:= ‘Việt Nam’ Nếu chương trình có lệnh S:=s1+ ‘ ’+s2 s có giá trị Hà Nội Việt Nam - Ng - Phép so sánh xâu kí tự: Xâu kí tự dùng biểu thức quan hệ để so sánh Khi so sánh hai xâu kí tự, kí tự hai xâu so sánh cặp từ trái qua phải theo giá trị bảng mã ASCII ơn g Nếu hai xâu có độ dài khác song số kí tự giống đến độ dài xâu ngắn xâu có độ dài ngắn coi bé cư Hai xâu kí tự nội dung lẫn độ dài chúng giống đạ i Trong Pascal, khơng có phép trừ, nhân, chia xâu kí tự c 3.6.2 Một số hàm, thủ tục xử lý liệu xâu kí tự họ - Hàm Length(s) trả độ dài xâu kí tự Ti n Ví dụ: Cho biến s: = ‘Ha Noi’ hàm length(s) trả kết ngồi ký tự dấu cách hàm tính ký tự - Thủ tục Delete(s, i, n) xóa n ký tự kể từ vị trí thứ i xâu ký tự s Ví dụ, cho s1:= ‘Viet Nam dep giau’ thủ tục Delete(s1, 10, 8) xóa bỏ chữ ‘dep giau’ số ký tự lại xâu ký tự s1 ‘Viet Nam ’ (vẫn dấu cách sau chữ m) 109 Nếu i+n lớn độ dài xâu kí tự s thủ tục Delete xóa kí tự nằm độ dài s - Thủ tục Insert(s1, s, vt) có tác dụng chèn liệu chứa biến s1 vào xâu kí tự s vị trí số nằm biến vt Ví dụ: Ti ến Cho xâu s := ‘He thong thong tin’ s1:= ‘CNTT’, gọi thủ tục Insert(s1,s,1) nhận xâu kí tự ‘CNTTHe thong thong tin’ Hoặc gọi thủ tục Insert(s1,s,9) nhận kết ‘He thongCNTT thong tin’ ễn Đạ t Chú ý: Nếu tổng độ dài xâu kí tự s xâu kí tự s1 vượt độ dài cực đại cho phép xâu kí tự chuẩn (256 kí tự) kí tự nằm khoảng độ dài cực đại cho phép giữ lại - Ng uy - Thủ tục Str(gt, s) cho phép biến đổi giá trị số nguyên thực nằm biến gt thành dãy kí tự biển diễn số Cách biểu diễn giá trị xâu kí tự s quy định quy cách giá trị nằm biến gt g Ví dụ cho x = 3.1415 với quy cách viết kí tự thủ tục str(x:4, s) cho kết s = ‘3.14’ (Dấu ngăn cách phần thập phân tính kí tự) cư ơn Nếu y số thực có giá trị 252.657474, ta muốn biểu diễn số y dạng kí tự với chữ số thập phân sử dụng thủ tục srt(y:8:4, s) cho kết 252.6574 n họ c đạ i - Thủ tục Val(s, x, e) biến đổi xâu kí tự s (chứa giá trị số nguyên số thực) thành số nguyên số thực chứa biến x Biến e số nguyên khai báo để phát lỗi Nếu phép biến đổi mà e có giá trị 0, phép biến đổi sai s không biểu diễn số nguyên số thực e nhận giá trị vị trí kí tự sai xâu kí tự s Ti Ví dụ: Cho x khai báo biến số thực, biến r= ‘230.45’, biến e số nguyên Khi gọi thủ tục val(r, x, e) kết nhận x = 230.45 e = Cho biến st = ‘876xx’ 876 số xx kí tự, gọi thủ tục Val(st,i, e) giá trị i nhận giá trị (khơng xác định) e = (4 vị trí thứ phát lỗi xâu kí tự st) - Hàm copy(s, vt, z) nhận z kí tự xâu kí tự s kể từ vị trí biến vt 110 Ví dụ cho s = ‘8786765454’ biến xâu kí tự s1 khác chưa có giá trị Ta có lệnh s1 := copy(s, 5, 3); nhận kết s1 = ‘765’ Chú ý, vt > Length(s) hàm copy cho xâu ký tự rỗng Nếu vt+z> length(s) hàm copy nhận giá trị kí tự nằm xâu s Ti ến - Hàm Concat(s1, s2, ,sn) cho phép ghép nối tất xâu kí tự s1, s2, , sn thành xâu kí tự theo thứ tự viết Nếu tổng số chiều dài xâu kí tự lớn 255 chương trình báo lỗi Ngồi cách sử dụng hàm Concat, sử dụng phép + xâu để ghép nối xâu trình bày phần phép toán xâu Đạ t Ví dụ: Cho s1 = ‘Ha Noi’, s2 = ‘-’, s3 = ‘Viet Nam’, sử dụng hàm Concat(s1, s2, s3) cho kết ‘Ha Noi-Viet Nam’ Ng uy ễn - Hàm Pos(tk, s) trả giá trị số vị trí xâu tk gặp xâu s (tìm xem xâu kí tự tk nằm vị trí xâu kí tự s) Nếu khơng tìm thấy giá trị phù hợp hàm trả giá trị - Ví dụ: Cho s1= ‘53654647’ s2=54 hàm Pos(s2, s1) cho giá trị Hoặc sử dụng hàm Pos(‘6x’,s1) cho giá trị khơng tìm thấy giá trị ‘6x’ tương ứng xâu ký tự nằm biến s1 cư ơn g Ví dụ tổng hợp: Viết chương trình nhập vào xâu kí tự từ bàn phím In hình xâu kí tự đảo ngược xâu Program VDTH; đạ i Uses crt; Ti Clrscr; họ Begin n i: integer; c Var St: String; Write('Nhap St: '); Readln(St); For i:=length(St) downto Write(St[i]); Readln End 111 3.7 Chương trình 3.7.1 Khái niệm chương trình con, hàm thủ tục Đạ t Ti ến Trong lập trình, thường gặp đoạn chương trình lặp lặp lại nhiều lần vị trí khác Để tránh phải viết lại đoạn chương trình lặp lại giúp việc bổ sung, sửa chữa thuận lợi đoạn chương trình thay chương trình tương ứng Khi cần thiết, việc sử dụng lời gọi chương trình với tham số cụ thể tùy vào hoàn cảnh sử dụng mà không cần phải viết lại đoạn lệnh Trong Pascal, chương trình chuẩn phân loại chứa đơn vị chương trình Unit CRT, DOS, PRINTER g - Ng uy ễn Một lý khác để xây dựng chương trình tốn lớn, phức tạp tương ứng với chương trình lập trình với số lượng lớn dòng lệnh dài Do đó, việc nhìn tổng quan chương trình việc gỡ rối, hiệu chỉnh gặp nhiều khó khăn Chúng ta phân chia tốn lớn, phức tạp thành tốn nhỏ, đơn giản hơn, dễ thực để dễ kiểm tra, gỡ rối khối sau ghép lại thành chương trình lớn Việc chia nhỏ chương trình lớn thành chương trình (modul) hiểu phương pháp “chia để trị” toán thực tế đạ i cư ơn Trong khoa học máy tính, chương trình (hay cịn gọi subroutine) đoạn chương trình đóng gói thành đơn vị chương trình, thực số tác vụ cụ thể mà chương trình cần thực nhiều lần từ nhiều nơi thời gian chạy họ c Trong Pascal có hai loại chương trình hàm (Function) thủ tục (Procedure) Ti n - Thủ tục (hay gọi Procedure) chương trình cho phép thực hay số cơng việc Thủ tục phải chương trình chương trình khác sử dụng lời gọi để thực - Hàm (hay gọi Function) chương trình cho phép thực hay số công việc Hàm thường trả giá trị cho biến gán cho hàm Sự khác hàm thủ tục hàm trả lại giá trị kết vô hướng thơng qua tên hàm sử dụng biểu thức Còn thủ tục khơng trả lại kết thơng qua tên nên thủ tục viết biểu thức 112 Ví dụ: Chương trình tính cos(x) thuộc loại chương trình hàm, hàm có tên cos với tham số x Trong đó, thường sử dụng lệnh Read, Readln, Write, Writeln thủ tục Theo quy định Pascal chuẩn, cấu trúc chung chương trình với cách mơ tả khai báo sau: Program Ten_chuong_trinh; Ti ến Label (* Khai báo nhãn*); Const (* Khai báo hằng*); Đạ t Type (* Khai báo kiểu liệu người dùng*); (* Các chương trình *) ễn Var (* Khai báo biến nhớ*); uy Procedure Tên_thủ_tục(Khai báo tham số - cần): kiểu_dữ_liệu; Ng (* Khai báo Label, Const, Type, Var riêng Procedure*) - Begin g (* Thân chương trình – thủ tục*) ơn End; cư (* -*) i Function Tên_hàm(Khai báo tham số - cần): kiểu_dữ_liệu; đạ (* Khai báo Label, Const, Type, Var riêng Procedure*) họ c Begin Ti End; n (* Thân chương trình – hàm*) (* Kết thúc khai báo chương trình *) (* Phần thân chương trình *) BEGIN (*Thân chương trình chính, lời gọi chương trình con*) END 113 Cũng theo quy định này, thứ tự phần mô tả khai báo phải theo trật tự trên, cụ thể phần khai báo sau: 1) 2) 3) 4) Khai báo nhãn LABEL; Khai báo CONST; Khai báo kiểu liệu TYPE; Khai báo biến VAR 3.7.2 Truyền tham số cho chương trình Đạ t Ti ến Mỗi loại xuất lần, phần khơng có bỏ Sau khai báo xong đến thứ tự hàm thủ tục Trong Turbo Pascal (và FreePascal), cho phép phần khai báo tự hơn, không thiết phải theo thứ tự bắt buộc nêu không thiết phải khai báo phần lần Ng uy ễn Chương trình khai báo mà khơng dùng tham số chương trình tính tốn trực tiếp với biến tồn cục chương trình khơng dùng đến biến hay - Việc truyền tham số cho chương trình cấu thay tương ứng, cho phép q trình lặp lặp lại nhiều lần với “toán hạng” khác cư ơn g Danh sách nhóm tham số hình thức khác kiểu liệu đặt cách dấu chấm phảy (;), tham số có kiểu liệu đặt cách dấu phảy (,) đạ i Ví dụ: Procedure daoso(i,j: interger; Var x, y: real); họ c Danh sách tham số thực phải tương ứng quán với danh sách tham số hình thức khai báo tiêu đề chương trình Ti n Có hai cách truyền tham số cho chương trình là: tham trị (Value parameter) tham biến (variable parameter) Truyền tham số biến: tham số hình thức phần tiêu đề chương trình đặt sau từ khóa Var Với tham biến, tham số thực phải biến khơng giá trị Ví dụ sử dụng Daoso(2, 5, 9, 12.5) khơng chấp nhận 12.5 hai giá trị biến Các tham số thực tham biến thay đổi chương trình khỏi chương trình giữ giá trị thay đổi Khi khai báo tham số mà khơng có từ khóa Var nhóm tham số hình thức tham 114 Ti ến số nhóm tham số giá trị Khi đó, tham số thực phải biểu thức (có thể phép tốn, biến ) Tham số hình thức tương ứng coi biến địa phương chương trình con, nhận giá trị tham số thực giá trị đầu vào thời điểm thay vào chương trình Chương trình sau thay đổi giá trị tham trị bên chương trình phép gán, song trường hợp điều khơng làm thay đổi giá trị tham số thực Do vậy, tham trị không kết tính tốn chương trình Ví dụ minh họa: Đạ t Program tham_so; Var a,b: integer; ễn Procedure truyenthamso(x:integer; var y:integer); uy Begin Ng x:=x+1; - y:=y+1; Writeln(x:6, y:6); ơn g End; cư Begin a:=0; đạ i b:=3; truyenthamso(a,b); họ c Writeln(a:6, b:6); n End Ti Sau chạy, chương trình cho kết quả: 4 Trong ví dụ trên, thủ tục Truyenthamso có hai loại tham số: tham trị x tham biến y Trước gọi thủ tục với hai tham số thực a, b tương ứng a = b = Trong thủ tục, có hai lệnh làm thay đổi giá trị a b cách tăng lên đơn vị Lệnh in hình Writeln(x, y) cho kết tương 115 ứng sau tính tốn Tuy nhiên, sau chương trình b tham biến, cịn a giữ ngun giá trị trước gọi thủ tục, tức a a tham trị Ti ến Như vậy, truyền tham số cho chương trình con, muốn bảo vệ giá trị tham số khỏi bị chương trình thay đổi q trình tính tốn tham số phải dùng tham trị Còn tham số muốn dùng để lấy kết cho chương trình đem lại tham số phải tham biến - Ng uy ễn Đạ t Đối với việc bố trí nhớ, lời gọi chương trình bố trí nhớ vùng nhớ ngăn xếp cho biến địa phương tham trị Các tham trị đóng vai trị biến địa phương Sau đó, chép giá trị tham số thực bên chương trình vào nhớ Khi khỏi chương trình con, nhớ giải phóng Điều giải thích tham trị bị thay đổi bên chương trình con, cịn tham số thực khơng bị thay đổi sau khỏi chương trình Đối với tham biến, chương trình dùng nhớ biến cách dùng trỏ vào tham biến Điều có nghĩa tốc độ truyền tham số tham biến nhanh tham trị khơng thời gian chép, trường hợp tham số kiểu liệu có cấu trúc (ví dụ mảng liệu có số phần tử lớn) ơn g 3.7.3 Biến toàn cục, biến địa phương họ c đạ i cư Các biến khai báo chương trình gọi biến tồn cục Các biến dùng nơi chương trình chiếm dụng nhớ đến chương trình giải phóng Các biến khai báo chương trình gọi biến địa phương có tác dụng phạm vi chương trình Khi chương trình kết thúc biến bị giải phóng khỏi nhớ Ti n Ví dụ cách sử dụng biến địa phương biến toàn cục: Program su_dung_bien; Var i:integer; (* *) Procedure bien_dia_phuong; Var i: integer; Begin 116 i:=5; Writeln(i:6); End; (* *) Begin Ti ến i:=5; Writeln(i:6); Bien_dia_phuong; Đạ t Writeln(i:6); ễn Readln uy End (Đây giá trị i toàn cục) Ng Khi chạy chương trình, kết cho là: - (Đây giá trị i địa phương) g (Đây giá trị i toàn cục) n họ c đạ i cư ơn Trong ví dụ trên, muốn sử dụng biến i dùng cho biến toàn cục biến địa phương để minh họa cách Pascal dùng biến Đầu tiên, biến i tồn cục nhận giá trị Sau thủ tục bien_dia_phuong gọi Vì lúc có biến tên i (biến khai báo chương trình con) nên biến i toàn cục xem tạm bị che chắn, không dùng đến Lúc biến địa phương lấy giá trị Sau thoát khỏi chương trình con, biến i địa phương bị giải phóng biến tồn cục lại khơi phục lại Lúc giữ giá trị giá trị có trước gọi thủ tục bien_dia_phuong Ti Các chương trình có sẵn Pascal như: - Các hàm số học: Abs, Arctan, Cos, Sin, Exp, Ln, Sqrt, Sqr - Các hàm vô hướng: Succ, Pred, Odd - Các hàm chuyển đổi: Chr, Ord, Round, Trunc Ngoài ra, Pascal cịn có số hàm thủ tục thông dụng liệt kê bảng để bạn đọc tham khảo, sử dụng cần thiết 117 TT Tên hàm/thủ tục Tác dụng Thuộc Unit Thủ tục GotoXY(x, y) Thủ tục đưa trỏ hình vị trí có tọa độ (x,y) hình CRT Thủ tục Clrscr Thủ tục Clear Screen có tác dụng xóa tồn hình đặt trỏ vị trí phía bên trái CRT Thủ tục DelLine Xóa tồn dịng hình chứa trỏ CRT Thủ tục DelEol Xóa tồn kí tự bên phải trỏ hình Sau xóa, trỏ chỗ CRT Thủ tục InsLine Chèn dịng trắng vào hình từ vị trí trỏ CRT Thủ tục LowVideo NormVideo Sau gọi Lowvideo, kí tự viết hình có độ sáng yếu gọi thủ tục NormVideo CRT Thủ tục Delay(time) Tạo thời gian trễ (khoảng mili giây) Tham số time số nguyên Delay thường dùng để làm chậm chương trình tạo điểm dừng cho xem nội dung khoảng thời gian CRT Thủ tục Sound(f) Tạo dao động âm với tần số F (F số nguyên) gặp thủ NoSound tục Nosound tắt tiếng CRT uy Ng - c họ n Bảng 12 - Một số hàm, thủ tục thông dụng Ti đạ i cư g ễn ơn Đạ t Ti ến 118 Câu hỏi tập chương Hãy viết chương trình in hình dịng chữ Welcome to Hethongthongtin Noivu với màu đỏ nhấp nháy Gợi ý: Sử dụng hàm Gotoxy, TextColor Hãy viết chương trình in hình máy tính mơ hình tam giác chữ nhật ký tự hoa thị (*) Ti ến Hãy viết chương trình đọc số từ bàn phím, lưu trữ vào biến a, b, c, d sau tính tổng chúng in kết hình Đạ t Khơng sử dụng máy tính, anh/chị kiểm tra sửa lỗi chương trình sau: ễn Var x: Integer ; uy Begin Ng x := / ; - end ơn g Hãy xác định kết hiển thị hình sau thực chương trình sau:(khơng sử dụng máy tính) cư Uses CRT; Var X: Real; Clrscr ; gotoxy(30, 13 ); c X := 1.2 ; đạ i Begin họ TextColor (RED + BLINK ); Write( ' X*2 = ', X*2:8:2); Ti End n ReadKey; Viết chương trình tính giá trị trung bình ba số a, b, c ( a,b,c số dương nhập vào từ bàn phím) Hãy viết chương trính hốn vị giá trị hai biến a, b Hãy viết chương trình để thực công việc sau; - Nhập số thuộc bảng mã ASCII, in ký tự đại diện cho số 119 - Nhập ký tự từ bàn phím, hiển thị mã ASCII ký tự Gợi ý: Sử dụng hàm Ord Chr để chuyển đổi từ ký tự sang số ngược lại Hãy xác định kết hiển thị hình sau thực chương trình sau:(khơng sử dụng máy tính) uy ễn Đạ t Ti ến Uses CRT; Var ch : Char ; Begin Clrscr; ch := 'A' ; Writeln ( Chr ( Ord(ch) - 33)); Readln; End 10 Viết chương trình tính chu vi diện tích hình chữ nhật - Ng 11 Biết ba số nguyên dương a, b, c gọi số Pi-ta-go tổng bình phương hai số bình phương số cịn lại Viết chương trình nhập từ bàn phím ba số nguyên dương a, b, c kiểm tra xem chúng có số Pi-ta-go hay không ơn g 12 Nhập giá trị đại diện cho cạnh tam giác vào từ bàn phím Kiểm tra xem cạnh có ba cạnh tam giác hay không Nếu thì: họ c đạ i cư a In hình chu vi diện tích tam giác (sử dụng công thức Heron) b Cho biết tam giác tam giác thường, vuông, cân hay c Nếu sai in hình giá trị nhập vào cạnh tam giác Ti n Ghi chú: Trong hình học, cơng thức Heron cơng thức tính diện tích tam giác theo độ dài cạnh Gọi S diện tích độ dài cạnh tam giác a, b, c 𝑆 = √𝑝 (𝑝 − 𝑎)(𝑝 − 𝑏)(𝑝 − 𝑐) ; 𝑣ớ𝑖 𝑝 = 𝑎+𝑏+𝑐 13 Dãy F dãy Phi-bo-na-xi nếu: 𝐹0 = 0; 𝐹1 = 1; 𝐹𝑁 = 𝐹𝑁−1 + 𝐹𝑁−2 ; 𝑣ớ𝑖 𝑁 ≥ 120 Viết chương trình nhập từ bàn phím số ngun dương N đưa hình số hạng thứ N dãy Phi-bo-na-xi Chương trình bạn thực với giá trị lớn N bao nhiêu? 14 Xây dựng menu sau: a Tính diện tích, chu vi hình chữ nhật b Tính diện tích, chu vi hình trịn Ti ến c Tính diện tích, chu vi hình tam giác d Khơng tính tốn Lựa chọn bạn? Đạ t Người sử dụng chọn mục cách sử dụng ký hiệu đầu mục menu Lựa chọn mục thực chức mục Ng uy ễn Ví dụ: Người sử dụng nhấn vào ký tự “c” “C”, chương trình yêu cầu người sử dụng nhập vào độ dài cạnh tam giác, sau chương trình tính tốn hiển thị diện tích chu vi tam giác Ti n họ c đạ i cư ơn g - 15 Anh/chị sử dụng chương trình (dạng thủ tục hàm) viết chương trình tính n giai thừa (n!) 121 TÀI LIỆU THAM KHẢO CHƯƠNG [1] Qch Tuấn Ngọc (2003), Ngơn ngữ lập trình Pascal (Chương 3, 4), Nhà xuất Thống kê [2] Nguyễn Ngọc Cương (Chủ biên) (2015), Giáo trình ngơn ngữ lập trình Pascal (Chương 3), Nhà xuất Thơng tin truyền thông Ti ến [3] Bùi Thế Tâm (2004), Giáo trình Turbo Pascal 7.0 (Chương 4,5), Nhà xuất Giao thông vận tải Ti n họ c đạ i cư ơn g - Ng uy ễn Đạ t [4] Nguyễn Tơ Thành (2001), Lập trình nâng cao ngơn ngữ Pascal (Chương 2), Nhà xuất Đại học quốc gia Hà Nội 122 ... 22 2. 1.1 Giới thiệu chung 22 2. 1 .2 Các phương pháp lập trình 23 ơn g 2. 2 Lập trình ứng dụng 27 2. 2.1 Lập trình Desktop 27 cư 2. 2 .2 Lập trình... tập – giảng dạy Nghiên cứu tài liệu này, sinh viên nắm kiến thức bản, có hệ thống học phần Tin học đại cương 2, đáp ứng yêu cầu trình đào tạo ngành Ti ến Học phần Tin học đại cương trình độ đại. .. ơn 12 LỜI NÓI ĐẦU Tập giảng Tin học đại cương tài liệu nội bộ, dùng làm học liệu bắt buộc cho sinh viên ngành Hệ thống thông tin – Trường Đại học Nội vụ Hà Nội, nhằm chuẩn hóa thống nội dung học