Ngôn ngữ lập trình C và C++ - Bài 1: Giới thiệu - Đỗ Đăng Khoa

Tài liệu Ngôn ngữ lập trình C và C++ - Bài 1: Giới thiệu - Đỗ Đăng Khoa: 4/20/2015 1 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Ngôn ngữ lập trình C và C++ Bài 1: Giới thiệu TS. Đỗ Đăng Khoa Bộ môn Cơ học Ứng dụng Viện Cơ Khí 4/20/2015 2 Ngôn ngữ lập trình - Ngôn ngữ được thiết kế và chuẩn hóa (từ khóa và cú pháp) để truyền các chỉ thị cho máy tính. - Dùng để tạo ra các chương trình điều khiển máy tính hoặc mô tả các thuật toán TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 4/20/2015 3 Ngôn ngữ lập trình (tiếp) Ngôn ngữ máy Hợp ngữ Ngôn ngữ cấp cao TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 4/20/2015 4 Ngôn ngữ lập trình (tiếp) • Ngôn ngữ máy Máy có thể trực tiếp hiểu và thực hiện, chỉ gồm những con số (0,1) nạp trực tiếp vào bộ nhớ để chạy, phụ thuộc vào từng dòng máy • Hợp ngữ Các mã lệnh và con số thay bằng tên viết tắt (tiếng Anh), cần bộ dịch (assemblers), phụ thuộc vào dòng máy, nhiều lệnh cho một việc đơn giản TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI • Ngôn ngữ bậc cao Gần với ngôn ngữ tự nhiên, cần bộ biên dịch, không phụ thuộc dòng máy, lệnh đơn giản làm...

