Mục lục chương I: ĐỐi tưỢng và LỚP


CÂU HỎI TRẮC NGHIỆM LÝ THUYẾT



tải về 1.36 Mb.
trang20/28
Chuyển đổi dữ liệu21.12.2018
Kích1.36 Mb.
1   ...   16   17   18   19   20   21   22   23   ...   28

CÂU HỎI TRẮC NGHIỆM LÝ THUYẾT


Câu 1: Hãy cho biết định nghĩa nào sau đây sai

- Chồng toán tử định nghĩa như là một hàm thành phần.

- Chồng toán tử định nghĩa như là một hàm bạn.

- Chồng toán tử định nghĩa như là một phương thức.

Hãy giải thích vì sao chọn như vậy.


Câu 2: Cho đoạn chương trình sau đây:

using System;

class Mainclass

{

static void main()



{

int a = 5;

Console.WriteLine(-a);

Console.WriteLine(a-1);

Console.WriteLine(a-.5);

}

}



output:

-5 (1)


-6 (2)

-5,5 (3)


Hãy cho những trường hợp sau đây trường hợp nào đúng

- Dòng (1), (2), (3) đều đúng

- Dòng (2), (3) là sai.

- Dòng (2), (3) là đúng.

- Dòng (1) đúng, dòng (2) và (3) sai.

Câu 3: Khi nào ta sử dụng toán tử chuyển đổi? Thế nào là chuyển đổi tường minh và chuyển đổi ngầm định. Nếu không sử dụng toán tử chuyển đổi trong trường hợp vừa nêu thì làm điều gì sẽ xẩy ra?

Câu 4: Trong C++ thì hàm chồng toán tử giống như một hàm bạn. Vậy trong C# thì điều này có đúng không? Nếu đúng thì hãy đưa ra một ví dụ cụ thể. Ngược lại thì hãy giải thích tại sao

Câu 5: Việc chồng toán tử trong ngôn ngữ C# có điều gì khác so với chồng toán tử ở các ngôn ngữ khác hay không?Nếu có, thì sự khác biệt đó có ưu điểm gì?

  1. BÀI TẬP TỰ GIẢI


Bài 1: Cho đoạn chương trình sau hãy đưa ra kết quả của chương trình để hiểu rõ về phương thức ToString:

using System;

namespace phuongthuctostring

{

using System;



namespace Wrox.ProCSharp.OOCSharp

{

class MainEntryPoint

{

static void Main(string[] args)

{

Money cash1 = new Money();

cash1.Amount = 40M;

Console.WriteLine("cash1.ToString() returns: " + cash1.ToString());

cash1 = new BetterMoney();

cash1.Amount = 40M;

Console.WriteLine("cash1.ToString() returns: " + cash1.ToString());

Console.ReadLine();

}

}



class Money

{

private decimal amount;



public decimal Amount

{

get

{

return amount;

}

set

{

amount = value;



}

}

}



class BetterMoney : Money

{

public override string ToString()

{

return "$" + Amount.ToString();

}

}



}

}

Bài 2:

Tạo kiểu dữ liệu Date biểu diễn ngày tháng năm. Cài đặt thuật toán để tính một ngày trước hoặc sau một ngày xác định nào đó tính khoảng cách theo ngày giữa hai ngày xác định, tính thứ trong tuần của ngày. Sử dụng toán tử vào ra cho

ngày.


Hướng dẫn:

- Đưa ra ngày xác định nào đó có thể nhập từ bàn phím hoặc cung cấp giá trị cho nó bằng từ khóa new

- Để hiển thị được thời gian của một ngày trước và sau của một ngày xác định nào đó bằng cách lấy ngày xác định trừ đi 1 hoặc cộng thêm 1 vào ngày hiện tại. Để làm được điều này ta dùng hàm chồng toán tăng giảm (- -) và (++) một ngôi.

- Để hiển thị ngày,tháng, năm dưới dạng xâu “ngày / tháng / năm” thì ta phải dùng phương thức ToString().



Bài 3:

Xây dựng lớp biểu diễn đa thức với các toán tử cộng, trừ, nhân, chia và đảo dấu. Định nghĩa toán tử để thực hiện các yêu cầu của bài toán..



Hướng dẫn:

- Xây dựng một đa thức có dạng f(x) = Ax + By + Cz + D và đa thức có dạng f’(x) = A’x + B’y +C’z + D’ = 0.

- Cung cấp giá trị cho các hằng số cho hai đa thức

- Sử dụng phương thức ToString để tạo xâu đa thức

- Sử dụng chồng toán tử để thực hiện yêu cầu của bài toán.

operator - có một đối để đảo dấu đa thức.

operator + có hai đối để cộng hai đa thức.

operator - có hai đối để trừ hai đa thức.

operator * có hai đối để nhân hai đa thức.

operator / có hai đối để chia hai đa thức.



