Tải bản đầy đủ (.pdf) (68 trang)

Giáo trình Lập trình hướng đối tượng - Nghề: Lập trình máy tính - CĐ Kỹ Thuật Công Nghệ Bà Rịa-Vũng Tàu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (668.42 KB, 68 trang )

ỦY BAN NHÂN DÂN TỈNH BR – VT
TRƯỜNG CAO ĐẲNG NGHỀ

GIÁO TRÌNH
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
NGHỀ LẬP TRÌNH MÁY TÍNH
TRÌNH ĐỘ CAO ĐẲNG, TRUNG CẤP
Ban hành kèm theo Quyết định số: 01 /QĐ­CĐN,  ngày 04 tháng 01 năm 2016  
của Hiệu trưởng trường Cao đẳng nghề tỉnh Bà Rịa – Vũng Tàu


Bà Rịa – Vũng Tàu, năm 2016


TUN BỐ BẢN QUYỀN
Tài liệu này thuộc loại sách giáo trình nên các nguồn thơng tin có thể  được 
phép dùng ngun bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử  dụng với mục đích kinh doanh 
thiếu lành mạnh sẽ bị nghiêm cấm.

1


LỜI GIỚI THIỆU
Lập trình theo phương pháp hướng đối tượng là một phương pháp lập trình 
xuất hiện từ những năm 1990 và được hầu hết các ngơn ngữ lập trình hiện nay hỗ trợ.  
Giáo trình này sẽ giới thiệu các đặc trưng của phương pháp lập trình hướng đối tượng 
như tính đóng gói, tính kế thừa và tính đa hình. Chúng tơi chọn ngơn ngữ  C# để  minh 
họa, vì đây là ngơn ngữ lập trình hướng đối tượng dễ học và phổ dụng nhất hiện nay.  
Sau khi hồn tất giáo trình này, sinh viên sẽ  biết được cách mơ hình hóa các lớp đối  
tượng trong thế  giới thực thành các lớp đối tượng trong C# và cách phối hợp các đối  


tượng này để giải quyết vấn đề đang quan tâm.

Bà Rịa – Vũng Tàu, ngày   tháng   năm 2016
Tham gia biên soạn

Nguyễn Bá Thủy

2


MỤC LỤC

3


MƠ ĐUN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Mã mơ đun: MĐ 16
Vị trí, tính chất của mơn học
Lập trình hướng đối tượng là phương pháp lập trình mới trên bước đường tiến  
hóa của việc lập trình máy tính, nhằm giúp chương trình trở  nên linh hoạt, tin cậy và 
dễ phát triển. Tư tưởng lập trình hướng đối tượng được áp dụng cho hầu hết các ngơn 
ngữ lập trình chạy trên mơi trường Windows như Visual Basic, Java, Visual C, C#... Vì 
vậy việc nghiên cứu phương pháp lập trình mới này là thật sự cần thiết đối với những  
người làm Tin học.
Mục tiêu mơn học
+ Trình bày các khái niệm trong lập trình hướng đối tượng 
+ Sử dụng ngơn ngữ C# trong lập trình hướng đối tượng 
+ Thiết kế lớp đối tượng và các thành phần của lớp 
+ Viết chương trình những bài tốn theo quan điểm lập trình hướng đối tượng 
+ Cài đặt tính kế thừa, đa hình trong hướng đối tượng 

+ Trình bày được sự cần thiết của các khái niệm: tốn tử, uỷ nhiệm hàm và sự kiện 
trong lập trình hướng đối tượng 
Phân tích, cài đặt và xây dựng được chương trình theo phương pháp hướng đối tượng 
trên một ngơn ngữ lập trình cụ thể.

4


Nội dung của mơ đun:
TT

Tên bài

Thời gian

Hình thức 
giảng dạy

1

Tổng quan về các phương pháp lập trình

5

Lý thuyết

2

Căn bản về C# 


5

Tích hợp

3

Sử dụng các bổ từ truy cập 

5

Tích hợp

4

Thiết lập các phương thức của lớp 

