1. Trang chủ
  2. » Giáo Dục - Đào Tạo

GIÁO TRÌNH TIN HỌC_LẬP TRÌNH C ++ CĂN BẢN ppt

23 408 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 1,83 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

16 Giao diện gồm 2 phần chính không thấy cửa sổ này thì vào menu View/ Workspace hoặc nhấn phím Alt + số 0 17 MÔ TẢ CỬA SỔ WORKSPACE Sau khi chọn dấu + ở tab FileView, sẽ xuất hiện 3 thư

Trang 1

LẬP TRÌNH C

(CƠ BẢN)

1

YÊU CẦU

6.0 hoặc Microsoft Visual Net 2005 (Viết ứng dụng dạng Console)

khảo tài liệu

2

NỘI DUNG

và môi trường cài đặt

3

Chương 1 Khái niệm cơ bản

về lập trình và giới thiệu môi

5

Các đặc điểm cần có của một chương trình

năng để phát triển tiến hóa theo yêu cầu

dùng để làm một phần trong một chương trình lớn khác

các môi trường

6

Trang 2

liệu đầu vào thành kết quả

Hướng dẫn cài đặt

và sử dụng Microsoft Visual C++ 6.0

10

BỘ CÀI ĐẶT GỒM

Trang 3

Tab Projects chọn Win32 Console Application

Project name: Nhập tên của dự án (Ví dụ đặt tên là

BaiTap1)

Location: Vị trí lưu dự án

VC sẽ tạo một thư mục với tên là tên Project tại vị trí đã

chỉ định Bên trong thư mục này sẽ chứa toàn bộ các file

liên quan đến Project Nếu muốn sao chép Project thì chỉ

việc chép thư mục này.

16

Giao diện gồm 2 phần chính

không thấy cửa sổ này thì vào menu View/

Workspace hoặc nhấn phím Alt + số 0)

17

MÔ TẢ CỬA SỔ WORKSPACE

Sau khi chọn dấu + ở tab FileView,

sẽ xuất hiện 3 thư mục:

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 (hàm, biến toàn cục, kiểucấu trúc, …)

Resource Files: Chứa các tài

nguyên (icon, bitmap, dialog, …)

Đối với lập trình ứng dụng Console thì không dùng đến. 18

Trang 4

Để 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:

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

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

File caidat.cpp: Cài đặt các hàm con đã khai

chọn Add Files to Folder …

20

