(NB) Giáo trình Lập trình căn bản (Nghề Kỹ thuật sửa chữa, lắp ráp máy tính): Phần 1 do CĐ nghề Vĩnh Long biên soạn nhằm trình bày kiến thức cơ bản về giới thiệu ngôn ngữ lập trình C, các cấu trúc điều khiển và các kiểu dữ liệu cơ sở. Mời các bạn tham khảo!
ỦY BAN NHÂN DÂN TỈNH VĨNH LONG TRƯỜNG CAO ĐẲNG NGHỀ VĨNH LONG GIÁO TRÌNH MƠN HỌC: LẬP TRÌNH CĂN BẢN NGHỀ: KỸ THUẬT SỬA CHỮA, LẮP RÁP MÁY TÍNH TRÌNH ĐỘ: CAO ĐẲNG LIÊN THƠNG (Ban hành theo Quyết định số 172 /QĐ - CĐNVL ngày 15 tháng 04 năm 2020 Hiệu trưởng trường Cao đẳng nghề Vĩnh Long (Lưu hành nội bộ) NĂM 2020 ỦY BAN NHÂN DÂN TỈNH VĨNH LONG TRƯỜNG CAO ĐẲNG NGHỀ VĨNH LONG Tác giả biên soạn: ThS Nguyễn Hồng Thắm GIÁO TRÌNH MƠN HỌC: LẬP TRÌNH CĂN BẢN NGHỀ: KỸ THUẬT SỬA CHỮA, LẮP RÁP MÁY TÍNH TRÌNH ĐỘ: CAO ĐẲNG LIÊN THÔNG NĂM 2020 LỜI MỞ ĐẦU Để đáp ứng nhu cầu học tập em học sinh, học sinh chuyên ngành tin học, Khoa Công nghệ thông in Trường Cao đẳng nghề Vĩnh Long tiến hành biên soạn giáo trình chương trình học Giáo trình biên soạn dựa kinh nghiệm giảng dạy nhiều năm mơn Lập Trình Căn Bản chúng tơi Mục tiêu nhằm giúp em học sinh chuyên ngành có tài liệu cô đọng dùng làm tài liệu học tập, chúng tơi khơng loại trừ tồn đối tượng khác tham khảo Chúng nghĩ em học sinh, sinh viên không chuyên tin người quan tâm tới lập trình tìm điều hữu ích Mặc dù cố gắng nhiều trình biên soạn giáo trình chắn giáo trình cịn nhiều thiếu sót hạn chế Rất mong nhận đóng góp ý kiến quý báu học sinh bạn đọc để giáo trình ngày hồn thiện Tác giả MỤC LỤC BÀI MỞ ĐẦU: TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH .1 Giới thiệu khái niệm ngôn ngữ lâp trình 1.1 Lập trình máy tính 1.2 Bài toán .1 1.3 Thuật toán Giới thiệu lịch sử phát triển ứng dụng ngơn ngữ lập trình 3 Xây dựng thuật toán sơ đồ khối Làm quen môi trường phát triển phần mềm 4.1 Giao diện chương trình Turbo C 4.2 Các phím thường hay sử dụng chương trình C 4.3 Thốt khỏi chương trình C .7 Sử dụng trợ giúp từ help file cú pháp lệnh, cú pháp hàm, chương trình mẫu 5.1 Trợ giúp từ help file cú pháp lệnh, cú pháp hàm 5.2 Các chương trình mẫu BÀI TẬP 12 CHƯƠNG 1: GIỚI THIỆU NGƠN NGỮ LẬP TRÌNH C 13 Giới thiệu .13 Bộ từ vựng C 14 1.1 Các ký tự dùng C 14 1.2 Từ khóa (Keyword) 14 1.3 Tên hay định danh (Identifier) 15 1.4 Dấu chấm phẩy (;) 15 1.5 Câu thích 15 Cấu trúc chương trình C 16 BÀI TẬP 17 CHƯƠNG 2: CÁC KIỂU DỮ LIỆU CƠ SỞ 18 Các kiểu liệu sở 18 1.1 Kiểu số nguyên - int .18 1.2 Kiểu số thực - float 18 1.3 Kiểu luận lý 19 1.4 Kiểu ký tự - char .19 Biến, hằng, câu lệnh biểu thức 19 2.1 Hằng ký tự chuỗi .19 2.2 Biến lệnh gán giá trị cho biến 21 2.3 Hàm 21 2.4 Các phép toán 22 2.5 Biểu thức .26 2.6 Các lệnh khối lệnh .26 Câu lệnh nhập xuất 27 3.1 Nhập liệu từ bàn phím .27 3.2 Xuất liệu hình 27 BÀI TẬP 30 CHƯƠNG 3: CÁC CẤU TRÚC ĐIỀU KHIỂN 32 Khái niệm lệnh cấu trúc 32 Các lệnh cấu trúc lựa chọn 32 2.1 Câu lệnh điều kiện 32 2.2 Câu lệnh rẽ nhánh 34 Các câu lệnh lặp .36 3.1 Câu lệnh for 36 3.2 Câu lệnh while 37 3.3 Câu lệnh while .38 3.4 So sánh khác vòng lặp 39 Các lệnh chuyển điều khiển 39 4.1 Câu lệnh break 39 4.2.Câu lệnh continue 40 4.3.Câu lệnh Goto 40 4.4 Hàm Exit 40 BÀI TẬP 42 CHƯƠNG 4: HÀM .44 Khái niệm chương trình 44 1.1 Cú pháp 44 1.2 Một số lưu ý 45 Cấu trúc chương trình có sử dụng chương trình .46 Các hàm ngơn ngữ lập trình 49 Tham trị tham biến 50 4.1 Tham trị 50 4.2 Tham biến 50 Biến toàn cục biến địa phương 51 5.1 Biến toàn cục 51 5.2 Biến địa phương .53 BÀI TẬP 54 CHƯƠNG 5: DỮ LIỆU KIỂU MẢNG (ARRAY), CHUỖI KÝ TỰ (STRING) VÀ BẢN CHI (STRUCT) 55 Dữ liệu kiểu mảng 55 1.1 Khái niệm .55 1.2 Khai báo mảng 55 1.3 Gán giá trị cho mảng 56 1.4 Một số toán mảng 57 1.5 Mảng nhiều chiều 59 Dữ liệu kiểu chuỗi ký tự 63 2.1 Khái niệm .63 2.2 Khai báo chuỗi 63 2.3 Các thao tác chuỗi 64 2.4 Nhập, xuất chuỗi .65 2.5 Các hàm làm việc với chuỗi 66 Dữ liệu kiểu ghi 68 3.1 Khái niệm .68 3.2 Khai báo kiểu ghi .70 3.3 Truy xuất kiểu ghi 70 BÀI TẬP 73 TÀI LIỆU THAM KHẢO .77 BÀI MỞ ĐẦU: TỔNG QUAN VỀ NGƠN NGỮ LẬP TRÌNH Mục tiêu − Trình bày khái niệm lịch sử phát triển ngơn ngữ lập trình; − Nêu cách xây dựng thuật tốn ngơn ngữ lập trình; − Xây dựng thuật tốn sơ đồ khối; − Cẩn thận, tự giác học tập Nội dung Giới thiệu khái niệm ngơn ngữ lâp trình Lập trình việc sử dụng cấu trúc liệu lệnh ngôn ngữ lập trình cụ thể để mơ tả liệu diễn đạt thao tác thuật toán 1.1 Lập trình máy tính - Gọi tắt lập trình (programming) - Nghệ thuật cài đặt nhiều thuật tốn trừu tượng có liên quan với ngơn ngữ lập trình để tạo chương trình máy tính 1.2 Bài tốn - Là việc ta muốn máy thực để từ thông tin đưa vào (INPUT) tìm thơng tin (OUTPUT) - Ví dụ : Giài phương trình bậc ax + b = INPUT : a, b thuộc R OUTPUT : nghiệm phương trình ax + b = 1.3 Thuật toán - Thuật toán để giải toán dãy hữu hạn thao tác xếp theo trình tự xác định cho sau thực dãy thao tác đó, từ Input tốn, ta nhận Output cần tìm - Ví dụ: Thuật tốn giải phương trình: ax + b = (a, b số thực) 1.3.1 Các đặc trưng thuật toán - Dữ liệu đầu vào (Input): Mỗi thuật tốn cần có số (có thể 0) liệu ban đầu - Kết (Output): Thuật toán phải cho kết - Tính xác định: Các thao tác phải xác định, khơng nhập nhằng, lẫn lộn, tùy tiện - Tính khả thi: Thuật tốn phải có khả thực thời gian hữu hạn - Tính khách quan: viết nhiều người máy tính kết phải - Tính phổ dụng: áp dụng cho lớp tốn có đầu vào tương tự - Tính kết thúc: hữu hạn bước tính tốn 1.3.2 Các bước xây dựng chương trình Sử dụng ngơn ngữ tự nhiên Sử dụng mã giả - Vay mượn ngơn ngữ (ví dụ Pascal) để biểu diễn thuật toán - Cài đặt thuật toán C/C++ Giới thiệu lịch sử phát triển ứng dụng ngôn ngữ lập trình Kể từ đời năm 1837, máy tính dần có tốc độ nhanh đồng nghĩa với việc phải làm nhiều việc Để đáp ứng điều này, ngơn ngữ lập trình phải phát triển theo để đơn giản cho lập trình viên phải đáp ứng yêu cầu phức tạp chương trình Những năm 1950 Autocode (1952): Đây tập hợp loạt hệ thống ngơn ngữ lập trình đơn giản phát triển vào năm 50 cho hệ thống máy tính kỹ thuật số đại học Manchester, Cambridge London coi ngơn ngữ lập trình thức Autocode phát triển Alick Glennie phổ biến vào thời gian Những năm 1970 Pascal (1970): ngôn ngữ đặt theo tên nhà tốn học người Pháp Blaise Pascal Ngơn ngữ sáng tạo Niklaus Wirth cho phép người dùng tự xác định dạng liệu theo kiểu danh sách, sơ đồ hay đồ thị C (1972): Đây ngơn ngữ lập trình sử dụng nhiều thời đại C kế để lập trình theo cấu trúc Phần mã nguồn ngôn ngữ dạng văn không định dạng dùng dấu chấm, phẩy để thiển cấu trúc lệnh Những năm 80 C++ (1980): ngôn ngữ chủ yếu để lập trình hệ thống đến mở rộng cho máy tính cá nhân thơng thường, máy chủ để tạo ứng dụng thông thường Hầu hết câu lệnh ngôn ngữ kế thừa từ C giữ nguyên khả hướng đối tượng lập trình tổng quát Perl (1987): thuộc nhóm ngơn ngữ lập trình bậc cao Ngơn ngữ vay mượn khơng tính từ ngơn ngữ khác C, AWK sad Ban đầu thơ sơ đến mức hướng dẫn sử dụng có trang Thế đến có thêm nhiều phiên nhiều thay đổi so với ban đầu Từ 1990 đến năm 2000 Python (1991): ngôn ngữ thiết kế đơn giản, chí có khả đọc bảng chữ Triết lý nhà phát triển ngôn ngữ làm cho mã nguồn ngắn hơn, khơng dài phức tạp C++ hay Java Java (1995): ngôn ngữ phát triển vớ Với mục tiêu phụ thuộc vào khả vận hành thực tế thiết bị tốt Nói cách khác cần viết lần máy, chạy máy khác Chính mà đến nay, từ máy tính để bàn đến điện thoại di động Symbian S40 ta gặp chương trình Java PHP (1995): ngơn ngữ sử dụng thực thi máy chủ dùng cho việc phát triển web Nó thực yêu cầu người dùng sau trả kết lên trình duyệt qua việc kết hợp với HTML tạo giao diện trang web Khi xuất hiện, PHP không định nghĩa ngơn ngữ lập trình, nhiên qua thời gian, ngơn ngữ có lượng người dùng đông đảo lựa chọn nhiều nhà phát triển web ngày Những năm 2000 C# (2001): Visual Basic NET (2001): Đây ngôn ngữ phát triển Visual Basic thực tảng NET framwork Đây lý cài đặt số chương trình có yêu cầu cài đặt thêm NET framwork phiên Nó sử dụng câu lệnh để xác định hành động chương trình giống Visual C# Từ 2010 đến Swift (2014): Đây ngôn ngữ phát triển Apple cho nhà phát triển iOS OSX (hệ điều hành Mac) Ngôn ngữ “trẻ nhất” hãng giới thiệu kiện WWDC 2014 Ngơn ngữ có ưu điểm mã nguồn ngắn dễ đọc Sau 29 Kết quả: 2912 cong 1706 bang 4618 Lưu ý, thứ tự đối số phải tương ứng thứ tự đặc tả phải xác (nghĩa kiểu liệu dùng đặc tả đó) khơng kết xuất khơng ý muốn Thơng thường, xuất liệu kiểu số (số nguyên, số thực) ta có nhu cầu định dạng thể thơng tin hình cách xuất thơng thường khơng đẹp mắt khó đọc Ví dụ: #include void main() { int a = 2912, b = 176; float c = 176.85; printf(“%d”, a); printf(“%d”, b); printf(“%f”, c); } Kết quả: 2912 176 1.7685000000 Cách xuất số thực khó chịu hệ thống tự động thêm số phần lẻ Để xác định số chữ số lẻ muốn xuất số ô hình để biểu diễn số, ta sử dụng cú pháp: Định dạng số nguyên số thực %nd %n.kf Dùng n ô để in số nguyên Dùng n ô để in số thực lấy k số lẻ n = bỏ không quan tâm số ô) Ví dụ: #include void main() { int a = 2912, b = 176; float c = 176.85; printf(“%10d”, a); printf(“%10d”, b); printf(“%10.2f”, c); printf(“%.2f”, c); } 30 Kết (theo hình): 1 1 BÀI TẬP Lý thuyết Trình bày tóm tắt kiểu liệu sở C Cho số ví dụ kiểu liệu cụ thể loại (tên kiểu, độ lớn theo byte, miền giá trị) Trình bày khái niệm biến cách sử dụng lệnh gán Phân biệt thường ký hiệu Cho ví dụ Trình bày khái niệm biểu thức Tại nên sử dụng cặp ngoặc đơn ( ) biểu thức? Trình bày cách định dạng xuất số nguyên số thực Cho ví dụ minh họa Tên (định danh) sau đặt không hợp lệ, sao? a Tin hoc co SO A b 1BaiTapKHO c THucHaNH d TinHOC_DaiCuonG Câu ghi dùng để làm gì? Cách sử dụng sao? Cho ví dụ minh họa Trình bày cấu trúc chương trình C Giải thích ý nghĩa phần cấu trúc Thực hành Viết chương trình in hình dịng chữ Chào ơng, Chào bà, Chào bạn Hướng dẫn: #include main() { printf(“ Chao ong.\n”); printf(“ Chao bà.\n”); printf(“ Chao ban.\n”); } 10 In lên hình thiệp mời dự sinh nhật có dạng: ******************************************* THIEP MOI Thân mời bạn : Nguyễn Mạnh Hùng 31 Tới dự lễ sinh nhật Vào lúc 19h ngày 12/10/2005 Tại 05/42 Trần Phú - Cần Thơ Rất mong đón tiếp ! Hồ Thu Hương ******************************************* 11 Viết chương trình nhập vào độ dài cạnh a, b, c tam giác Tính chu vi diện tích tam giác theo cơng thức: Chu vi CV = a+b+c Diện tích S = sqrt(p*(p-a)*(p-b)*(p-c)) Trong đó: p=CV/2 In kết lên hình 12 Viết chương trình xuất giá trị số ký tự Z z 13 Viết chương trình xuất các ký tự có giá trị số 72 and 104 14 Sắp số nguyên thẳng hàng bên trái bên phải hình sau: 1 12 12 123 123 1234 1234 12345 12345 15 Hiển thị lên ảnh số 123 123.456 xếp thẳng hàng phía trái 16 Biểu diễn số 15, 150, and 1500 dạng hexa 17 Chương trình sau có lỗi gì? main(){ int ch; ch = getchar(); putchar(ch); return 0; } 18 Trong chương trình đây, có sai ? #include main(){ int x, y; x = y = 0; printf("The comparison result is: %d\n", x = y); return 0; } 32 CHƯƠNG 3: CÁC CẤU TRÚC ĐIỀU KHIỂN Mục tiêu − Trình bày lệnh có cấu trúc; − Vận dụng lệnh cấu trúc: cấu trúc lựa chọn, cấu trúc lặp xác định lặp vô định; − Vận dụng lệnh bẻ vòng lặp; − Thực thao tác an tồn với máy tính Nội dung Khái niệm lệnh cấu trúc Một chương trình bao gồm nhiều câu lệnh Thông thường câu lệnh thực cách theo thứ tự mà chúng viết Các cấu trúc điều khiển cho phép thay đổi trật tự nói trên, máy nhảy thực câu lệnh khác ví trí trước sau câu lệnh thời Xét mặt cơng dụng, chia cấu trúc điều khiển thành nhóm chính: − Nhảy khơng có điều kiện − Rẽ nhánh − Tổ chức chu trình − Ngồi cịn số tốn tử khác có chức bổ trợ break, continue Các lệnh cấu trúc lựa chọn 2.1 Câu lệnh điều kiện 2.1.1 Khái niệm Câu lệnh if câu lệnh làm cho chương trình thực hay khơng thực câu lệnh tùy vào điều kiện nêu 2.1.2 Câu lệnh if (thiếu) Cú pháp: If (điều kiện) lệnh; Thực Ngược lại, sai không làm bắt đầu Sơ đồ khối kết thúc 33 Trong đó: - cho kết sai đặt cặp dấu ngoặc đơn ( ) - câu lệnh đơn khối lệnh (kẹp câu lệnhđơn { }) Ví dụ: Nếu a khác khơng xuất thơng báo “a khác 0” if (a != 0) printf(“a khac 0.”); 2.1.3 Câu lệnh if (đủ) Cú pháp: If (điều kiện) lệnh 1; else lệnh 2; Thực Ngược lại, sai thực bắt đầu Sơ đồ khối kết thúc Ví dụ: Tùy theo giá trị a để xuất thông báo tương ứng if (a != 0) printf(“a khac 0.”); else printf(“a bang 0.”); 2.1.4 Một số lưu ý Các câu lệnh if lồng vào theo nguyên tắc, phần else thuộc if gần Tuy nhiên, rõ ràng dễ hiểu ta nên đặt vào cấp đồng thời thêm { } if (a!=0){ if (b>0) 34 printf(“a!=0 va b>0.”); else printf(“a!=0 va b 100); 3.4 So sánh khác vòng lặp - Vòng lặp for thường sử dụng biết số lần lặp xác định - Vòng lặp thường while, do…while sử dụng rõ số lần lặp - Khi gọi vòng lặp while, do…while, biểu thức sai vịng lặp while khơng thực lần vòng lặp do…while thực lần Số lần thực while do…while Các lệnh chuyển điều khiển 4.1 Câu lệnh break Câu lệnh break cho phép khỏi chu trình với tốn tử for, while switch Khi có nhiều chu trình lồng nhau, câu lệnh break đưa máy khỏi chu trình bên chứa khơng cần điều kiện Mọi câu lệnh break thay câu lệnh goto với nhãn thích hợp Ví dụ: Biết số nguyên dương n số nguyên tố khơng chia hết cho số ngun khoảng từ đến bậc hai n Viết đoạn chương trình đọc vào số nguyên dương n, xem n có số nguyên tố #include #include unsigned int n; void main(){ int i,nt=1; printf("\n cho n="); scanf("%d",&n); for (i=2;ib & ((a%b)==0)) printf("\nUoc chung la= %d",a/b); else if (b>a & ((b%a)==0)) printf("\Uoc chung la= %d",b/a); } printf("\nKhong co uoc so!!!"); getch(); } Ví dụ 2: Nhập số nguyên a, b n với a, b < n Tính tổng số nguyên dương nhỏ n chia hết cho a không chia hết cho b #include #include void main(){ int a, b, n, i, s; do{ printf(“Nhap a, b, n: ”); scanf(“%d%d%d”, &a, &b, &n); } while (a >= n || b >= n); s = 0; for (i = 1; i