Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C

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.

Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C trang 1

Trang 1

Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C trang 2

Trang 2

Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C trang 3

Trang 3

Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C trang 4

Trang 4

Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C trang 5

Trang 5

Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C trang 6

Trang 6

Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C trang 7

Trang 7

Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C trang 8

Trang 8

Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C trang 9

Trang 9

Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 27 trang xuanhieu 6380
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C

Bài giảng Nhập môn về lập trình - Chương 2: Cấu trúc và thành phần của chương trình C
 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"); 
 _getch(); 
 như hình bên. 
 } 
  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 
 #include "stdafx.h" 
 . Chú thích là văn bản không #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 đề */ 
 void main(){ 
 dẫn nhập cho phần tử của C. 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ônngữ 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.  
 2.  
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); 
 Ví dụ: float: 5.5f printf("%010.2f\n", 123.456); 
 _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ủabiế n) 
Nhập môn về lập trình (C2) Slide 20 
 Nhập liệu trong C 
  Hàm nhập dữ liệu 
 • Hàm scanf trong thư viện stdio.lib. 
 • Cú pháp: 
 scanf_s(,) 
 Phần đặc tả những Phần liệt kê địa chỉ của các biến tương 
 kiểu mong muốn đọc ứng với những kiểu mong muốn. 
 Dùng dấu phẩy “,” để phân cách các địa 
 chỉ 
Nhập môn về lập trình (C2) Slide 21 
 Nhập liệu trong C 
  Nhập số nguyên : %d Cửa sổ ban đầu: 
 #include "stdafx.h" 
 #include 
 void main() 
 { 
 int x; 
 (chương trình chờ người dùng nhập vào một số nguyên) 
 printf("%s", "Please enter x: "); 
 scanf_s("%d", &x); Cửa sổ sau khi nhập giá trị 123 và nhấn phím ENTER: 
 printf("%s %d\n", "x =", x); 
 _getch(); 
 } 
Nhập môn về lập trình (C2) Slide 22 
 Nhập liệu trong C 
  Đọc hai số nguyên với 1 scanf_s 
 Cửa sổ ban đầu: #include “stdafx.h” 
 #include 
 void main() 
 { 
 Nhập giá trị 123 và ENTER: int x; 
 int y; 
 printf("%s", "Please enter x: "); 
 scanf_s("%d", &x); 
 printf("%s", "Please enter y: "); 
 scanf_s("%d", &y); 
 nhập tiếp giá trị 456 và nhấn ENTER: printf("%s %d\n", "x =", x); 
 printf("%s %d\n", "y =", y); 
 _getch(); 
 } 
Nhập môn về lập trình (C2) Slide 23 
 Nhập liệu trong C 
 Chương trình ngắn hơn nhưng #include "stdafx.h" 
 #include 
 có cùng tính năng 
 void main() 
 . Hai vùng nhớ được khai báo trên { 
 cùng dòng. int x,y; 
 . Hàm scanf_s đọc hai giá trịx printf("Please enter x and y: "); 
 scanf_s("%d %d",&x,&y); 
 và y trong cùng 1 lần gọi. printf("x = %d\ny = %d\n",x,y); 
 . Hàm printf in hai giá trị x và _getch(); 
 y trong cùng 1 lần gọi. } 
 . Sử dụng các ký tự điều khiển \n 
 đúngchỗ . 
Nhập môn về lập trình (C2) Slide 24 
 Nhập liệu trong C 
 Bảng các đặc tả kiểu dữ liệu muốn nhập vào 
 Kiểu Đặc tả dữ liệu muốn đọc trong hàm scanf 
 int %d %i 
 %u (sốkhông dấu, unsigned int) 
 float %f, %e, %E, %g, %G 
 double %lf, %le, %lE, %lg, %lG 
 char %c 
 string %s 
 Xem thêm 
 1.  
Nhập môn về lập trình (C2) Slide 25 
 Xử lý đơn giản 
  Yêu cầu của chương trình: 
 • Đọc hai sốx và y là tọa độtrong không gian 2D. 
 • Tính và in ra khoảng cách từtâm hệ trục tọa độ đến điểm (x,y) 
 #include "stdafx.h" 
 #include 
 #include 
 void main(){ 
 float x, y; 
 printf("Please enter coordinates x and y: "); 
 scanf_s("%f%f", &x, &y); 
 printf("(x,y) = (%5.2f,%5.2f)\n", x, y); 
 printf("Distance to the origin = %5.2f\n", 
 sqrt(x*x + y*y)); 
 _getch(); 
 } 
Nhập môn về lập trình (C2) Slide 26 
 Xử lý đơn giản 
  Dùng thư viện toán học, cần chèn tập tin 
  Hàm sqrt(x): tính và trả về giá trịcăn bậc hai của x. 
  Kết quảnhư hình sau : 
Nhập môn về lập trình (C2) Slide 27 

File đính kèm:

  • pdfbai_giang_nhap_mon_ve_lap_trinh_chuong_2_cau_truc_va_thanh_p.pdf