52
KIẾN THỨC CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH C/C++ KỸ THUẬT LẬP TRÌNH NÂNG CAO TRƢỜNG CAO ĐẲNG CNTT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN Chƣơng 1: Giảng Viên: ThS. Dƣơng Thành Phết Email: [email protected] Website: http://www.thayphet.net Tel: 0918158670 facebook.com/DuongThanhPhet

KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

  • Upload
    others

  • View
    4

  • Download
    1

Embed Size (px)

Citation preview

Page 1: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

KIẾN THỨC CƠ BẢN VỀ

NGÔN NGỮ LẬP TRÌNH C/C++

KỸ THUẬT LẬP TRÌNH NÂNG CAO

TRƢỜNG CAO ĐẲNG CNTT TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

Chƣơng 1:

Giảng Viên: ThS. Dƣơng Thành Phết

Email: [email protected]

Website: http://www.thayphet.net

Tel: 0918158670 – facebook.com/DuongThanhPhet

Page 2: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

1. TẠO PROJECT VỚI VS 2010

Bước 1: Khởi động Visual Studio 2010

Page 3: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Bước 2: Chọn menu File / New / Project

Chọn ngôn ngữ C++ , Chọn kiểu project là Win32 Console

Application; Đặt tên cho ứng dụng ở mục Name; Click

Browse để chọn vị trí lưu Project và OK

1. TẠO PROJECT VỚI VS 2010

Page 4: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Bƣớc 3: Chọn kiểu ứng dụng Console và chọn Empty

Project. Nhấn Finish để hoàn tất.

1. TẠO PROJECT VỚI VS 2010

Page 5: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Giao diện sau khi tạo Project

Cửa số Explorer để

quản lý các file trong

Project

Chọn Solution Explorer

1. TẠO PROJECT VỚI VS 2010

Page 6: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Cửa sổ gồm 2 giao diện chính :

Vùng trống bên trái để viết Code

Phía bên phải quản lý các file trong Project

Có 3 thƣ mục chính ở cửa số Explorer:

Source Files (*.cpp): Chứa các file cài đặt các hàm

Header Files (*.h): Chứa các file khai báo

Resource Files: Chứa các tài nguyên (icon, bitmap,. . .)

1. TẠO PROJECT VỚI VS 2010

Page 7: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Qui ƣớc:

Để dễ dàng viết và quản lý code theo phương pháp lập trình thủ tục, mỗi Project mới, ta qui ước như sau:

Trong Header File:

Khaibao.H: Chứa các khai báo hàm, hằng số, …

Trong Source File:

Main.cpp: Cài đặt hàm main()

Caidat.cpp: Cài đặt các hàm con đã khai báo

1. TẠO PROJECT VỚI VS 2010

Page 8: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Tạo file khai báo (khaibao.h)

Click phải thư mục Header Files

Chọn Add Chọn New Item…

1. TẠO PROJECT VỚI VS 2010

Page 9: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Chọn Code, Header File (.h)

Nhập khaibao.h vào ô Name

Chọn OK, sau đó chọn Yes

1. TẠO PROJECT VỚI VS 2010

Page 10: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Tạo file cài đặt (Main.cpp, Caidat.cpp)

Click phải thư mục Source File -> chọn Add chọn

New Item…

Chọn Code, CPP File (.cpp)

Nhập Main.Cpp vào ô Name, chọn OK, chọn Yes

Tương tự, tiếp tục tạo file caidat.cpp

1. TẠO PROJECT VỚI VS 2010

Page 11: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Khaibao.h

#include <iostream>

using namespace std;

void Nhap(int &a, int &b);

long Tong(int a, int b);

1. TẠO PROJECT VỚI VS 2010

Ví dụ: Viết chương trình nhập vào 2 số nguyên a, b. Tính

tổng và xuất ra màn hình.

Page 12: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Main.Cpp

#include "khaibao.h"

void main()

{

int a, b;

long s;

Nhap(a, b);

s = Tong(a, b);

cout<<"Tong a va b: "<<s;

}

1. TẠO PROJECT VỚI VS 2010

Page 13: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Caidat.Cpp #include "khaibao.h"

void Nhap(int &a, int &b)

{

cout<<"Nhap so nguyen thu nhat: ";

cin>>a;

cout<<"Nhap so nguyen thu hai: ";

cin>>b;

}

long Tong(int a, int b)

{

return a + b;

}

1. TẠO PROJECT VỚI VS 2010

Page 14: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Dịch, sửa lỗi và chƣơng trình

Biên dịch và kiểm tra lỗi: Nhấn Ctrl + Shift + B

