Lập trình C++ - Đề cương - Kĩ thuật lập trình - Pdf 91

Bộ công nghiệp
Trờng cao đẳng công nghiệp hà nội
--- ---
đề cơng chi tiết
môn học
kỹ thuật lập trình
(Tài liệu giảng dạy)
Biên soạn: ThS. Nguyễn Mạnh Cờng
(lu hành nội bộ)
Hà nội 8/2004
Đề cơng chi tiết
Đề cơng chi tiết Kỹ thuật lập trình
Môn học: Kỹ thuật lập trình
Tài liệu tham khảo
1. Ngôn ngữ lập trình C++ - GS. TS. Phạm văn ất.
2. C++ và lập trình Hớng đối tợng - GS. TS. Phạm văn ất.
3. Kỹ thuật lập trình - Nguyễn Tiến Huy Trần Hạnh Nhi.
4. Ngôn ngữ lập trình C++ - Ngô Trung Việt.
.
Chơng I. Giới thiệu về ngôn ngữ lập trình C++
1. Môi trờng lập trình C++
Ngôn ngữ lập trình C++ là một sự mở rộng của ngôn ngữ lập trình
C, trong đó, chủ yếu đa thêm vào ngôn ngữ C khả năng lập trình hớng
đối tợng và loại bỏ những phức tạp không cần thiết của ngôn ngữ .
Để vào môi trờng soạn thảo chơng trình của C++ ta thực hiện:
+ Cài đặt chơng trình soạn thảo m lệnh C++ vào máy tính.ã
+ Vào th mục TC30\ BIN, chọn TC.Exe.
Khi đó, môi trờng soạn thảo C++ đã sẵn sàng.
- Các thao tác khi soạn thảo chơng trình:
[1]. Mở một file mới: Chọn File\ New hoặc bấm phấm F3 sau đó gõ tên
file vào.

ngôn ngữ C++ thờng sử dụng các hàm trong các th viện khác nhau.
Thông thờng, các th viện đặt trong các th mục TC\INCLUDE hoặc TC\
LIB. Môi trờng lập trình C++ tự thiết đặt đờng dẫn tới các th viện này.
Tuy nhiên, trong trờng hợp đờng dẫn bị thay đổi, ta cần phải thiết đặt lại.
B1: Trong Menu chính, chọn Option\ Directories.
B2: Trong Include, đặt đờng dẫn tới các th viện có đuôi .h. Trong
Libraries, đặt đờng dẫn tới các th viện đuôi .lib.
2. Các kiểu dữ liệu cơ bản trong C++
Trong C++ có sử dụng một số kiểu dữ liệu cơ bản sau:
a. Kiểu số: bao gồm
+ Số nguyên ngắn int: là kiểu dữ liệu có độ dài 2 byte, dùng để khai
báo các biến nguyên có giá trị trong khoảng 32768 -> 32767
+ Số nguyên ngắn không dấu: unsign int: độ dài 2 byte, khai báo
các biến nguyên có giá trị từ 0 tới 65535.
Biên soạn: Nguyễn Mạnh Cờng Trang
3
Đề cơng chi tiết Kỹ thuật lập trình
+ Số nguyên dài long: là kiểu dữ liệu có độ dài 4 byte, dùng khai
báo các biến nguyên có giá trị trong khoảng 2.147.483.648 ->
2.147.483.647.
+ Số nguyên dài không dấu: unsign long: độ dài 4 byte, khai báo
các biến có giá trị từ 0 tới 4.294.967.295.
+ Số thực (dấu phảy động) float: kích thớc 4 byte khai báo các biến
thực từ 3.4*10
-38
-> 3.4*10
38
.
+ Số thực double: kích thớc 8 byte, có phạm vi từ 1.7*10
-308

Đề cơng chi tiết Kỹ thuật lập trình
Một chơng trình đơn giản trong C++ thờng có cấu trúc nh sau:
//Khai báo các th viện sử dụng trong chơng trình.
#include <Tên th viện>
.
main() //tên hàm chính
{
// Nhập dữ liệu
// Tính toán
// In các kết quả
}
VD1. xét đoạn trình sau:
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
main()
{
clrscr();
int a, b; //khai báo hai biến nguyên a, b
cout<<nhập số nguyên a ;
cin>>a;
cout<<nhập số nguyên b;
cin>>b;
int c;
c = a+b;
cout<<Tổng của a + b là <<c;
getch();
return 0;
}
Trong ví dụ trên, ta có:

int T, H, TI, TH;
T = a+b;
H = a-b;
TI = a*b;
TH= a/b;
cout<<Tổng của a + b là <<T;
cout<<Hiệu của a + b là <<H;
cout<<Tích của a + b là <<TI;
cout<<Thơng của a + b là <<TH;
getch();
return 0;
}
Chú ý: Trong C++, thơng của hai số nguyên là một số nguyên.
5. Các lệnh nhập xuất
a. Các lệnh nhập xuất trong IOStream.h
- Lệnh xuất: Cú pháp
cout<< <Nội dung cần xuất>;
Trong đó:
<<: đợc gọi là toán tử xuất.
Biên soạn: Nguyễn Mạnh Cờng Trang
6
Đề cơng chi tiết Kỹ thuật lập trình
<Nội dung cần xuất>: có thể là Hằng ký tự, Hằng xâu ký tự, Biến,
Hàm, phơng thức định dạng.
VD: cout<<Sin(x) = ;
cout<<Sin(x);
Chú ý: - có thể sử dụng liên tiếp nhiều toán tử xuất trên một dòng
cout.
VD: cout<<Giá trị của a[<<i<<] là <<a[i];
Các lệnh cout, cin chỉ thích hợp cho việc nhập xuất các biến kiểu

setfill(char ch) tơng tự nh cout.fill(char ch).
setprecision(int n) tơng tự nh cout.precision(int n).
Cách dùng: sử dụng các hàm định dạng ngay trên các dòng cout,
trớc khi đa ra giá trị xuất.
VD: Với ví dụ trên, ta có thể viết:
cout<<setw(9)<<setfill(0)<<setprecision(2)<<a;
- Lệnh nhập: Cú pháp
cin >> <Biến>;
Trong đó:
>>: đợc gọi là toán tử nhập.
Dòng cin dùng để nhập các giá trị (thông thờng là) từ bàn phím
vào các biến.
VD: cout<<Nhập giá trị của a;
cin>>a;
Chú ý: có thể dùng liên tiếp nhiều toán tử nhập trên một dòng cin
để nhập giá trị cho nhiều biến.
cin>>a>>b>>c;
Bài tập ví dụ: Viết chơng trình nhập vào một số thực x, in ra màn
hình giá trị của F(x) = sin
2
(x) + cos(x) với độ chính xác 2 chữ số sau dấu
phảy.
#include <conio.h>
#include <math.h>
#include <iostream.h>
void main()
{
clrscr();
float x, F;
cout<<nhập số thực a ;

Nếu p là biến chứa 1 ký tự thì p phải có kiểu char *, nếu p là kiểu char thì
phải là một mảng kiểu char.
Lệnh puts sẽ đa các ký tự đợc con trỏ p trỏ tới lên màn hình.
VD:
char * p = a;
puts(p);// đa ký tự a ra màn hình
Biên soạn: Nguyễn Mạnh Cờng Trang
9
Đề cơng chi tiết Kỹ thuật lập trình
char q[100] = Ha Noi;
puts(q);// đa Ha Noi ra màn hình.
Lệnh nhập: gets().
Cú pháp: gets(p);
Trong đó, p là biến con trỏ ký tự, nh vậy, p phải có kiểu char * .
Nếu p là biến kiểu char thì phải là một biến mảng kiểu char. (char * p
hoặc char p[])
Các lệnh gets, puts thích hợp cho việc nhập xuất các biến kiểu
xâu ký tự.
6. Biểu thức trong C++
Một biểu thức thông thờng đợc cấu thành từ hai thành phần: các
toán tử và các toán hạng.
a. Các toán tử: đợc tạm chia làm 3 loại
Các toán tử số học
Trong C++ sử dụng các toán tử số học cho trong bảng sau:
Stt Toán tử Ngôn ngữ
Pascal
Ngôn ngữ C++
1 Cộng + +
2 Trừ - -
3 Nhân * *

1 Và And &&
2 Hoặc Or | |
3 Phủ định Not !
Các toán tử so sánh
Trong C++ sử dụng các toán tử So sánh cho trong bảng sau:
Stt Toán tử Pascal Ngôn ngữ C++
1 Lớn hơn > >
2 Nhỏ hơn < <
3 Lớn hơn hoặc bằng >= >=
4 Nhỏ hơn hoặc bằng <= <=
5 Bằng = = =
6 Không bằng < > ! =
b. Các toán hạng: có thể là hằng, biến hoặc hàm.
VD: Trong biểu thức 3*X+2+sin(x), các toán tử + và * đợc sử dụng.
Toán hạng bao gồm: Hằng (3 và 2), biến (X) và hàm (sin(x)).
c. Thứ tự u tiên các phép toán
Trong một biểu thức có sử dụng nhiều toán tử, thứ tự u tiên các
toán tử nh sau (theo chiều từ trái qua phải, từ trên xuống dới):
! ++ - - * / % + -
< <= > >= == != && | |
VD: Viết biểu thức toán học sau bằng ngôn ngữ C++ (nếu cần) và
cho biết thứ tự thực hiện các phép toán.
5x 6 +2/7 + (6 mod 3)
i + j ++
(i+j)++
Biên soạn: Nguyễn Mạnh Cờng Trang
1
1
Đề cơng chi tiết Kỹ thuật lập trình
Chơng II. Các cấu trúc điều khiển trong C++

kiểm tra điều
kiện sau
Cấu trúc
lặp với số
lần lặp xác
định
Cấu trúc lặp
với số lần lặp
không xác
định
Đề cơng chi tiết Kỹ thuật lập trình
Cú pháp:
(mô phỏng mệnh đề 1)
if (<biểu thức điều kiện>)
<Lệnh>;
(Mô phỏng mệnh đề 2)
if (<biểu thức điều kiện>)
<Lệnh 1>;
else
<Lệnh 2>;
ý nghĩa:
[1]. nếu <biểu thức điều kiện> nhận giá trị đúng, sẽ thực hiện
<Lệnh>, ngợc lại, bỏ qua lệnh if.
[2]. nếu <biểu thức điều kiện> nhận giá trị đúng, sẽ thực hiện
<Lệnh 1>, ngợc lại, nếu <biểu thức điều kiện> nhận giá trị sai sẽ thực
hiện <Lệnh 2>.
Chú ý:
- Biểu thức điều kiện đợc đặt giữa hai dấu ngoặc đơn ( ).
- Câu lệnh trớc else có dấu ;.
- <Lệnh 1> và <Lệnh 2> có thể là một khối lệnh. Các khối lệnh đ-

}
Các lệnh if có thể lồng nhau theo nghĩa: Các câu lệnh bên trong
một mệnh đề if lại có thể là các mệnh đề if. Các mệnh đề if lồng nhau t-
ơng đơng với một mệnh đề if mà biểu thức điều kiện của nó là sự kết
hợp biểu các biểu thức điều kiện của các mệnh để if lồng nhau theo
phép và (AND).
Mỗi lệnh if đủ sẽ cho phép lựa chọn 2 khả năng để thực hiện.
Trong trờng hợp có n khả năng lựa chọn, ta có thể sử dụng n-1 lệnh if đủ
lồng nhau.
VD: Viết chơng trình thực hiện việc nhập vào số tiền của khách
hàng phải trả. Nếu số tiền từ 300000 tới 400000, khuyến mại 20%. Nếu
số tiền từ 400000 trở lên, khuyến mại 30%. Các trờng hợp khác không
đợc khuyến mại. Tính và in số tiền khuyến mại của khách lên màn hình.
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
main()
{
clrscr();
int T, km;
cout<<Nhập số tiền ;
cin>>T;
if (T>=300000 && T <=400000)
km = 20*T/100;
else
if (T>40000)
Biên soạn: Nguyễn Mạnh Cờng Trang
1
4
Đề cơng chi tiết Kỹ thuật lập trình

T=0;
if (tk >= 7.0)
T = 30000;
else
if (tk>=9.0 && hk = = T)
T += 100000;
cout<<Học bổng <<T;
getch();
}
Biên soạn: Nguyễn Mạnh Cờng Trang
1
5
Đề cơng chi tiết Kỹ thuật lập trình
Đoạn trình trên sẽ cho kết quả sai trong trờng hợp sinh viên tổng
kết >=9.0 và đạo đức tốt. Lý do là sử dụng hai lệnh if lồng nhau khi các
khả năng không loại trừ nhau.
Đoạn trình trên có thể đợc viết lại nh sau:
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
main()
{
clrscr();
float tk;
char * hk;
long T;
cout<<Nhap điểm tong ket;
cin>>tk;
cout<<Nhap hanh kiem;
cin>>hk;

[default:
<Lệnh mặc định>;]
}
ý nghĩa:
Nếu <Biến nguyên> nhận giá trị GT1, thực hiện <Lệnh 1>
Nếu <Biến nguyên> nhận giá trị GT2, thực hiện <Lệnh 2>
Nếu <Biến nguyên> nhận giá trị GTn, thực hiện <Lệnh n>
Nếu có thành phần [default:], thực hiện <lệnh mặc định> khi
biến nguyên không nhận giá trị nào trong các giá trị trên.
- Sơ đồ khối:
Chú ý:
- Lệnh switch chỉ thực hiện trên biến nguyên.
Biên soạn: Nguyễn Mạnh Cờng Trang
1
7
Biến =
Biến =
Biến =
Lệnh 1
Lệnh 2
Lệnh n

