Bài giảng Ngôn ngữ lập trình C và C+ - Bài 1: Giới thiệu - Đỗ Đăng Khoa
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
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng 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 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 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 đượ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 ; */ }
File đính kèm:
- bai_giang_ngon_ngu_lap_trinh_c_va_c_bai_1_gioi_thieu_do_dang.pdf