5

Tích hợp

5

Thiết lập các thuộc tính của lớp

5

Tích hợp

6


Cài đặt lớp trong C# 

9

Tích hợp

Kiểm tra bài 6

1

TH

7

Xây dựng các hàm khởi tạo của lớp

5

Tích hợp

8

Định nghĩa tốn tử 

5

Tích hợp

9


Sử dụng các loại tốn tử 

5

Tích hợp

10

Kế thừa 

4

Tích hợp

Kiểm tra bài 10

1

TH

11

Đa hình 

5

Tích hợp

12


Giao diện 

4

Tích hợp

13

Uỷ nhiệm hàm (delegate) 

5

Tích hợp

14

Sự kiện (event) 

5

Tích hợp

15

Kiểm tra bài 14

1

TH


16

Cộng

75

5


BÀI 1
TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP LẬP TRÌNH
Giới thiệu:
Phương  pháp   lập  trình   là   một   kiểu   cơ   bản  của   lập  trình   vi   tính   (Computer  
Programming). Programming với các khái niệm và sự trừu tượng dùng trong mơ tả các  
thành phần của một chương trình (như: các đối tượng (objects), các hàm (functions),  
các biến, các hằng,…) và các bước để tính tốn (như: các phép gán, biểu thức, các dịng 
dữ  liệu,…). Một ngơn ngữ  lập trình có thể  hỗ  trợ  nhiều Phương thức (lập trình), ví  
dụ: trong ngơn ngữ  C++ hay Object Pascal ta có thể  lập trình theo phương thức định 
hướng thủ  tục hoặc theo phương thức hướng đối tượng, hay cũng có thể  chứa cả  2  
kiểu viết này.
Cho dù là chọn phương thức lập trình nào, chúng ta vẫn mong muốn đạt đến 
một kết quả là làm sao để có sản phẩm tối ưu, đầy đủ các tính năng so với u cầu đề 
ra. Sự chọn lựa một phương thức lập trình phù hợp với u cầu đặt ra sẽ giúp các lập  
trình viên có được một kết quả tốt nhất. Do vậy, thực sự khơng thể so sánh ưu nhược  
điểm giữa các phương thức lập trình nếu khơng đặt nó vào một hồn cảnh cụ thể của  
u cầu.
Mục tiêu: 
­ Trình bày được các phương pháp của lập trình hướng đối tượng, các đặt điểm nỗi  
bật của phương pháp lập trình hướng đối tượng.
­ Trình bày được các khái niệm cơ bản của lập trình hướng đối tượng

­ Rèn luyện tính cẩn thận, sáng tạo, tinh thần làm việc nhóm
Nội dung:
1. Các phương pháp lập trình

6


Xây dựng phần mềm bao gồm rất nhiều cơng đoạn: phân tích & thiết kế, cài đặt, kiểm  
tra/thử nghiệm và bảo trì.
Cài đặt (programming/coding) chỉ là 1 phần trong q trình trên.
C++/C#/Java/v.v… là NNLT để viết chương trình.
PPLT là hệ thống hướng dẫn các giai đoạn cần thiết, cấu trúc của một chương trình.
PPLT là các cách tiếp cận giúp cho q trình cài đặt hiệu quả hơn.
Các u cầu chính của phần mềm:
Tính tái sử dụng (reusability)
Tính mở rộng (extensibility)
Tính mềm dẻo (flexibility)
1.1. Lập trình tuyến tính
Chương trinh la mơt day cac lênh.
̀
̀ ̣ ̃ ́ ̣
Lâp trinh la xây d
̣
̀
̀
ựng cac lênh trong day lênh.
́ ̣
̃ ̣
Khơng mang tính thiết kế.
1.2. Lập trình cấu trúc