Lệnh mặc định
Đề cơng chi tiết Kỹ thuật lập trình
- Mỗi từ khoá case chỉ lựa chọn 1 trờng hợp.
- Các câu lệnh <Lệnh 1>, <Lệnh 2> có thể là một khối lệnh.
Sau đó bắt buộc phải có từ khóa <break;> .
- Thành phần [deffault:] là không bắt buộc. Nếu có thành phần
này, <Lệnh mặc định> sẽ đợc đợc thực hiện sau khi tất cả các
trờng hợp case đều không thỏa mãn.

case 2:
if (N%4 = = 0)
cout<<Tháng có 28 ngày;
else
cout<<Tháng có 29 ngày;
break;
Biên soạn: Nguyễn Mạnh Cờng Trang
1
8
Đề cơng chi tiết Kỹ thuật lập trình
}
getch();
}
VD2: Viết chơng trình nhập vào mã học vị (là một số nguyên) của
một nhân viên. In ra học vị tơng ứng với quy định:
Mã =1: Cử nhân.
Mã =2: Kỹ s.
Mã =3: Thạc sỹ.
Mã =4: Tiến sỹ.
Các mã khác: Không xếp loại học vị.
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
main()
{
clrscr();
int M;
cout<<Nhập m học vịã ;
cin>>M;
switch (M)

cấu trúc chọn trên biến nguyên này.
4. Cấu trúc lặp
a. Vòng lặp với số lần lặp xác định
Là vòng lặp mà ngời lập trình luôn biết trớc số lần lặp của lệnh lặp.
Trong quá trình lặp, ta thờng sử dụng một biến để kiểm soát số lần
lặp gọi là Biến chạy.
Biến chạy thờng nhận các giá trị từ cận dới (n1) tới cận trên (n2)
và số lần lặp bằng n2 n1.
Cú pháp:
for (<Biểu thức 1>;<Biểu thức 2>;<Biểu thức 3>)
<Lệnh lặp>;
Trong đó:
<Biểu thức 1>: thông thờng có có dạng: <Biến chạy> = <Cận dới>.
<Biểu thức 2>: thông thờng có dạng: <Biến chạy> <Toán tử so
sánh> <cận trên>.
<Biểu thức 3>: thông thờng là một biểu thức để tang hoặc giảm
biến chạy.
Trong C++, vòng lặp có số lần lặp xác định cũng có nguyên lý
hoạt động tơng tự trong Pascal.
ý nghĩa:
B1: Thực hiện <Biểu thức 1>
B2: Kiểm tra <Biểu thức 2>. Nếu sai, thoát khỏi vòng for. Ng-
ợc lại, sang B3.
B3: Thực hiện <Lệnh lặp>.
B4: Thực hiện <Biểu thức 3>. Quay lại B2.
Sơ đồ khối:
Biên soạn: Nguyễn Mạnh Cờng Trang
2
0
Xác định BT1

2
1
Đề cơng chi tiết Kỹ thuật lập trình
int n; long GT=1;
cout<<Nhap n ; cin>>n;
for (int i=2;i<=n; )
{
GT*=i;
i++;
}
cout<<n<< Giai thua : <<GT;
getch();
}
Các cách thoát khỏi vòng lặp for.
- Thoát tự nhiên: Khi <Biểu thức 2> nhận giá trị sai, chơng trình tự
động thoát khỏi vòng for và chuyển tới lệnh tiếp theo.
- Thoát cỡng bức:
+ Cách 1: sử dụng lệnh break;
Khi gặp lệnh break; trong thân vòng for, chơng trình sẽ lập tức
thoát khỏi vòng lặp for và chuyển tới lệnh tiếp theo bất kể <Biểu thức 2>
vẫn nhận giá trị đúng.
+ Cách 2: sử dụng lệnh goto
Lệnh goto có dạng: goto <Nhãn>. Trong đó,<Nhãn> có dạng:
<Tên nh n> <:>ã
<Tên nhãn> tuỳ ý đặt theo quy ớc đặt tên trong C.
Khi gặp lệnh goto <Nhãn>, chơng trình sẽ nhảy tới vị trí đặt nhãn.
Nếu nhãn đặt ngoài vòng for, chơng trình sẽ thoát khỏi vòng for.
Cần chú ý trong trờng hợp 2 lệnh for lồng nhau, khi đó lệnh break
chỉ làm cho chơng trình thoát khỏi vòng for gần nhất chứa lệnh break.
Do vậy, để thoát khỏi cả 2 vòng for lồng nhau, ta sử dụng lệnh goto.