Bài 4:

Xây dựng một lớp biểu diễn các vector n chiều với các toán tử cộng, trừ, tích có hướng hai vector và tích có hướng một vector với một số thực. Định nghĩa toán tử cho phép truy nhập các thành phần vector.



Bài 5:

Xây dựng một lớp mở rộng của lớp phanso đã xây dựng ở phần bài tập mẫu. Các yêu cầu cần bổ xung thêm:

+ Nhập phân số từ bàn phím

+ Dùng nạp chồng toán tử để nhân, chia hai phân số hoặc nhân, chia một phân số với một số hoặc ngược lại

Hướng dẫn:

- Để nhân, chia hay nhân hai phân số với nhau hoặc nhân chia một phân số với một số ta khai báo chồng toán tử bình thường tương tự như đối với cộng hoặc trừ

Cụ thể với toán tử(*) :

public static phanso operator *( phanso lhs, phanso rhs )

{

int fistproduct = lhs.tuso1 * rhs.tuso2;



int secondproduct = lhs.mauso1 * rhs.mauso2;

return new phanso(fistproduct, secondproduct);

}

Bài tập 6: Xây dựng lớp MaTran cho để thực hiện các phép toán trên ma trận, bao gồm:

- Hàm tạo ma MaTran(int sh, int sc) dùng để khởi tạo một ma trận có số hàng là sh và số cột là sc.

- Phương thức “nhap” để nhập ma trận từ bàn phím

- Phương thức “cong” để cộng hai ma trận

- Phương thức “hieu” để thực hiện phép hiệu hai ma trận

- Phương thức “doiDau” để đổi dấu các phần tử của ma trận

- Phương thức “chuyenVi” để chuyển vị một ma trận

- Phương thức “tich” để nhân hai ma trận

- Phương thức “tuongThich” để kiểm tra xem hay ma trận có tương thích với nhau hay không?

Hướng dẫn:

- Để khai báo một ma trận thì khai báo như sau:

struct MT

{

int a[sh][sc]; //Mảng a chứa các phần tử của ma trận.



int n; //Cấp ma trận.

}

- Để thực hiện nhập, cộng hiệu, đổi dấu, tích thì xem lại cách giải của các bài tập trong bài tập mẫu .



- Muốn đổi dấu các phần tử của ma trận ta dùng chồng toán tử (-) như bài tập 6 (bài tập mẫu).

Bài 7:

Xây dựng lớp SoPhuc để mở rộng hơn bài tập 6(bài tập mẫu) thực hiện các phép toán về số phức, bao gồm:

- Hàm tạo SoPhuc(float pt, float pa) để khởi tạo phần thực bằng pt và phần ảo bằng pa

- Hàm tạo SoPhuc() để khởi tạo phần thực bằng 0 và phần ảo bằng 0

- Phương thức “chia” để thực hiện phép chia hai số phức

- Phương thức “nghichDao” để tính nghịch đảo của một số phức

- Phương thức “soSanhBang” để so sánh xem hai số phức có bàng nhau hay không?

- Phương thức “lonHon”, “nhoHon”, … để thực hiện phép toán so sánh lớn hơn, nhỏ hơn…

- Phương thức “nhap” dùng để nhập số phức từ bàn phím

- Phương thức “print” dùng để in số phức ra màn hình.



Hướng dẫn:

+ Xem lại bài tập 6 (bài tập mẫu) để ta có thể xây dựng một lớp số phức .

+ Nhập số phức từ bàn phím như bài tập 9 (bài tập mẫu)

+ Chia hai số phức bằng cách ta chia phần thực và phần ảo riêng như cộng hai số phức sau đó cộng lại thì sẽ thu được kết quả .

+ Nghich đảo một số phức cũng giống nư nghịch đảo một phân số.

+ Ta có thể so sánh số phức bằng toán tử so sánh (= =) và (!=) như bài tập 8 trong phần bài tập mẫu.



CHƯƠNG III

KẾ THỪA VÀ ĐA HÌNH

Mục tiêu: Sau khi tìm hiểu chương này người học có thể nắm được các nội dung sau:

● Cài đặt được sự thừa kế

● Sử dụng các thành phần của lớp cơ sở

● Định nghĩa lại các hàm thành phần

● Truyền thông tin giữa các hàm thiết lập của lớp dẫn xuất và cơ sở

● Sự tương thích giữa các đối tượng của lớp dẫn xuất và lớp cơ sở

● Chỉ ra đặc điểm của phương thức trừu tượng và tính đa hình, cài đặt bằng bài toán cụ thể

● Phân biệt các từ khóa new, virtual, override…

● Lớp trừu tượng, lớp cô lập, lớp báo




  1. Поделитесь с Вашими друзьями:
1   ...   16   17   18   19   20   21   22   23   ...   28


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©tieuluan.info 2019
được sử dụng cho việc quản lý

    Quê hương