pdf53 trang | Chia sẻ: putihuynh11 | Lượt xem: 650 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Ngôn ngữ lập trình C và C++ - Bài 1: Giới thiệu - Đỗ Đăng Khoa, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
4/20/2015 1 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Ngụn ngữ lập trỡnh C và C++ Bài 1: Giới thiệu TS. Đỗ Đăng Khoa Bộ mụn Cơ học Ứng dụng Viện Cơ Khớ 4/20/2015 2 Ngụn ngữ lập trỡnh - Ngụn ngữ được thiết kế và chuẩn húa (từ khúa và cỳ phỏp) để truyền cỏc chỉ thị cho mỏy tớnh. - Dựng để tạo ra cỏc chương trỡnh điều khiển mỏy tớnh hoặc mụ tả cỏc thuật toỏn TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 4/20/2015 3 Ngụn ngữ lập trỡnh (tiếp) Ngụn ngữ mỏy Hợp ngữ Ngụn ngữ cấp cao TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 4/20/2015 4 Ngụn ngữ lập trỡnh (tiếp) • Ngụn ngữ mỏy Mỏy cú thể trực tiếp hiểu và thực hiện, chỉ gồm những con số (0,1) nạp trực tiếp vào bộ nhớ để chạy, phụ thuộc vào từng dũng mỏy • Hợp ngữ Cỏc mó lệnh và con số thay bằng tờn viết tắt (tiếng Anh), cần bộ dịch (assemblers), phụ thuộc vào dũng mỏy, nhiều lệnh cho một việc đơn giản TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI • Ngụn ngữ bậc cao Gần với ngụn ngữ tự nhiờn, cần bộ biờn dịch, khụng phụ thuộc dũng mỏy, lệnh đơn giản làm được nhiều việc • Ngụn ngữ trớ tuệ nhõn tạo và mạng nơron Gần gũi với ngụn ngữ con người. Vớ dụ cõu lệnh FIND ALL RECORDS WHERE NAME IS “NAM” 4/20/2015 5 Phõn loại • Trực tiếp (Immediate) Mỏy tớnh tay • Thụng dịch (Interprete) Quỏ trỡnh dịch và thực thi xảy ra đồng thời, dịch đến đõu thi hành lệnh đến đấy (ngụn ngữ Lisp trong AutoCAD). TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI • Biờn dịch (Compile) Gần với ngụn ngữ tự nhiờn. Muốn thực thi được thỡ phải được chuyển sang ngụn ngữ mỏy (biờn dịch) 4/20/2015 6 Cỏc phương phỏp lập trỡnh • Lập trỡnh khụng cấu trỳc (tuần tự) Chương trỡnh chỉ gồm hàm chớnh và dữ liệu Đặc điểm: mó nguồn bị trựng lặp nhiều khú bảo trỡ và nõng cấp Main function TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI + Data 4/20/2015 7 Cỏc phương phỏp lập trỡnh • Lập trỡnh cấu trỳc Chương trỡnh được cấu trỳc bao gồm hàm chớnh và cỏc hàm con. - Hàm con cú thể được gọi thực hiện nhiều lần (trỏnh lặp mó nguồn). TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Việc trao đổi dữ liệu giữa cỏc hàm nhờ cỏc tham số. Function 1 Function 2 Function 3 Main function Data 4/20/2015 8 Cỏc phương phỏp lập trỡnh • Lập trỡnh module Cỏc hàm được đúng gúi trong cỏc thư viện độc lập - module (dll, libf) - Sử dụng được trong nhiều chương trỡnh khỏc nhau. - Ẩn và đúng gúi dữ liệu, cũng như triển khai bờn trong. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Module 1 Data Function 1 Function 2 Module 2 Data Function 3 Module 3 Data Function 4 Main function Data 4/20/2015 9 Cỏc phương phỏp lập trỡnh • Lập trỡnh hướng đối tượng - Dữ liệu được trừu tượng húa và triển khai thành lớp. - Sử dụng lớp để tạo ra cỏc đối tượng. - Cỏc đối tượng sử dụng thụng điệp để trao đổi với nhau. message TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Object 2 Data Object 3 Data Object 4 Data Object 1 Data Main function Data 4/20/2015 10 Cỏc phương phỏp lập trỡnh • Lập trỡnh hướng dịch vụ - Dịch vụ được cung cấp cho cỏc ứng dụng khỏc qua giao thức truyền thụng, chủ yếu là qua mạng. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Quy tắc hướng dịch vụ là độc lập với bất cứ nhà cung cấp, sản phẩm hay cụng nghệ. 4/20/2015 11 Chương trỡnh Chương trỡnh là một chuỗi cỏc chỉ thị (lệnh) - được viết bằng ngụn ngữ lập trỡnh (mó nguồn) - để thực hiện một việc cụ thể bằng mỏy tớnh. • Cỏc bước viết một chương trỡnh - Bước 1: Soạn thảo mó nguồn TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Bước 2: Tiền xử lý mó nguồn theo cỏc chỉ thị tiền xử lý (#include, #define) - Bước 3: Biờn dịch mó nguồn  mó đối tượng (.obj) [mó mỏy] - Bước 4: Liờn kết mó đối tượng với cỏc mó hoặc thư viện đối tượng khỏc (.lib)  mó thực thi (.exe), module (dll, libf). - Bước 5: Nạp mó thực thi vào bộ nhớ 4/20/2015 12 Chương trỡnh - Bước 6: Chạy mó thực thi cựng với cỏc dữ liệu đầu vào để thu được cỏc đầu ra (kết quả) mong muốn. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 4/20/2015 13 Ngụn ngữ lập trỡnh C/C++ • Ngụn ngữ lập trỡnh C - Tỏc giả Dennis Ritchie, tại Bell Labs, giữa 1970 - Thiết kế để lập trỡnh hệ thống (một phần HĐH hay tiện ớch hỗ trợ HĐH - interpreters, compilers, editors, etc) - UNIX là chương trỡnh lớn đầu tiờn • Ngụn ngữ lập trỡnh C++ TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Mở rộng cho C (hỗ trợ cỏc cỳ phỏp C) nhằm tăng cường tớnh an toàn - Cung cấp nhiều lựa chọn - Đơn giản húa lập trỡnh ở mức cao hơn - Cung cấp cỏch tiếp cận tốt hơn đối với cỏc chương trỡnh quy mụ lớn 4/20/2015 14 Ngụn ngữ lập trỡnh C/C++ C C++ Khụng phải ngụn ngữ hướng đối tượng. Là một ngụn ngữ hướng đối tượng (gồm 4 khỏi niệm về hướng đối tượng) Chỉ hỗ trợ cỏc struct. Hỗ trợ cỏc lớp (class) và đối tượng (object). Khụng cú biến tham chiếu, chỉ hỗ trợ con trỏ. Hỗ trợ cả biến tham chiếu và con trỏ. Sử dụng cỏc hàm scanf và printf để nhập xuất. Sử dụng cỏc hàm cin>> và cout<< để nhập xuất. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Khụng thể khai bỏo hàm trong cỏc struct. Cú thể khai bỏo hàm trong cỏc struct. Khụng hỗ trợ cỏc hàm inline, thay vào đú cú thể sử dụng khai bỏo #define Hỗ trợ cỏc hàm inline. Sử dụng phương phỏp tiếp cận từ trờn xuống (top-down). Sử dụng phương phỏp tiếp cận từ dưới lờn (bottom-up). Là ngụn ngữ lập trỡnh hướng chức năng (function oriented). Là ngụn ngữ lập trỡnh hướng đối tượng (Object oriented). 4/20/2015 15 Cỏc từ khúa chớnh trong C++ C++ Keywords Keywords common to the C and C++ programming languages auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI switch typedef union unsigned void volatile while C++ only keywords asm bool catch class const_cast delete dynamic_cast explicit false friend inline mutable namespace new operator private protected public reinterpret_cast static_cast template this throw true try typeid typename using virtual wchar_t 4/20/2015 16 Cỏc cụng cụ soạn thảo • Sử dụng cỏc cụng cụ cú mụi trường tớch hợp cho phộp soạn thảo, biờn dịch và liờn kết để tạo ra mó thực thi.  Turbo C ++ 3.0  Visual C++ (dạng Win32 Console) cú trong tất cả cỏc TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI phiờn bản Visual Studio 6.0, Visual Studio mới hơn (2002, 2003, 2005, 2008, 2010, 2012) gồm miễn phớ (Express Edition) và cú bản quyền (Professional Edition).  C-Free  Dev-C++  Borland C++ 4/20/2015 17 Cấu trỳc một chương trỡnh C/C++ i. Chỳ thớch ii. Chỉ thị tiền xử lý iii. Hàm iv. Thõn hàm v. Cõu lệnh return TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Chương trỡnh bắt buộc phải cú một hàm chớnh – hàm được gọi ngay khi chương trỡnh thực thi. - Hàm main dưới cho phộp truyền dữ liệu bằng tham số dũng lệnh C C++ main() main(int argc, char** argv) int main() int main(int argc, char** argv) 4/20/2015 18 Cấu trỳc một chương trỡnh /* This is my first C program It prints a line of text */ #include Chỳ thớch Chỉ thị tiền xử lý TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI main() { printf("Hello world\n"); return 0; } Hàm Thõn hàm Lệnh return Hỡnh 1 4/20/2015 19 Cấu trỳc một chương trỡnh // This is my first C++ program // It prints a line of text #include Chỳ thớch Chỉ thị tiền xử lý TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI int main() { std::cout << "Hello world\n"; return 0; } Hàm Thõn hàm Lệnh return Hỡnh 2 4/20/2015 20 Chỳ thớch trong C/C++ • Mục đớch - Làm chương trỡnh dễ đọc và dễ hiểu hơn • Cỳ phỏp chốn chỳ thớch - Văn bản bắt đầu với /* và kết thỳc với */. Văn bản cú thể TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI chứa nhiều dũng - Văn bản bắt đầu với //, thường dựng cho một dũng (C++) • Chỳ ý - Mọi chỳ thớch đều bị trỡnh biờn dịch bỏ qua - Cú thể được chốn bất kỳ chỗ nào trong chương trỡnh 4/20/2015 21 Chỉ thị tiền xử lý Chỉ thị sẽ được xử lý trước khi chương trỡnh được biờn dịch • #include: Bao hàm tệp cú chứa cỏc nguyờn mẫu hàm cú sẵn hoặc tự định nghĩa sẽ được dựng trong chương trỡnh • Cỳ phỏp - #include filename: tệp chứa nguyờn mẫu hàm TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI #include #include •#define: Định nghĩa hằng số, macro (một khối lệnh) • Cỳ phỏp - #define ten_hang gia_tri_hang 4/20/2015 22 Một số thư viện hay dựng trong C/C++ #include // vào ra chuẩn trong C++ #include // vào ra chuẩn trong C #include // cỏc hàm toỏn học #include // contains random funct #include // cỏc hàm về thời gian #include .// cỏc hàm về ủịnh dạng TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Cỏc hàm: printf(), scanf(), putchar(), getchar() nằm trong thư viện Cỏc hàm cout, cin, cin.get(), cin.getline() nằm trong thư viện , Cỏc hàm clrscr(), getch() nằm trong thư viện Cỏc hàm định dạng như endl, setw(), nằm trong thư viện 4/20/2015 23 Hàm Chớnh - Main() main() và int main() - Dấu ngoặc () sau main xỏc định main là một khối chương trỡnh gọi là hàm - Cỏc vớ dụ đó cho chỉ cú một hàm duy nhất TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Chương trỡnh C/C++ thường bắt đầu thực thi từ hàm main. • Chỳ ý - int: kiểu giỏ trị trả về từ hàm bằng lệnh return. - Khụng cú kiểu trả về mặc định là kiểu int 4/20/2015 24 Thõn hàm - Dấu ngoặc múc trỏi, {, bắt đầu thõn hàm - Dấu ngoặc múc phải tương ứng, }, kết thỳc thõn hàm • Nội dung trong thõn hàm  Chứa cỏc lệnh TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Khai bỏo biến - Nhập xuất dữ liệu - Tớnh toỏn biểu thức  Mọi lệnh kết thỳc với dấu chấm phẩy, ;. 4/20/2015 25 Thõn hàm Trong hai vớ dụ, thõn hàm gồm 2 cõu lệnh.  Cõu lệnh 1: Gọi hàm printf và std::cout<< để in ra màn hỡnh dũng chữ - Hello world. - printf: dựng để in nội dung ra màn hỡnh. - std::cout<<: dựng đối tượng dũng xuất chuẩn cout và TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI toỏn tử xuất << để in nội dung ra màn hỡnh. std là tờn của khụng gian tờn chứa đối tượng và toỏn tử xuất. - Trong vớ dụ, nội dung là một xõu ký tự (cỏc ký tự nằm giữa hai dấu “”). - Ký tự \n chỉ thị xuống dũng mới cho nội dung in tiếp theo - Trong C++, thay \n bằng lệnh endl. 4/20/2015 26 Cõu lệnh return return 0; - Lệnh return được dựng cuối hàm main, giỏ trị 0 chỉ ra rằng chương trỡnh đó kết thỳc thành cụng. - Cú thể được gọi bất cứ đõu trong thõn hàm để kết thỳc TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI chương trỡnh và trả về giỏ trị khỏc 0 nhằm đưa ra một mó lỗi nào đú. 4/20/2015 27 In bảng nhiệt độ F  C với C = (5/9)*(F-32) /* In bảng Fahrenheit-Celsius cho fahr = 0, 20, ..., 300 */ #include main() { TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI float fahr, celsius; int lower, upper, step; lower = 0; /* Cận dưới của bảng nhiệt độ */ upper = 300; /* cận trờn */ step = 20; /* bước tăng */ 4/20/2015 28 In bảng nhiệt độ F  C với C = (5/9)*(F-32) fahr = lower; while (fahr <= upper) { celsius = (5.0/9.0)* (fahr-32); printf("%4.0f\t%6.1f\n", fahr, celsius); TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI fahr = fahr + step; } return 0; } 4/20/2015 29 In bảng nhiệt độ F  C với C = (5/9)*(F-32) Kết quả: 0 -17.8 20 -6.7 40 4.4 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 60 15.6 80 26.7 w. w. 280 137.8 300 148.9 4/20/2015 30 In bảng nhiệt độ F  C với C = (5/9)*(F-32) /* In bảng Fahrenheit-Celsius cho fahr = 0, 20, ..., 300 */ #include main() { Chỳ thớch Chỉ thị tiền xử lý Kiểu dữ liệu Tờn biến Số thực TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI float fahr, celsius; int lower, upper, step; lower = 0; /* Cận dưới của bảng nhiệt độ */ upper = 300; /* cận trờn */ step = 20; /* bước tăng */ Khai bỏo biến để lưu giỏ trị cố định hoặc thay đổi Gỏn giỏ trị cho cỏc biến Số nguyờn 4/20/2015 31 In bảng nhiệt độ F  C với C = (5/9)*(F-32) fahr = lower; while (fahr <= upper) { celsius = (5.0/9.0)* (fahr-32); printf("%4.0f\t%6.1f\n", fahr, celsius); fahr = fahr + step; Gỏn giỏ trị cận dưới bảng cho biến fahr Cỏc biểu thức và phộp toỏn như trong toỏn Phộp chia, /, phõn biệt cho số nguyờn và thực: - 5/9  0 - 5.0/9 != 0 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI } return 0; } Chu trỡnh lặp lại cỏc cõu lệnh trong {f} khi thỏa món điều kiện fahr <= upper học truyền thống - Tớnh C theo F - In F và C ra màn hỡnh - Tăng F theo bước tăng 4/20/2015 32 Xuất / Nhập trong C- Cõu lệnh printf Cõu lệnh: printf("%4.0f\t%6.1f\n", fahr, celsius); - Nội dung trong lệnh printf, ngoài xõu ký tự cũn cú thờm cỏc biến được in giỏ trị ra màn hỡnh - Để in một biến: xõu ký tự mụ tả và tờn biến - Xõu ký tự, bắt đầu bằng dấu phần trăm, %. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Kết thỳc tương ứng bởi ký tự chuyển dạng: %f  số thực (mặc định chớnh xỏc 6 số sau dấu thập phõn) printf(“%f”, fahr); - %mf  m là bề rộng tối thiểu để in biến - %.nf n là số cỏc số sau dấu thập phõn - %m.nf: %4.0f, %6.1f 4/20/2015 33 Mó định dạng Định dạng printf() scanf() Ký tự đơn (single character) %c %c Chuỗi (string) %s %s Số nguyờn cú dấu (signed decimal integer) %d %d Kiểu float - dạng dấu chấm thập phõn (decimal notation) %f %f hoặc %e TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Kiểu float - dạng dấu chấm thập phõn %lf %lf Kiểu float - dạng lũy thừa (exponential notation) %e %f or %e Kiểu float ( %f hay %e , khi ngắn hơn) %g Số nguyờn khụng dấu (unsigned decimal integer) %u %u Số nguyờn hệ 16 khụng dấu - sử dụng “ABCDEF” (unsigned hexadecimal integer) %x %x Số nguyờn hệ 8 khụng dấu (unsigned octal integer) %o %o 4/20/2015 34 Mó định dạng (tiếp) Mó định dạng Cỏc qui ước in %d Cỏc con số trong số nguyờn %f Phần thập phõn sẽ in 6 chữ số. Nếu phần thập phõn ớt hơn 6 chữ số  thờm cỏc chữ số 0 vào từ bờn phải, ngược lại  làm trũn số từ bờn phải. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Vớ dụ: 1.23  1.230000 0.1234567  0.123457 %e In ra số cú kiểu float hoặc double, ở dạng khoa học: một con số phần nguyờn, những số cũn lại chuyển sang phần thập phõn Vớ dụ: 12345 1.234500e+04 0.12345 1.234500e-1 4/20/2015 35 Mó định dạng (tiếp) STT Lệnh Chuỗi điều khiển Nội dung chuỗi điều khiển Danh sỏch đối số Giải thớch danh sỏch đối số Hiển thị trờn màn hỡnh 1. printf(“%d”,300); %d Chỉ chứa lệnh định dạng 300 Hằng 300 2. printf(“%d”,10+5); %d Chỉ chứa lệnh định dạng 10 + 5 Biểu thức 15 3. printf(“Good Morning Mr. Lee.”); Good Morning Mr. Lee. Chỉ chứa cỏc ký tự văn bản Rỗng Rỗng Good Morning Mr. Lee. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 4. int count = 100; printf(“%d”,count); %d Chỉ chứa lệnh định dạng count Biến 100 5. printf(“\nhello”); \nhello Chứa ký tự khụng được in và cỏc ký tự văn bản Rỗng Rỗng hello on a new line 6. #define str “Good Apple “ .. printf(“%s”,str); %s Chỉ chứa lệnh định dạng str Hằng ký hiệu Good Apple 7. int count,stud_num; count=0; stud_num=100; printf(“%d %d\n”,count, stud_num); %d %d Chứa lệnh định dạng và ký tự khụng được in count, stud_num Hai biến 0 , 100 4/20/2015 36 Cỏc ký tự đặc biệt \\ In ra ký tự \ \ “ In ra ký tự “ %% In ra ký tự % TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 4/20/2015 37 Vớ dụ cho hàm printf() Chương trỡnh hiển thị số nguyờn, thập phõn, ký tự và chuỗi #include void main() { int a = 10; float b = 24.67892345; TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI char ch = ‘A’; printf(“Integer data = %d”, a); printf(“Float Data = %f”,b); printf(“Character = %c”,ch); printf(“This prints the string”); printf(“%s”,”This also prints a string”); } 4/20/2015 38 Bổ từ trong hàm printf( ) 1. Bổ từ ‘-‘ Phần tử dữ liệu sẽ được canh lề trỏi, phần tử sẽ được in bắt đầu từ vị trớ bờn trỏi trong cựng của trường. 2. Bổ từ xỏc định độ rộng trường ( vớ dụ: %10d ) Áp dụng được cho cả: int, float, double, char TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 3. Độ chớnh xỏc (vớ dụ: %4.2f ) Áp dụng cho: float, double char Nếu dựng với kiểu float hay double, chuỗi con số xỏc định số lượng lớn nhất cỏc con số được in bờn phải dấu chấm thập phõn. 4/20/2015 39 Bổ từ trong hàm printf( ) 4. Bổ từ ‘0’ Mặc định thỡ khoảng trống sẽ được thờm vào một trường. Nếu người dựng muốn thờm số 0 vào trường thỡ bổ từ ‘0’ được dựng 5. Bổ từ ‘l’ Bổ từ này cú thể được dựng hiển thị cỏc đối số nguyờn kiểu TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI int hay double. Mó định dạng tương ứng là %ld 4/20/2015 40 Bổ từ trong hàm printf( ) 6. Bổ từ ‘h’ Bổ từ này được sử dụng để hiển thị dạng short int. Mó định dạng tương ứng như là %hd 7. Bổ từ ‘*’ TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Nếu người dựng khụng muốn xỏc định độ rộng trường nhưng muốn chương trỡnh xỏc định điều đú, bổ từ này được sử dụng 4/20/2015 41 Vớ dụ về cỏc bổ từ #include int main(){ printf ("Characters: %c %c \n", 'a', 65); printf ("Decimals: %d %ld\n", 1977, 650000L); printf ("Preceding with blanks: %10d \n", 1977); printf ("Preceding with zeros: %010d \n", 1977); TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI printf ("Some different radices: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100); printf ("floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416); printf ("Width trick: %*d \n", 5, 10); printf ("%s \n", "A string"); return 0;} 4/20/2015 42 Xuất nhập trong C- Cõu lệnh scanf( ) Được sử dụng để nhập dữ liệu Dạng tổng quỏt của hàm scanf() scanf(“control string”, argument list);  Những định dạng dựng trong hàm printf() cũng được sử TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI dụng với cựng cỳ phỏp trong hàm scanf() 4/20/2015 43 Sự khỏc nhau về danh sỏch đối số giữa printf( ) và scanf( )  printf() sử dụng cỏc tờn biến, hằng, hằng biểu tượng và cỏc biểu thức  scanf() sử dụng cỏc con trỏ hay địa chỉ tới biến Danh sỏch đối số trong scanf() phải theo qui tắc : TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Đọc giỏ trị vào một biến cú kiểu dữ liệu cơ sở, sử dụng ký hiệu & trước tờn biến Đọc giỏ trị vào một biến cú kiểu dữ liệu dẫn xuất, khụng sử dụng & trước tờn biến 4/20/2015 44 Vớ dụ với hàm scanf( ) #include void main(){ int a; float d; char ch, name[40]; printf(“Please enter the data\n”); TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI scanf(“%d %f %c %s”,&a,&d,&ch,name); printf(“\n The values accepted are: %d,%f,%c,%s”,a, d,ch,name); } 4/20/2015 45 Vựng đệm Nhập/Xuất Được sử dụng để đọc và viết cỏc ký tự ASCII Một vựng đệm (buffer) là một khụng gian lưu trữ tạm thời trong bộ nhớ hoặc trờn thẻ điều khiển thiết bị Bộ đệm Nhập/Xuất cú thể chia làm : - Console I/O TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Buffered File I/O 4/20/2015 46 Console I/O Cỏc hàm Console I/O chuyển cỏc thao tỏc đến thiết bị xuất nhập chuẩn của hệ thống Trong ‘C’ cỏc hàm console I/O đơn giản nhất là: getchar( ) - đọc một và chỉ một ký tự từ bàn phớm TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI putchar( ) - xuất một ký tự lờn màn hỡnh 4/20/2015 47 getchar( ) Dựng đọc dữ liệu nhập, một ký tự từ bàn phớm Cỏc ký tự đặt trong vựng đệm đến khi người dựng gừ phớm enter Hàm getchar( ) khụng cú đối số, nhưng vẫn phải cú cặp dấu ngoặc ( ) TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 4/20/2015 48 Vớ dụ hàm getchar() /*Program to demonstrate the use of getchar()*/ #include void main() { TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI char letter; printf(“\nPlease enter any character:“); letter = getchar(); printf(“\nThe character entered by you is %c“, letter); } 4/20/2015 49 putchar( ) Hàm xuất ký tự trong ‘C’ Cú một đối số Đối số của một hàm putchar( ) cú thể là : TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Một hằng ký tự đơn - Một mó định dạng - Một biến ký tự 4/20/2015 50 Cỏc tựy chọn và chức năng của putchar( ) Đối số Hàm Chức năng Biến ký tư putchar(c) Hiển thị nội dung của biến ký tư c Hằng ký tư putchar(‘A’) Hiển thị ký tự A TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Hằng sụ putchar(‘5’) Hiển thị số 5 Mó định dạng putchar(‘\t’) Tạo tab Mó định dạng putchar(‘\n’) Xuống dũng 4/20/2015 51 putchar( ) /* This program demonstrates the use of constants and escape sequences in putchar()*/ #include void main(){ putchar(‘H’); putchar(‘\n’); putchar(‘\t’); putchar(‘E’); putchar(‘\n’); TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI putchar(‘\t’); putchar(‘\t’); putchar(‘L’); putchar(‘\n’); putchar(‘\t’); putchar(‘\t’); putchar(‘\t’); putchar(‘L’); putchar(‘\n’); putchar(‘\t’); putchar(‘\t’); putchar(‘\t’); putchar(‘\t’); putchar(‘O’); } 4/20/2015 52 Vào/ ra trong C++ Vào dữ liệu từ bàn phớm - cin #include int main() { int bien1, bien2,bien3; cin >> bien1 ; TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI cin >> bien2 ; cin >> bien3 ; /* hoặc: cin >> bien1 >> bien2 >> bien3 ; */ } 4/20/2015 53 Vào/ ra trong C++ In dữ liệu ra màn hỡnh- cout #include int main() { int bien1, bien2,bien3; cout<<“In du lieu ra man hinh \n”; TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI cout<< bien1 ; cout<< bien2 ; cout<<bien3 ; /* hoặc: cout <<bien1 << bien2 <<bien3 ; */ }

Các file đính kèm theo tài liệu này:

  • pdfngon_ngu_lap_trinh_c_va_c_bai_1_gioi_thieu_ve_c_va_c_7152_1993517.pdf
Tài liệu liên quan