for (int i=2;;)
{
if (i==n)
goto Ex; // nh n là Ex, tên tự đặt.ã
GT*=i;
i++;
}
Ex:
cout<<n<< Giai thua : <<GT;
getch();
}
Cách 5: Viết thiếu cả 3 biểu thức.
void main()
{
clrscr();
int n; long GT=1;
cout<<Nhap n ; cin>>n;
int i=2;
for (;;)
{
if (i==n)
break;
GT*=i;
Biên soạn: Nguyễn Mạnh Cờng Trang
2
3
Đề cơng chi tiết Kỹ thuật lập trình
i++;
}
cout<<n<< Giai thua : <<GT;

void main()
{
clrscr();
int x[] = {1, 4, 5, 7, 3, 2}, n;
n=sizeof(x)/ sizeof(int);
int tg;
for (int i=0, j=n-1; i<n/2; tg=x[i], x[i]=x[j], x[j]=tg, i++, j--)
{
}
Biên soạn: Nguyễn Mạnh Cờng Trang
2
4
Đề cơng chi tiết Kỹ thuật lập trình
for (i=0; i<n; i ++)
cout<<x[i]<<" ";
getch();
}
b. Vòng lặp với số lần lặp không xác định
Trong C++, ta chia vòng lặp với số lần lặp không xác định ra làm
hai loại:
Lặp kiểm tra điều kiện tr ớc: Trớc tiên, kiểm tra biểu thức điều
kiện. Nếu biểu thức điều kiện còn đúng, sẽ thực hiện lệnh lặp. Nếu biểu
thức điều kiện sai, ra khỏi vòng lặp.
+ Sơ đồ khối:
Nh vậy: Lệnh lặp có thể không đợc thực hiện lần nào.
+ Cú pháp:
while (<Biểu thức điều kiện>)
<Lệnh lặp>
ý nghĩa:
B1: Kiểm tra biểu thức điều kiện. Nếu biểu thức điều kiện sai, thoát


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status