1. Trang chủ
  2. » Giáo Dục - Đào Tạo

GIÁO TRÌNH MÔN HỌC LẬP TRÌNH CĂN BẢN NGHỀ QUẢN TRỊ MẠNG MÁY TÍNH

75 1 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

Định dạng
Số trang 75
Dung lượng 1,13 MB

Nội dung

Phụ lục 3 1 ỦY BAN NHÂN DÂN TỈNH HÀ NAM TRƯỜNG CAO ĐẲNG NGHỀ HÀ NAM GIÁO TRÌNH MÔN HỌC LẬP TRÌNH CĂN BẢN NGHỀ QUẢN TRỊ MẠNG MÁY TÍNH TRÌNH ĐỘ CAO ĐẲNG (Ban hành kèm theo Quyết định số 285QĐ CĐNHN Ngà.giáo trình học tập, tài liệu cao đẳng đại học, luận văn tiến sỹ, thạc sỹ

ỦY BAN NHÂN DÂN TỈNH HÀ NAM TRƯỜNG CAO ĐẲNG NGHỀ HÀ NAM GIÁO TRÌNH MƠN HỌC: LẬP TRÌNH CĂN BẢN NGHỀ: QUẢN TRỊ MẠNG MÁY TÍNH TRÌNH ĐỘ: CAO ĐẲNG (Ban hành kèm theo Quyết định số: 285/QĐ-CĐNHN Ngày 21 tháng 07 năm 2017 Hiệu trưởng trường Cao đẳng nghề Hà Nam) Hà Nam, năm 2017 TUYÊN BỐ BẢN QUYỀN Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm Dựa theo giáo trình này, sử dụng để giảng dạy cho trình độ ngành/ nghề khác nhà trường LỜI GIỚI THIỆU Giáo trình Lập trình biên soạn nhằm đáp ứng yêu cầu học tập học sinh, sinh viên bước đầu làm quen với cơng việc lập trình, đồng thời giúp cho sinh viên có tài liệu học tập, rèn luyện tốt khả lập trình, tạo tảng vững cho mơn học Giáo trình khơng phù hợp cho người bắt đầu mà phù hợp cho người cần tham khảo Nội dung giáo trình chia thành chương: Chương 1: Làm quen ngơn ngữ lập trình (Bài mở đầu) Chương 2: Các thành phần ngơn ngữ lập trình Chương 3: Các cấu trúc điều khiển Chương 4: Hàm thủ tục Chương 5: Dữ liệu kiểu tập hợp, mảng ghi Chương 6: Dữ liệu kiể chuỗi Khi biên soạn, tơi tham khảo giáo trình tài liệu giảng dạy môn học số trường Cao đẳng, Đại học để giáo trình vừa đạt yêu cầu nội dung vừa thích hợp với đối tượng học sinh, sinh viên trường thuộc hệ thống Cơ sở giáo dục nghề nghiệp Tôi hy vọng sớm nhận ý kiến đóng góp, phê bình bạn đọc nội dung, chất lượng hình thức trình bày để giáo trình ngày hoàn thiện Hà Nam, ngày … tháng … năm 2017 Tác giả biên soạn: Phạm Tất Thành MỤC LỤC LỜI GIỚI THIỆU…………………………………………………………………………3 Chương 1: Làm quen với ngôn ngữ lập trình Chương 2: Các thành phần 16 Chương 3: Các cấu trúc điều khiển 25 Chương 4: Hàm thủ tục 44 Chương 5: Dữ liệu kiểu tập hợp, mảng ghi 54 Chương 6: Dữ liệu kiểu chuỗi 71 GIÁO TRÌNH MƠN HỌC Tên mơn học: Lập trình bản; Mã số mơn học: MH 10; I Vị trí, tính chất, ý nghĩa vai trị mơ đun - Vị trí: mơn học bố trí sau sinh viên học xong mơn học chung, mơn học tin, tin học văn phịng - Tính chất: mơn học lý thuyết chun ngành II Mục tiêu mơn học: - Về kiến thức: + Trình bày khái niệm lập trình; + Mơ tả ngơn ngữ lập trình: cú pháp, cơng dụng câu lệnh; + Phân tích chương trình: xác định nhiệm vụ chương trình; + Thực thao tác môi trường phát triển phần mềm: biên tập chương trình, sử dụng cơng cụ, điều khiển, thực đơn lệnh trợ giúp, gỡ rối, bẫy lỗi,v.v.; - Về kỹ năng: + Viết chương trình thực chương trình máy tính + Xác định mơi trường hoạt động hệ thống (các điều khiển, công cụ, thành phần, tập hợp liệu, nhập liệu, in kết ) + Chú thích cho đoạn xử lý chương trình - Về lực tự chủ trách nhiệm: + Có khả tự làm tập lập trình làm theo nhóm, biết áp dụng kiến thức học toán thực tế + Đánh giá chất lượng tập thực hành sau hoàn thành kết thực thành viên nhóm III Nội dung môn học: Chương 1: Làm quen với ngơn ngữ lập trình Giới thiệu: Trong giới thiệu khái niệm lập trình, lịch sử phát triển thực thao tác an tồn với máy tính Mục tiêu: - Trình bày khái niệm lập trình; - Trình bày lịch sử phát triển, ứng dụng ngôn ngữ lập trình; - Làm quen mơi trường phát triển phần mềm; - Sử dụng hệ thống trợ giúp từ help file - Thực thao tác an toàn với máy tính Nội dung: 1.1 KHÁI NIỆM CƠ BẢN VỀ LẬP TRÌNH Lập trình sử dụng cấu trúc liệu câu lệnh ngôn ngữ lập trình cụ thể để mơ tả liệu diễn đạt thao tác thuật tốn Những ngơn ngữ lập trình (programming language) máy tính điện tử ngôn ngữ máy (machine language), tổ hợp số hệ nhị phân, hay bit (binary digit) Ngôn ngữ máy phụ thuộc vào hồn tồn kiến trúc phần cứng máy tính quy ước khắt khe nhà chế tạo Để giải tốn, người lập trình phải sử dụng tập hợp lệnh điều khiển sơ cấp mà lệnh tổ hợp bit nhị phân nên gặp nhiều khó khăn, mệt nhọc, dễ gặp phải sai sót, khó sửa lỗi Từ năm 1950, để giảm nhẹ việc lập trình, người ta đưa vào kỹ thuật chương trình (sub-program hay sub-routine) xây dựng thư viện chương trình (library) để cần gọi đến dùng lại đoạn chương trình viết Như thế, nhận thấy vào giai đoạn sơ khai ban đầu máy tính điện tử, việc sử dụng máy tính khó khăn, ngơn ngữ lập trình phương tiện giao tiếp lại phức tạp người sử dụng Người sử dụng máy tính vào giai đoạn chuyên gia tin học Như thế, ứng dụng máy tính điện tử hạn chế 1.2 LỊCH SỬ PHÁT TRIỂN VÀ ỨNG DỤNG CỦA NGƠN NGỮ LẬP TRÌNH PASCAL Vào đầu năm 1970 nhu cầu học tập sinh viên, giáo sư Niklaus Writh - Trường Đại Học Kỹ Thuật Zurich - Thụy Sĩ sáng tác ngôn ngữ lập trình cấp cao cho cơng tác giảng dạy sinh viên Ngôn ngữ đặt tên PASCAL để tưởng nhớ đến nhà toán học người Pháp Blaise Pascal.Pascal ngơn ngữ lập trình có cấu trúc thể phương diện - Về mặt liệu: Ngồi kiểu liệu đơn giản cịn có kiểu liệu có cấu trúc Ta xây dựng kiểu liệu phức tạp từ kiểu liệu có - Về mặt câu lệnh: Từ câu lệnh đơn giản lệnh có cấu trúc ta xây dựng câu lệnh hợp thành - Về mặt chương trình: Một chương trình chia làm nhiều chương trình FORTRAN (55) LISP (58) COBOL (60) ALP (62) ALGOL 60 (63) SIMULA (66) ALGOL 68 (69) C (69) PASCAL (71) SNOBOL4 (71) SMALLTALK (71) PROLOG (72) ADA (75) SCHEME (75) FP (78) SMALLTALK (80) COMMON LISP (81) ADA (83) C++ (86) ADA 9X (90) EIFFEL (90) JAVA (95) Cho đến có hàng trăm ngơn ngữ lập trình đề xuất thực tế có số ngơn ngữ sử dụng rộng rãi Ngoài cách phân loại theo bậc nói trên, người ta cịn phân loại ngơn ngữ lập trình theo phương thức (paradgm), theo mức độ quan trọng, theo hệ, Cách phân loại theo mức hay bậc dựa mức độ trừu tượng so với yếu tố phần cứng, chẳng hạn lệnh (instruction) cấp phát nhớ (memory allocation) đây: Mức Thấp Lệnh Lệnh máy đơn Sử dụng nhớ Truy cập cấp phát trực Ví dụ Hợp ngữ Cao Rất cao giản Biểu thức điều kiện tương minh Máy trừu tượng tiếp Truy cập cấp phát nhờ phép gán Truy cập ẩn tự động cấp phát C, Pascal, Ada Prolog, Miranda 1.3 LÀM QUEN VỚI MÔI TRƯỜNG PHÁT TRIỂN PHẦN MỀM 1.3.1 KHỞI ĐỘNG CHƯƠNG TRÌNH PASCAL Nếu máy tính cài đặt Turbo Pascal đĩa, ta khởi động chúng sau (Nếu máy tính chưa có, phải cài đặt Turbo Pascal sau thực thi được) - Từ MS-DOS: Đảm bảo thư mục hành vị trí cài đặt (hoặc dùng lệnh PATH) Turbo Pascal Ta đánh vào TURBO Enter - Từ Windows: Ta nên giả lập MS-DOS Mode cho tập tin TURBO.EXE Shortcut nó, khơng ta thực thi TURBO PASCAL chương trình thoát khỏi Windows, trở MS-DOS Sau thoát Turbo Pascal ta phải đánh lệnh EXIT để khởi động lại Windows Cách giả lập sau: · Nhắp chuột phải lên tập tin TURBO.EXE Shortcut nó, chọn Properties · Chọn thẻ Program đánh check hình sau Chọn OK hộp thoại, sau khởi động Turbo Pascal, hình soạn thảo sau khởi động TURBO PASCAL xuất 1.3.2 CÁC THAO TÁC SỬ DỤNG TRÊN TURBO PASCAL Khi ta muốn tạo mở tập tin có đĩa ta dùng phím F3 Sau đưa vào tên vị trí tập tin Nếu tập tin tồn Turbo Pascal mở nội dung lên cho ta xem, tên tập tin chưa có Turbo Pascal tạo tập tin (với tên mà ta định) Khi muốn lưu lại tập tin ta dùng phím F2 Trước khỏi chương trình, ta nên lưu tập tin lại, chưa lưu chương trình hỏi ta có lưu tập tin lại hay khơng Nếu ta chọn Yes (ấn phím Y) chương trình lưu lại, chọn No (ấn phím N)chương trình khơng lưu Một số phím thơng dụng TURBO PASCAL 7.0 Biểu tượng Tên phím Diễn giải  Enter Đưa trỏ xuống dòng  Up Đưa trỏ lên dòng  Down Đưa trỏ xuống dòng  Left Đưa trỏ qua trái ký tư  Right Đưa trỏ qua phải ký tự Home Home Đưa trỏ đầu dòng End Đưa trỏ cuối dòng Pg Up Page Up Lên trang hình Pg Down Page Down Xuống trang hình Del Delete Xố ký tự vị trí trỏ BackSpace Xố ký tự trước trỏ Insert Thay đổi chế độ viết xen hay viết chồng F1 F1 Gọi chương trình giúp đở F2 F2 Lưu tập tin lại F3 F3 Tạo mở tập tin F4 F4 Thực thi chương trình đến dịng chứa trỏ End Back Insert 10 Têntrường2 : Kiểudliệu2; Têntrườngk : Kiểudliệuk; End; Ví dụ 1: Ta định nghĩa kiểu KSVIEN sau: TYPE KSVIEN = RECORD Hoten:String[20]; Maso : String[8]; Toan, Ly, DTB: Real; End; Theo mơ tả trên, ta có kiểu liệu đặt tên KSVIEN có cấu trúc ghi gồm trường (thuộc tính) là: Ví dụ 2: Ta mơ tả thời gian kiểu KDATE có ba trường ngày , tháng, năm sau: TYPE KDATE = RECORD Ngay : 31; Thang : 12; Nam : Integer; 61 End; Ví dụ 3: Ðể quản lý sách thư viện, ta xây dựng kiểu ghi KSACH sau: TYPE KSACH = RECORD Ma_so_sach: String[6]; Ten_doc_gia: String[20]; Nam_xban :Integer; Gia_tien: Real; Ngay_muon : KDATE; End; Kiểu KSACH ghi có trường mơ tả thuộc tính sách là: mã số sách, tên độc giả, năm xuất bản, gía tiền ngày mượn Ví dụ cho thấy ghi mô tả lồng nhau: kiểu liệu trường ghi lại kiểu ghi khác định nghĩa trước Trong ghi KSACH, Ngay_muon trường có kiểu liệu ghi kiểu KDATE Mỗi đối tượng cần quản lý có nhiều trường, song tùy yêu cầu quản lý mà ta lựa chọn khai báo trường thật cần thiết Khai báo thừa hao phí nhớ, thiếu cơng tác quản lý khó khăn thiếu thơng tin Vì vậy, nên khai báo trường với số lượng đủ dùng 1.24.2 Sử dụng ghi Kiểu ghi sau định nghĩa dùng khai báo cho biến Ví dụ : Var X, Y, Z : KSVIEN; Trong KSVIEN ghi mơ tả phần 62 Theo khai báo này, X ,Y Z ba biến kiểu ghi KSVIEN, biến có trường Hoten, Maso, Toan, Ly DTB Ðể thâm nhập vào trường ghi ta viết tên biến kiểu ghi, sau dấu chấm ‘.’ tên trường, tức : Tênbiến Têntrường Các lệnh gán gía trị cho trường biến X : X.Hoten :=‘Nguyen Van An’; X.Maso :=‘1973208’; X.Toan :=8.0; X.Ly :=7.0; X.DTB :=(X.Toan+X.Ly)/2; Ðể nhập liệu cho trường Hoten biến Y, ta viết: Write(‘Nhap ho ten sinh vien Y : ‘); Readln(Y.Hoten); Sở dĩ phải viết tên biến ghi trước tên trường để xác định trường biến ghi Mỗi biến X, Y, Z có trường Hoten, nên viết Hoten thơi khơng biết Hoten ai: X, Y hay Z ? Còn viết X.Hoten rõ Hoten biến X Như vậy, trường biến ghi thâm nhập sử dụng biến bình thường X.Hoten biến kiểu String[20], X.Maso biến kiểu String[8], , X.DTB biến kiểu Real Ðối với ghi lồng nhau, cách truy xuất đến trường tương tự Ví dụ: Cho khai báo biến S kiểu KSACH: Var S : KSACH ; Ðể truy nhập đến trường Ngay, Thang, Nam Ngay_muon ta viết : S.Ngay_muon.Têntrường 63 Chẳng hạn gán : S.Ngay_muon.Ngay := 2; S.Ngay_muon.Thang := 9; S.Ngay_muon.Nam := 1999; Hai biến ghi kiểu gán cho Lệnh : Y:=X; gán gía trị trường biến X cho trường tương ứng biến Y Vậy lệnh tương đương với khối lệnh sau : begin Y.Hoten :=X.Hoten; Y.Maso :=X.Maso; Y.Toan :=X.Toan; Y.Ly :=X.Ly; Y.DTB :=X.DTB; end; Các ghi so sánh khác nhau: Ví dụ: If X=Y then writeln(‘ X Y người ‘); If XY then writeln(‘ X khác Y ‘); Tuy nhiên khơng có phép so sánh = cho ghi Hai ghi hốn đổi gía trị cho theo nghĩa hốn đổi cặp gía trị trường tương ứng Giống biến đơn giản, để hoán đổi hai ghi X Y ta dùng ba lệnh: Z:=X; X:=Y; Y:=Z; Z biến trung gian kiểu ghi với X Y 64 Ví dụ: Nếu biến X Y có trường tương ứng : X.Hoten =‘Nguyen Van An’ Y.Hoten =‘Tran Thi Nga’ X.Maso =‘1973208’ Y.Maso =‘1974564’ X.Toan =8.0 Y.Toan =5.0 X.Ly =7.0 Y.Ly =8.0 X.DTB =7.5 Y.DTB =6.5 sau hốn đổi, ta : X.Hoten =‘Tran Thi Nga’ Y.Hoten =‘Nguyen Van An’ X.Maso =‘1974564’ Y.Maso =‘1973208’ X.Toan =5.0 Y.Toan =8.0 X.Ly =8.0 Y.Ly =7.0 X.DTB =6.5 Y.DTB =7.5 1.24.3 Câu lệnh WITH Khi làm việc với nhiều trường biến ghi cách thâm nhập tỏ rườm rà phải viết nhiều lần tên biến trước tên trường Ðể đơn giản cách viết, Pascal đưa câu lệnh : WITH Tênbiến DO Lệnh; Tên biến thuộc kiểu ghi Nếu LệnhP có truy xuất đến trường Tên biến khơng cần phải viết Tên biến dấu chấm trước tên trường Ví dụ, thay viết: X.Hoten:= ‘Nguyen Van An’; ta viết : WITH X DO Hoten:= ‘Nguyen Van An’; 65 Ðể in trường biến X lên hình, ta viết: WITH X DO Begin Writeln(‘ Họ tên :’ , Hoten); Writeln(‘ Mã số sinh viên :’ , Maso); Writeln(‘ Ðiểm Toán :’ , Toan: 4:1); Writeln(‘ Ðiểm Lý :’ , Ly: 4:1); Writeln(‘ Ðiểm trung bình : ‘ , DTB :4:1); End; Tất tên trường nằm khối begin end hiểu trường biến X (nếu không ghi rõ tên biến khác) Các lệnh sau gán gía trị cho trường biến S kiểu KSACH ghi lồng nhau: WITH S DO begin Ma_so_sach:=‘TH-435’; Ten_doc_gia:=‘Nguyen van Mai’; Nam_xban :=1999; Gia_tien:= 15000; WITH Ngay_muon DO begin Ngay:=2; Thang:=9; Nam:=1999; end; end; 1.24.4 Bản ghi có cấu trúc thay đổi Các kiểu Record trình bày kiểu Record cố định số phần cấu trúc cua Record cố định Bên cạnh Pascal cịn cho phép lập Record có phần cấu trúc thay đổi Trước hết, ta xét ví dụ sau: mục NhanSu, ta xét thêm trường NgheNghiep có nhiều trường hợp xảy ra, chẳng hạn: - Công nhân : Cần ghi rõ ngành ? Bậc thợ ? - Kỹ sư : Ngành ? Trình độ thực tế ? - Bác sĩ : Chuyên khoa ? - Cá biệt : Khơng ghi thêm ? 66 Tuy ta lập Record gồm đầy đủ trường kể “cồng kềnh” (trong người thời điểm có ngành nghề) chiếm nhiều ô nhớ Tiếp theo ta lập bốn kiểu Record giống phần đầu (HoDem, Ten, NgaySinh, Luong, CoGiaDinh) khác phần cuối nghề nghiệp (NgheNghiep), tức có trường tương ứng với bốn nghề khác Cách làm “cồng kềnh” chương trình ta phải dùng đến bốn kiểu Record Ngôn ngữ Pascal cho phép lập Record có dạng sau để tiết kiệm nhớ cho phép linh hoạt sử dụng: Type Nghe = (CongNhan, KySu, BacSi, CaBiet); Nganh = (KhaiThac, CoKhi, CheBien, Nuoi, KinhTe); Khoa = (Noi, Ngoai, Nhi, Phu); NhanSu = Record HoDem: String[20]; Ten: String[7]; NgaySinh: Date; Luong: Real; CoGiaDinh: Boolean; CASE NgheNghiep: Nghe Of CongNhan: (NganhCN: Nganh; BacTho: Byte); KySu: (NganhKS: Nganh; TrinhDoTT: (Kem, TB, kha, Gioi)); BacSi: (ChuyenKhoa: Khoa); CaBiet: (); END; { Of Record } Var NV, NV1: NhanSu; Begin With NV Begin HoDem := ‘Vo Thanh’; Ten := ‘Chau’; NgheNghiep := CongNhan; NganhCN := CoKhi; BacTho := 3; End; With NV1 Begin HoDem := ‘Huynh Dinh’; Ten := ‘Can’; NgheNghiep := KySu; NganhKS := KinhTe; TrinhDoTT := Kha; 67 End; END Giải thích : - HoDem, Ten, NgaySinh, CoGiaDinh thành phần cố định Record NhanSu - NganhCN, NganhKS, BacTho, TrinhDoTT, ChuyenKhoa thành phần thay đổi Record NhanSu - Trong khai báo kiểu Record, có thành phần thay đổi phải đặt sau thành phần cố định phép có trường thay đổi - Phần thay đôi nằm sau danh sách bắt đầu câu lệnh CASE (Phần thay đổi lại chứa Record khác có kiểu cấu trúc thay đổi) Lưu ý : - Phần thay đổi trường gọi trường đánh dấu (Tag Field) đặt câu lệnh CASE (Ví dụ NgheNghiep) Ứng với giá trị trường đánh dấu, ta có biến dạng Record với danh sách trường tương ứng đặt sau nhãn lệnh CASE toàn danh sách phải đặt hai dấu ngoặc đơn () rỗng trường hợp CaBiet ví dụ - Trường mơ tả phải kiểu đơn giản (Byte, Integer, Word, LongInt, Real, Double, Char, Boolean) - Tất tên biến phần thay đổi bắt buột phải khác Theo ví dụ trên, Nganh hai trường hợp NgheNghiep CongNhan KySu ký hiệu hai tên khác là: NganhCN NganhKS Bài tập: 1.25 Nội dung cc Cách thức khai báo truy xuất phần tử mảng chiều dd.Cách thức khai báo truy xuất phần tử mảng nhiều chiều (cụ thể mảng hai chiều) 1.25.1 1.25.1.1 Bài tập thực hành: Mảng chiều Bài 1: Viết chương trình nhập vào mảng chiều gồm n phần tử Sau in phần tử nhập lên hình Bài 2: Viết chương trình nhập vào mảng A, xuất hình: 68 - Phần tử lớn mảng - Phần tử nhỏ mảng - Tính tổng phần tử mảng Bài 3: Viết chương trình nhập vào mảng chiều A gồm n phần tử Xuất hình yêu cầu sau: ee Sắp xếp phần tử mảng theo thứ tự tăng dần, ff Đảo mảng xếp gg.Tính tổng tích số nguyên dương Bài 4: Viết thủ tục nhập vào mảng A gồm n phần tử kiểu nguyên, viết hàm tìm kiếm x có mảng A hay khơng? Bài 5: Viết chương trình nhập vào mảng số tự nhiên Hãy xuất hình: - Dịng 1: gồm số lẻ, tổng cộng có số lẻ - Dịng 2: gồm số chẵn, tổng cộng có số chẵn - Dòng 3: gồm số ngun tố - Dịng 4: gồm số khơng phải số nguyên tố Bài 6: Viết chương trình nhập vào dãy số theo thứ tự tăng, nhập sai quy cách yêu cầu nhập lại In dãy số sau nhập xong Nhập thêm số chèn số vào dãy có cho dãy đảm bảo thứ tự tăng In lại dãy số để kiểm tra Bài 7: Viết chương trình tính tổng bình phương số âm mảng số nguyên 1.25.1.2 Mảng hai chiều Bài 1: Viết chương trình nhập vào ma trận cấp n x m Sau xuất hình ma trận nhập Bài 2: Viết chương trình nhập vào ma trận cấp n x m phương pháp Random Sau xuất hình ma trận nhập Bài 3: Viết chương trình nhập vào ma trận cấp n x m Sau tìm xem cột có nhiều số dương nhất, xuất kết hình Bài 4: Viết chương trình nhập vào ma trận cấp n x m Thực chuyển vị ma trận, in hình ma trận chuyển vị Bài 5: Viết chương trình nhập vào hai ma trận A B có cấp m, n In hai ma trận lên hình Tổng hai ma trận A B ma trận C tính cơng thức: cij= aij +bij ( i=0,1,2, m-1; j=0,1,2 n-1) Tính ma trận tổng C in kết lên hình 1.25.1.3 Bản ghi Bài 1: Viết chương trình thực phép cộng số phức Bài 2: Viết chương trình quản lý điểm thi Tốt nghiệp sinh viên với môn thi: Cơ sở chuyên ngành Nội dung công việc quản lý bao gồm:  Nhập điểm cho sinh viên  In danh sách sinh viên hình  Thống kê số lượng sinh viên thi đậu 69  In hình hình danh sách sinh viên bị thi lại Bài 3: Viết chương trình quản lý sách thư viện gồm trường sau: Mã số sách, Nhan đề, Tên Tác giả, Nhà Xuất bản, Năm xuất a/ Nhập vào kho sách thư viện (gồm tất trường) b/ In hình tất sách có thư viện c/ Tìm sách có mã số nhập vào từ bàn phím Nếu tìm thấy in hình thơng tin đầy đủ sách đó, ngược lại thơng báo khơng tìm thấy d/ Tìm in hình tất sách có tác giả nhập vào từ bàn phím e/ Lọc sách xuất năm 70 Chương 6: Dữ liệu kiểu chuỗi Mục tiêu: - Trình bày khái niệm liệu kiểu chuỗi kí tự ; - Biết sử dụng liệu kiểu chuỗi chương trình ; - Áp dụng phép toán chuỗi ; - Vận dụng hàm xử lý chuỗi để xử lý - Thực thao tác an toàn với máy tính Nội dung chính: Chuỗi (String) kiểu liệu có cấu trúc dùng để xử lý chuỗi ký tự Kiểu String có nhiều điểm tương tự kiểu mảng (Array) có điểm khác là: số ký tự biến kiểu chuỗi thay đổ cịn số phần tử kiểu mảng ln cố định 1.26 1.26.1 Khai báo phép toán Khai báo kiểu chuỗi VAR Tên_Biến : String[n]; Trong đó: n số ký tự tối đa có chuỗi Chiều dài tối đa chuỗi 255 Nếu phần khai báo khơng ghi [n] chuỗi có độ dài mặc định 255 Ví dụ: Var HoTen : String[30]; { HoTen chứa tối đa 30 ký tự } St : String; { St chứa tối đa 255 ký tự } Với St chuỗi, để ký tự thứ i St ta viết St[i] Các St[i] có kiểu Char Ví dụ: St := ‘ABCD’; lệnh Write(St[4]) in ký tự ‘D’ Cấu trúc String sau: Trong nhớ chiếm số Byte số ký tự tối đa, cộng với byte (tại vị trí s[0]) chứa ký tự mà mã thập phân ASCII ký tự cho biết chuỗi có độ dài Chẳng hạn biến HoTen bên đươc gán giá trị: HoTen := ‘Nguyen Van An’; Khi đó, độ dài chuỗi 13, độ dài cực đại cho phép 30 khai báo Sau cấu trúc chuỗi HoTen: Chr(13) N g u y e n Chú ý: * ký tự không xác định 1.26.2 V a 10 11 12 13 n A n … * 30 … * Các phép toán chuỗi 71 1.26.2.1 Phép gán Biến := Biểu_thức; Đại lương bên phải lệnh phải đặt hai dấu nháy đơn chuỗi dạng Ta sử dụng dấu cộng (+) để ghép chuỗi gán Ví dụ: HoTen := ‘Nguyen Van‘ + ‘ An‘; 1.26.2.2 Phép nối chuỗi Ký hiệu dấu + Ví dụ: ‘Turbo’ + ‘ Pascal‘ = ‘Turbo Pascal‘ 1.26.2.3 Các phép toán so sánh Khi so sánh hai chuỗi, ký tự hai chuỗi đươc so sánh cặp từ trái qua phải theo giá trị bảng mã ASCII Ví dụ: Nếu so sánh: ‘ABC’ = ‘ABC’ có giá trị True ‘ABC’ = ‘AB’ có giá trị False ‘ABCD’ < ‘ABED’ có giá trị True ‘ABC’ > ‘AD’ có giá trị False Nhập in chuỗi 1.27 Muốn in chuỗi ký tự ta dùng lệnh Write(St) Writeln(St) Lệnh Readln(St) đọc ký tự cho chuỗi St với độ dài thực số ký tự gõ vào từ bàn phím Nếu ta gõ< Enter > ln mà khơng nhập cho ký tự St chuỗi rỗng Các thủ tục hàm làm việc với chuỗi 1.28 1.28.1 1.28.1.1 Các thủ tục Insert(Obj, St, Pos): Chèn vào chuỗi ký tự St chuỗi ký tự Obj kể từ vị trí Pos Ví dụ: St := ‘Thh’; Insert(‘an’, St, 3); Writeln(‘Xau ky tu sau chen them la: ‘, St); {Sẽ ‘Thanh’} 1.28.1.2 Delete(St, Pos, Num): Xóa bỏ chuỗi ký tự St vị trí thứ Pos số ký tự Num Ví dụ: St := ‘Truong Hoc’; Delete(St, 4, 6); Writeln(‘Xau ky tu sau xoa bot la: ‘, St); {Sẽ ‘Truc’} 1.28.1.3 Thủ tục Str(Value, St): 72 Sẽ biến đổi giá trị số nguyên số thực Value thành dãy ký tự biểu diễn số Cách biểu diễn St qui định qui cách Value Ví dụ: i := 1234; Str(i:5, St); { ta St = ‘ 1234’ có ký tự } x :=123.5678901; Str(x:10:5, St); { ta St = ‘ 123.56789’ } 1.28.1.4 Thủ tục Val(St, Var1, Code): Sẽ biến đổi chuỗi ký tự St (biểu diễn số nguyên hay số thực) thành số nguyên hay số thực chứa Var1 Với: Code số nguyên để phát lỗi:  Code = tức phép biến đổi  Nếu St không biểu diễn số nguyên hay số thực Code nhận giá trị vị trí ký tự sai chuỗi St (Code 0) Ví dụ: X biến thực, St = ‘123.56’, Result biến nguyên Val(St, X, Result); Kết qủa: X = 123.56 Result = X biến nguyên, St = ‘123’, Result biến nguyên Val(St, X, Result); Kết qủa: X = 123 Result = X biến thực, St = ‘123.56A’, Result biến nguyên Val(St, X, Result); {St biểu diễn không đúng} Kết qủa: X không xác định Result = 1.28.2 1.28.2.1 Các hàm Hàm Lenght(St): Kết qủa nhận độ dài chuỗi ký tự St Ta tự viết lại hàm Length sau: Function Length(St: String): Byte; Begin Length := Ord(St[0]); End; 1.28.2.2 Hàm Copy(St, Pos, Size): Sao chép chuỗi lý tự St vị trí Pos nhận Size ký tự Ví dụ: St = ‘ABCDEF’ lệnh Copy(St, 3, 2) = ‘CD’ Copy(St, 4, 10) cho ta ‘DEF 73  Ghi chú: - Nếu Pos + Num > Length(St) hàm trả ký tự chuỗi St - Nếu Pos > Length(St) hàm Copy trả cho ta chuỗi rỗng 1.28.2.3 Concat(St1, St2, , Stn): Hàm dùng để ghép tất chuỗi ký tự St1, St2, , Stn thành chuỗi theo thứ tự đối số cung cấp cho hàm  Ghi chú: - Số lượng đối hàm Concat phải >= - Nếu tổng số chiều dài chuỗi >255 máy báo lỗi - Có thể dùng phép cộng (+) để ghép chuỗi ký tự Ví dụ: St:=Concat(St1,St2 + ’N’); 1.28.2.4 Pos(St1, St2): Hàm trả số nguyên biểu diễn vị trí St1 gặp chuỗi St2 Nếu khơng tìm thấy Pos = Trong đó: St1, St2 biểu thức chuỗi ký tự Ví dụ: St:= ‘ABCDEFGBCD’ Pos(‘DE’,St)=4, Pos(‘BCD’,St)=2, Pos(‘XY’,St) = 1.29 BÀI TẬP CHƯƠNG Câu Viết thủ tục để kiểm tra nhập chuỗi ký tự số nguyên S, tính tổng chữ số chuỗi S, đảo chuỗi Câu Viết chương trình đổi ký tự chữ hoa chữ thường Câu viết chương trình cắt ký tự trống bên trái chuỗi ký tự Câu Viết chương trình cắt ký tự trống bên phải chuỗi ký tự Câu Viết chương trình cắt ký tự trống chuỗi ký tự Câu Viết chương trình kiểm tra chuỗi nhập vào từ bàn phím có đối xứng hay khơng Ví dụ: - Chuỗi ‘ABCDCBA’ đối xứng - Chuỗi ‘ABCDABC’ không đối xứng Câu Viết chương trình đếm số lần xuất ký tự chuỗi Câu Viết chương trình nhập vào chuỗi từ bàn phím, tách chuỗi gồm n ký tự từ ví trí định Câu Viết chương trình nhập vào câu ca dao, tục ngữ Hãy đếm xem câu có từ 74 TÀI LIỆU THAM KHẢO [1] Qch Tuấn Ngọc Ngơn ngữ lập trình Pascal NXB Thống kê - năm 2001 [2] Hồng Hồng Lập trình Turbo Pascal 7.0 NXB Thống kê - năm 2007 [3] Bùi Thế Tâm Turbo Pascal 7.0 NXB Giao thông vận tải - năm 2006 [4] Nguyễn Đình Tê Borland Pascal 7.0 NXB Lao động xã hội – năm 2007 [5] Vũ Đức Khánh Kỹ lập trình Pascal NXB Văn hóa thơng tin – năm 2010 [6] Nhiều tác giả Giáo trình Turbo Pascal NXB Giao thông vận tải - năm 2007 75

Ngày đăng: 27/12/2022, 17:45

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

TÀI LIỆU LIÊN QUAN