Chương trinh la mơt hê thơng cac thu tuc/ ham.
̀
̀ ̣ ̣
́
́
̉ ̣
̀
Môi thu tuc/ ham la môt day cac lênh.
̃ ̉ ̣
̀ ̀ ̣ ̃ ́ ̣
Lâp trinh la xac đinh xem ch
̣
̀
̀ ́ ̣
ương trinh gôm bao nhiêu thu tuc/ ham.
̀
̀
̉ ̣
̀
Kết quả là hệ thống cấu trúc và mối quan hệ giữa các hàm/ thủ tục.
1.3. Lập trình mơđun
Chương trinh la mơt hê thơng nh
̀
̀ ̣ ̣
́
ững modul hay đơn thê.̉
Đơn thê la mơt hê thơng cac thu tuc/ ham.
̉ ̀ ̣ ̣
́
́

̉ ̣
̀
Phân tích và tìm ra các đơn thể.

7


Gom nhóm các thành phần tương tự nhau về ý nghĩa, phạm vi…
Bài tập củng cố: 
Xet ch
́ ương trinh nhâp vao ho tên, điêm văn, điêm toan cua mơt hoc sinh va xt điêm
̀
̣
̀ ̣
̉
̉
́ ̉
̣
̣
̀ ́ ̉  
trung binh t
̀ ương ưng. Hay viêt ch
́
̃
́ ương trinh trên băng cac ph
̀
̀
́ ương pháp.
1.4. Lập trình hướng đối tượng
Chương trinh la mơt hê thơng nh

̀
̀ ̣ ̣
́
ững lơp đôi t
́ ́ ượng. Môi môt l
̃ ̣ ớp đôi t
́ ượng vê măt th
̀ ̣ ực 
tê t
́ ương ưng v
́ ơi nh
́ ưng đơi t
̃
́ ượng co xt hiên trong th
́ ́ ̣
ực tê.́
LT hương đơi t
́
́ ượng la xây d
̀
ựng nhưng l
̃ ơp đơi t
́
́ ượng va u câu chung th
̀
̀
́
ực hiên
̣  
nhưng trach nhiêm cua minh.

̃
́
̣
̉
̀
LT hướng đối tượng là phương pháp LT dựa trên kiến trúc lớp (class) và đối tượng 
(object). 
2. Các đặc điểm lập trình hướng đối tượng
Đối tượng là gì ?
Đối tượng trong thế  giới thực: là một thực thể  cụ thể  mà ta có thể  sờ, nhìn thấy  
hay cảm nhận được.
Đối tượng phần mềm: dùng để biểu diễn các đối tượng trong thế giới thực.
Mỗi đối tượng bao gồm 2 thành phần: thuộc tính và hành động.
Ví dụ: một người A
Một người có các thuộc tính: tên, tuổi, địa chỉ, màu mắt, …
Các hành động: đi, nói, thở, …
Một đối tượng là 1 thực thể bao gồm
thuộc tính & hành động 
Hình 1.1: Mơ hình đối tượng
Lớp đối tượng là gì ?

8


Lớp đối tượng thể  hiện cho một nhóm các đối tượng giống nhau (cùng thuộc tính &  
hành động)
VD: học sinh A, học sinh B, học sinh C…
Thiết kế phần mềm hướng đối tượng:
Trừu tượng hóa dữ liệu và các hàm/ thủ tục liên quan
Chia hệ thống ra thành các lớp/ đối tượng

Mỗi lớp/ đối tượng có các tính năng và hành động chun biệt
Các lớp có thể được sử dụng để tạo ra nhiều đối tượng cụ thể
Các bước thiết kế đối tượng:
Bươc 1: Xây d
́
ựng sơ đơ đơi t
̀ ́ ượng
Xac đinh cac l
́ ̣
́ ơp đơi t
́ ́ ượng
Xac đinh cac quan hê gi
́ ̣
́
̣ ữa cac l
́ ơṕ
Bươc 2: Thiêt kê cac l
́
́ ́ ́ ơṕ
Thiêt kê thuôc tinh, cac hanh đông
́ ́
̣ ́
́ ̀
̣
Bươc 3: Cai đăt cac l
́
̀ ̣ ́ ơp 
́
Bước 4: Sử dụng các lớp để tạo ra các đối tượng
Một số ngơn ngữ lập trình HĐT: C++, C#, VB.Net, J#, VC++, Java, JavaScript, PHP