Nếu có thông báo lỗi (error) thì quan sát và sửa lỗi (cửa

sổ lỗi xuất hiện bên dưới màn hình soạn thảo code)

Chạy chương trình: Ctrl + F5 (hoặc F5)

1. TẠO PROJECT VỚI VS 2010

Page 15: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Kết quả chạy chương trình (Ctrl + F5)

1. TẠO PROJECT VỚI VS 2010

Page 16: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Cách 1:

Khởi động VS

Vào menu File/ Open / Project or Solution

Chọn thư mục chứa Project

Chọn tên Project Open

2. MỞ PROJECT

Page 17: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

Cách 2:

Mở thư mục chứa Project

Double click vào file *.sln

2. MỞ PROJECT

Page 18: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

18

3.1. Lệnh

Lệnh là một biểu thức, thực hiện một chức năng: khai

báo, gán, xuất, nhập, tính toán … được kết thúc là ;

Không nên đặt nhiều lệnh trên cùng một dòng

3.2. Khối lệnh

Khối lệnh gồm nhiều lệnh được đặt trong cặp dấu ngoặc

{ . . . }

18

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

3.3. Lời chú thích (comment):

1 dòng:

// . . . . .

Nhiều dòng:

/* . . . .

. . . . */

Page 19: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

19

19

3.4. Kiểu dữ liệu

Kiểu dữ liệu tập các giá trị thuộc một kiểu nào đó.

Gồm 2 loại:

Kiểu cơ sở: Số nguyên; Số thực; Luận lý ; Mảng; Chuỗi

Kiểu tự định nghĩa: Dùng những kiểu cơ sở để xây

dựng thành những kiểu dữ liệu mới cho phù hợp với bài

toán (Kiểu cấu trúc - struct).

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 20: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

20

STT KIỂU GHI CHU KICH THƢỚC

KIỂU LIÊN TUC (SÔ THỰC)

1 float 4 bytes

2 double 8 bytes

3 long double 8 bytes

KIỂU RỜI RẠC (SÔ NGUYÊN)

1 char Ký tự hoặc Số nguyên 1 byte

2 unsigned char Số nguyên dương 1 byte

3 short Số nguyên 2 bytes

4 unsigned short Số nguyên dương 2 bytes

5 int Số nguyên 4 bytes

6 unsigned int Số nguyên dương 4 bytes

7 long Số nguyên 4 bytes

8 unsigned long Số nguyên dương 4 bytes

KIỂU LUẬN LÝ

1 bool Gồm 2 giá trị: true hoặc false

20

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 21: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

21

3.5. Biến

Một biến đại diện cho một vùng nhớ của máy tính.

Tên biến được dùng để tham khảo đến những vùng

nhớ này.

Biến để lưu trữ các giá trị do người dùng nhập vào

hoặc các giá trị tạm thời trong quá trình tính toán.

Mỗi biến sẽ có tên và kiểu dữ liệu tương ứng.

Phải khai báo Biến trước khi sử dụng

21

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 22: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

22

Khai báo biến

Cú pháp

<Kiểu dữ liệu> tênbiến;

22

Ví dụ:

int a; //Khai báo biến để lưu số nguyên tên a

float c; //Khai báo biến để lưu số thực tên c

Khai báo nhiều biến cùng kiểu

<Kiểu dữ liệu> tênbiến1, tênbiến2, tênbiến3;

Ví dụ:

int a, x, y;

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 23: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

23

Bắt đầu bằng một ký tự.

Bao gồm: các ký tự chữ, số hoặc dấu gạch dưới (_)

Không có khoảng trắng trong tên biến.

Không dài quá 256 ký tự.

Không được trùng với các từ khoá của C

struct, long, int, while, for, if, else, continue,

typedef, do, goto, case, define, …

Không được trùng với phạm vi khai báo.

Tên gợi nhớ. Phân biệt chữ hoa và thường 23

Qui tắc đặt tên biến

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 24: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

24

3.6. Hằng

24

Hằng là các đại lượng mà giá trị của nó không thay đổi

trong suốt chương trình . Khai báo hằng:

#define tênhằng giátrị;

Ví dụ :

#define MAX 1000;

#define pi 3.141593;

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 25: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

25

25

STT PHEP TOÁN Ý NGHIA

PHEP TOÁN SÔ HOC

1 + Cộng

2 - Trừ

3 * Nhân

4 / Chia lấy phần nguyên

5 % Chia lấy phần dư

PHEP TOÁN QUAN HỆ

1 > Lớn hơn

2 < Nho hơn

3 >= Lớn hơn hoặc bằng

4 <= Nho hơn hoặc bằng

5 == Bằng nhau

6 != Khác nhau

