GIÁO TRÌNH NGÔN NGỮ LẬP TRÌNH C++
Chia sẻ bởi Đinh Như Nghĩa |
Ngày 14/10/2018 |
40
Chia sẻ tài liệu: GIÁO TRÌNH NGÔN NGỮ LẬP TRÌNH C++ thuộc Tư liệu tham khảo
Nội dung tài liệu:
Trang
1
Giáo án
Ngôn ngữ lập trình C++
Trang
2
Tên môn: Ngôn ngữ lập trình C++
Số tiết: 60 (30: LT - 30: TH)
Giáo trình thực hành: mua Cô Thu
Kiểm tra: 3 (KT) + 1(Thi)
Tài liệu tham khảo:
P:gvduc Giáo trình C++
Trang
3
Chương I: Ngôn ngữ C++
Bài 1: Giới thiệu
I. Ngôn ngữ lập trình
Là công cụ để giải bài toán trên máy tính.
Trang
4
II. Giao diện Borland C (Turbo C++)
1. Khởi động -thoát khỏi Turbo C++
a. Khởi động
- Kích đôi chuột vào biểu tượng Turbo C++ trên màn hình Desktop.
Trang
5
Trang
6
Trang
7
b.Cửa sổ soạn thảo chương trình - Khi con trỏ nhấp nháy ta có thể gõ vào các dòng lệnh của tập tin nguồn
- Dùng chuột hoặc các phím trong quá trình soạn thảo
Trang
8
+ Các phím mũi tên
+ Lên trang trên, xuống trang dưới: PgUp, PgDn
Trang
9
- Các lệnh chèn, xoá
+ Chế độ chèn : Insert
+ Xoá dòng có con trỏ đang đứng: Ctrl + Y
+ Xoá kí tự ở bên trái, phải và ngay vị trí con trỏ:
BackSpace, Delete.
Trang
10
- Các lệnh về khối văn bản thường dùng
+ Đánh dấu khối: Shift + một phím mũi tên
+ Sao chép khối:
Edit Copy (Ctrl + Insert).
Trang
11
Trang
12
c. Phần cửa sổ thông báo (message) và quan sát (watch)
- Khi chạy chương trình gặp lỗi sẽ hiển thị trong cửa sổ thông báo
Trang
13
d. Thanh trạng thái
Khi ở chế độ soạn thảo:
F1: Help
- F2: Save Tên.Cpp
F3: Open
F4: Go to Cursor
F5: Zoom
F6: Next
Trang
14
F7: Trace Into
F8: Step Over
F9: Make
F10: Menu
Trang
15
Tổ hợp phím cần nhớ:
+ Ctrl + F9: Compile & Run
+ Alt + F5: User screen
+ Alt + F3: Close
+ Alt + F8: Next Msg
+ Alt + F7: Prev Msg
Trang
16
IV. Cấu trúc chung của chương trình C++
# include <...>
void main()
{ //Các câu lệnh ghi ở đây
...
}
Trang
17
//Khai báo các hàm
Kiểu_dữ_liệu Tên_hàm (Các tham số)
{
.. .// các lệnh của hàm return (...);
// Trả về giá trị nào đó cho tên hàm
}
Trang
18
- Ví dụ: Chương trình in ra dòng chữ:
Hello K5T1B
Trang
19
# include
#include
void main()
{
cout<<"Hello K5T1B" ;
getch() ;
}
Trang
20
-Biên dịch chương trình: F9
Biên dịch & chạy chương trình: Ctrl + F9
Lưu ý:
Warning: cảnh báo
Error: lỗi
Trang
21
Bài 2:
Các thành phần cơ bản của C++
Trang
22
I. Kí hiệu
- Bộ kí tự dùng trong ngôn ngữ lập trình C++:
+ Các chữ cái hoa: A, B,.. ., Z
+ Các chữ cái thường: a, b,.. ., z
+ Các chữ số: 0,.. .,9
+ Các dấu chấm câu: , . ; : ? []{}
Trang
23
- Dấu cách, dấu nhảy cách tab,..
- Dấu gạch nối dưới.
Trang
24
II. Từ khoá
1. Khái niệm
- Do C++ quy định, không thay đổi được.
- Các từ khoá mang một ý nghĩa cú pháp nhất định, đòi hỏi người dùng phải tuân theo, không được sử dụng vào việc khác hoặc đặt tên mới trùng với từ khoá.
Trang
25
2. Các từ khoá thông dụng
int, char, float, long, double, if, else, switch, case, while, do, for, return, break, struct, unsigned, void,...
Trang
26
III. Quy tắc đặt tên
- Tên: Tên chương trình, tên biến, tên hàm, tên hằng,.. .
- Tên là các kí tự đứng liền nhau, gồm:
+ Các chữ cái: A,.. ., Z, a,.. ., z
+ Các chữ số: 0,.. ., 9
+ Dấu gạch dưới: _
Trang
27
- Quy tắc đặt tên:
+ Không bắt đầu bằng số.
+ Không chứa dấu cách trắng, dấu chấm câu.
+ Không trùng với từ khoá.
+ Không dùng dấu tiếng Việt
+ Độ dài tối đa 32 kí tự
- Lưu ý: C++ phân biệt chữ thường và chữ hoa.
Trang
28
IV. Một số quy tắc viết mã lệnh
1. Câu lệnh và dấu chấm câu
- Mỗi lệnh trong C++ được kết thúc bằng dấu ;
Ví dụ: int x =5;
- Trong chương trình có nhiều chỗ không dùng đến dấu ; vì đó không phải câu lệnh
Ví dụ: #include
Trang
29
2. Cách ghi lời giải thích
- Lời giải thích không có tác dụng tạo ra mã chương trình. Nó chỉ đơn giản là lời thuyết minh cho dễ hiểu
- Phần lời giải thích đặt trên 1 dòng:
+ Dùng cặp kí hiệu //
+ Mỗi cặp // chỉ có tác dụng từ // đến hết dòng
Trang
30
- Ví dụ:
// Bat dau chuong trinh chinh
void main()
{
.. .
}
Trang
31
V. Lệnh nhập, xuất
1. Xuất dữ liệu ra màn
- Cú pháp:
cout<<< Tham số> ;
Trong đó: Tham số có thể là hằng, biến, biểu thức, hàm, phần tử mảng, .. . mà giá trị của nó cần hiển thị lên màn hình
Trang
32
- Ví dụ:
cout<<"Gia tri cua x la" << x;
- Công dụng: Dùng để in dữ liệu ra màn hình.
Trang
33
2. Lệnh nhập dữ liệu
- Cú pháp:
cin>> < Tham số> ;
Tham số: chỉ có thể là biến
- Ví dụ: cout<<" Nhap x= ";
cin>>x;
- Công dụng: Dùng để đọc các kí tự từ bàn phím, chuyển dịch và lưu nó vào một ô nhớ xác định
Trang
34
- Chú ý:
Khi dùng hàm cout và cin phải khai báo
#include
Trang
35
3. Hàm xoá màn hình
- Cú pháp:
clrscr();
- Công dụng: Xoá sạch màn hình lần chạy trước khi chạy chương trình
- Chú ý: Khi dùng phải khai báo
#include
Trang
36
4. Hàm getch()
- Cú pháp:
getch();
- Công dụng: Dừng màn hình để xem kết quả hiển thị
- Chú ý: Khi dùng phải khai báo
#include
Trang
37
5. Hàm đọc vào một xâu kí tự
- Cú pháp:
gets(< Tham_số>);
Trong đó Tham_số là biến kiểu char.
- Ví dụ: char s;
gets(s);
- Chú ý: Khi dùng phải khai báo
#include
Trang
38
Bài 3:
Kiểu dữ liệu, biến, hằng
I. Kiểu dữ liệu
1. Phân loại
Trang
39
Số nguyên
Số thực
Kiểu kí tự
Do người lập trình tự định nghĩa
Cơ sở
Kiểu con trỏ
Kiểu dữ liệu có cấu trúc
Kiểu vô hướng
Mảng
Cấu trúc
Tập tin
Trang
40
2. Kiểu số nguyên
Từ khoá Số byte Dải giá trị
char 1 -128.. .127
int ? ?
long ? ?
unsigned int ? ?
unsigned long ? ?
Trang
41
3. Kiểu số thực
Từ khoá Số byte Dải giá trị
float ? ? double ? ?
long double ? ?
Trang
42
4. Kiểu kí tự
- Từ khoá: char
- Hằng kí tự đặt trong cặp dấu ` `
- Ví dụ:
char s;
s=`C`;
Trang
43
Xâu (chuỗi) kí tự đặt trong cặp
" "
- Ví dụ:
char st[100];
st ="Chao cac ban!";
Trang
44
II. Biến
1. Khái niệm
- Là một đại lượng có thể thay đổi giá trị khi thực hiện chương trình.
Trang
45
2. Khai báo
- Cú pháp:
;
+ Trong đó TenBien được đặt tên theo qui tắc đặt tên.
+ Muốn khai báo từ 2 biến trở lên có cùng KDL thì các tên biến đặt cách nhau bởi dấu ,
- Ví dụ:
float y;
float a, b;
Trang
46
* Vị trí khai báo biến: Các biến phải được khai báo trước khi sử dụng.
Khai báo biến ngoài: Biến được khai báo sau khi khai báo thư viện.
-> biến có thể được sử dụng bất kỳ đâu trong chương trình (biến công cộng hay toàn cục).
Trang
47
+ Ví dụ:
#include
int x;
void main()
{
...
}
Trang
48
- Khai báo biến trong: Các biến được đặt trong hàm hoặc trong khối lệnh.
-> Biến chỉ có tác dụng trong hàm hoặc trong khối lệnh (biến địa phương).
Trang
49
+ Ví dụ:
void InSo( )
{
int i = 100;
cout<<" i = "< }
-> biến i chỉ có tác dụng trong hàm InSo.
Trang
50
- Khai báo đối số hàm:
+ Vị trí của biến đặt trong phần định nghĩa tham số hàm.
Ví dụ:
int tong(int x, int y)
{
return (x + y);
}
Trang
51
3. Gán và lấy giá trị
- Mỗi biến đều có kiểu dữ liệu của chúng. Nếu không gán giá trị ban đầu cho biến thì biến mang giá trị trong miền kiểu dữ liệu được khai báo.
Trang
52
- Khai báo và gán:
= ;
Ví dụ 1:
int x;
cout<<"x = " << x;
Ví dụ 2:
long a = 100;
cout<<" a = "<Trang
53
III. Hằng
1. Khái niệm và khai báo
- Là những đại lượng mà giá trị của nó không thay đổi trong quá trình tính toán.
- Khai báo với từ khoá const
const =;
- Ví dụ: const float pi =3.14;
const float trieu = 1000000;
Trang
54
2. Cách sử dụng
- Sau khi khai báo hằng, trong chương trình khi sử dụng TenHang sẽ được thay bằng GiaTri
- Ví dụ:
const float trieu = 1000000;
...
cout<<"Luong = "<< 5*trieu;
Trang
55
IV. Biểu thức và các phép toán
1. Biểu thức
a. Khái niệm
- Biểu thức là công thức tính toán để có một giá trị theo một qui tắc toán học nào đó.
Ví dụ: 8*3 + 4;
x + cos(y);
.. .
Trang
56
b. Các kiểu biểu thức
- Biểu thức số học: là biểu thức tính ra giá trị bằng số.
Biểu thức quan hệ: Là biểu thức chứa toán tử quan hệ (<, >, <=, >=, ==, !=).
- Biểu thức logic: Là biểu thức về nguyên tắc có giá trị đúng (True) hoặc sai (False).
Trang
57
Phép gán:
biến = biểu thức;
Ví dụ:
long x, y;
x = 100;
y = x + 200;
Trang
58
2. Các phép toán
Các phép toán số học:
+, -, *, /, %
c. Các phép toán quan hệ:
<, >, <=, >=, ==, !=
b. Các phép toán logic:
&&, ||, !
Trang
59
d. Các phép tăng, giảm một giá trị
- Phép toán tăng:
i = i + 1 được viết: i++ hoặc ++i
- Phép toán giảm:
i = i -1 được viết: i-- hoặc -- i
Sự khác nhau giữa ++i và i++
++i : i được tăng trước khi gán
i++: i được gán trước khi tăng
Trang
60
Ví dụ: cho x = 3
a = x++; a = ++ x;
a = x--; a = --x;
3. Phép chuyển đổi kiểu
Cú pháp: (kiểu) (biểu thức)
Ví dụ:
cout<< 15/ 4;
cout<<15/ (float) (4);
Trang
61
Chương II
Cấu trúc điều khiển
Bài 1: Cấu trúc lệnh
Trang
62
I. Lệnh và khối lệnh
1. Lệnh
Lệnh có thể là một tác vụ, một biểu thức. Để kết thúc lệnh trong C++ ta sử dụng dấu chấm phẩy (;).
Ví dụ: getch();
x = y + 3;
Trang
63
2. Khối lệnh
Là dãy các lệnh nằm trong cặp dấu{ và }
Ví dụ:
{
s = s + i;
i++;
}
Trang
64
II. Cấu trúc điều khiển
1. Cấu trúc rẽ nhánh
a. Cấu trúc rẽ nhánh có điều kiện: if.else, switch.case
b. Cấu trúc rẽ nhánh không điều kiện: break, continue
Trang
65
III. Cách biểu diễn thuật toán
1. Biểu diễn bằng ngôn ngữ
Để biểu diễn thuật toán bằng ngôn ngữ bạn phải nắm chắc bộ từ khoá như:
Nếu.thì;
Trong khi.thì;
.. .
Trang
66
Ví dụ: Viết thuật toán giải phương trình bậc 2: aX2 + bX + c = 0
Kiểu dữ liệu của các biến
Nhập hệ số a;
Khi a # 0 thì
Nhập hệ số b,c
Delta = b*b -4*a*c
Trang
67
Nếu Delta < 0 thì
Phương trình vô nghiệm
Ngược lại
Nếu Delta = 0 thì
Phương trình có nghiệm kép
Ngược lại
Phương trình có hai nghiệm
Lệnh dừng để xem kết quả
Trang
68
2. Biểu diễn bằng sơ đồ khối
Trang
69
Ví dụ: Sơ đồ khối PT bậc 1
Trang
70
Bài 2:
Cấu trúc rẽ nhánh
Trang
71
1. Câu lệnh if
Cú pháp 1:
if (biểu thức)
{
Khối lệnh;
}
Câu lệnh 2;
Trang
72
Hoạt động
Nếu biểu thức đúng (hoặc # 0) thì thực hiện khối lệnh rồi thực hiện câu lệnh 2, ngược lại chỉ thực hiện câu lệnh 2.
Ví dụ: Tìm số lớn nhất trong hai số nhập từ bàn phím.
Trang
73
Thuật toán:
Khai báo biến a, b, max kiểu nguyên
Nhập giá trị cho hai biến a và b
Gán max =a // giả sử a là số lớn nhất
Nếu b > a thì max =b
In kết quả max.
Chương trình
#include
#include
Trang
74
void main() {
int a, b, max;
cout<<"nhap so thu nhat: "; cin>>a;
cout<<" nhap so thu hai: ";cin>>b;
max = a;
if (b > a)
max = b;
cout<<" gia tri lon nhat la:"< getch();
}
Trang
75
Cú pháp 2
if (biểu thức)
{
Khối lệnh 1;
}
else
{
Khối lệnh 2;
}
Câu lệnh 3;
Trang
76
Hoạt động:
Nếu biếu thức cho giá trị đúng (hoặc # 0) thì thực hiện khối lệnh 1 rồi thực hiện câu lệnh 3, ngược lại thực hiện khối lệnh 2 rồi thực hiện câu lệnh 3.
Ví dụ: Tìm số lớn nhất trong hai số nhập từ bàn phím.
Trang
77
Thuật toán:
Khai báo biến a, b, max kiểu nguyên
Nhập giá trị cho hai biến a và b
Nếu b > a thì max=b;
Ngược lại
max = a;
In kết quả max.
Trang
78
Chương trình
#include
#include
void main()
{ int a, b, max;
cout<<"nhap so thu nhat: "; cin>>a;
cout<<" nhap so thu hai: "; cin>>b;
Trang
79
if (b > a)
max =b;
else
max =a;
cout<<" Gt lon nhat la:"< getch():
}
Trang
80
2. Lệnh switch.case
a. Cú pháp:
Trang
81
switch ()
{ case : [Khối lệnh 1];
[break];
case : [khối lệnh 2];
[break]; ......
case : [khối lệnh n];
[break];
[default : [khối lệnh n + 1];]
}
Trang
82
b. Hoạt động
- Tính giá trị của biểu thức, nếu biểu thức bằng , trong đó: i? [1, n] thì sẽ thực hiện từ trở đi cho đến khi gặp lệnh break hoặc đến hết lệnh switch.
- Nếu giá trị của không bằng một trong các giá trị được liệt kê sau case thì câu lệnh sau default (nếu có) sẽ được thực hiện hoặc thoát khỏi câu lệnh switch.
Trang
83
c. Ví dụ:
Viết chương trình nhập vào số nguyên xem có phải là số 0 hay 1 hay 2, nếu không phải 1 trong 3 số trên thì xuất ra dòng chữ "xin chao"
Chương trình
#include
#include
Trang
84
void main()
{
int n;
cout<<"nhap n = ";
cin>>n;
Trang
85
switch(n ) {
case 0 : cout<<"so 0";
break;
case 1 : cout<<"so 1";
break;
case 2 : cout<<"so 2";
break;
default : cout<<"xin chao";
}
getch();
}
Trang
86
II. Rẽ nhánh không điều kiện
1. Lệnh break
Lệnh break cho phép thoát khỏi vòng lặp, switch..case và chuyển quyền điều khiển chương trình cho lệnh nằm ngay sau lệnh trên.
Ví dụ: Nhập từ bàn phím vào số điểm trung bình của học sinh, sau đó xuất ra kết quả xếp loại tương ứng với số điểm.
Trang
87
Ví dụ: Nhập từ bàn phím vào số điểm trung bình của học sinh, sau đó xuất ra kết quả xếp loại tương ứng với số điểm.
Trang
88
Chương trình
#include
#include
void main()
{ int diem;
cout<<" Nhap diem vao: ";
cin>>diem;
Trang
89
switch(diem)
{ case 0:
case 1:
case 2:
case 3: cout<<" kem "; break;
case 4: cout<<" yeu "; break;
case 5:
case 6: cout<<" trung binh"; break;
Trang
90
case 7:
case 8: cout<<` kha "; break;
case 9:
case 10 cout<<" gioi "; break;
default:
cout<<` Nhap diem lai";
}
getch();
}
Trang
91
2. Lệnh continue
Trái với lệnh break, lệnh continue cho phép chuyển sang lần lặp tiếp theo mà không cần thực hiện phần còn lại.
Trang
92
Bài 3
Cấu trúc lặp
Trang
93
I. Vòng lặp for
1. Cú pháp:
for([biểu thức1];[biểu thức2];[biểu thức3])
[ khối lệnh] ;
Trang
94
Trong đó:
[biểu thức 1]: biểu thức khởi tạo
[biểu thức 2]: biểu thức điều kiện
[biểu thức 3]: biểu thức thay đổi điều kiện
Trang
95
2. Họat động
- Bước 1: thực hiện biểu thức 1.
- Bước 2: kiểm tra biểu thức 2. Nếu biểu thức 2 sai (hoặc =0) thì thoát khỏi vòng lặp for, ngược thực hiện khối lệnh.
- Bước 3: Thực hiện biểu thức 3.
- Bước 4: Quay lại bước 2 cho đến khi thoát khỏi vòng lặp.
Trang
96
3. Ví dụ: Tính tổng
S = 1 +2 +3 +.+n, với n nhập từ bàn phím (n >0)
Chương trình
#include
#include
Trang
97
{
int n, s, i ;
cout<<" nhap n= ";
cin>>n;
s = 0;
for( i = 1 ; i <= n ; i++) s =s + i;
cout<<"tong = "< getch();
}
Trang
98
II. Vòng lặp while
1. Cú pháp
while ()
[khối lệnh ];
Trang
99
2. Hoạt động
- Nếu biểu thức cho giá trị đúng (hoặc ? 0) thì thực hiện khối lệnh và quay lại kiểm tra điều kiện.
- Nếu biểu thức cho giá trị sai (hoặc =0) thì thoát khỏi vòng lặp
Trang
100
3. Minh họa:
Ví dụ 1:
Viết chương trình tính ước số chung lớn nhất của 2 số nguyên dương a, b.
Trang
101
Ví dụ 2: Viết chương trình nhập từ bàn phím vào tiền vốn, lãi suất /1 năm. Hỏi đến năm bao nhiêu tiền có được gấp đôi tiền vốn ban đầu.
Trang
102
III. Vòng lặp do...while
1. Cú pháp
do
{ khối lệnh;
}while();
2. Hoạt động
- Bước 1: Thực hiện khối lệnh
- Bước 2: kiểm tra biểu thức, nếu biểu thức cho giá trị đúng (hoặc # 0) thì quay lại bước 1, ngược lại thoát khỏi vòng lặp.
Trang
103
3. Ví dụ: Tính tổng
S = 1 + 2 + 3 +.+ n, với n nhập từ bàn phím (n >0).
Chương trình
#include
#include
Trang
104
void main()
{ int n, s, i ;
cout<<" nhap n= "; cin>>n;
s = 0; i =1;
do{
s = s + i;
i++;
}while(i <=n);
cout<<"tong = "< getch();
}
Trang
105
Chương III:
Chương trình con, Mảng
Bài 1: Chương trình con
Trang
106
I. Khái niệm:
- Chương trình con là một đoạn chương trình thực hiện các công việc thường được lặp lại nhiều lần trong chương trình chính.
Trang
107
- C++ chỉ có một loại chương trình con duy nhất là hàm
- Hàm có thể không có kiểu trả về, không có đối số, không có giá trị trả về.
II. Khai báo:
[ Kiểu trả về] <([ khai báo các tham số và kiểu của nó])>
{
[return (giá_trị_trả_về)]
}
1. Cú pháp
Trang
108
a. Truyền theo giá trị:
2. Truyền tham số thực cho các đối số
- Giá trị của tham số thực trước và sau khi gọi hàm là không thay đổi.
b. Truyền theo điạ chỉ:
Trang
109
Trang
110
*a: giá trị được lưu trữ trong bộ nhớ có địa chỉ là a.
Trang
111
Cú pháp:
Tên_hàm()
III. Lời gọi hàm:
Ví dụ: Ta viết hàm GT (tính giai thừa) của số nguyên n , như sau:
long int GT(int n)
{ long int gt = 1;
for(int i = 1; i <= n; i++) gt = gt *i;
return gt;
}
Trang
112
Tại hàm main ta gọi hàm GT:
main()
{ int n;
cout<<" nhap n = ";
cin>>n
cout< getch();
}
Trang
113
Bài 2:
Mảng và các thao tác
Trang
114
I. Khái niệm:
- Một mảng dữ liệu gồm một số hữu hạn phần tử có cùng kiểu cơ bản.
- Số phần tử của mảng được xác định ngay khi định nghĩa mảng.
II. Khai báo:
<[số phần tử]>;
Ví dụ: int x[10];// mảng x gồm 10 phần tử
Trang
115
- Các phần tử trong mảng được đánh số thứ tự lần lượt từ 0 đến (số phần tử -1)
- Để truy suất đến các phần tử của mảng ta dùng cặp dấu [chỉ số phần tử của mảng]
Ví dụ: x[3]: phần tử thứ 2 trong mảng.
Trang
116
III. Các thao tác trên mảng
1. Nhập mảng:
Với n là số phần tử của mảng, đoạn chương trình sau thực hiện nhập mảng a.
for( int i = 0; i < n; i++)
{ cout<<" Nhap a[ "< cin>>a[i];
}
Trang
117
2. Xuất mảng:
Xuất mảng a sau khi đã được nhập ở phần trên:
for( i = 0; i < n; i++)
cout<< a[ i]<< " ";
Ví dụ: Nhập từ bàn phím vào một mảng số nguyên, sau đó xuất mảng số đó ra màn hình.
Chương trình:
Trang
118
# include
# include
main()
{ int i, n, a[100];
cout<<" Nhap so phan tu mang:";
cin>>n;
cout<<" Nhap mot mang so nguyen";
for(i = 0 ; i < n; i++)
{ cout<<"Nhap a["< cin>>a[i];
}
Trang
119
cout<<" Xuat mang so nguyen ";
for(i = 0; i < n ; i++)
cout<<" "< getch();
}
Bài tập: Viết lại chương trình trên bằng
cách sử dụng chương trình con.
Trang
120
3. Sắp xếp các phần tử của mảng:
# include
# include
main()
{ int i, j, n, a[100],t;
cout<<" Nhap so phan tu mang:"; cin>>n;
// nhap mang
for(i = 0 ; i < n; i++)
{ cout<<"Nhap a["<>a[i];
}
Trang
121
// sap xep
for(i = 0; i < n -1; i++)
for (j = i +1;j < n; j++)
if (a[i] > a[j])
{ t = a[i];
a[i] = a[j];
a[j] = t
}
cout<<" Xuat mang sau khi sap xep tang"
for(i = 0; i < n; i++) cout<<" "< getch();
}
Trang
122
Bài tập: Viết lại chương trình trên bằng
cách sử dụng chương trình con.
Trang
123
Bài 3:
Xâu kí tự
Trang
124
I. Khái niệm:
II. Khai báo:
Char[độ dài tối đa];
Ví dụ: char st[255]
1. Cú pháp
Trang
125
- hoặc có thể khai báo:
char st[]=" Day la xau ki tu"
2. Truy cập các phần tử của xâu:
- Có thể truy cập vào từng kí tự của xâu với tên biến và chỉ số đặt trong ngoặc vuông như truy cập đến phần tử của mảng.
- Chỉ số xâu chạy từ 0 đến độ dài tối đa của xâu kí tự.
Trang
126
III. Các hàm xử lý chuỗi:
1. Nhập chuỗi:
char hoten[30];
-> Có hai cách nhập chuỗi:
- cin>>hoten;// gặp kí tự trắng thì kết thúc việc nhập.
- gets(hoten);// máy vẫn hiểu
ngay cả nhập khoảng trắng, kết thúc
việc nhập bằng phím Enter.
Trang
127
Trang
128
3. Hàm đo chiều dài của chuỗi:
- Cú pháp:
strlen(< S>)
S : là chuỗi cần tính chiều dài.
- Nội dung: tính chiều dài của chuỗi S.
- Viết hàm định nghĩa
Trang
129
int chieudai(char s[20])
{ int length = 0;
for(int i = 0; s[i] != ` ` ; i++)
length ++;
return length;
}
Trang
130
4. Hàm copy một chuỗi:
- Cú pháp:
strcpy( T, S)
S : là chuỗi nguồn.
T: là chuỗi đích.
- Nội dung: copy chuỗi S vào chuỗi T.
- Viết hàm định nghĩa
Trang
131
void str_copy(char t[20], char s[20])
{ int i = 0;
while(s[i] !=` `)
{ t[i] = s[i];
i ++;
}
}
Trang
132
1
Giáo án
Ngôn ngữ lập trình C++
Trang
2
Tên môn: Ngôn ngữ lập trình C++
Số tiết: 60 (30: LT - 30: TH)
Giáo trình thực hành: mua Cô Thu
Kiểm tra: 3 (KT) + 1(Thi)
Tài liệu tham khảo:
P:gvduc Giáo trình C++
Trang
3
Chương I: Ngôn ngữ C++
Bài 1: Giới thiệu
I. Ngôn ngữ lập trình
Là công cụ để giải bài toán trên máy tính.
Trang
4
II. Giao diện Borland C (Turbo C++)
1. Khởi động -thoát khỏi Turbo C++
a. Khởi động
- Kích đôi chuột vào biểu tượng Turbo C++ trên màn hình Desktop.
Trang
5
Trang
6
Trang
7
b.Cửa sổ soạn thảo chương trình - Khi con trỏ nhấp nháy ta có thể gõ vào các dòng lệnh của tập tin nguồn
- Dùng chuột hoặc các phím trong quá trình soạn thảo
Trang
8
+ Các phím mũi tên
+ Lên trang trên, xuống trang dưới: PgUp, PgDn
Trang
9
- Các lệnh chèn, xoá
+ Chế độ chèn : Insert
+ Xoá dòng có con trỏ đang đứng: Ctrl + Y
+ Xoá kí tự ở bên trái, phải và ngay vị trí con trỏ:
BackSpace, Delete.
Trang
10
- Các lệnh về khối văn bản thường dùng
+ Đánh dấu khối: Shift + một phím mũi tên
+ Sao chép khối:
Edit Copy (Ctrl + Insert).
Trang
11
Trang
12
c. Phần cửa sổ thông báo (message) và quan sát (watch)
- Khi chạy chương trình gặp lỗi sẽ hiển thị trong cửa sổ thông báo
Trang
13
d. Thanh trạng thái
Khi ở chế độ soạn thảo:
F1: Help
- F2: Save Tên.Cpp
F3: Open
F4: Go to Cursor
F5: Zoom
F6: Next
Trang
14
F7: Trace Into
F8: Step Over
F9: Make
F10: Menu
Trang
15
Tổ hợp phím cần nhớ:
+ Ctrl + F9: Compile & Run
+ Alt + F5: User screen
+ Alt + F3: Close
+ Alt + F8: Next Msg
+ Alt + F7: Prev Msg
Trang
16
IV. Cấu trúc chung của chương trình C++
# include <...>
void main()
{ //Các câu lệnh ghi ở đây
...
}
Trang
17
//Khai báo các hàm
Kiểu_dữ_liệu Tên_hàm (Các tham số)
{
.. .// các lệnh của hàm return (...);
// Trả về giá trị nào đó cho tên hàm
}
Trang
18
- Ví dụ: Chương trình in ra dòng chữ:
Hello K5T1B
Trang
19
# include
#include
void main()
{
cout<<"Hello K5T1B" ;
getch() ;
}
Trang
20
-Biên dịch chương trình: F9
Biên dịch & chạy chương trình: Ctrl + F9
Lưu ý:
Warning: cảnh báo
Error: lỗi
Trang
21
Bài 2:
Các thành phần cơ bản của C++
Trang
22
I. Kí hiệu
- Bộ kí tự dùng trong ngôn ngữ lập trình C++:
+ Các chữ cái hoa: A, B,.. ., Z
+ Các chữ cái thường: a, b,.. ., z
+ Các chữ số: 0,.. .,9
+ Các dấu chấm câu: , . ; : ? []{}
Trang
23
- Dấu cách, dấu nhảy cách tab,..
- Dấu gạch nối dưới.
Trang
24
II. Từ khoá
1. Khái niệm
- Do C++ quy định, không thay đổi được.
- Các từ khoá mang một ý nghĩa cú pháp nhất định, đòi hỏi người dùng phải tuân theo, không được sử dụng vào việc khác hoặc đặt tên mới trùng với từ khoá.
Trang
25
2. Các từ khoá thông dụng
int, char, float, long, double, if, else, switch, case, while, do, for, return, break, struct, unsigned, void,...
Trang
26
III. Quy tắc đặt tên
- Tên: Tên chương trình, tên biến, tên hàm, tên hằng,.. .
- Tên là các kí tự đứng liền nhau, gồm:
+ Các chữ cái: A,.. ., Z, a,.. ., z
+ Các chữ số: 0,.. ., 9
+ Dấu gạch dưới: _
Trang
27
- Quy tắc đặt tên:
+ Không bắt đầu bằng số.
+ Không chứa dấu cách trắng, dấu chấm câu.
+ Không trùng với từ khoá.
+ Không dùng dấu tiếng Việt
+ Độ dài tối đa 32 kí tự
- Lưu ý: C++ phân biệt chữ thường và chữ hoa.
Trang
28
IV. Một số quy tắc viết mã lệnh
1. Câu lệnh và dấu chấm câu
- Mỗi lệnh trong C++ được kết thúc bằng dấu ;
Ví dụ: int x =5;
- Trong chương trình có nhiều chỗ không dùng đến dấu ; vì đó không phải câu lệnh
Ví dụ: #include
Trang
29
2. Cách ghi lời giải thích
- Lời giải thích không có tác dụng tạo ra mã chương trình. Nó chỉ đơn giản là lời thuyết minh cho dễ hiểu
- Phần lời giải thích đặt trên 1 dòng:
+ Dùng cặp kí hiệu //
+ Mỗi cặp // chỉ có tác dụng từ // đến hết dòng
Trang
30
- Ví dụ:
// Bat dau chuong trinh chinh
void main()
{
.. .
}
Trang
31
V. Lệnh nhập, xuất
1. Xuất dữ liệu ra màn
- Cú pháp:
cout<<< Tham số> ;
Trong đó: Tham số có thể là hằng, biến, biểu thức, hàm, phần tử mảng, .. . mà giá trị của nó cần hiển thị lên màn hình
Trang
32
- Ví dụ:
cout<<"Gia tri cua x la" << x;
- Công dụng: Dùng để in dữ liệu ra màn hình.
Trang
33
2. Lệnh nhập dữ liệu
- Cú pháp:
cin>> < Tham số> ;
Tham số: chỉ có thể là biến
- Ví dụ: cout<<" Nhap x= ";
cin>>x;
- Công dụng: Dùng để đọc các kí tự từ bàn phím, chuyển dịch và lưu nó vào một ô nhớ xác định
Trang
34
- Chú ý:
Khi dùng hàm cout và cin phải khai báo
#include
Trang
35
3. Hàm xoá màn hình
- Cú pháp:
clrscr();
- Công dụng: Xoá sạch màn hình lần chạy trước khi chạy chương trình
- Chú ý: Khi dùng phải khai báo
#include
Trang
36
4. Hàm getch()
- Cú pháp:
getch();
- Công dụng: Dừng màn hình để xem kết quả hiển thị
- Chú ý: Khi dùng phải khai báo
#include
Trang
37
5. Hàm đọc vào một xâu kí tự
- Cú pháp:
gets(< Tham_số>);
Trong đó Tham_số là biến kiểu char.
- Ví dụ: char s;
gets(s);
- Chú ý: Khi dùng phải khai báo
#include
Trang
38
Bài 3:
Kiểu dữ liệu, biến, hằng
I. Kiểu dữ liệu
1. Phân loại
Trang
39
Số nguyên
Số thực
Kiểu kí tự
Do người lập trình tự định nghĩa
Cơ sở
Kiểu con trỏ
Kiểu dữ liệu có cấu trúc
Kiểu vô hướng
Mảng
Cấu trúc
Tập tin
Trang
40
2. Kiểu số nguyên
Từ khoá Số byte Dải giá trị
char 1 -128.. .127
int ? ?
long ? ?
unsigned int ? ?
unsigned long ? ?
Trang
41
3. Kiểu số thực
Từ khoá Số byte Dải giá trị
float ? ? double ? ?
long double ? ?
Trang
42
4. Kiểu kí tự
- Từ khoá: char
- Hằng kí tự đặt trong cặp dấu ` `
- Ví dụ:
char s;
s=`C`;
Trang
43
Xâu (chuỗi) kí tự đặt trong cặp
" "
- Ví dụ:
char st[100];
st ="Chao cac ban!";
Trang
44
II. Biến
1. Khái niệm
- Là một đại lượng có thể thay đổi giá trị khi thực hiện chương trình.
Trang
45
2. Khai báo
- Cú pháp:
+ Trong đó TenBien được đặt tên theo qui tắc đặt tên.
+ Muốn khai báo từ 2 biến trở lên có cùng KDL thì các tên biến đặt cách nhau bởi dấu ,
- Ví dụ:
float y;
float a, b;
Trang
46
* Vị trí khai báo biến: Các biến phải được khai báo trước khi sử dụng.
Khai báo biến ngoài: Biến được khai báo sau khi khai báo thư viện.
-> biến có thể được sử dụng bất kỳ đâu trong chương trình (biến công cộng hay toàn cục).
Trang
47
+ Ví dụ:
#include
int x;
void main()
{
...
}
Trang
48
- Khai báo biến trong: Các biến được đặt trong hàm hoặc trong khối lệnh.
-> Biến chỉ có tác dụng trong hàm hoặc trong khối lệnh (biến địa phương).
Trang
49
+ Ví dụ:
void InSo( )
{
int i = 100;
cout<<" i = "< }
-> biến i chỉ có tác dụng trong hàm InSo.
Trang
50
- Khai báo đối số hàm:
+ Vị trí của biến đặt trong phần định nghĩa tham số hàm.
Ví dụ:
int tong(int x, int y)
{
return (x + y);
}
Trang
51
3. Gán và lấy giá trị
- Mỗi biến đều có kiểu dữ liệu của chúng. Nếu không gán giá trị ban đầu cho biến thì biến mang giá trị trong miền kiểu dữ liệu được khai báo.
Trang
52
- Khai báo và gán:
Ví dụ 1:
int x;
cout<<"x = " << x;
Ví dụ 2:
long a = 100;
cout<<" a = "<Trang
53
III. Hằng
1. Khái niệm và khai báo
- Là những đại lượng mà giá trị của nó không thay đổi trong quá trình tính toán.
- Khai báo với từ khoá const
const
- Ví dụ: const float pi =3.14;
const float trieu = 1000000;
Trang
54
2. Cách sử dụng
- Sau khi khai báo hằng, trong chương trình khi sử dụng TenHang sẽ được thay bằng GiaTri
- Ví dụ:
const float trieu = 1000000;
...
cout<<"Luong = "<< 5*trieu;
Trang
55
IV. Biểu thức và các phép toán
1. Biểu thức
a. Khái niệm
- Biểu thức là công thức tính toán để có một giá trị theo một qui tắc toán học nào đó.
Ví dụ: 8*3 + 4;
x + cos(y);
.. .
Trang
56
b. Các kiểu biểu thức
- Biểu thức số học: là biểu thức tính ra giá trị bằng số.
Biểu thức quan hệ: Là biểu thức chứa toán tử quan hệ (<, >, <=, >=, ==, !=).
- Biểu thức logic: Là biểu thức về nguyên tắc có giá trị đúng (True) hoặc sai (False).
Trang
57
Phép gán:
biến = biểu thức;
Ví dụ:
long x, y;
x = 100;
y = x + 200;
Trang
58
2. Các phép toán
Các phép toán số học:
+, -, *, /, %
c. Các phép toán quan hệ:
<, >, <=, >=, ==, !=
b. Các phép toán logic:
&&, ||, !
Trang
59
d. Các phép tăng, giảm một giá trị
- Phép toán tăng:
i = i + 1 được viết: i++ hoặc ++i
- Phép toán giảm:
i = i -1 được viết: i-- hoặc -- i
Sự khác nhau giữa ++i và i++
++i : i được tăng trước khi gán
i++: i được gán trước khi tăng
Trang
60
Ví dụ: cho x = 3
a = x++; a = ++ x;
a = x--; a = --x;
3. Phép chuyển đổi kiểu
Cú pháp: (kiểu) (biểu thức)
Ví dụ:
cout<< 15/ 4;
cout<<15/ (float) (4);
Trang
61
Chương II
Cấu trúc điều khiển
Bài 1: Cấu trúc lệnh
Trang
62
I. Lệnh và khối lệnh
1. Lệnh
Lệnh có thể là một tác vụ, một biểu thức. Để kết thúc lệnh trong C++ ta sử dụng dấu chấm phẩy (;).
Ví dụ: getch();
x = y + 3;
Trang
63
2. Khối lệnh
Là dãy các lệnh nằm trong cặp dấu{ và }
Ví dụ:
{
s = s + i;
i++;
}
Trang
64
II. Cấu trúc điều khiển
1. Cấu trúc rẽ nhánh
a. Cấu trúc rẽ nhánh có điều kiện: if.else, switch.case
b. Cấu trúc rẽ nhánh không điều kiện: break, continue
Trang
65
III. Cách biểu diễn thuật toán
1. Biểu diễn bằng ngôn ngữ
Để biểu diễn thuật toán bằng ngôn ngữ bạn phải nắm chắc bộ từ khoá như:
Nếu.thì;
Trong khi.thì;
.. .
Trang
66
Ví dụ: Viết thuật toán giải phương trình bậc 2: aX2 + bX + c = 0
Kiểu dữ liệu của các biến
Nhập hệ số a;
Khi a # 0 thì
Nhập hệ số b,c
Delta = b*b -4*a*c
Trang
67
Nếu Delta < 0 thì
Phương trình vô nghiệm
Ngược lại
Nếu Delta = 0 thì
Phương trình có nghiệm kép
Ngược lại
Phương trình có hai nghiệm
Lệnh dừng để xem kết quả
Trang
68
2. Biểu diễn bằng sơ đồ khối
Trang
69
Ví dụ: Sơ đồ khối PT bậc 1
Trang
70
Bài 2:
Cấu trúc rẽ nhánh
Trang
71
1. Câu lệnh if
Cú pháp 1:
if (biểu thức)
{
Khối lệnh;
}
Câu lệnh 2;
Trang
72
Hoạt động
Nếu biểu thức đúng (hoặc # 0) thì thực hiện khối lệnh rồi thực hiện câu lệnh 2, ngược lại chỉ thực hiện câu lệnh 2.
Ví dụ: Tìm số lớn nhất trong hai số nhập từ bàn phím.
Trang
73
Thuật toán:
Khai báo biến a, b, max kiểu nguyên
Nhập giá trị cho hai biến a và b
Gán max =a // giả sử a là số lớn nhất
Nếu b > a thì max =b
In kết quả max.
Chương trình
#include
#include
Trang
74
void main() {
int a, b, max;
cout<<"nhap so thu nhat: "; cin>>a;
cout<<" nhap so thu hai: ";cin>>b;
max = a;
if (b > a)
max = b;
cout<<" gia tri lon nhat la:"<
}
Trang
75
Cú pháp 2
if (biểu thức)
{
Khối lệnh 1;
}
else
{
Khối lệnh 2;
}
Câu lệnh 3;
Trang
76
Hoạt động:
Nếu biếu thức cho giá trị đúng (hoặc # 0) thì thực hiện khối lệnh 1 rồi thực hiện câu lệnh 3, ngược lại thực hiện khối lệnh 2 rồi thực hiện câu lệnh 3.
Ví dụ: Tìm số lớn nhất trong hai số nhập từ bàn phím.
Trang
77
Thuật toán:
Khai báo biến a, b, max kiểu nguyên
Nhập giá trị cho hai biến a và b
Nếu b > a thì max=b;
Ngược lại
max = a;
In kết quả max.
Trang
78
Chương trình
#include
#include
void main()
{ int a, b, max;
cout<<"nhap so thu nhat: "; cin>>a;
cout<<" nhap so thu hai: "; cin>>b;
Trang
79
if (b > a)
max =b;
else
max =a;
cout<<" Gt lon nhat la:"<
}
Trang
80
2. Lệnh switch.case
a. Cú pháp:
Trang
81
switch (
{ case
[break];
case
[break]; ......
case
[break];
[default : [khối lệnh n + 1];]
}
Trang
82
b. Hoạt động
- Tính giá trị của biểu thức, nếu biểu thức bằng
- Nếu giá trị của
Trang
83
c. Ví dụ:
Viết chương trình nhập vào số nguyên xem có phải là số 0 hay 1 hay 2, nếu không phải 1 trong 3 số trên thì xuất ra dòng chữ "xin chao"
Chương trình
#include
#include
Trang
84
void main()
{
int n;
cout<<"nhap n = ";
cin>>n;
Trang
85
switch(n ) {
case 0 : cout<<"so 0";
break;
case 1 : cout<<"so 1";
break;
case 2 : cout<<"so 2";
break;
default : cout<<"xin chao";
}
getch();
}
Trang
86
II. Rẽ nhánh không điều kiện
1. Lệnh break
Lệnh break cho phép thoát khỏi vòng lặp, switch..case và chuyển quyền điều khiển chương trình cho lệnh nằm ngay sau lệnh trên.
Ví dụ: Nhập từ bàn phím vào số điểm trung bình của học sinh, sau đó xuất ra kết quả xếp loại tương ứng với số điểm.
Trang
87
Ví dụ: Nhập từ bàn phím vào số điểm trung bình của học sinh, sau đó xuất ra kết quả xếp loại tương ứng với số điểm.
Trang
88
Chương trình
#include
#include
void main()
{ int diem;
cout<<" Nhap diem vao: ";
cin>>diem;
Trang
89
switch(diem)
{ case 0:
case 1:
case 2:
case 3: cout<<" kem "; break;
case 4: cout<<" yeu "; break;
case 5:
case 6: cout<<" trung binh"; break;
Trang
90
case 7:
case 8: cout<<` kha "; break;
case 9:
case 10 cout<<" gioi "; break;
default:
cout<<` Nhap diem lai";
}
getch();
}
Trang
91
2. Lệnh continue
Trái với lệnh break, lệnh continue cho phép chuyển sang lần lặp tiếp theo mà không cần thực hiện phần còn lại.
Trang
92
Bài 3
Cấu trúc lặp
Trang
93
I. Vòng lặp for
1. Cú pháp:
for([biểu thức1];[biểu thức2];[biểu thức3])
[ khối lệnh] ;
Trang
94
Trong đó:
[biểu thức 1]: biểu thức khởi tạo
[biểu thức 2]: biểu thức điều kiện
[biểu thức 3]: biểu thức thay đổi điều kiện
Trang
95
2. Họat động
- Bước 1: thực hiện biểu thức 1.
- Bước 2: kiểm tra biểu thức 2. Nếu biểu thức 2 sai (hoặc =0) thì thoát khỏi vòng lặp for, ngược thực hiện khối lệnh.
- Bước 3: Thực hiện biểu thức 3.
- Bước 4: Quay lại bước 2 cho đến khi thoát khỏi vòng lặp.
Trang
96
3. Ví dụ: Tính tổng
S = 1 +2 +3 +.+n, với n nhập từ bàn phím (n >0)
Chương trình
#include
#include
Trang
97
{
int n, s, i ;
cout<<" nhap n= ";
cin>>n;
s = 0;
for( i = 1 ; i <= n ; i++) s =s + i;
cout<<"tong = "<
}
Trang
98
II. Vòng lặp while
1. Cú pháp
while (
[khối lệnh ];
Trang
99
2. Hoạt động
- Nếu biểu thức cho giá trị đúng (hoặc ? 0) thì thực hiện khối lệnh và quay lại kiểm tra điều kiện.
- Nếu biểu thức cho giá trị sai (hoặc =0) thì thoát khỏi vòng lặp
Trang
100
3. Minh họa:
Ví dụ 1:
Viết chương trình tính ước số chung lớn nhất của 2 số nguyên dương a, b.
Trang
101
Ví dụ 2: Viết chương trình nhập từ bàn phím vào tiền vốn, lãi suất /1 năm. Hỏi đến năm bao nhiêu tiền có được gấp đôi tiền vốn ban đầu.
Trang
102
III. Vòng lặp do...while
1. Cú pháp
do
{ khối lệnh;
}while(
2. Hoạt động
- Bước 1: Thực hiện khối lệnh
- Bước 2: kiểm tra biểu thức, nếu biểu thức cho giá trị đúng (hoặc # 0) thì quay lại bước 1, ngược lại thoát khỏi vòng lặp.
Trang
103
3. Ví dụ: Tính tổng
S = 1 + 2 + 3 +.+ n, với n nhập từ bàn phím (n >0).
Chương trình
#include
#include
Trang
104
void main()
{ int n, s, i ;
cout<<" nhap n= "; cin>>n;
s = 0; i =1;
do{
s = s + i;
i++;
}while(i <=n);
cout<<"tong = "<
}
Trang
105
Chương III:
Chương trình con, Mảng
Bài 1: Chương trình con
Trang
106
I. Khái niệm:
- Chương trình con là một đoạn chương trình thực hiện các công việc thường được lặp lại nhiều lần trong chương trình chính.
Trang
107
- C++ chỉ có một loại chương trình con duy nhất là hàm
- Hàm có thể không có kiểu trả về, không có đối số, không có giá trị trả về.
II. Khai báo:
[ Kiểu trả về]
{
[return (giá_trị_trả_về)]
}
1. Cú pháp
Trang
108
a. Truyền theo giá trị:
2. Truyền tham số thực cho các đối số
- Giá trị của tham số thực trước và sau khi gọi hàm là không thay đổi.
b. Truyền theo điạ chỉ:
Trang
109
Trang
110
*a: giá trị được lưu trữ trong bộ nhớ có địa chỉ là a.
Trang
111
Cú pháp:
Tên_hàm(
III. Lời gọi hàm:
Ví dụ: Ta viết hàm GT (tính giai thừa) của số nguyên n , như sau:
long int GT(int n)
{ long int gt = 1;
for(int i = 1; i <= n; i++) gt = gt *i;
return gt;
}
Trang
112
Tại hàm main ta gọi hàm GT:
main()
{ int n;
cout<<" nhap n = ";
cin>>n
cout<
}
Trang
113
Bài 2:
Mảng và các thao tác
Trang
114
I. Khái niệm:
- Một mảng dữ liệu gồm một số hữu hạn phần tử có cùng kiểu cơ bản.
- Số phần tử của mảng được xác định ngay khi định nghĩa mảng.
II. Khai báo:
Ví dụ: int x[10];// mảng x gồm 10 phần tử
Trang
115
- Các phần tử trong mảng được đánh số thứ tự lần lượt từ 0 đến (số phần tử -1)
- Để truy suất đến các phần tử của mảng ta dùng cặp dấu [chỉ số phần tử của mảng]
Ví dụ: x[3]: phần tử thứ 2 trong mảng.
Trang
116
III. Các thao tác trên mảng
1. Nhập mảng:
Với n là số phần tử của mảng, đoạn chương trình sau thực hiện nhập mảng a.
for( int i = 0; i < n; i++)
{ cout<<" Nhap a[ "< cin>>a[i];
}
Trang
117
2. Xuất mảng:
Xuất mảng a sau khi đã được nhập ở phần trên:
for( i = 0; i < n; i++)
cout<< a[ i]<< " ";
Ví dụ: Nhập từ bàn phím vào một mảng số nguyên, sau đó xuất mảng số đó ra màn hình.
Chương trình:
Trang
118
# include
# include
main()
{ int i, n, a[100];
cout<<" Nhap so phan tu mang:";
cin>>n;
cout<<" Nhap mot mang so nguyen";
for(i = 0 ; i < n; i++)
{ cout<<"Nhap a["< cin>>a[i];
}
Trang
119
cout<<" Xuat mang so nguyen ";
for(i = 0; i < n ; i++)
cout<<" "< getch();
}
Bài tập: Viết lại chương trình trên bằng
cách sử dụng chương trình con.
Trang
120
3. Sắp xếp các phần tử của mảng:
# include
# include
main()
{ int i, j, n, a[100],t;
cout<<" Nhap so phan tu mang:"; cin>>n;
// nhap mang
for(i = 0 ; i < n; i++)
{ cout<<"Nhap a["<>a[i];
}
Trang
121
// sap xep
for(i = 0; i < n -1; i++)
for (j = i +1;j < n; j++)
if (a[i] > a[j])
{ t = a[i];
a[i] = a[j];
a[j] = t
}
cout<<" Xuat mang sau khi sap xep tang"
for(i = 0; i < n; i++) cout<<" "< getch();
}
Trang
122
Bài tập: Viết lại chương trình trên bằng
cách sử dụng chương trình con.
Trang
123
Bài 3:
Xâu kí tự
Trang
124
I. Khái niệm:
II. Khai báo:
Char
Ví dụ: char st[255]
1. Cú pháp
Trang
125
- hoặc có thể khai báo:
char st[]=" Day la xau ki tu"
2. Truy cập các phần tử của xâu:
- Có thể truy cập vào từng kí tự của xâu với tên biến và chỉ số đặt trong ngoặc vuông như truy cập đến phần tử của mảng.
- Chỉ số xâu chạy từ 0 đến độ dài tối đa của xâu kí tự.
Trang
126
III. Các hàm xử lý chuỗi:
1. Nhập chuỗi:
char hoten[30];
-> Có hai cách nhập chuỗi:
- cin>>hoten;// gặp kí tự trắng thì kết thúc việc nhập.
- gets(hoten);// máy vẫn hiểu
ngay cả nhập khoảng trắng, kết thúc
việc nhập bằng phím Enter.
Trang
127
Trang
128
3. Hàm đo chiều dài của chuỗi:
- Cú pháp:
strlen(< S>)
S : là chuỗi cần tính chiều dài.
- Nội dung: tính chiều dài của chuỗi S.
- Viết hàm định nghĩa
Trang
129
int chieudai(char s[20])
{ int length = 0;
for(int i = 0; s[i] != ` ` ; i++)
length ++;
return length;
}
Trang
130
4. Hàm copy một chuỗi:
- Cú pháp:
strcpy( T, S)
S : là chuỗi nguồn.
T: là chuỗi đích.
- Nội dung: copy chuỗi S vào chuỗi T.
- Viết hàm định nghĩa
Trang
131
void str_copy(char t[20], char s[20])
{ int i = 0;
while(s[i] !=` `)
{ t[i] = s[i];
i ++;
}
}
Trang
132
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Đinh Như Nghĩa
Dung lượng: 61,68KB|
Lượt tài: 0
Loại file: zip
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)