3. Một số khái niệm cơ bản
3.1. Tính trừu tượng (abstraction)
Sự trừu tượng hóa:

9


Hình 1.2: Mơ hình trừu tượng hóa thực thể
3.2. Tính đóng gói (encapsulation)
Kha năng cât gi
̉
́ ữ riêng biêt d
̣ ữ liêu va ph
̣
̀ ương thưc tac đơng lên d
́ ́ ̣
ữ liêu đo. Do
̣
́
 
vây chung ta khơng phai quan tâm t
̣
́
̉
ơi “phai lam nh
́
̉ ̀
ư  thê nao” ma chi điêu khiên băng
́ ̀
̀ ̉

̀
̉
̀  
“lam viêc gi”. Đong goi giúp đơng nhât gi
̀
̣ ̀
́
́
̀
́ ữa dữ liêu va cac thao tac tac đơng lên d
̣
̀ ́
́ ́ ̣
ữ liêu
̣  
đo.́
3.3. Tính đa hình (polymorphism)
Cho phep g
́ ởi cung mơt thơng điêp đên nh
̀
̣
̣
́ ững đơi t
́ ượng khac nhau cung co chung
́
̀
́
 
mơt đăc điêm.
̣ ̣

̉
3.4. Tính kế thừa (inheritance)
Giúp tạo đối tượng mới từ đối tượng có sẵn, bơ sung nh
̉
ưng đăc tinh cân thiêt
̃
̣ ́
̀
́ 
trong đơi t
́ ượng mơi. 
́
Lơp đơi t
́ ́ ượng đa co đ
̃ ́ ược sử dung lai goi la l
̣
̣
̣ ̀ ơp c
́ ơ sở. 
Lơp th
́ ưa kê l
̀ ́ ớp cơ sở goi la l
̣ ̀ ơp dân xuât.
́ ̃
́
CÂU HỎI, BÀI TẬP
Xây dựng quy trình tổng quát về lớp HOCSINH

10



Gợi ý: 
Tên lớp, các thuộc tính,..
U CẦU, ĐÁNH GIÁ
­ Các khái niệm cơ bản về lập trình
­ Đặc điểm của đối tượng
­ Các khái niệm cơ bản trong hướng đối tượng

11


BÀI 2
CƠ BẢN VỀ C#
Giới thiệu
Ngơn ngữ C# khá đơn giản, chỉ khoảng hơn 80 từ khóa và hơn mười mấy kiểu 
dữ  liệu được dựng sẵn. Tuy nhiên, ngơn ngữ  C# có ý nghĩa to lớn khi nó thực thi  
những khái niệm lập trình hiện đại. C# bao gồm tất cả  những hỗ  trợ  cho cấu trúc,  
thành phần component, lập trình hướng đối tượng. Những tính chất đó hiện diện trong  
một ngơn ngữ lập trình hiện đại.
Mục tiêu 
­ Củng cố kiến thức nền tảng về các kiểu dữ liệu, cấu trúc điều khiển, hàm thủ tục.
­ Vận dụng các kiểu dữ liệu, cấu trúc điều khiển, hàm thủ tục vào các bài tập cơ bản.
­ Rèn luyện tính cẩn thận, sáng tạo, tinh thần làm việc nhóm.

2.1. Các kiểu dữ liệu cơ bản
2.1.1. Định nghĩa
KDL là các loại dữ liệu và phạm vi giá trị của chúng trong bộ nhớ mà người lập trình  
sử dụng để lưu trữ.
Có 2 loại : KDL dựng sẵn & KDL tự định nghĩa.
C# cũng chia tập dữ liệu thành hai kiểu: giá trị  và tham chiếu. Biến kiểu giá trị  được 

lưu trong vùng nhớ stack, còn biến kiểu tham chiếu được lưu trong vùng nhớ heap.
2.1.2. Khai báo
Số nguyên: Int a,b;
Số thực: float x,y;
Ký tự, logic: char c; bool T;