3.7. Các phép toán

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 26: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

26

26

PHEP TOÁN LOGIC

1 ! NOT Không

2 && AND Và

3 || OR Hoặc

TOÁN TƯ TĂNG GIẢM

1 ++ Tăng 1

2 -- Giảm 1

PHEP TOÁN THAO TÁC TRÊN BIT

1 & AND

2 | OR

3 ^ XOR

4 << Dịch trái

5 >> Dịch phải

6 ~ Lấy phần bù theo bit

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 27: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

27

Cú pháp:

(BT Đ.kiện)?<KQ cho Đ.kiện đúng>:<KQ cho Đ.Kiện sai>

Ví dụ:

int n;

(n%2==0)? n ++ : n --;

nếu n = 10 thì giá trị n = 11

nếu n = 21 thì giá trị n = 20

27

3.8. Toán tử điều kiện

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 28: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

28

28

Thứ tự ưu tiên của các phép toán thường dùng theo trật tự

từ trái sang phải từ trên xuống dưới như sau:

() [ ] -- ++ & ! * /

% + - < <= > >= ==

!= && ||

Thứ tự ƣu tiên các phép toán

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 29: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

29

3.9. Hàm nhập xuất

Thƣ viện hàm: iostream.h

Hàm nhập giá trị từ bàn phím:

cin>>tênbiến;

Ví dụ: int a;

cin>>a; //Nhập giá trị từ phím sẽ lưu vào biến a

Hàm xuất giá trị ra màn hình:

cout<<tênbiến hoặc chuỗi ký tự;

Ví dụ: int a = 5, b-7;

cout<<“Gia tri cua a = “<<a<<“b=“<<b;

Ví dụ:

int b = 7, c = 9;

cout<< “Gia tri của b =“ << b << “ gia tri cua c = “ << c; 29

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 30: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

30

Xuất có định dạng

Thƣ viện iomanip.h

cout<<setw(n)<<tênbiến;

Chừa 1 khoảng n ký tự để xuất giá trị

30

Ví dụ:

int a=7, b=9;

cout<<a<<setw(5)<<b;//Chừa 5 vị trí để xuất giá trị b

Kết quả: 7 9

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 31: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

31

cout<<setprecision(n) <<tênbiến; ;

Xuất số thập phân gồm n-1 chữ số lẻ(phần thập phân)

31

Ví dụ:

float a=7.56745F, b=5.339F;

cout<<a<<endl;

cout<<setprecision(3)<<a<<endl;

cout<<setprecision(2)<<b<<endl;

Kết quả:

7.56745

7.57

5.3

5.339

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 32: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

32

Xuất ký tự đặc biệt Ký tự Ý nghĩa Ví dụ

\‟ Xuất dấu nháy đơn cout<<“ \‟ ”; Kết quả: „

\” Xuất dấu nháy đôi cout<<“ \” ”; Kết quả: “

\\ Xuất dấu chéo ngược \” cout<<“ \\ ”; Kết quả: \

\0 Ký tự Null Gán ký tự kết thúc của chuỗi

\a Alert : Tiếng bip

\t Tab vào một đoạn cout<<"xyz\tzyx”;

Kết quả: xyz zyx

\b Xuất lùi về sau cout<<"xyz\t\bzyx”;

Kết quả: xyzzyx

\n

hoặc endl Xuống dòng

cout<<"xyz\nzyx”;

Kết quả: xyz

zyx

\r Về đầu dòng cout<<"xyz\rzyx”; Kết quả:

zyx

32

3. CÁC KIẾN THỨC CƠ BẢN TRONG C++

Page 33: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

4. CẤU TRUC ĐIỀU KHIỂN

if ( Biểu thức ĐK)

khối lệnh 1;

. . . . . . .

if ( Biểu thức ĐK )

khối lệnh 1;

else

khối lệnh 2 ;

. . . . . . .

- Nếu biểu thức đúng thì sẽ

thực hiện khối lệnh 1

- Sau đó sẽ thực hiện các

lệnh tiếp sau khối lệnh 1..

- Nếu biểu thức đúng thì sẽ

thực hiện khối lệnh 1

- Nếu biểu thức sai thì bo qua

khối lệnh 1 mà thực hiện khối

lệnh 2 .

- Sau đó thực hiện tiếp các

lệnh tiếp sau.

4.1 Cấu rẽ nhánh (if . . . .else . . . )

Page 34: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

34

Ví dụ: Giải và biện luận phương trình: ax+b=0

34

4. CẤU TRUC ĐIỀU KHIỂN

Page 35: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

35

void main()

