Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 49 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
49
Dung lượng
631,75 KB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG CAO ĐẲNG CÔNG NGHỆ KHOA ĐIỆN KỸ THUẬT LẬP TRÌNH C GIÁO TRÌNH THỰC HÀNH Giảng viên: NGUYỄN THỊ HÀ QUYÊN Đà Nẵng, 2009 Sử dụng phần mềm C Giảng viên Nguyễn Thị Hà Quyên – Trường CĐCN 1 Để thực hành lập trình C, có thể sử dụng một trong các phần mềm sau: TC hoặc TC30 hoặc BorlandC. Ở phòng máy khu B trường CĐCN, sinh viên (SV) có thể lựa chọn TC hoặc TC30. Thông thường, TC hoặc TC30 được chứa trong ổ đĩa D (D:\Soft); nếu không thì sinh viên có thể tìm kiếm bằng công cụ Search của Window với từ khóa tìm kiếm là TC (hoặc TC30). Nếu sử dụng TC thì SV mở TC ở ổ đĩa D (D:\Soft\TC) vào thư mục BIN double click chuột vào biểu tượng vàng đỏ có chữ MSDS được tô đậm để chạy TC như hình sau: Còn nếu sử dụng TC30 thì mở TC30 trong ổ đĩa D(D:\Soft\TC30) double click cũng vào biểu tượng vàng đỏ có chữ MSDS được tô đậm để chạy TC30. Lưu ý rằng, với TC30 không có thư mục BIN như TC. Lưu ý: sau khi mở chương trình C xong, SV cần phải nhớ đường dẫn chứa chương trình C đó (để sau này sử lỗi ‘Unable to open…’). Nhìn vào 2 hình trên, đường dẫn đã mở TC là D:\Soft\TC\BIN; còn đường dẫn đã mở TC30 là D:\Soft\TC30. Sử dụng phần mềm C Giảng viên Nguyễn Thị Hà Quyên – Trường CĐCN 2 Dù sử dụng TC hay TC30 thì giao diện vẫn giống nhau, như sau: Các phím thường hay sử dụng đối với chương trình C là: Alt-Enter: phóng to/thu nhỏ màn hình C F5: phóng to cửa sổ của một file chương trình *.cpp hoặc *.c F6: chuyển đồi giữa các cửa sổ file chương trình F2: lưu một file chương trình F3: mở một cửa sổ mới để tạo một file chương trình Alt-F5: xem kết quả chạy chương trình F7/F8: chạy chương trình từng bước F9: biên dịch chương trình Ctrl-F9: chạy chương trình Để hiệu chỉnh trình bày trong C, vào Options Environment Editor, một giao diện hiệu chỉnh hiện ra như dưới đây, sửa đổi mục Tab size từ 8 xuống 4 để khoảng cách Tab ngắn hơn. Sử dụng phần mềm C Giảng viên Nguyễn Thị Hà Quyên – Trường CĐCN 3 Lưu ý: Khi trình bày một chương trình C, SV nên biết sử dụng phím Tab trên bàn phím với quy tắc là tất cả các câu lệnh có cùng phạm vi ảnh hưởng thì thẳng hàng dọc với nhau, còn nếu một hoặc nhiều câu lệnh được thực hiện phụ thuộc vào một câu lệnh phía trước nó thì canh lề trái của nó phải được Tab vô một lần Tab. 1) Tạo một file chương trình trong C Để tạo một file chương trình trong C, sau khi đã mở C xong click vào menu File chọn New (hoặc cũng có thể ấn phím F3), màn hình xuất hiện như sau: Ví dụ: tạo một chương trình lưu với tên Vidu.cpp để xuất ra câu Xin chao!!! Sau khi biên dịch (ấn F9), nếu xuất hiện câu thông báo ‘Error …’ thì sử dụng mục 2 để sửa lỗi; nếu là ‘Warning …’ thì chỉ mang tính cảnh báo và không nhất thiết phải sửa đổi file chương trình (xem mục 3); còn nếu thông báo có dạng ‘Success : Press any key’ như dưới đây thì có nghĩa là chương trình viết đúng cú pháp và có thể chạy được: #include<stdio.h> #include<conio.h> void main() { printf(“Xin chao!!!”); getch(); } Sử dụng phần mềm C Giảng viên Nguyễn Thị Hà Quyên – Trường CĐCN 4 Ấn Enter để trở về cửa sổ chương trình, và sau đó ấn Ctrl-F9 để chạy chương trình này, màn hình màu đen sẽ xuất hiện và hiển thị ra câu thông báo ‘Xin chao!!!’ theo như yêu cầu: Gõ Enter để trở về giao diện xanh của chương trình. Trong ví dụ trên, dòng đầu tiên #include<stdio.h> là khai báo để sử dụng thư viện, mà cụ thể trong chương trình có sử dụng câu lệnh printf(“Xin chao!!!”) thuộc thư viện stdio.h, do đó cần phải khai báo thư viện này. Ngoài ra, nếu muốn biết thư viện stdio.h có chứa những câu lệnh nào, chỉ cần bôi đen cụm tự stdio.h rồi ấn Ctrl-F1 (đây là cách sử dụng Help – Trợ giúp trong phần mềm C hữu hiệu), màn hình sau sẽ xuất hiện với danh sách các câu lệnh thuộc thư viện này. #include<stdio.h> #include<conio.h> void main() //dấu mở ngoặc nhọn ở dưới { printf(“Xin chao!!!”); getch(); } Sử dụng phần mềm C Giảng viên Nguyễn Thị Hà Quyên – Trường CĐCN 5 Để trở về lại màn hình chương trình, có thể ấn phím F6 cho đến khi xuất hiện cửa sổ của chương trình, hoặc click vào dấu chấm vuông xanh lá cây ở góc trên trái của màn hình C theo đường mũi tên ở trên. Tương tự, do trong chương trình có sử dụng câu lệnh getch()-để dừng màn hình đen khi chạy chương trình, mà lệnh này thuộc thư viện conio.h (hoặc cũng có thể bôi đen cụm từ getch rồi ấn Ctrl-F1 thì sẽ biết được câu lệnh getch() thuộc thư viện nào), nên cần phải khai báo thêm thư viên này ở dòng thứ hai của chương trình: #include<conio.h>. Lưu ý: Bố cục của một chương trình C luôn bao gồm 3 phần: phần khai báo thư viện nằm trên cùng của chương trình; phần hàm main() là hàm chính của chương trình; và ký hiệu bắt đầu (dấu ‘{‘ - begin) và kết thúc (dấu ‘}’ – end). Trong C luôn sử dụng các hàm và mỗi hàm đều phải có giá trị trả về, và cả hàm main() cũng vậy. Chính vì vậy, trong ví dụ trên có dòng lệnh: void main() – có nghĩa là hàm main() này không có giá trị trả về (không dùng câu lệnh return) 2) Các lỗi và cách sửa lỗi Dưới đây là các lỗi thông dụng hay gặp phải khi sử dụng phần mềm C, và vị trí sai được phát hiện chính là dòng được tô đậm màu xanh: a) Lỗi không khai báo thư viện cho các câu lệnh được sử dụng trong file chương trình Câu thông báo cho lỗi này thường gặp là Function ‘tên câu lệnh’ should have a prototype như hình vẽ dưới, có nghĩa là câu lệnh ‘tên câu lệnh’ được sử dụng trong chương trình nhưng chưa khai báo thư viện chứa câu lệnh này. (hoặc gõ sai tên câu lệnh) Sửa lỗi bằng cách bôi đen ‘tên câu lệnh’ trong file chương trình ấn Ctrl-F1 xác định thư viện chứa câu lệnh quay trở về cửa sổ chương trình thêm vào file chương trình dòng khai báo thư viện tương ứng sau đó ấn F2 để lưu lại file chương trình vừa được sửa đổi và ấn F9 để biên dịch trở lại. Lặp lại cho đến khi không còn gặp câu báo lỗi như trên. Sử dụng phần mềm C Giảng viên Nguyễn Thị Hà Quyên – Trường CĐCN 6 b) Lỗi không chỉ đúng đường dẫn đến các tệp thư viện của chương trình C Câu thông báo lỗi thường gặp là Unable to open include file ‘STDIO.H’/’CONIO.H’ như hình vẽ dưới, nghĩa là phần mềm C không tìm thấy các file thư viện mà chương trình có sử dụng. Sửa lỗi này bằng cách vào Options Directories gõ vào đường dẫn chứa file thuộc thư mục Include ở ô trống đầu tiên, và gõ vào đường dẫn chứa file thuộc thư mục Lib ở ô trống thứ hai sau đó ấn OK. Có sự khác biệt rõ ràng khi sử dụng phần mềm TC và phần mềm TC30: Nếu sử dụng phần mềm TC thì đường gõ vào ô trống thứ nhất đường dẫn chỉ đến thư mục Include trong TC (cụ thể ở đây là D:\Soft\TC\Include); và gõ vào ô trống thứ hai đường dẫn chỉ đến thư mục Lib trong TC (cụ thể là D:\Soft\TC\Lib). Nếu sử dụng TC30 thì cả 2 dòng đều gõ vào đường dẫn chứa TC30 (cụ thể là D:\Soft\TC30), bởi vì trong TC30 không có chứa các thư mục Include và Lib như trong TC, đồng thời các file thư viện trong TC30 đều thuộc trực tiếp thư mục TC30 này. Sử dụng phần mềm C Giảng viên Nguyễn Thị Hà Quyên – Trường CĐCN 7 c) Lỗi thiếu dấu chấm phẩy (dấu kết thúc mỗi câu lệnh trong C) Câu thông báo lỗi thường gặp là Statement missing ; như hình dưới, có nghĩa là thiếu một dấu chấm phẩy ở một dòng lệnh nào đó trong chương trình. Sửa lỗi bằng cách xác định dòng được tô đậm màu xanh, và dấu chấm phẩy thông thường sẽ bị thiếu ở ngay dòng kề trên dòng tô xanh đậm này (hoặc đôi khi ngay chính dòng đó hoặc dòng kề sau nó). 3) Các cảnh báo (Warning) Các cảnh báo thường không ảnh hưởng đến việc chạy chương trình, tuy nhiên khi có cảnh báo thì chúng ta cũng nên điều chỉnh các dòng lệnh để khắc phục cảnh báo đó. a) Cảnh báo ‘Function should return a value’ Cảnh báo này cho biết rằng trong chương trình có sử dụng hàm (ví dụ hàm main()) nhưng không khai báo kiểu giá trị trả về của hàm như hình sau: Sử dụng phần mềm C Giảng viên Nguyễn Thị Hà Quyên – Trường CĐCN 8 Khắc phục cảnh báo này bằng cách thêm vào phía trước chữ main() từ khóa void như dưới đây: b) Cảnh báo ‘… i assigned a value that is never used’ Cảnh báo này cho biết trong chương trình có khai báo biến, gán giá trị cho biến nhưng lại không sử dụng biến này khắc phục cảnh báo này bằng cách xóa đi biến được khai đó. 4) Chương trình chạy vô hạn Lỗi này xảy ra khi đã biên dịch chương trình (ấn F9) thành công và sau khi ấn Ctrl-F9 để chạy chương trình thì nó chạy vô hạn không thể thoát ra trở lại cửa sổ chương trình được sau khi ấn Enter nhiều lần. Để tạm dừng chương trình và trở về cửa sổ chương trình, gõ tổ hợp phím Ctrl-Break sau đó gõ phím Ctrl-F2 để làm mất dòng được tô màu xanh đậm. Tiến hành chỉnh sửa code chương trình và lại lưu, biên dịch và chạy chương trình. 5) Không xem được kết quả chạy chương trình Lỗi này xảy ra sau khi ấn tổ hợp phím Ctrl-F9 mà vẫn không xem được kết quả chạy chương trình, đồng thời vẫn giữ nguyên cửa sổ file chương trình. Khắc phục bằng cách ấn tổ hợp phím Alt-F5 để xem kết quả chạy chương trình hoặc vào chỉnh sửa code (thêm dòng getch() ở kề cuối chương trình). 6) Các định dạng hay sử dụng đối với các kiểu dữ liệu Kiểu dữ liệu int: định dạng %d Sử dụng phần mềm C Giảng viên Nguyễn Thị Hà Quyên – Trường CĐCN 9 Kiểu dữ liệu float: địnhdạng %f Kiểu dữ liệu long int: định dạng %ld Kiểu dữ liệu double: định dạng %lf Kiểu dữ liệu char: định dạng %c Kiểu dữ liệu chuỗi (khai báo char[chiều dài tối đa]): định dạng %s 7) Khai báo và sử dụng chuỗi ký tự trong C Trong C không có kiểu dữ liệu chuỗi ký tự (xâu). Chính vì vậy, để sử dụng được chuỗi ký tự (tức là một biến nhận giá trị chứa nhiều hơn một ký tự, ví dụ như biến hoten thường nhận giá trị là ‘Nguyen Van A’ hoặc ‘Le Thi B’) thì cần phải khai báo biến đó có kiểu dữ liệu char và độ dài của nó. Ví dụ: giả sử chương trình yêu cầu khai một biến hoten để nhận giá trị của một chuỗi ký tự nhập vào như ‘Nguyen Thi Ha Quyen’ thì cần khai báo như sau: char hoten[30]; Con số 30 cho biết biến họ tên này chỉ nhận chuỗi ký tự có chiều dài không nhiều hơn 30 ký tự. 8) Chuyển chế độ viết đè sang chế độ chèn Con trỏ nhấp nháy trong C thông thường có dạng là một dấu gạch ngang. Tuy nhiên, nếu vô tình chúng ta ấn vào phím Insert trên bàn phím thì con nháy sẽ biến thành dạng hình chữ nhật tô màu vàng, và lúc này chúng ta không thể ấn Enter để xuống dòng cũng như chế độ soạn thảo trong C chuyển sang chế độ viết đè. Khắc phục lỗi này bằng cách ấn phím Insert một lần nữa, con trỏ nhấp nháy sẽ trở về dạng dấu gạch ngang như bình thường. 9) Các câu lệnh đơn trong C thường dùng Một câu lệnh (statement) xác định một công việc mà chương trình phải thực hiện để xử lý dữ liệu đã được mô tả và khai báo. Các câu lệnh được ngăn cách với nhau bởi dấu chấm phẩy (;). Phân loại: có hai loại lệnh, đó là lệnh đơn và lệnh có cấu trúc. [...]... 3 (Chương III: HÀM VÀ C U TR C CHƯƠNG TRÌNH Chương IV: CON TRỎ) Hàm đư c sử dụng rất nhiều trong hầu hết c c ngôn ngữ lập trình và C cũng vậy Để sử dụng hàm trong một chương trình C, c n phải định nghĩa hàm đó trư c khi sử dụng chúng C 2 c ch để định nghĩa và sử dụng hàm trong C: C ch 1: Đoạn chương trình định nghĩa hàm đặt trư c đoạn chương trình c a hàm main như sau #include #include... phần mềm C Lệnh đơn là một lệnh không chứa c c lệnh kh c C c lệnh đơn gồm: lệnh gán, c c câu lệnh nhập xuất dữ liệu… Lệnh c c u tr c là lệnh trong đó chứa c c lệnh kh c Lệnh c c u tr c bao gồm: c u tr c điều kiện rẽ nhánh, c u tr c điều kiện lựa chọn, c u tr c lặp và c u tr c lệnh hợp thành Lệnh hợp thành (khối lệnh) là một nhóm bao gồm nhiều khai báo biến và c c lệnh đư c gom vào trong c p dấu {}... mềm C Giảng viên Nguyễn Thị Hà Quyên – Trường C CN 16 Bài th c hành C HÀNH SỐ 1 (Chương I: C C THÀNH PHẦN C BẢN C A NGÔN NGỮ LẬP TRÌNH C) Hãy đ c thật kỹ phần hàm và biểu th c trong giáo trình C, và làm c c bài tập sau: 1) Viết chương trình nhập vào một số nguyên n và x Hãy cho biết thương nguyên và số dư c a phép chia n cho x; và phép chia phân c a n cho x Hướng dẫn: sử dụng phép toán số h c /(phép... scanf(“%d”,&bien1);/*Doc gia tri cho bien1 co kieu nguyen*/ scanf(“%f”,&bien2); /*Doc gia tri cho bien2 co kieu th c* / scanf(“%d%f”,&bien1,&bien2); /*Doc gia tri cho bien1 co kieu nguyen, bien2 co kieu thuc*/ scanf(“%d%f %c ,&bien1,&bien2,&bien3); /*bien3 co kieu char*/ Lưu ý: Chuỗi định dạng phải đặt trong c p dấu nháy kép (“”) C c biến (địa chỉ biến) phải c ch nhau bởi dấu phẩy (,) C bao nhiêu biến thì phải c bấy... trị c a biến Ví dụ: int x, y; y = x = 3; /* y l c này c ng bằng 3*/ Ta c thể gán trị cho biến l c biến đư c khai báo theo c ch th c sau: = ; Ví dụ: int x = 10, y=x; b) Lệnh nhập giá trị từ bàn phím cho biến (hàm scanf) Hàm scanf là hàm cho phép đ c dữ liệu từ bàn phím và gán cho c c biến trong chương trình khi chương trình th c thi Trong ngôn ngữ C, đó là hàm scanf... Hà Quyên – Trường C CN 10 Sử dụng phần mềm C x = 10; /* Gán hằng số 10 cho biến x */ y = 'd'; /* y c kiểu int, c n ‘d’ c kiểu char*/ r = 'e'; /* r c kiểu float, ‘e’ c kiểu char*/ ch = 65.7; /* ch c kiểu char, c n 65.7 c kiểu float*/ return 0; } Trong nhiều trường hợp để tạo ra sự tương thích về kiểu, ta phải sử dụng đến c ch th c chuyển đổi kiểu một c ch tường minh C pháp c a phép toán này như... ký số thì chỉ nhận đư c 4 ký số đầu tiên %f Nhập số th c Giảng viên Nguyễn Thị Hà Quyên – Trường C CN 11 Sử dụng phần mềm C %6f Nhập số th c tối đa 6 ký số (tính luôn dấu chấm), nếu nhập nhiều hơn 6 ký số thì chỉ nhận đư c 6 ký số đầu tiên (ho c 5 ký số với dấu chấm) Địa chỉ c a c c biến: là địa chỉ (&) c a c c biến mà chúng ta c n nhập giá trị cho nó Đư c viết như sau: & Ví dụ: scanf(“%d”,&bien1);/*Doc... Quyên – Trường C CN 19 Bài th c hành Vì số ngày phụ thu c vào tháng và năm là c c số nguyên nên chúng ta c thể dùng c u lệnh switch như sau: int thang,nam; //nhập vào tháng và năm (tháng 2 c 28/29 ngày phụ thu c vào năm nhuần hay không switch(thang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf("Thang %d/%d co 31 ngay",thang,nam); break; case 4: case 6: case 9: case 11: printf("Thang... x*y chia cho ư c số chung lớn nhất (bcnn=x*y/ucln) Chính vì vậy, c n phải tính UCLN và BCNN cho |x| và |y| (trị tuyệt đối) Ví dụ ucln(8,4)=ucln(-8,4)=ucln(8,-4)=4; C n nếu giả sử x=0 và y≠0 thì khẳng định ngay ucln=|y|, mà chương trình không c n tính toán gì c int x, y, a, b; printf(“Nhap vao 2 so x va y: “); scanf(“%d%d”,&x,&y); a=abs(x);b=abs(y) / /c n giữ lại giá trị c a 2 số x,y và chỉ thao t c trên... sẽ đư c đ c vào cho bienthuc bienchar sẽ c giá trị là ký số tiếp theo ‘8’ scanf(“%s”,chuoi1); ho c scanf(“%s”,chuoi2) Nếu ta nhập chuỗi như sau: Nguyen Van Linh ( ) thì giá trị c a biến chuoi1 hay chuoi2 chỉ là Nguyen scanf(“%s%s”,chuoi1, chuoi2); Nếu ta nhập chuỗi như sau: Duong Van Hieu ( ) thì giá trị c a biến chuoi1 là Duong và giá trị c a biến chuoi2 là Van Vì sao như vậy? C sẽ đ c từ đầu đến . – Trường C CN 1 Để th c hành lập trình C, c thể sử dụng một trong c c phần mềm sau: TC ho c TC30 ho c BorlandC. Ở phòng máy khu B trường C CN, sinh viên (SV) c thể lựa chọn TC ho c TC30. Thông. lệnh kh c. C c lệnh đơn gồm: lệnh gán, c c câu lệnh nhập xuất dữ liệu… Lệnh c c u tr c là lệnh trong đó chứa c c lệnh kh c. Lệnh c c u tr c bao gồm: c u tr c điều kiện rẽ nhánh, c u tr c điều. đến vi c chạy chương trình, tuy nhiên khi c c nh báo thì chúng ta c ng nên điều chỉnh c c dòng lệnh để kh c ph c cảnh báo đó. a) C nh báo ‘Function should return a value’ C nh báo này cho biết