12


Chuỗi ký tự:
Kiểu string có thể chứa nội dung khơng giới hạn, vì đây là kiểu dữ liệu đối tượng  
được chứa ở bộ nhớ heap. 
Khai báo:
string s = “Nguyen Van A”;
Kiểu mảng:
Mảng là một tập hợp các phần tử  cùng một kiểu dữ  liệu liên tiếp nhau và được  
truy xuất thơng qua chỉ số.
Chỉ số bắt đầu từ 0.
Mảng một chiều
<KDL> []<Tên mảng>=new <KDL>[Số phần tử];
VD: Khai báo mảng số ngun arr gồm 5 phần tử 
int [] arr = new int [5];
Enum (kiểu liệt kê):
Enum là một cách thức để đặt tên cho các trị ngun (các trị kiểu số ngun, theo nghĩa 
nào đó tương tự như tập các hằng), làm cho chương trình rõ ràng, dễ hiểu hơn
VD1:
enum Ngay {Hai, Ba, Tu, Nam, Sau, Bay, ChuNhat};
Hai = 0; Ba = 1; … ; ChuNhat = 6
Struct (kiểu cấu trúc):
Struct dùng để nhóm các dữ liệu cùng liên quan đến một đối tượng nào đó.

Khai báo :
struct <Tên cấu trúc>

13


{
Danh sách các thuộc tính;
}
Truy xuất: <tên biến cấu trúc>.thuộc tính
Ví dụ:
struct SV
{
    

public string ten;

    

public string maso;

}
   static void Main(string[] args)
   {
       

SV a;

        a.ten = "Le Van Teo";
        a.maso = "002";

    

Console.WriteLine("Ten: "+a.ten+" Ma so: "+a.maso);

        Console.ReadLine();
}
Bài tập cũng cố:
Viết chương trình nhập vào thơng tin: 
Mã số nhân viên
Họ tên
Hệ số lương (hs)

14


Lương cơ bản (lcb)
Phụ cấp (pc)
In tổng lương ra màn hình theo cơng thức:
Tổng lương = lcb*hs + pc
2.2. Các cấu trúc điều khiển
Rẽ nhánh : if…else
if (biêu th
̉
ưc điêu kiên)
́
̀
̣
{
<khơi lênh> ;
́ ̣

}

Nêu biêu th
́
̉
ưc điêu kiên cho kêt qua khac khơng (true) thi th
́
̀
̣
́
̉
́
̀ ực hiên khơi lênh.
̣
́ ̣
Vi du: Nhâp vao sơ ngun n. Kiêm tra nêu n > 0 tăng n lên 1 đ
́ ̣
̣
̀ ́
̉
́
ơn vi. Xt kêt qua. 
̣
́ ́
̉
static void Main(string[] args)
{
int n;
Console.Write("Nhap vao mot so nguyen: ");
n = int.Parse(Console.ReadLine());

if (n > 0)                
n++;            
Console.WriteLine("Ket qua: n = " + n);
}

15


if (biêu th
̉
ưc điêu kiên)
́
̀
̣
{
<khôi lênh 1>;
́ ̣
}
else
{
<khôi lênh 2>;
́ ̣
}

Nêu biêu th
́
̉
ưc điêu kiên cho kêt qua khac không thi th
́
̀

̣
́
̉
́
̀ ực hiên khôi lênh 1, ng
̣
́ ̣
ược lai thi
̣
̀ 
cho thực hiên khôi lênh th
̣
́ ̣
ứ 2.
Bài tập cũng cố: 
Nhâp vao hai sô nguyên a, b. In ra man hinh gia tri l
̣
̀
́
̀ ̀
́ ̣ ơn nhât.
́
́
Cho ba sô a, b, c đoc vao t
́
̣
̀ ừ ban phim. Hay tim gia tri l
̀
́
̃ ̀

́ ̣ ơn nhât cua ba sô trên va in
́
́ ̉
́
̀  
ra kêt qua.
́
̉
Cấu trúc lựa chọn:
switch (biêu th
̉
ưc)
́  
case  n1:

