Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 114 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
114
Dung lượng
756,33 KB
Nội dung
Đại học Thái Nguyên-Trờng ĐHSP. Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ Ngôn ngữ lập trình C++ Chơng 1 Giới thiệu ngôn ngữ C++ 1.1. Xuất xứ của ngôn ngữ C Ngôn ngữ lập trình C do Dennis Ritchie và Brian Kernighan xây dựng năm 1970, thể hiện đợc tất cả các đặc trng của ngôn ngữ lập trình bậc cao nhng cũng có khá đầy đủ các khả năng của ngôn ngữ lập trình bậc thấp. Cùng với sự phát triển mạnh mẽ của công nghệ thông tin (CNTT), ngôn ngữ C có rất nhiều phiên bản của các hãng khác nhau nh C chuẩn, Turbo C, Microsoft C Sau ngôn ngữ C là C++ ngoài các tính năng nh C, C++ còn đợc bổ sung nhiều tính năng khác, một trong đó là kỹ thuật lập trình hớng đối tợng, một hớng lập trình rất quan trọng. 1.2. Một số đặc trng của ngôn ngữ C Khác với ngôn ngữ Pascal, trong ngôn ngữ C không có sự phân biệt giữa hàm và thủ tục. Chơng trình của C bao gồm nhiều hàm nằm trong các tệp khác nhau, mỗi hàm đợc xây dựng độc lập và có thể gép nối với nhau một cách dễ dàng. Trong ngôn ngữ C có nhiều mô hình tổ chức bộ nhớ, làm cho chơng trình viết bằng C sử dụng bộ nhớ tiết kiệm và hiệu quả. Con trỏ trong C là một công cụ mạnh mẽ cho phép truy nhập vào mọi nguồn t liệu và hệ thống một cách hiệu quả. C cho phép phát triển giao diện đồ hoạ rất tiện dụng Chính vì thế mà hầu hết các hệ thống chơng trình lớn đều đợc viết bằng C, và việc học ngôn ngữ C là bắt buộc đối với các sinh viên chuyên ngành CNTT và những ngời lập trình chuyên nghiệp. Trong tài liệu này chúng ta chủ yếu xét Turbo C Vr.3.0 của Borland, bởi lẽ C++ đang đợc cài đặt phổ biến trên các máy vi tính, sử dụng tơng đối dễ dàng và đợc trang bị kỹ thuật lập trình hớng đối tợng, vấn đề này sẽ đợc xét trong một chuyên đề tiếp theo. 3 Đại học Thái Nguyên-Trờng ĐHSP. Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ 1.3. Cài đặt ngôn ngữ C Để cài đặt đợc C++ vào máy phải có bộ chơng trình gốc TURBO C++ 3.0 của Borland, bộ chơng trình này có thể chứa trên các đĩa mềm hoặc trong đĩa CD. Việc cài đặt tiến hành đơn giản nh sau: chạy chơng trình INSTALL trong đĩa thứ nhất, rồi làm theo các chỉ dẫn trên màn hình. Cũng có thể sử dụng bộ chơng trình Microsoft C++, việc cài đặt bằng cách thực hiện chơng trình SETUP. 1.4. Tạo chơng trình trong C Bộ xử lý văn bản Editor của C++ cho phép ta tạo ra các chơng trình nguồn. Để nhanh chóng tạo ra văn bản chơng trình ta cần nhớ một số thao tác sau: Tạo tệp mới : File New Mở tệp : File Open (F3) Ghi tệp : File Save (F2) Ghi với tên khác : File Save as Dịch chơng trình : Compile (Alt + F9) Chạy chơng trình : Run (Ctrl + F9) Thoát ra : File Quit (Alt + X) Thao tác với khối: Đánh dấu dầu khối : Ctrl + K + B Đánh dấu cuối khối : Ctrl + K + K Chuyển khối vào bộ nhớ đệm : Edit + Cut Sao chép khối vào bộ nhớ đệm : Edit + Copy Sao chép khối tới vị trí con trỏ : Edit + Paste ẩn, hiện khối : Ctrl + K + H Đọc tệp từ đĩa vào vị trí con trỏ : Ctrl + K + R Ghi khối lên đĩa : Ctrl + K + R Tìm một xâu : Ctrl + Q + F Tìm và thay thế : Ctrl + Q + A Xem trợ giúp : Help (F1) 4 Đại học Thái Nguyên-Trờng ĐHSP. Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ 1.5. Ví dụ Ví dụ chơng trình 1.1: Hiện xâu Hello lên màn hình // chuong trinh dau tien HELLO.CPP # include <iostream.h> void main() { cout << "Hello !"; // hiện xâu Hello } Ví dụ chơng trình 1.2: Tính giai thừa n! // Tinh giai thua GTHUA.CPP # include <iostream.h> // Hàm tính giai thừa long gthua(int &n) { int gt = 1; for (int i = 1; i <= n; i++) gt = gt*i; return gt; } // Chơng trình chính void main() { int k; cout << "\nNhap so n = "; cin >> k; cout << k << "! = " << gthua(k); } Nhận xét: - Trong chơng trình C có một chơng trình (hàm) chính main() và có thể có hoặc không các hàm con. - Dấu { và } giống nh Begin và End trong Pascal. - Kết thúc một lệnh có dấu chấm phẩy (;). - Lời giải thích đặt sau cặp ký tự //, và có thể đặt trên một dòng hay sau một dòng lệnh. - C phân biệt tên viết bằng chữ thờng với chữ hoa. - Khối lệnh (lệnh ghép) là các lệnh đặt trong cặp dấu ngoặc nhọn { }. 5 Đại học Thái Nguyên-Trờng ĐHSP. Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ Chơng 2 Các khái niệm cơ bản 2.1. Tập các ký hiệu của ngôn ngữ C 26 chữ cái hoa A Z, 26 chữ cái thờng a z 10 chữ số : 0, 1, 2, , 9 Các ký hiệu phép toán: + - * / = () Ký tự nối _ (dấu gạch dới). Các ký hiệu đặc biệt: . , : [ ] { } ! @ # 2.2. Các từ khoá Từ khoá là những từ đợc sử dụng để xác định những tên đã đợc quy định sẵn trong C++, ngời sử dụng không thể đặt các tên trùng với từ khoá. Sau đây là danh sách các từ khoá trong C++: asm continue float new signed try auto default for operator sizeof typedef break delete friend private static union case do goto protected struct unsigned catch double if public switch virtual char else inline register template void class enum int return this volatile const extern long short throw while 2.3. Tên gọi Tên gọi là tên các biến, hàm, lớp do ngời sử dụng tạo ra trong các chơng trình. Tên gọi phải tuân theo các quy định sau đây: Bắt đầu bằng một chữ cái hay dấu gạch dới, sau đó có thể là các chữ cái, chữ số hay dấu gạch dới. Chữ cái hoa và chữ cái thờng là khác nhau. Không đợc trùng với các từ khoá. 6 Đại học Thái Nguyên-Trờng ĐHSP. Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ 2.4. Các kiểu dữ liệu cơ sở Kiểu dữ liệu cơ sở là các kiểu dữ liệu đã đợc xây dựng sẵn trong C++, các kiểu trong C++ đợc biểu diễn theo cấu trúc phân cấp nh sau: Các kiểu dữ liệu trong C++ Kiểu do ngời sử dụng định nghĩa structure union class enumeration Kiểu dẫn array function xuất pointer Kiểu dữ liệu cơ sở Số n g u y ên void doublefloat cha r int Số th ự c Ngoại trừ kiểu void, các kiểu dữ liệu cơ sở có thể sử dụng kết hợp với signed (có dấu), unsigned (không dấu), long (số dài), short (số ngắn). Bảng sau đây sẽ cho biết kích thớc và miền xác định của các kiểu cơ sở: Kiểu Số byte Miền xác định char 1 -128 127 unsigned char 1 0 255 signed char 1 -128 127 int 2 -32768 32767 unsined int 2 0 65535 signed int 2 -32768 32767 short int 2 -32768 32767 unsigned short int 2 0 65535 signed short int 2 -32768 32767 long int 4 -214783648 214783647 signed long int 4 -214783648 214783647 unsigned long int 4 0 4294967295 float 4 3.4E-37 3.4E+38 double 8 1.7E-308 1.7E+308 long double 10 3.4E-4932 1.1E+4932 7 Đại học Thái Nguyên-Trờng ĐHSP. Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ 2.5. Khai báo biến Mọi biến cần phải khai báo trớc khi sử dụng. Việc khai báo biến đợc thực hiện theo quy tắc chung nh sau: Kiểu dữ liệu <danh sách tên biến>; Ví dụ: int a, b, c; // Khai báo 3 biến kiểu int float x, y; //Khai báo 2 biến kiểu float char ch1; // Khai bái 1 biến kiểu char Khi khai báo các biến cũng có thể khởi tạo ngay giá trị cho chúng, ví dụ: int s1 = 5, s2, s3 = 10; Vị trí khai báo biến: C++ cho phép khai báo các biến ở bất kỳ vị trí nào trong miền xác định. Ví dụ, hãy xem việc khai báo các biến trong đoạn chơng trình sau: float x; // khai báo biễn x float s = 0; // khai báo biến s và khởi tạo giá trị 0 cho nó for (int i = 1; i<=10; i = i+1) // khai báo biến trong vòng lặp { cout << Nhap x = ; cin >> x; s = s + x; } float TB = s/10; // gán giá trị động khi thực hiện cout << TB; Miền tác dụng của biến đợc xác định từ điểm biến đợc khai báo cho đến cuối khối chứa khai báo đó. Biến đợc khai báo bên trong của khối đợc gọi là biến cục bộ của khối đó, biến đợc khai báo ngoài cùng đợc gọi là biến tổng thể. 2.6. Hằng Hằng là các đại lợng mà giá trị của nó không thay đổi trong quá trình hoạt động của chơng trình. Hằng số nguyên int: 45 8 Đại học Thái Nguyên-Trờng ĐHSP. Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ Hằng long: 4599L; 123l Hằng float và double: 12.5; -0.001; 15. ; 1E-5; 1.327E+9 Hằng nguyên hệ 16: oxa9; OX15AF Hằng ký tự: A ; a; 0 Hằng xâu ký tự: Ha noi; DHSP; a; Khai báo hằng: const n = 10; // khai báo hằng n = 10 # define pi 3.14159 // khai báo hằng pi = 3.14159 enum{A = 100; B = 150}; 2.8. Nhập/xuất 2.8.1. Nhập xuất bằng lệnh cin, cout Để viết dữ liệu ra màn hình có thể dùng lệnh cout nh sau: cout << <bt> [<< <bt> ] [ ]; Ví dụ: cout << Hello; int a = 5, b = 9; cout << Tich ab = << a*b ; Để nhập dữ liệu vào từ bàn phím có thể dùng lệnh cin nh sau: cin >> tên_biến [<< tên_biến] [<< ]; Ví dụ: cin >> n1; cin >> n2; Có thể gộp hai lệnh trên lại nh sau: cin >> n1 >> n2; Chú ý rằng, để sử dụng đợc các lệnh cin và cout trên trong chơng trình phải có lệnh # include <iostream.h> ở đầu chơng trình. Ví dụ chơng trình 2.1: Lập chơng trình nhập hai số nguyên vào từ bàn phím rồi tính tổng của chúng. // chuong trinh vi du nhap xuat # include <iostream.h> 9 Đại học Thái Nguyên-Trờng ĐHSP. Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ void main() { int a,b; cout << "a = "; cin >> a; cout << "b = "; cin >> b; cout << "a + b = " << a+b; } C có nhiều lệnh nhập xuất dữ liệu, sau đây ta xét thêm lệnh xuất printf, lệnh nhập scanf và gets. 2.8.2. Nhập xuất bằng printf, scanf, gets Để sử dụng đợc các hàm này phải có dẫn hớng # include <stdio.h> ở đầu chơng trình. Hàm printf có khả năng chuyển dạng, tạo khuôn và đa các giá trị ra màn hình. Dạng tổng quát của hàm nh sau: int printf(const char *dk [,danh sách các biểu thức]); Các ký tự điều khiển: \n : sang dòng mới. \f : sang trang mới. \b : lùi lại một bớc. \t : dấu tab Các ký tự đặc tả dạng: quy định khuôn dạng dữ liệu đợc in ra %c : ký tự đơn. %s : chuỗi %d : số nguyên có dấu. %f : số thập phân dấu chấm tĩnh. %e : số thập phân dấu chấm động. %x : số nguyên hệ 16 không dấu. %u : số nguyên hệ 10 không dấu. %o : số nguyên hệ 8 không dấu. l : tiền tố cùng với %d, %x để chỉ số nguyên dài (ví dụ %ld). 10 Đại học Thái Nguyên-Trờng ĐHSP. Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ Để xác định độ rộng của biểu thức in ra ta thêm chuỗi quy định độ rộng vào giữa, chẳng hạn nh: %5d, %7.3f Ví dụ: printf(%5d %8.2f,12, 759.23678); thì sẽ in ra là: 12 759.24 Hàm scanf cho phép đọc thông tin từ thiết bị vào chuẩn (bàn phím), rồi lu vào biến nhố. Hàm có dạng nh sau: int scanf(const char *dk [, danh sách biến nhớ]; Trong hàm scanf có dùng toán tử địa chỉ & trớc tên biến. Ví dụ: int a, b; printf(\nNhap so a, b : ); scanf(%d %d, &a, &b); Khi dùng các lệnh cin hay scanf để nhập các chuỗi mà trong nó có chứa dấu cách, thì phần chuỗi nhập vào từ dấu cách trở đi sẽ bị bỏ qua, chẳng hạn nhập chuỗi Lê Văn Hùng thì biến nhập chỉ nhận đợc Lê. Để khắc phục điều đó ta có thể dùng hàm gets. Hàm gets có dạng: char *gets(char *s); Ví dụ chơng trình 2.2: Nhập vào 2 số rồi in ra tổng của chúng: # include <stdio.h> void main() { int a,b; printf("a = "); scanf("%d",&a); printf("b = "); scanf("%d",&b); printf("a + b = %d",a+b); } Ví dụ chơng trình 2.3: Nhập vào họ và tên của một ngời và in ra màn hình: # include <stdio.h> void main() { char ht[18]; printf("\nVao ho va ten : "); gets(ht); printf("\nBan da nhap %s",ht); } 11 Đại học Thái Nguyên-Trờng ĐHSP. Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ 2.9. Toán tử 2.9.1. Toán tử số hoc: Các toán tử số học gồm có: + Cộng - Trừ * Nhân / Chia % D số Độ u tiên: các phép toán nhân chia đợc thực hiện trớc công và trừ. 2.9.2. Toán tử gán Toán tử gán: = Nếu có lệnh: s = s + i; Có thể viết : s += i; Tơng tự có các toán tử gán số học sau: -= *= /= %= Ví dụ: int a=5, b, c; b = c = 10; 2.9.3. Toán tử tăng giảm Câu lệnh i = i +1; Có thể viết gọn thành: i++; hay ++i; ++i tăng giá trị của biến rồi mới sử dụng, còn i++ dùng biến rồi mới tăng giá trị. Tơng tự có các toán tử giảm . 2.9.4. Toán tử quan hệ Các toán tử quan hệ gồm có: < > <= >= == != Kết quả của các toán tử quan hệ là 1 (đúng), hoặc 0 (sai). Các toán tử số học có độ u tiên cao hơn các toán tử quan hệ. 2.9.5. Toán tử logic Các toán tử logic gồm có: && logic AND 12 [...]... Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ 4.1.3 Tổ chức chơng trình Phân tách chơng trình lớn thành các modul chơng trình nhỏ độc lập, mỗi modul là một hàm con giải quyết một công việc cụ thể Từng hàm sẽ đợc hoàn chỉnh, kiểm tra sau đó lại kết nối lại thành một hệ thống chơng trình 4.1.4 Tính độc lập Tính độc lập cho phép các chơng trình con độc lập với chơng trình chính Chẳng hạn trong chơng trình con có... nh trên 17 Lập chơng trình in ra 1000 số nguyên tố đầu tiên 25 Đại học Thái Nguyên-Trờng ĐHSP Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ Chơng 4 Hàm và cấu trúc chơng trình Hàm đóng vai trò quan trọng trong chơng trình C Chơng trình đợc chia thành nhiều đơn thể chức năng theo cách tiếp cận trên-xuống, và đợc thiết kế theo phơng pháp lập trình có cấu trúc Một chờng viết trong ngôn ngữ C bao... Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ 8 Lập chơng trình tính S = 9 Lập chơng trình tính n!! = 1 + 3 + 5 + + n neu n le 2 + 4 + 6 + + n neu n chan 1 x 3 x 5 x x n neu n le 2 x 4 x 6 x x n neu n chan 10 Lập chơng trình tính S = 1 -1/2 + 1/3 - 1/4 + 1/5 - 1/6 + với độ chính xác 10-6 11 Lập chơng trình tính S = 1! + 2! + 3! + + n! 12 Lập chơng trình tính khai triển Taylor hàm số sau:... chơng trình nhập 3 số x, y, z và tìm số lớn nhất và nhỏ nhất trong chúng 4 Lập chơng trình tìm ƯSCLN của hai số nguyên dơng a, b 5 Giải và biện luận phơng trình aX4 + bX2 + c = 0 6 Lập chơng trình in ra bảng căn bậc 2 và căn bậc 3 của 100 số tự nhiên đầu tiên 7 Lập chơng trình nhập một số tự nhiên có ba chữ số và đổi thành chữ 24 Đại học Thái Nguyên-Trờng ĐHSP Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập. .. lệnh trong chơng trình nh sau: number =45; 32 Đại học Thái Nguyên-Trờng ĐHSP Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ Bạn yêu cầu trình biên dịch dịch dòng lệnh này ra mã máy, để chip vi xử lý có thể thực hiện đợc Thay vì phải dịch ngay sang mã máy, các dẫn hớng tiền xử lý yêu cầu trình biên dịch phải xử lý chúng theo một yêu cầu nào đó của ngời lập trình trớc khi bắt đầu trình biên dịch,... vị độc lập của chơng trình Các hàm có vai trò ngang nhau, cho nên trong ngôn ngữ C không cho phép xây dựng một hàm nằm bên trong một hàm khác Hàm có dạng chung nh sau: type tên_hàm(danh sách tham số hình thức) { // thân hàm } Ví dụ: float max(float x, float y) { if ( x > y ) return x; else return y; } 27 Đại học Thái Nguyên-Trờng ĐHSP Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ Trong C++ có... Mạnh Đức Ngôn ngữ lập trình C++ Trong C có các loại biểu thức: - Biểu thức số: giá trị của biểu thức là số - Biểu thức logic: giá trị của biểu thức là đúng (1) hoặc sai (0) - Biểu thức ký tự: giá trị của biểu là một ký tự thuộc bảng mã ASCII - Biểu thức chuỗi ký tự: giá trị của biểu thức là một chuỗi ký tự 15 Đại học Thái Nguyên-Trờng ĐHSP Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ Chơng... Nguyên-Trờng ĐHSP Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ đợc sử lại nhiều lần Ta có thể đặt tất những thứ đó vào một tệp tin nguồn riêng với phầm mở rộng là h (ví dụ progres.h) Khi viết chơng trình cần phải sử dụng các công việc xử lý trên, ta chỉ cần đa phát biểu: # include progres.h vào đầu chơng trình là đợc 4.3.3 Các tệp tin header chuẩn Trong ngôn ngữ C có một số tệp header chuẩn, chứa các... main) và các hàm con (mỗi hàm là một chơng trình con) Thứ tự của các hàm trong chơng trình là bất kỳ, nhng chơng trình bao giờ cũng đợc thực hiện từ hàm main Trong C++ các hàm đợc bổ sung nhiều đặc tính mới hỗ trợ cho lập trình hớng đối tợng 4.1 Chức năng của hàm 4.1.1 Hàm main() Chơng trình trong C là một tập các hàm trong đó có một hàm main(), đó là nơi chơng trình đợc bắt đầu và kết thúc Trong C hàm... các chơng trình lớn và phức tạp thì việc khai báo nguyên mẫu hàm càng quan trọng 28 Đại học Thái Nguyên-Trờng ĐHSP Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ Ví dụ chơng trình 4.2: Tính diện tích hình tròn # include # define PI 3.14159 void main() { float dtht(float r); //Khai bao nguyen mau ham cout . Khoa Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ Ngôn ngữ lập trình C++ Chơng 1 Giới thiệu ngôn ngữ C++ 1.1. Xuất xứ của ngôn ngữ C Ngôn ngữ lập trình C do Dennis Ritchie và Brian. Toán-Tin Nguyễn Mạnh Đức Ngôn ngữ lập trình C++ 1.3. Cài đặt ngôn ngữ C Để cài đặt đợc C++ vào máy phải có bộ chơng trình gốc TURBO C++ 3.0 của Borland, bộ chơng trình này có thể chứa trên. đặc trng của ngôn ngữ lập trình bậc cao nhng cũng có khá đầy đủ các khả năng của ngôn ngữ lập trình bậc thấp. Cùng với sự phát triển mạnh mẽ của công nghệ thông tin (CNTT), ngôn ngữ C có rất