Đề cương cơ sở kỹ thuật lập trình

145 157 0
Đề cương cơ sở kỹ thuật lập trình

Đ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

TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT HƢNG YÊN KHOA CÔNG NGHỆ THÔNG TIN ĐỀ CƢƠNG CƠ SỞ KỸ THUẬT LẬP TRÌNH HƢNG YÊN – 2015 MỤC LỤC MỤC LỤC BÀI 1: CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ LẬP TRÌNH 1.1 Cấu trúc chung chương trình .8 1.1.1 Cấu trúc chương trình 1.1.2 Các bước để tạo thực chương trình 1.1.3 Một số quy tắc cần nhớ viết chương trình 11 1.2 Các thành phần ngôn ngữ lập trình 12 1.2.1 Bảng chữ 12 1.2.2 Từ khóa 12 1.2.3 Tên (định danh) 13 1.3 Các kiểu liệu 14 1.3.1 Kiểu ký tự 15 1.3.2 Kiểu số nguyên 16 1.3.3 Kiểu dấu phẩy động 16 1.4 Biến, cách khai báo 17 1.4.1 Biến cách khai báo 17 1.4.2 Hằng cách khai báo .18 BÀI 2: BIỂU THỨC, CÁC PHÉP TOÁN VÀ VẤN ĐỀ NHẬP XUẤT 22 2.1 Biểu thức 22 2.2 Câu lệnh, khối lệnh 22 2.2.1 Câu lệnh 22 2.2.2 Các câu lệnh khoảng trắng .23 2.2.3 Khối lệnh 24 2.3 Các phép toán .24 Đề cương giảng Cơ sở kỹ thuật lập trình 2.3.1 Các phép toán số học 24 2.3.2 Phép toán so sánh 25 2.3.3 Phép toán logic 25 2.3.4 Phép gán 26 2.3.5 Thứ tự ưu tiên phép toán 26 2.3.6 Phép chuyển đối kiểu 27 2.4 Nhập/xuất liệu 30 2.4.1 Xuất liệu .30 2.4.2 Nhập liệu 32 2.5 Bài tập 33 BÀI 3: CẤU TRÚC ĐIỀU KHIỂN 35 3.1 Giới thiệu cấu trúc điều khiển 35 3.2 Cấu trúc điều khiển rẽ nhánh if 35 3.2.1 Cấu trúc rẽ nhánh dạng khuyết 35 3.2.2 Cấu trúc rẽ nhánh dạng đủ .36 3.3 Cấu trúc điều khiển rẽ nhánh swicth 38 3.4 Bài tập 41 BÀI 4: CẤU TRÚC LẶP 43 4.1 Giới thiệu cấu trúc lặp 43 4.2 Cấu trúc lặp xác định .43 4.2.1 Cấu trúc lặp For 43 4.1.2 Ví dụ áp dụng 45 4.3 Cấu trúc lặp không xác định 46 4.3.1 Cấu trúc lặp while .46 Đề cương giảng Cơ sở kỹ thuật lập trình 4.3.2 Cấu trúc lặp while 49 4.4 Các câu lệnh đặc biệt 52 4.4.1 Câu lệnh break 52 4.4.2 Câu lệnh continue .53 4.5 Bài tập 53 BÀI 5: THẢO LUẬN/BÀI TẬP VỀ CÁC CẤU TRÚC LẶP VÀ CẤU TRÚC ĐIỀU KHIỂN 55 BÀI 6: MẢNG MỘT CHIỀU 59 6.1 Giới thiệu mảng chiều 59 6.1.1 Khái niệm mảng chiều 60 6.1.2 Cách khai báo 60 6.1.3 Đặc điểm mảng chiều 61 6.1.4 Cách khởi tạo phần tử cho mảng .62 6.2 Truy xuất phần tử mảng 62 6.3 Các thao tác với mảng chiều 63 6.3.1 Nhập mảng 63 6.3.2 Hiện mảng 64 6.2 Ví dụ áp dụng 65 BÀI 7: THỰC HÀNH VỀ CẤU TRÚC ĐIỀU KHIỂN VÀ CẤU TRÚC LẶP 72 BÀI 8: MẢNG HAI CHIỀU 73 8.1 Giới thiệu mảng hai chiều 73 8.1.1 Định nghĩa 73 8.1.2 Các cách khai báo 74 8.2 Truy xuất phần tử mảng hai chiều 75 8.3 Các thao tác với mảng hai chiều 76 Đề cương giảng Cơ sở kỹ thuật lập trình 8.3.1 Nhập mảng 76 8.3.2 Hiện mảng 77 8.4 Một số ví dụ mảng hai chiều 79 BÀI 9: THỰC HÀNH VỀ MẢNG (BUỔI 1) 82 BÀI 10: THẢO LUẬN/BÀI TẬP VỀ MẢNG .83 BÀI 11: THỰC HÀNH VỀ MẢNG (BUỔI 2) 86 BÀI 12: THAO TÁC VỚI KÝ TỰ VÀ XÂU KÝ TỰ 87 12.1 Giới thiệu ký tự xâu ký tự 87 12.1.1 Sử dụng biến ký tự 88 12.1.2 Mảng ký tự 89 12.1.3 Khởi tạo mảng ký tự 90 12.2 Các thao tác xâu 90 12.2.1 Nhập xâu 90 12.2.2 Hiển thị xâu ký tự 93 12.2.3 Một số thư viện hàm sử dụng xâu 95 12.3 Bài tập 96 BÀI 13: THỰC HÀNH VỀ XỬ LÝ CHUỖI KÝ TỰ 98 BÀI 14: KIỂU CẤU TRÚC VÀ TỆP 100 14.1 Giới thiệu kiểu cấu trúc 100 14.2 Các thao tác biến cấu trúc .101 14.3 Mảng cấu trúc 102 14.4 Vấn đề vào/ra liệu với tệp .102 14.4.1 Khai báo sử dụng tệp: 103 14.4.2 Mở tệp - hàm fopen .103 Đề cương giảng Cơ sở kỹ thuật lập trình 14.4.3 Đóng tệp - hàm fclose 104 14.4.4 Làm vùng đệm - hàm fflush 105 14.4.5 Đọc/ghi tệp tin – hàm fprintf() fscanf() 105 14.5 Bài tập 106 BÀI 15: THẢO LUẬN/ BÀI TẬP VỀ KIỂU CẤU TRÚC VÀ TỆP 108 BÀI 16: THỰC HÀNH VỀ KIỂU CẤU TRÚC VÀ TỆP .111 BÀI 17: HÀM (2 BUỔI) 112 17.1 Giới thiệu chung hàm 112 17.2 Cơ hàm .114 17.2.1 Định nghĩa .114 17.2.2 Cấu trúc hàm tự xây dựng sau: 115 17.2.3 Nguyên tắc xây dựng hàm 119 17.3 Các khái niệm 120 17.3.1 Biến cục 120 17.3.2 Biến toàn cục 120 17.3.3 Tham số hình thức 120 17.3.4 Tham số thực thụ 121 17.4 Cách gọi hàm .121 17.4.1 Lời gọi hàm 121 17.4.2 Truyền tham số cho hàm .122 17.4.3 Đệ qui 122 17.5 Nguyên tắc hoạt động hàm 124 17.6 Cấu trúc chương trình có nhiều hàm 124 17.7 Bài tập hàm .125 Đề cương giảng Cơ sở kỹ thuật lập trình BÀI 18: THẢO LUẬN/BÀI TẬP VỀ HÀM 127 BÀI 19: THỰC HÀNH VỀ HÀM 129 BÀI 20: CON TRỎ VÀ ỨNG DỤNG 130 20.1 Giới thiệu trỏ 130 20.2 Khai báo sử dụng trỏ 130 20.2.1 Khai báo trỏ 130 20.2.2 Sử dụng trỏ .131 20.3 Một số ứng dụng trỏ 133 20.3.1 Con trỏ mảng chiều .133 20.3.2 Con trỏ mảng hai chiều .135 20.3.3 Con trỏ xâu ký tự .136 BÀI 21: THỰC HÀNH VỀ CON TRỎ 137 BÀI 22: THẢO LUẬN/BÀI TẬP VỀ CON TRỎ 138 BÀI 23: KIỂM TRA THỰC HÀNH 145 Đề cương giảng Cơ sở kỹ thuật lập trình BÀI 1: CÁC THÀNH PHẦN CƠ BẢN CỦA NGÔN NGỮ LẬP TRÌNH MỤC TIÊU Học xong sinh viên có khả năng: o Trình bày cấu trúc chung chương trình thành phần ngôn ngữ lập trình; o Trình bày đặc điểm, cách sử dụng kiểu liệu; o Trình bày quy tắc khai báo biến, hằng; o Sử dụng phép toán vào toán cụ thể; o Rèn luyện tính tư duy, logic lập trình 1.1 Cấu trúc chung chƣơng trình Ngôn ngữ lập trình hệ thống ký hiệu hóa để miêu tả tính toán (qua máy tính) dạng mà người máy đọc hiểu Như vậy, theo định nghĩa ngôn ngữ lập trình phải thỏa mãn hai điều kiện sau: - Dễ hiểu dễ sử dụng người lập trình, để dùng để giải nhiều toán khác - Miêu tả cách đầy đủ rõ ràng tiến trình, để chạy hệ máy tính khác Một tập hợp thị biểu thị qua ngôn ngữ lập trình nhằm mục đích thực thao tác gọi chương trình Khái niệm có tên khác chương trình máy tính hay chương trình điện toán 1.1.1 Cấu trúc chƣơng trình Cấu trúc chung chương trình gồm thành phần sau: Đề cương giảng Cơ sở kỹ thuật lập trình Lời gọi thư viện sử dụng chương trình Khai báo hằng, biến toàn cục Khai báo chương trình Chương trình Để có nhìn tổng quan cấu trúc chương trình, xét ví dụ chương trình lên dòng chữ “Hello World” hình Trong giới lập trình, chương trình “Hello World” không xa lạ gì, xem chương trình chuẩn cho nhìn bao quát ngôn ngữ đề cập đến Nhưng bạn chưa biết lập trình nên biết chương trình này, sau có muốn học ngôn ngữ khác bạn tìm kiếm “Hello World” khác để biết ngôn ngữ khai báo nào? bắt đầu sao? có khác so với ngôn ngữ mà biết hay không Và để có câu trả lời, theo dõi ví dụ sau Ví dụ minh họa ngôn ngữ lập trình C: #include /* Lời gọi thư viện Nhập xuất */ #include /* Lời gọi thư viện xử lý hình */ int main() /* Hàm chính(bắt buộc có) chương trình*/ { printf("Hello World!"); /* Xuất hình dòng chữ Hello World!*/ getch(); return 0; /* Đợi người dùng nhập vào phím tiếp tục… */ /* Kết thúc hàm*/ } 1.1.2 Các bƣớc để tạo thực chƣơng trình a) Qui trình viết thực chương trình Trước viết chạy chương trình thông thường cần: Xác định yêu cầu chương trình: Nghĩa xác định liệu đầu vào (input) cung cấp cho chương trình tập liệu cần đạt - tức đầu (output) Các tập hợp liệu tên gọi cần xác định kiểu Ví dụ để giải Đề cương giảng Cơ sở kỹ thuật lập trình phương trình bậc dạng: ax2 + bx + c = 0, cần báo cho chương trình biết liệu đầu vào a, b, c đầu nghiệm x1 x2 phương trình Kiểu a, b, c, x1, x2 số thực Xác định thuật toán giải Cụ thể hoá khai báo kiểu thuật toán thành dãy lệnh, tức viết thành chương trình thông thường giấy, sau bắt đầu soạn thảo vào máy Quá trình gọi soạn thảo chương trình nguồn Dịch chương trình nguồn để tìm sửa lỗi gọi lỗi cú pháp Chạy chương trình, kiểm tra kết in hình Nếu sai, sửa lại chương trình, dịch chạy lại để kiểm tra Quá trình thực lặp lặp lại chương trình chạy tốt theo yêu cầu đề lập trình b) Soạn thảo tệp chương trình nguồn Soạn thảo chương trình nguồn công việc đơn giản: gõ nội dung chương trình (đã viết giấy) vào máy lưu lại lên đĩa Thông thường lưu lại chương trình lên đĩa lần sau không cần phải gõ lại Mục đích soạn thảo tạo văn chương trình đưa vào nhớ máy Văn chương trình cần trình bày sáng sủa, rõ ràng Các câu lệnh cần gióng thẳng cột theo cấu trúc lệnh (các lệnh chứa lệnh cấu trúc trình bày thụt vào so với điểm bắt đầu lệnh) Các thích nên ghi ngắn gọn, rõ nghĩa phù hợp c) Dịch chương trình Sau soạn thảo xong chương trình nguồn, bước thường dịch (trong C ấn phím F11 chọn Build/ compile) để tìm sửa lỗi gọi lỗi cú pháp Trong dịch chương trình đưa thông báo lỗi nơi gây lỗi Để chương trình chạy người lập trình phải sửa hết lỗi Quá trình dịch sửa lỗi diễn chương trình không lỗi đưa thông báo dịch thành công Sản phẩm sau dịch tệp gọi chương trình đích có đuôi EXE tức tệp mã máy để thực Tệp lưu tạm thời nhớ phục vụ cho trình chạy chương trình lưu lại đĩa tuỳ theo tuỳ chọn dịch lập trình 10 Đề cương giảng Cơ sở kỹ thuật lập trình 20.2.2 Sử dụng trỏ Ta sử dụng tên trỏ dạng khai báo biểu thức Ví dụ 20.2: float *px; Ở đây: px tên trỏ *px dạng khai báo trỏ - Sử dụng tên trỏ: Con trỏ biến nên tên xuất biểu thức giá trị sử dụng biểu thúc Chỉ có điều cần lưu ý đây: giá trị trỏ địa biến Ví dụ 20.3: float a,*p,*h; p=&a;/* Gán địa biến a cho p hay nói cách khác cho trỏ p trỏ tới biến a */ h=p;/* Gán trỏ p cho trỏ h */ - Sử dụng dạng khai báo trỏ: Một địa đối tượng dt gán cho trỏ ct ta truy nhập tới đối tượng dt thông qua trỏ ct theo quy tắc sau: Ở chỗ chương trình hai cách viết: dt *ct có tác dụng Ví dụ 20.4: int x,y,z,*trox, *troy; trox=&x; troy=&y; hai cách viết sau có tác dụng tương đương: x *trox 131 Đề cương giảng Cơ sở kỹ thuật lập trình y *troy Do ta có câu lệnh gán y=5*x+z; viết *troy=5*x+z; *troy=5*(*trox)+z;  Chú ý: Khi ta khai báo biến trỏ chưa có giá trị xác định hay nói cách khác chưa trỏ vào đâu Nếu ta muốn sử dụng biến trỏ ta phải cho trỏ vào biến cụ thể đó: Ví dụ 20.5: #include “strdio.h” #include “conio.h” void hoanvi(float *, float *); int main() { float a=3.5,b=6.8; clrscr(); hoanvi(&a,&b); printf(“Gia tri cua ab sau giao hoan \n”); printf(“\n a=%8.2f \n b=%8.2f”,a,b); getch(); return 0; } void hoanvi(float *a, float *b) { float tg; 132 Đề cương giảng Cơ sở kỹ thuật lập trình tg:=*a;*a:=*b;*b=tg; } 20.3 Một số ứng dụng trỏ Trong C, khái niệm trỏ mảng liên quan mật thiết với Tất thao tác mà thực thông qua số mảng thực nhờ công cụ trỏ Tuy nhiên, ý tưởng thuật toán, chương trình có sử dụng trỏ nói chung chay nhanh đồng thời khó hiểu so với chương trình sử dụng mảng 20.3.1 Con trỏ mảng chiều Xét ví dụ int a[10], *p; Ta thấy với khai báo máy bố trí cho mảng a mười khoảng nhớ liên tiếp ( mối khoảng nhớ byte) Như biết địa phần tử nò mảng a, dẽ dàng suy địa phần tử khác Như ta biết tên mảng địa địa phần tử mảng, với khai báo tên thì: a[0] a[1] a a+1 a[2] a[9] a+9  a+1 tương đương với &a[1] a+2 &a[2] nt a+i nt &a[i] Nếu ta có p=a ta có a[0] p a[1] p+1 a[2] a[9] p+9  133 Đề cương giảng Cơ sở kỹ thuật lập trình p+1 tương đương với &a[1] p+2 &a[2] nt p+i nt &a[i] Ngoài ta có *(p+1) tương đương với a[1] *(p+2) nt a[2] *(p+i) nt a[i] Do ta có float a[10],*p; p=a; bốn cách viết sau tương đương a[i], *(a+i), *(p+i), p[i]  Chú ý: a p khác nhau: a địa mảng tức địa phần tử mảng, p biến trỏ Do viết p++ viết a++ hay a=a+1, a=a+2, Ví dụ 20.6: Cho mảng chiều gồm n phần tử nhập vào từ bàn phím Tìm tổng phần tử chẵn #include #include int main() { int a[20],s=0; int i,n; int *p=a; printf(“Nhập số phần tử mảng n=”);scanf(“%d”,&n); 134 Đề cương giảng Cơ sở kỹ thuật lập trình for (i=0;i

Ngày đăng: 24/10/2017, 15:49

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan