1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Phương pháp lập trình hướng đối tượng: Nhìn lại lập trình cơ bản qua lăng kính Lập trình hướng đối tượng - Lê Xuân Định

28 110 0

Đ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 28
Dung lượng 1,33 MB

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

Nội dung

Bài giảng Phương pháp lập trình hướng đối tượng: Nhìn lại lập trình cơ bản qua lăng kính Lập trình hướng đối tượng bao gồm các nội dung: Cấu trúc điều khiển, biến, biến dối tượng. Mời các bạn cùng tham khảo nội dung chi tiết.

Trang 1

L.X.Định

GV: Lê Xuân Định

Trang 2

L.X.Định

Trang 3

 L ựa chọn (Rẽ nhánh có Điều kiện)

 Rẽ đôi: if; if else;

 Rẽ nhiều nhánh: switch case break; if else if ;

 Lặp xác định: for;

 Lặp không xác định: while; do while; for;

 Điều khiển vòng lặp: break; continue;

 Kết thúc hàm: return; return giá_tr ị;

 Kết thúc chương trình: exit(-1);

Trang 4

 R ẽ đôi: if; if else;

 R ẽ nhiều nhánh

switch(bi ến_ nguyên){ // ki ểu char , int , long

case giá_tr ị_ nguyên_1: công vi ệc 1; break;

case giá_tr ị_ nguyên_2: công vi ệc 2; break;

default: công vi ệc mặc định; break; }

 if(điều_kiện_1){ công việc 1; }

else if(điều_kiện_2){ công việc 2; }

else{ công vi ệc mặc định; }

Trang 5

 L ặp xác định:

for(int i=giá_tr ị_đầu; i < giá_tr ị_cuối +1; i++){ }

for(int i=giá_tr ị_đầu; i <= giá_tr ị_cuối; i++){ }

 L ặp không xác định:

 while(điều_kiện_lặp){ thực hiện nếu tho ả điều_kiện_lặp; }

 do{ th ực hiện l ần đầu, và những lần sau nếu tho ả điều_kiện_lặp; }

while(điều_kiện_lặp); // cho đến khi điều_kiện_lặp không tho ả

 for(kh ởi tạo; điều_kiện_lặp; tăng biến chạy)

{ thực hiện nếu tho ả điều_kiện_lặp; }

 Sau vòng lặp, điều_kiện_lặp không tho ả VD:

int i=1; for(; i<=5; i+=3){ cout<<i<<“ “; } // 1 4 cout<<i<<endl; // 7

Trang 6

 Điều khi ển vòng l ặp:

K ết thúc vòng lặp trong cùng: break;

Quay l ại đầu vòng lặp trong cùng: continue;

 K ết thúc hàm: return; return giá_tr ị;

 Không thực hiện các l ệnh sau return

VD: “Tính điểmTK = (điểmLT + điểmTH)/2, cắt xuống 10 nếu vượt quá 10.” float tinhDiemTK(float diemLT, float diemTH){

float diemTK = (diemLT + diemTH)/2;

return diemTK;

if(diemTK > 10){ return 10; } }

 K ết thúc chương trình: exit (mã_l ỗi ) ;

 Thực ra đây là một hàm: mã_lỗi = 0 nghĩa là không có lỗi!

L ệnh nhảy (R ẽ nhánh không ĐK)

Trang 7

L.X.Định

Trang 8

 M ỗi dữ liệu trong chương trình đều phải lưu trong một

bi ến nào đó

 Tương đương với 1 danh t ừ (1) trong ngôn ngữ tự nhiên

 Ví d ụ:

 Tính tổng tất cả các ước số của một số nguyên cho trước

 Cho một mảng các số thập phân, tìm số lớn nhất trong những

phần tử mảng nhỏ hơn một số nguyên cho trước

 Kiểm tra xem tổng các số trong một mảng các số nguyên có phải

là một số nguyên tố hay không

 Hãy viết chương trình cho phép nhập điểm (lý thuyết, thực hành)

của một SV từ bàn phím, và xuất ra màn hình điểm tổng kết của

Trang 9

 M ỗi dữ liệu trong chương trình đều phải lưu trong một

bi ến nào đó