(Lưu ý: Không thay đổi đường dẫn thư mục –

CÁCH TẠO FILE CÀI ĐẶT (MAIN.CPP, CAIDAT.CPP)

Add Files to Folder …

sau đó chọn Yes

(Mẹo: Có thể tạo 2 file cùng một lúc bằng cách:

Nhập “main.cpp” “caidat.cpp” vào ô File name:

Tên file phải nằm trong cặp dấu nháy kép (“), mỗi tên file cách nhau bởi khoảng trắng)

22

VIẾT LỆNH CHO FILE KHAIBAO.H

Cửa sổ soạn thảo file khaibao.h

24

Trang 5

CẤU TRÚC FILE KHAIBAO.H

#include “khaibao.h”

void main() {

DỊCH, SỬA LỖI VÀ CHẠY CHƯƠNG TRÌNH

để tìm, 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)

28

VÍ DỤ

Viết chương trình hiển thị lên màn hình

dòng chữ: “Xin chào mọi người”

Do đây là ví dụ rất đơn giản nên chỉ có

phần khai báo (file khaibao.h) và hàm

main() (file main.cpp) nên không có phần

cài đặt hàm con (file caidat.cpp)

Trang 6

chọn Open

33

Cách 2: Mở trực tiếp từ Explore

Mở thư mục chứa Project

Double click vào 1 trong 2 file có đánh dấu mũi tên

(Lưu ý: Khi chép Project có thể xóa thư mục Debug,

vì thư mục này sẽ được tạo khi chạy chương trình)34

nghĩa kiểu dữ liệu mới.

36

Trang 7

CÁC KHÁI NIỆM

Lệnh

Lệnh thực hiện một chức năng nào đó

(khai báo, gán, xuất, nhập, …) và được

kết thúc bằng dấu chấm phẩy (;)

Khối lệnh gồm nhiều lệnh và được đặt

lệnh PHẢI có dấu chấm phẩy (;).

dòng sao cho mỗi lệnh phải được quan sát trọn vẹn trong pham vi cửa sổ lệnh.

38

dòng, ngay cả các khai báo biến, nếu các

biến có khác kiểu cũng nên đặt trên các

dòng khác nhau.

Từ vị trí cụ thể đến cuối dòng: dùng // ngay tại

vị trí đó.

Tạo nhiều dòng ghi chú: dùng cặp ký tự /*

ngay trước dòng đầu tiên, và cặp ký tự */ ngay

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.

Kiểu dữ liệu của biến xác định những giá trị kiểu nào có thể được lưu trong biến (ví dụ số hay chữ…).

PHẢI khai báo BiẾN trước khi sử dụng

 Kiểu tự định nghĩa (xét sau)

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.

41

CÁC KIỂU DỮ LIỆU CƠ SỞ

KIỂU LIÊN TỤC (SỐ THỰC)

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

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

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

6 unsigned int Số nguyên dương 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

42

Trang 8

KHAI BÁO BIẾN

Cú pháp

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

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;

hoặc dấu gạch dưới (_)

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

do, goto, case, define, …

Phân biệt chữ hoa và thường

44

KHAI BÁO VÀ KHỞI GÁN GIÁ TRỊ BAN

ĐẦU CHO BIẾN

<Kiểu dữ liệu> tênbiến = giá trị;

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

5 % Chia lấy phần dư

TOÁN TỬ TĂNG GIẢM

trước thì tăng giảm trước rồi tính biểu thức hoặc ngược lại

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

(biểu thức điều kiện)?<biểu thức cho trường hợp đúng>:<biểu thức cho trường hợp sai>

Trang 9

THỨ TỰ ƯU TIÊN PHÉP TOÁN

Toán tử Độ ưu tiên Trình tự kết hợp

! ~ ++ - + * & sizeof 2 Từ phải qua trái

< <= >= > 6 Từ trái qua phải

49

CÁC LỖI THƯỜNG GẶP KHI VIẾT CHƯƠNG TRÌNH

Quên khai báo các biến sử dụng trong chương trình

Lưu một giá trị vào một biến nhưng không cùng kiểu dữ liệu vớibiến

Sử dụng biến trong một biểu thức khi nó chưa có giá trị Lỗi nàythì không được phát hiện bởi trình biên dịch, khi đó giá trị củabiến là một giá trị bất kỳ và kết quả của biểu thức là vô nghĩa

Sử dụng giá trị của phép chia không chính xác Lỗi này thườngxuất hiện trong các biểu thức có nhiều toán hạng và lỗi này rất khóphát hiện

Ví dụ: 3.2 + 2/3 + 1.5 thì sẽ cho kết quả sẽ bằng 4.7 thay vì kết quả đúng phải bằng 5.36666666666667

Sử dụng một biểu thức mà trong đó chứa nhiều loại dữ liệu nhưnglại không biết chắc chắn kiểu dữ liệu của kết quả 50

HÀM NHẬP XUẤT TRONG CONSOLE

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; //Người dùng 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;

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

Các biến và chuỗi cách nhau bởi dấu << (chuỗi nằm trong cặp

Kết quả: xyz zyx

Kết quả: zyx

54

Trang 10

giá trị trung bình cộng của 3 số trên và xuất kết quả ra

màn hình

từ 1 đến n và xuất kết quả ra màn hình

theo độ Fahrenheit và xuất ra nhiệt độ tương đương của

nó theo độ Celsius, sử dụng công thức chuyển đổi:

biết 3 số vừa nhập có thứ tự tăng dần (a<b<c) không?

Và xuất kết quả

59

) 32 ( 9

Trang 11

PHÂN TÍCH LỆNH ĐỂ XÁC ĐỊNH KẾT QUẢ

Xác định xem chương trình có sử dụng những biến nào;

Giá trị ban đầu của mỗi biến;

Những biến nào sẽ bị thay đổi trong quá trình chạy chương trình

0 Giá trị 0 Giá trị 0 … Giá trị 0

1 Giá trị 1 Giá trị 1 … Giá trị 1

2 Giá trị 2 Giá trị 2 … Giá trị 2

 Lưu ý từng lệnh và xét kỹ giá trị của biểu thức điều

kiện trong đoạn chương trình

CÁC KÝ HIỆU LƯU ĐỒ

62

CẤU TRÚC TUẦN TỰ

Tuần tự thực thi tiến trình, mỗi

lệnh được thực thi theo một

chuỗi từ trên xuống, xong lệnh

này rồi chuyển xuống lệnh kế

dãy lệnh nào đó dựa vào kết quả của một điều kiện (biểuthức quan hệ hay biểu thức so sánh)

Trang 12

Ví dụ: Viết chương trình nhập vào một số nguyên

từ 1 đến 10, nếu nhập sai thì thông báo

67

void main() {

int k;

cout<<"Hay nhap mot so tu 1 den 10: “;

cin>>k;

if (k < 1 || k > 10) cout<<"So ban vua nhap khong hop le";

}

68

Xét cả hai trường hợp đúng và sai:

if (biểu thức điều kiện)

Nếu biểu thức điều kiện cho kết quả true thì thực hiện khối

lệnh 1, ngược lại thì cho thực hiện khối lệnh thứ 2

Trang 13

cout<<"Tong cua a va b la: " <<(a + b);

2 Cho ba số a, b, c đọc vào từ bàn phím Hãy tìm giá trị

lớn nhất của ba số trên và in ra kết quả

3 Cho ba số a, b, c đọc vào từ bàn phím Hãy in ra màn

hình theo thứ tự tăng dần các số (Chỉ được dùng thêm

5 Viết chương trình nhập vào số nguyên n gồm ba chữ số

Xuất ra màn hình theo thứ tự tăng dần của các chữ số

Ví dụ: n=291 Xuất ra 129.

6 Nhập vào ngày, tháng, năm Kiểm tra xem ngày, tháng, năm đó có hợp lệ hay không? In kết quả ra màn hình

7 Nhập vào giờ, phút, giây Kiểm tra xem giờ, phút, giây

đó có hợp lệ hay không? In kết quả ra màn hình

8 Viết chương trình nhập vào ngày, tháng, năm hợp lệ

Cho biết năm này có phải là năm nhuận hay không? In kết quả ra màn hình

9 Viết chương trình tính diện tích và chu vi các hình: tam giác, hình vuông, hình chữ nhật và hình tròn với những thông tin cần được nhập từ bàn phím

78

Trang 14

10 Viết chương trình tính tiền cước TAXI Biết rằng:

km đầu tiên là 13000đ.

Mỗi km tiếp theo là 12000đ.

Nếu lớn hơn 30km thì mỗi km thêm sẽ là 11000đ.

Hãy nhập số km sau đó in ra số tiền phải trả.

11 Nhập vào 3 số nguyên dương Kiểm tra xem 3 số

đó có lập thành tam giác không? Nếu có hãy cho biết

tam giác đó thuộc loại nào? (Cân, vuông, đều, …).

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

Kiểm tra xem n có phải là số chính phương hay

không? (số chính phương là số khi lấy căn bậc 2 có

case n2:

các câu lệnh ; break ;

………

case nk:

<các câu lệnh> ; break ;

Giá trị này = nithì thực hiện câu lệnh sau case ni

hiện câu lệnh sau default nếu có, hoặc thoát khỏi câu

lệnh switch.

bên dưới nó mà không xét lại điều kiện (do các ni

được xem như các nhãn)  Vì vậy, để chương trình

thoát khỏi lệnh switch sau khi thực hiện xong một

Ví dụ: Nhập vào số nguyên n có giá trị từ 1 đến 5 In cách đọc của

số đó ra màn hình

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";

} }

82

13 Viết chương trình nhập vào 1 số

Trang 15

Bất kỳ biểu thức nào trong 3 biểu thức nói trên đều

có thể vắng nhưng phải giữ dấu chấm phẩy (;)

85

HOẠT ĐỘNG

86

Bước 1: Khởi gán cho biểu thức 1

Bước 2: Kiểm tra điều kiện của biểu thức 2.

Nếu biểu thức 2 bằng true thì cho thực hiện các

lệnh của vòng lặp, thực hiện biểu thức 3 Quay

Trang 16

int buoc = 1;

while(buoc <= 10) {

<biểu thức tăng/ giảm>;

} while (biểu thức điều kiện);

 Thực hiện khối lệnh cho đến khi biểu thức có

giá trị bằng false.

 Cấu trúc lặp do…while thường dùng cho

trường hợp nhập có kiểm tra điều kiện 93

Ví dụ: Nhập vào một số nguyên dương, nếu nhập vào số

bằng hoặc nhỏ hơn 0 thì thông báo lỗi và yêu cầu nhậplại

void main() {

} while (n <= 0);

cout<<"Ban da nhap dung, ket thuc chuong trinh”;

}

94

và while (kiểm tra điều kiện

trước khi thực hiện lặp), vòng lặp

do…while thực hiện lệnh lặp rồi

mới kiểm tra điều kiện Do đó

vòng lặp do while thực hiện

lệnh ít nhất một lần.

95

LỆNH BREAK VÀ CONTINUE

Lệnh break: thoát khỏi các cấu trúc switch,

while, for, do…while chứa nó gần nhất

(đang chứa break) tại thời điểm break được gọi thi hành mà không cần kiểm tra kết quả của biểu thức điều kiện Tuy nhiên, cần

phân biệt với lệnh return là lệnh trả về từ

hàm, nghĩa là thoát khỏi hàm đang thi hành, nên cũng giúp thoát luôn khỏi tất cả các vòng lặp.

96

Trang 17

LỆNH BREAK VÀ CONTINUE

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 (có kiểm tra điều kiện lặp để xác định

có lặp tiếp hay không) 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 Nói tóm lại, lệnh

continue dùng để bỏ qua một lần lặp nào đó

Ví dụ: Cho phép người dùng nhập liên tục số nguyên dương, nếu

nhập số nguyên âm thì dừng

void main() { int n;

while (true) { cout<<"Nhap gia tri n: “;

cin>>n;

if (n <= 0) { cout<<"Ket thuc vong lap”;

break;

} } }

for(int i = 0; i < 5; i++)

-{ for(int j = 0; j <= i; j++) cout<<j<<“\t”;

Trang 18

14 Viết chương trình nhập số nguyên dương n Liệt

kê n số nguyên tố đầu tiên.

15 Viết chương trình nhập vào hai số nguyên dương a và b Tìm ước số chung lớn nhất và bội

số chung nhỏ nhất của a và b.

16 Viết chương trình nhập vào một số nguyên n gồm tối đa 10 chữ số (4 bytes) In ra màn hình giá trị nhị phân của số trên (Hướng dẫn: chia lấy dư cho 2 và xuất theo thứ tự ngược lại).

17 Viết chương trình đếm số ước số của số nguyên dương N.

Ví dụ: N=12

số ước số của 12 là 6

106

18 Một số hoàn thiện là một số có tổng các

ước số của nó (không kể nó) bằng chính nó

Hãy liệt kê các số hoàn thiện nhỏ hơn 5000.

Ví dụ: số 6 là số hòan thiện vì tổng các ước

số là 1+2+3 = 6.

19 Nhập vào ngày, tháng, năm Cho biết đó

là ngày thứ mấy trong năm.

20 In ra dãy số Fibonaci

f1= f0=1;

107

XÁC ĐỊNH KẾT QUẢ BẰNG CÔNG CỤ DEBUG

chương trình Mặc dù chương trình không còn lỗi nhưng khi chạy chương trình vẫn ra kết quả sai, những lỗi đó có thể là:

chưa thực hiện lệnh;

hoặc sai;

108

Trang 19

Bước 1: Đặt dấu nháy vào vị trí bắt đầu

cần kiểm tra lỗi

109

Bước 2: Nhấn phím Ctrl + F10

110

Quan sát vị trí dấu mũi tên trên cửa sổ viết code để

xác định xem chương trình chạy đến dòng lệnh

nào và sẽ thực hiện lệnh tương ứng.

Cửa sổ Locals (nếu không thấy cửa sổ này thì có

thể vào menu View\ Debug Windows\ Variables

hoặc nhấn phím Alt+4) sẽ thể hiện tên (name), giá

trị (value) và kiểu (type) của các biến cục bộ trong

đoạn chương trình.

Cửa sổ Watch (nếu không thấy cửa sổ này vào

menu View\ Debug Windows\ Watch hoặc nhấn

Alt+3) cũng có thể quan sát chi tiết biến tương tự

như cửa sổ Locals, nhưng chỉ thể hiện những biến

nào mà ta nhập tên biến tương ứng vào cửa sổ này.

Cài đặt tất cả những hàm con

đã được khai báo

Gọi thực hiện các hàm theo yêu cầu của bài toán

Trang 20

int Tong(int a, int b)

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

một công việc nhất định sau đó trả về giá trị cho chương trình

gọi nó, hay nói cách khác hàm là sự chia nhỏ 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ể nhỏ (hàm con) để chương trình được trong sáng, dễ hiểu trong việc xử lý, quản lý việc tính toán và giải quyết vấn đề

Mẫu tổng quát của hàm

<Kiểu dữ liệu> TênHàm([ds các tham số]);

Trong đó:

Kiểu dữ liệu trả về của hàm (kết quả của hàm/ đầu ra), 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 với bài toán (chỉ trả

về được 1 giá trị theo kiểu dữ liệu)

Danh sách các tham số (nếu có): đầu vào của hàm (trong

một số trường hợp có thể là đầu vào và đầu ra của hàm nếu kết quả đầu ra có nhiều giá trị - Tham số này gọi là tham chiếu)

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

Các câu lệnh / khối lệnh hay lời gọi đến hàm khác.

}

Gọi hàm

TênHàm(danh sách tên các đối số);

Những phương thức loại này thường rơi vào những nhóm

chức năng: Nhập / xuất dữ liệu , thống kê, sắp xếp, liệt kê

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

Output: In ra các ước số của n (Để xác định kiểu dữ liệu

trả về của hàm)

Xuất ra màn hình  Không trả về giá trị  Kiểu dữ

liệu của hàm là void

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

Trang 21

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

Các câu lệnh / khối lệnh hay lời gọi đến hàm khác.

Những phương thức này thường rơi vào các nhóm: Tính tổng, tích,

trung bình, đếm, kiểm tra, tìm kiếm

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

Input: n (Để xác định tham số)

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

Output: Tổng S (Để xác định kiểu dữ liệu phương thức)

Trả về giá trị của S

S là tổng các số nguyên dương nên S cũng 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

Ngày đăng: 25/07/2014, 05:20

HÌNH ẢNH LIÊN QUAN

Hình theo thứ tự tăng dần các số. (Chỉ được dùng thêm - GIÁO TRÌNH TIN HỌC_LẬP TRÌNH C ++ CĂN BẢN ppt
Hình theo thứ tự tăng dần các số. (Chỉ được dùng thêm (Trang 13)

TỪ KHÓA LIÊN QUAN

w