KQ phải là nguyên

               cac câu lênh ;
́
̣
               break ;
case  n2:         
            cac câu lênh ;
́
̣
            break ;

16



………
case  nk:                                                                                       
            <cac câu lênh> ;
́
̣
            break ;
[default: cac câu lênh]
́
̣
break;                
Cấu trúc lặp while:
< Khởi gan>;
́
while (̉
ưc điêu kiên>)
́
̀
̣
lênh/ khôi lênh;
̣
́ ̣
<tăng/giam chi sô lăp>;
̉
̉ ́ ̣
Cấu trúc lặp for:
for (<Khởi gan>;́
ểu thức ĐK>;<tăng/giam>)
̉

{
<khôi lênh>;
́ ̣
}
Cấu trúc lặp do…while:
do
{
< khôi lênh> ;
́ ̣
} while (biêu th
̉
ưc ĐK);
́
Thực hiên khôi lênh cho đên khi biêu th
̣
́ ̣
́
̉
ức điều kiện là false
Cấu trúc lặp foreach:

17


Sử dụng cho mảng
foreach (<KDL mảng>  <tên biến>  in  <tên mảng>)
{
Khối lệnh;

Xét từng phần tử trong mảng

VD: Tính tổng các phần tử chẵn trong mảng
static void Main(string[] args)
{
    int s=0;
    int [ ] a = new int [5] {3, 8, 7, 1, 6};
    foreach(int m in a)
    

if(m%2==0)

           s+=m;
    Console.WriteLine("Tong chan = " +s);
}
Bài tập cũng cố:
­ Viêt ch
́ ương trinh đêm sơ US cua sơ ngun d
̀
́
́
̉
́
ương.
­ Viêt ch
́ ương trinh in ra man hinh hinh ch
̀
̀ ̀
̀
ữ nhât đăc kich th
̣
̣

́
ước   (m, n nhâp t
̣ ừ ban
̀ 
phim).
́
Vi du: Nhâp m=5, n=4
́ ̣
̣
*    *    *    *    *
*    *    *    *    *

18


*    *    *    *    *
*    *    *    *    *
2.3. Hàm, thủ tục
2.3.1. Định nghĩa
Phương thức (hay cịn gọi là hàm) la mơt đoan ch
̀ ̣
̣
ương trinh đơc lâp th
̀
̣ ̣
ực hiên tron ven
̣
̣
̣  
mơt cơng viêc nhât đinh sau đo tra vê gia tri cho ch

̣
̣
́ ̣
́ ̉ ̀ ́ ̣
ương trinh goi no, hay noi cach khac
̀
̣
́
́ ́
́ 
ham la s
̀ ̀ ự chia nho cua ch
̉ ̉
ương trinh.
̀
Mục đich s
́ ử dụng phương thức: 
Khi co môt công viêc giông nhau cân th
́ ̣
̣
́
̀ ực hiên 
̣ ở nhiêu vi tri.
̀ ̣ ́
Khi cân chia môt ch
̀
̣
ương trinh l
̀ ơn ph
́ ưc tap thanh cac đ

́ ̣
̀
́ ơn thê nho (ham con)
̉
̉
̀
 
đê ch
̉ ương trinh đ
̀ ược trong sang, dê hiêu trong viêc x
́
̃ ̉
̣ ử ly, tính tốn.
́
2.3.2. Khai báo
Mẫu tổng qt của phương thức:
 <KDL> TênPhươngThức([tham sơ]);
́
Phạm vi:
Xác định phạm vi hay cách phương thức được gọi (sử dụng)
Các từ khố phạm vi : private, public, static
KDL của phương thức (đầu ra), gồm 2 loại:
void: Khơng trả về giá trị
float / int / long / string / kiểu cấu trúc / … : Trả về giá trị có  KDL tương ứng với kết 
quả xử lý
Tên phương thức : Đặt tên theo qui  ước sao cho phản ánh đúng chức năng thực hiện  
của phương thức

19



Danh sách các tham số (nếu có) : đầu vào của phương thức (trong một số trường hợp  
có thể  là đầu vào và đầu ra của phương thức nếu kết quả  đầu ra có nhiều giá trị  ­ 
Tham số này gọi là tham chiếu).
Ví dụ mẫu:
static int a, b;
static void Nhap()
{
Console.Write("Nhap a: ");
    a = int.Parse(Console.ReadLine());
    Console.Write("Nhap b: ");
    b = int.Parse(Console.ReadLine());
}
static void Xuat()
{
    Console.WriteLine("a = {0}; b = {1}", a, b);
}
static void Main(string[] args)
{
    Nhap();
    Xuat();
}
Tham số là tham chiếu:
Dùng từ  khóa ref bắt buộc phải khởi gán giá trị  ban đầu cho đối số  trước khi truyền  
vào khi gọi phương thức (Nếu dùng out thì khơng cần thiết)

20


Hốn vị 2 số ngun a, b cho trước:

Đánh giá kết quả khi viết chương trình với hai trường hợp sau
Trường hợp khơng dùng tham chiếu
Trường hợp dùng tham chiếu: ref
Khơng dùng tham chiếu:
static void HoanVi(int a, int b)
{
int tam = a;
     a = b;
     b = tam;
     Console.WriteLine("Trong HoanVi: a = " + a + ";b = " + b);
}
static void Main(string[] args)
{
int a = 5, b = 21;
     Console.WriteLine("Truoc HoanVi: a = {0}; b = {1}", a, b);
     HoanVi(a, b);
     Console.WriteLine("Sau HoanVi: a = " + a + ";b = " + b);
}
Dùng tham chiếu:
static void HoanVi(ref int a, ref int b)
{
int tam = a;

21


     a = b;
     b = tam;
     Console.WriteLine("Trong HoanVi: a = " + a + ";b = " + b);
}

static void Main(string[] args)
{
int a = 5, b = 21;
     Console.WriteLine("Truoc HoanVi: a = {0}; b = {1}", a, b);
     HoanVi(ref a, ref b);
     Console.WriteLine("Sau HoanVi: a = " + a + ";b = " + b);
}

CÂU HỎI, BÀI TẬP
1, Viêt ch
́ ương trinh tinh diên tich va chu vi cua hinh ch
̀ ́
̣ ́
̀
̉ ̀
ư nhât.
̃ ̣
2, Viêt ch
́ ương trinh tinh diên tich va chu vi hinh tron.
̀ ́
̣ ́
̀
̀
̀
3, Nhâp vao 3 sô th
̣
̀
́ ực a, b, c va kiêm tra xem chung co lâp thanh 3 canh cua môt tam giac
̀ ̉
́

́ ̣
̀
̣
̉
̣
́ 
hay không? Nêu co hay tinh diên tich, chiêu dai môi đ
́ ́ ̃ ́
̣ ́
̀ ̀
̃ ường cao cua tam giac va in kêt
̉
́ ̀
́ 
qua ra man hinh.
̉
̀ ̀
4, Viêt ch
́ ương trinh nhâp 2 sô nguyên d
̀
̣
́
ương a, b. Tim USCLN & BSCNN.
̀
5, Viêt ch
́ ương trinh nhâp sô nguyên d
̀
̣
́
ương n, tinh tông cac 

́
̉
́ ươc s
́ ố của n. 
Vi du: Nhâp n=6
́ ̣
̣

 

6, Tổng các ước số từ 1 đến n: 1+2+3+6=12.
7, Nhâp vao gi
̣
̀ ơ, phut, giây. Kiêm tra xem gi
̀
́
̉
ơ, phut, giây đo co h
̀
́
́ ́ ợp lê hay không?
̣

YÊU CẦU, ĐÁNH GIÁ
22


­ Cách khai báo biến
­ Sử dụng các cấu trúc điều khiển
­ Cấu trúc hàm, thủ tục.

­ Tham chiếu, tham trị.

23


×