Xem mẫu
- Chương 2
Cấu trúc và thành phần
của chương trình C
Presenter:
Nhập môn về lập trình (C2) Slide 1
- Nội dung
Chương trình C đơn giản.
Phong cách lập trình.
Rèn luyện việc xuất ra màn hình.
Đọc dữ liệu từ bàn phím.
Xử lý đơn giản.
Nhập môn về lập trình (C2) Slide 2
- Learning outcomes
L.O.1.4 – Biết được cấu trúc và hiểu được các thành phần
của một chương trình viết bằng ngôn ngữ lập trình
C.
L.O.1.5 – Vận dụng được các nguyên tắc trong phong cách
lập trình để viết được các chương trình trong sáng
và dễ đọc.
L.O.1.6 – Liệt kê được các kiểu dữ liệu cơ bản trong C và
ghi ra giá trị điển hình của các kiểu đó trong mã
nguồn.
L.O.1.7 – Sử dụng được các hàm để đọc dữ liệu từ bàn
phím và xuất dữ liệu ra màn hình.
Nhập môn về lập trình (C2) Slide 3
- Chương trình C đơn giản
#include “stdafx.h”
#include
/*
This is a simple program, which is used to show the structure of programs developed
in C
The objective of this program is to print the following information on different lines
1. University's name
2. Course's name
*/
void main()
{
// "printf" is a function, which is defined in
printf("Ho Chi Minh city University of Technology\n");
printf("Programming Fundamentals");
// _getch() causes the program pause before close the console window,
// i.e., quit the program
// _getch() is a function, which is defined in
_getch();
}
Nhập môn về lập trình (C2) Slide 4
- Chương trình C đơn giản
Các thành phần
Khai báo thư viện sẽ được sử dụng
Chỉ thị #include:
Cho biết chương trình có sử dụng 2 thư #include “stdafx.h”
viện hàm stdio.lib (gián tiếp qua
#include
stdafx.h) và conio.lib.
void main()
Thư viện stdio.lib chứa hàm printf. {
Thư viện conio.lib chứa hàm _getch. printf(“123");
Cách khai báo bằng chỉ thị #include printf(“456\n");
như hình bên.
_getch();
}
Chú ý dấu “ ” và < >.
Nhập môn về lập trình (C2) Slide 5
- Chương trình C đơn giản
Các thành phần
Chương trình viết bằng C sẽ bắt đầu chạy từ hàm main().
main (viết toàn chữ thường) là tên hàm, chú ý dấu ().
• Lệnh đầu tiên ngay sau hàm main()
• Mỗi chương trình viết bằng C phải có một hàm có tên main
void main()
{ Dấu “{“ đánh dấu bắt đầu phần thân hàm main
// Thân hàm
Dấu “}“ đánh dấu điểm kết thúc phần thân hàm main
}
Nhập môn về lập trình (C2) Slide 6
- Chương trình C đơn giản
Kiểu trả kết quả
Kiểu trả kết quả do từ khóa viết trước tên hàm quy định (void).
Trong trường hợp này, void có nghĩa là không trả kết quả về.
void main()
{
}
Nơi này xác định kiểu trả kết quả về của hàm (main)
void : Hàm main không trả kết quả gì về cả
Nhập môn về lập trình (C2) Slide 7
- Chương trình C đơn giản
Các thành phần
Chú thích
Chú thích là văn bản không #include "stdafx.h"
#include
cần có văn phạm của C.
/*
Chú thích được chèn vào The objective of ...
nhằm giải thích, ghi chú, ...
This is ... Chú thích
đánh dấu, hay làm tiêu đề */
dẫn nhập cho phần tử của C. void main(){
printf("..."); // "printf" is ...
Hai dạng chú thích: printf("...");
Chú thích trên nhiều dòng, _getch(); // waiting for ...
được bao bọc giữa ký hiệu }
mở đầu “/*” và kết thúc “*/”.
Chú thích trên một dòng, mở
đầu bởi “//”.
Nhập môn về lập trình (C2) Slide 8
- Phong cách lập trình
Chương trình cũng như một bài văn trong ngôn ngữ tự nhiên.
Do đó, cần được viết sao cho dễ đọc, dễ hiểu, và dễ phát hiện các sai sót.
Trong các dự án lớn, phong cách lập trình là rất quan trọng nhằm :
• Dễ dàng phối hợp giữa các thành viên phát triển
• Dễ dàng phát hiện sai sót
• Dễ dàng bảo trì và nâng cấp
Danh sách các chủ đề có thể xem chi tiết ở những trang sau.
Sinh viên phải rèn luyện phong cách trong suốt quá trình học, thông qua thực
hành.
Tất cả các bài nộp cho giảng viên xem phải tuân thủ hầu hết các gợi ý.
Xem thêm
1. http://users.ece.cmu.edu/~eno/coding/CCodingStandard.html
2. http://www.cs.swarthmore.edu/~newhall/unixhelp/c_codestyle.html
Nhập môn về lập trình (C2) Slide 9
- Phong cách lập trình
Các gợi ý
Về quy cách đặt tên:
• Hàm
Bắt đầu bởi động từ (verb), vì hàm là đơn vị xử lý (nghĩa là thực thi hành
động).
Tên phải nêu bật tính năng xử lý của hàm.
Ví dụ:
Nên dùng: check_for_errors()
Thay cho: error_checking() hay dump_data_to_file()
Nên sử dụng “suffix” hay “prefix” để tăng ngữ nghĩa.
Prefixes
• is kiểm tra xem một điều kiện nào đó có thỏa hay không
• get lấy giá trị
• set gán giá trị
Nhập môn về lập trình (C2) Slide 10
- Phong cách lập trình
Các gợi ý
• Biến
Thường bắt đầu bởi danh từ (noun)
Tất cả các ký tự trong tên đều là chữ thường
Nối các từ với nhau bởi dấu gạch dưới, “_”
Đưa đơn vị vào tên nếu có thể
Ví dụ: unit32 timeout_msec;
time time_of_error
• Biến kiểu pointer
Đặt dấu * liền sát tên biến
Suffix với “ptr” nếu có thể
Ví dụ:
char *name;
Student *student_ptr
Nhập môn về lập trình (C2) Slide 11
- Phong cách lập trình
Các gợi ý
Về quy cách đặt tên:
• Biến toàn cục
Prefix với “g_”, để dễ phân biệt trong code
Ví dụ:
Logger g_logger;
Logger g_logger_ptr;
• Hằng toàn cục
Sử dụng toàn bộ chữ hoa
Ví dụ:
const int A_GLOBAL_CONSTANT = 5;
Xem chi tiết trong trang chỉ dẫn trước, và luyện tập
đến cuối chương trình học.
Nhập môn về lập trình (C2) Slide 12
- Dữ liệu và kết xuất trong C
Kiểu số nguyên #include "stdafx.h"
#include
Tên kiểu “int”, sẽ nói sâu hơn
trong chương sau. void main()
{
Giá trị ghi ra trong code (literal printf("%d\n", 123);
constant): printf("%5d\n", 123);
printf("%05d\n", 123);
Ví dụ: 15, -20, 40, . . . _getch();
}
Sử dụng đặc tả “%d” hoặc “%i”
trong printf như ví dụ bên
Câu hỏi: luật in số nguyên ra màn
hình?
Nhập môn về lập trình (C2) Slide 13
- Dữ liệu và kết xuất trong C
Rèn luyện phong cách lập trình
#include “stdafx.h” #include “stdafx.h” #include “stdafx.h”
#include #include
#include
void main() void main()
void main(){ { {
printf("%d\n", 123); printf("%d\n", 123); printf("%d\n", 123);
printf("%5d\n", 123); printf("%5d\n", 123); printf("%5d\n", 123);
printf("%05d\n", 123); printf("%05d\n", 123); printf("%05d\n", 123);
_getch(); _getch(); _getch();
} }
}
Không nên!
Sử dụng TAB để canh lề code
Nên!
Nhập môn về lập trình (C2) Slide 14
- Dữ liệu và kết xuất trong C
Ký tự điều khiển #include “stdafx.h”
#include
\n (newline) void main()
\t (tab) {
printf("%d\n", 123);
\v (vertical tab) printf("%5d\n", 123);
printf("%05d\n", 123);
\f (new page) }
_getch();
\b (backspace)
\r (carriage return)
Nhập môn về lập trình (C2) Slide 15
- Dữ liệu và kết xuất trong C
Kiểu số nguyên
In nhiều số dùng chỉ một hàm printf
#include “stdafx.h”
#include
void main()
{
printf("|%5d|\t%5d|\t%5d|\n",123,456,7890);
printf("|%5d|\t%5d|\t%5d|\n",12,345,6789);
_getch();
}
Nhập môn về lập trình (C2) Slide 16
- Dữ liệu và kết xuất trong C
Kiểu số thực chấm động #include “stdafx.h”
#include
Kiểu chính xác đơn: float
Kiểu chính xác kép: double void main()
{
Giá trị ghi ra trong code (literal printf("%f\n", 123.456);
constant): printf("%10.2f\n", 123.456);
printf("%010.2f\n", 123.456);
Ví dụ: float: 5.5f _getch();
double: 5.5 }
Sử dụng đặc tả “%f” trong printf.
Câu hỏi
1. Làm sao chỉ in ra 3 ký tự sau chấm thập phân.
2. Hãy in ra số thực có 7 ký số (kể cả dấu chấm).
Nhập môn về lập trình (C2) Slide 17
- Dữ liệu và kết xuất trong C
Kiểu ký tự #include “stdafx.h”
#include
Tên kiểu: char
Giá trị ghi ra trong code void main()
{
(literal constant): printf("%c\n", 'A');
Ví dụ: „A‟, „a‟, „8‟, „(„, ... printf("%3c\n", 'a');
printf("%03c\n", '8');
Sử dụng đặc tả “%c” trong _getch();
printf. }
Câu hỏi
1. Hãy giải thích ý nghĩa của định dạng “%3c”.
2. Định dạng “%03c” in ra thế nào ?
Nhập môn về lập trình (C2) Slide 18
- Dữ liệu và kết xuất trong C
Kiểu chuỗi (string) #include "stdafx.h"
#include
Kiểu chuỗi được hiểu là dãy ký
void main()
tự (character array) và kết thúc {
bằng ký tự null („\0‟). Định printf("%s\n","01234567890123456789");
nghĩa như sau: printf("%s\n","University");
printf("%20s\n","University");
char s[50]; printf("%020s\n","University");
_getch();
Giá trị chuỗi (literal constant) }
viết trong 2 dấu nháy kép (“):
“Programming Fundamentals”,
“Computer”, ...
Sử dụng đặc tả “%s” trong
printf.
Nhập môn về lập trình (C2) Slide 19
- Nhập liệu trong C
Nguyên tắc
• Dữ liệu có thể được nhập vào từ bàn phím thông qua các hàm
nhập.
• Giá trị nhập vào sẽ được lưu giữ trong bộ nhớ.
Sinh viên tạm thời chấp nhận hai khái niệm sau:
1. Vùng nhớ được đặt tên (còn gọi là biến)
Ví dụ: int i,so; float x,y; char ktu,s[36];
2. Cách lấy địa chỉ của vùng nhớ
Ví dụ: &ktu, &so, &x
(sử dụng dấu & trước tên của biến)
Nhập môn về lập trình (C2) Slide 20
nguon tai.lieu . vn