Tương đương với 1 danh t ừ (1) trong ngôn ngữ tự nhiên

 Ví d ụ:

Tính t ổng tất cả các ước số của một s ố nguyên cho trước

 Cho một m ảng các số thập phân, tìm s ố lớn nhất trong những

phần tử mảng nhỏ hơn một s ố nguyên cho trước

 Kiểm tra xem t ổng các số trong một m ảng các số nguyên

phải là một số nguyên tố hay không

 Hãy viết chương trình cho phép nhập điểm (lý thuyết, thực hành, điểm cộng) của một SV từ bàn phím, và xuất ra màn hình

Trang 10

 Mỗi biến phải gắn liền với 1 ki ểu dữ liệu nào đó

Khai báo, VD: int x ;

Các cách s ử dụng biến:

Đọc: Lấy ra giá trị của biến để đưa vào

 Công th ức, VD: diemTK = (6* diemLT + 4* diemTH )/10 + diemCong ;

 Hàm, VD: printf(“Diem tong ket: %f\n”, diemTK );

 Gán vào bi ến khác, VD: tam = x ;

Trước khi đọc thì biến phải có dữ liệu xác định

(được ghi vào t ừ trước.)

Ghi: Gán giá trị nào đó vào biến thông qua

 Phép gán, VD: diemTK = (6*diemLT + 4*diemTH)/10;

 Tham bi ến trong hàm, VD: scanf(“Diem ly thuyet: %f”, & diemLT );

Bi ến – Kiểu, Giá trị

Trang 11

 Mỗi biến phải gắn liền với 1 ki ểu dữ liệu nào đó

Khai báo, VD: int x;

 Nên g ộp với đặt giá trị mặc định thành “kh ởi tạo”:

VD: int x = 1;

// Đọc máy móc: khai báo biến tên x có ki ểu int

được khởi tạo bằng giá tr ị 1.

// Đọc tự nhiên: khai báo bi ến số nguyên x được khởi tạo bằng 1

Trước khi đọc thì biến phải có dữ liệu xác định

(được ghi vào t ừ trước.)

Khi s ử dụng (đọc) biến, phải xác định được giá trị (dữ liệu) của nó

MEM

Trang 12

= 4 (byte)

Trang 13

x = 10 ; float y = 1.23 ;

x = floor( y * x );

} }

Trang 14

Kh ối lệnh KB của biến x := Kh ối lệnh trong cùng

ch ứa câu khai báo biến

x

 Bi ến:

 Vòng đời: t ạo , đọc/ghi, hu ỷ

 Tầm vực: ch ỗ khai báo  cu ối khối lệnh KB

 S ử dụng biến, VD:

{ int x = 1 ; {

x = 10 ; float y = 1.23 ;

x = floor( y * x );

} }

x đến cuối khối lệnh KB

c ủa nó

Trang 15

 Th ảo luận: Tầm vực & thời gian sống của

 Tham biến ≠ Tham trị!

 Biến điều khiển lặp (biến chạy) ≠ Biến khai báo trong vòng lặp!

 Bi ến toàn cục & static

 Biến static ≠ Biến toàn cục!

 Biến con trỏ (p) ≠ Biến được trỏ tới (*p)

 Thường thì trùng, nhưng đó là 2 khái niệm độc lập

T ầm vực & Vòng đời của Biến

Trang 16

 Bi ến là đơn vị lưu trữ dữ liệu để xử lý

 “Đơn vị”: Được sử dụng như m ột khối liền, không chia nhỏ

 Thuộc tính logic: ki ểu , tên, giá tr ị

 Thuộc tính vật lý: vùng nh ớ (ô nh ớ)

 Địa chỉ, kích thước, cấu trúc (với các biến kiểu phức)

 Vòng đời: t ạo , đọc/ghi, hu ỷ

 Có nhiều cách sử dụng biến (gán, tính toán, truyền tham số, ) nhưng đều quy được về đọc/ghi

 Tầm vực: ch ỗ khai báo  cu ối khối lệnh KB

 “Khối lệnh KB”: khối lệnh trong cùng chứa câu khai báo biến

 Riêng biến toàn cục thì có tầm vực đến hết chương trình (không nên dùng)

Sơ kết về Biến