{

float a, b;

cout<<"Nhap vao a: ";

cin>>a;

cout<<"Nhap vao b: ";

cin>>b;

if (a == 0)

if (b == 0)

cout<<"Phuong trinh vo so nghiem"<<endl;

else

cout<<"Phuong trinh vo nghiem"<<endl;

else

cout<<"Phuong trinh co nghiem x = "<< -b / a<<endl;

} 35

4. CẤU TRUC ĐIỀU KHIỂN

Ví dụ: Giải và biện luận phương trình: ax+b=0

Page 36: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

36

switch (biêu thưc)

case n1:

các câu lênh ;

break ;

case n2:

các câu lênh ;

break ;

………

case nk:

<các câu lênh> ;

break ;

[default: các câu lênh]

36

4.2 Cấu trúc lựa chọn

ni là các

hằng sô

nguyên

hoặc ky tư

4. CẤU TRUC ĐIỀU KHIỂN

Page 37: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

37

void main()

{

int n;

cout<<"Nhap vao n (1<=n<=5): ";

cin>>n;

switch (n)

{

case 1: cout<<"So mot";break;

case 2: cout<<"So hai";break;

case 3: cout<<"So ba"; break;

case 4: cout<<"So bon"; break;

case 5: cout<<"So nam"; break;

default : cout<<"Khong doc duoc";

}

}

37

4. CẤU TRUC ĐIỀU KHIỂN

Page 38: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

38

38

4.3. Cấu trúc lặp - for

for (<BT khơi gán> ; <BT điêu kiên>; <BT tăng/giam>)

{

<khôi lênh>;

}

Bât ky biêu thưc nao trong 3 biêu thưc noi trên đêu co thê

văng nhưng phai giư dâu châm phây (;)

4. CẤU TRUC ĐIỀU KHIỂN

Thöïc hieän caùc leänh

trong voøng laëp

Khôûi gaùn

Ñuùng (Bieåu thöùc

ñieàu kieän khaùc 0)Kieåm tra bieåu

thöùc ñieàu kieän

Taêng/ giaûm chæ

soá laëp

Sai (Biểu thức

ñiều kiện = 0)

Page 39: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

39

while ( <biêu thưc điêu kiên>)

khôi lênh;

39

4.4. Cấu trúc lặp - while

Kiêm tra điêu kiên cua biêu thưc điêu kiên.

Nếu biêu thưc điều kiện bằng true thi thưc hiên các lênh trong

vong lăp, Quay lăp lại.

Ngươc lại thoát khoi lăp.

4. CẤU TRUC ĐIỀU KHIỂN

Page 40: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

40

do

{

<khôi lênh>;

} while (biêu thưc điêu kiên);

40

4.5. Cấu trúc lặp – do . . .While

Thưc hiên khôi lênh cho đến khi biêu thưcn điêu kiên

co giá trị băng false.

Câu trúc lăp do…while ít nhât thưc hiên khôi lênh

đươc 1 lần

4. CẤU TRUC ĐIỀU KHIỂN

Page 41: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

41

4.6. Lệnh break:

Thoát khoi các cấu trúc switch, while, for, do…while

chứa nó gần nhất.

41

4. CẤU TRUC ĐIỀU KHIỂN

4.7. Lệnh continue:

Được sử dụng trong các vòng lặp như while, for,

do…while.

Khi lệnh continue được gọi thì chương trình sẽ quay

trở về đầu vòng lặp để bắt đầu lần lặp mới

Nếu có các lệnh còn lại (cùng trong vòng lặp) đặt sau

continue sẽ không được thực hiện.

Page 42: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

42

5.1. Khái niệm

Hàm-Function

Là một đoạn chương trình độc lập thực hiện trọn

ven môt công việc nhất định sau đo tra vê gia trị

cho chương trình gọi nó

Là sư chia nho của chương trình.

Mục đích sử dụng hàm:

- Khi có một công việc giống nhau cần thực hiện ở

nhiều vị trí.

- Khi cần chia một chương trình lớn phức tạp thành

các đơn thê đê chương trình được trong sáng, dê hiểu

trong việc xử lý. 42

5. XÂY DỰNG HÀM CON

Page 43: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

43

43

5.2. Khai báo và sử dụng hàm

Type tênhàm(Các tham số){

Khai báo các biến cục bộ;

Các câu lệnh;

[return [biểu thức];]

}

Type: Kiểu dữ liệu giá trị trả về của hàm

Kiểu dữ liệu trả về của hàm gồm 2 loại

void: Không trả về giá trị

float / int / long / char */ kiểu cấu trúc / … : Trả về

giá trị kết quả có kiểu dữ liệu tương ứng

Thân hàm

5. XÂY DỰNG HÀM CON

Page 44: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

44

int Tong(int a, int b)

{

int s=a+b;

return s;

}

void main()

{

int kq = Tong (12, 3);

cout<<“Tong cua 12 va 3: “<<kq;

} 44

Truyền đối số

Tham số

Gọi hàm

5. XÂY DỰNG HÀM CON

Page 45: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

45

Ví dụ: Viết chương trình nhập sô nguyên dương n va in ra màn

hình các ước sô của n

Phân tích bài toán:

Input:

n (tham số)

Kiểu dữ liệu: số nguyên dương (int).

Output:

In ra các ước số của n (dữ liệu trả về của hàm)

Xuất ra màn hình Không trả về giá trị (Kiểu void)

Xác định tên hàm: Hàm này dùng in ra các ước số của

n nên có thể đặt là LietKeUocS

void LietKeUocSo(int n);

45

5. XÂY DỰNG HÀM CON

Page 46: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

46

File khaibao.h

#include “iostream”

using namespace std;

void LietKeUocSo(int n);

46

File caidat.cpp

#include “khaibao.h”

void LietKeUocSo(int n){

for (int i = 1; i <= n; i++)

if (n % i == 0)

cout<<i<<“\t”;

}

File main.cpp

#include “khaibao.h”

void main(){

int n;

cout<<"Nhap so nguyen duong n: ";

cin>>n;

cout<<"Cac uoc so cua “<<n<<“: “;

LietKeUocSo(n);

}

Ví dụ: Viết chương trình in ra các ước số của n

5. XÂY DỰNG HÀM CON

Page 47: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

47

Ví dụ 2: Viết chương trình nhập sô nguyên dương n và tính tổng:

Sn=1+2+3+ . . .+n ; với n>0

Phân tích bài toán:

Input:

n (tham số)

Kiểu dữ liệu: số nguyên dương (int).

Output:

Trả về giá trị của S. S là tổng các số nguyên dương

nên S cung là số nguyên dương Kiểu trả về của

hàm là int (hoặc long).

Xác định TênHàm:

Dùng tính tổng S nên có thể đặt là TongS

int TongS(int n);

47

5. XÂY DỰNG HÀM CON

Page 48: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

48

File khaibao.h #pragma once #include <iostream.h> int TongS(int n);

48

File caidat.cpp #include “khaibao.h” int TongS(int n){ int kq = 0; for (int i = 1; i <= n; i++) kq + = i; return kq; }

File main.cpp #include “khaibao.h” void main(){ int n, S; cout<<"Nhap vao so nguyen n: "; cin>>n; S = TongS(n); cout<<"Tong tu 1 den n: " <<S; }

Ví dụ 2: Viết chương trình nhập số

nguyên dương n và tính tổng:

Sn=1+2+3+ . . .+n ; với n>0

5. XÂY DỰNG HÀM CON

Page 49: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

49

5.3. Tham số là tham chiếu

Tham số làm kết quả đầu ra

Tham số vừa làm đầu vào và đầu ra

Dùng dấu & phía trước tên tham số khi cài đặt hàm

49

5. XÂY DỰNG HÀM CON

Page 50: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

50

Ví dụ: Chương trình hoán vị 2 số nguyên a, b cho trước

50

void HoanVi(int &a, int &b)

{

int tam = a;

a = b;

b = tam;

cout<<"Trong HoanVi: a = “<<a<<“ ;b = “<<b;

}

void main(){

int a = 5, b = 21;

cout<<"Truoc khi HoanVi: a = “<<a<<“ ; b = “<<b;

HoanVi(a, b);

cout<<"Sau khi goi HoanVi: a = “<<a<<“ ;b = “<<b;

}

5. XÂY DỰNG HÀM CON

Page 51: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

51

BÀI TẬP

Viết các chương trình sau bằng phương pháp sử dụng

hàm con.

1. Viết chương trình nhập vào 1 số nguyên dương n.

Tìm và in ra các số nguyên tố nho hơn n.

2. Viết chương trình nhập 2 sô nguyên dương a, b. Tìm

USCLN va BSCNN của hai sô nguyên đo

3. Viết chương trình nhập sô nguyên dương n, tính tổng

các ước số dương của n.

Ví dụ: Nhâp n=6

Tổng các ước sô từ 1 đến n: 1+2+3+6=12.

51

Page 52: KỸ THUẬT LẬP TRÌNH NÂNG CAO - thayphet.netthayphet.net/application/upload/products/Chuong01.pdf · kiẾn thỨc c bn vỀ ngÔn ng lẬp trÌnh c/c++ kỸ thuẬt lẬp trÌnh

52

The End.