Trang 17

 Demo vòng đời của biến & con trỏ

Trang 18

 Tính thương (nguyên) của 2 số nguyên dương

int Thuong(int a , int b )

{ int * p = new int(0);

Trang 19

Ho ạt cảnh Sử dụng Biến

Trang 20

Ví dụ:

 Hãy chú thích vòng đời & tầm vực của các biến được tô

vàng trong chương trình “Tính điểm SV”

 Ở những chỗ tô vàng, vẽ ô chú thích: Tên biến, kiểu, giá trị

 Vẽ vòng đời xuyên qua tất cả những hàm có thể gọi tới

 Coi câu lệnh “T * p;” là khai báo cả con trỏ p lẫn biến *p

•Bi ến: x

•Ki ểu: int

•GTr ị: K ết quả

c ủa câu lệnh trên (nh ập từ bàn phím)

void main() {

Trang 21

L.X.Định

Trang 22

 Thi ết bị nhập/xuất chuẩn

 C++ định nghĩa sẵn 2 biến cin, cout

trong thư viện <iostream>

 Dùng 2 toán t ử tương ứng để nhập/xuất cin >> bi ến; cout << dữ_liệu;

 C++ định nghĩa sẵn kiểu string

trong thư viện <string> thay cho kiểu char *

 Khai báo bi ến: string s;

 Khởi tạo: string s = string(“<giá tr ị khởi tạo>”);

 Nh ập xuất: cin >> s; cout << s;

Trang 23

Như một biến bình thường

Bi ến string Bi ến int

Khai báo bi ến & Khởi tạo:

string s = string(“ab c”), s1, s2; int i = 2, i1, i2;

Gán:

s2 = string(“d ef”); s1 = s2; i2 = 5; i1 = i2;

Truy ền Tham số cho Hàm:

 V ới string ( char * ist) là hàm t ạo đối tượng string

t ừ chuỗi cổ điển ( char *)

Trang 24

 Không ch ỉ chứa dữ liệu

 string s= string (“abc”); // s ch ứa 3 ký tự ‘a’, ‘b’, ‘c’

 Tính độ dài: s length () // tr ả về số nguyên 3 với s trên

 So sánh theo th ứ tự từ điển: s1 compare (s2) // tr ả về

 Xoá m ột phần (chuỗi con): s erase (1, 2); // xoá 2 ký

t ự bắt đầu từ vị trí 1 (xoá “bc” với s bên trên, còn lại chuỗi “a”)

Trang 25

 Và quan tr ọng nhất là luôn biết đảm bảo an toàn

 Quên kh ởi tạo cũng không sao: string s; // Giá tr ị

 Xoá quá tay?: s erase (1, 20); // không th ực hiện (xoá

 Truy c ập đến vị trí không hợp lệ?: s at (-1) // không

Nhưng “thông minh” hơn

Trang 26

}

Trang 27

 M ỗi SV trong lớp học có các trường dữ liệu:

 Điểm LT (0 10), điểm TH (0 10), điểm cộng (-1 1),

 Mã s ố SV, tên (đều là chuỗi không có khoảng cách)

điểm TK = (6 * điểm LT + 4 * điểm TH)/10 + điểm Cộng

Yêu c ầu: dùng cin, coutđể nhập xuất và dùng string cho chu ỗi

Trang 28

Ti ếng Việt Ti ếng Anh Chú thích

Ki ểu dữ liệu (tắt “Kiếu”) Data type (abr “Type”)

T ầm vực Scope Mang ý ngh ĩa cú pháp, thể hiện

qua các lu ật tầm vực

Lu ật tầm vực Scoping rule

Vòng đời Life cycle Là ng ữ nghĩa đằng sau cú pháp

khai báo, t ạo, sử dụng, huỷ biến

Th ời gian sống Lifetime Là th ời gian diễn ra 1 vòng đời

Hàm t ạo, sự tạo đ.tượng Constructor, construction T ạo cả phần vật lý (vùng nhớ)

l ẫn phần logic (giá trị) cho biến

Kh ởi tạo, sự kh.tạo g.trị Initialize, initialization Nh ấn mạnh phần logic (giá trị)

Ngày đăng: 11/01/2020, 20:11

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm