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


Xây dựng một lớp vector và thực hiện các yêu cầu sau



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

Xây dựng một lớp vector và thực hiện các yêu cầu sau:


- Có thể nhập n vector từ bàn phím.

- Nhập số chiều tùy ý.

- Đưa ra tổng các vector.

- Đưa ra hiệu các vector.

a, Hướng dẫn:

- Trong chương trình này ngoài lớp tester ta đi xây dựng lớp vector và DSVT , nhập n vector với số chiều tùy ý thì ta cần khai báo một biến tĩnh n và sử dụng từ khóa public để khai báo. Biến n được khai báo như sau: public static int n;

n là một biến tĩnh bởi vì nó có thể thay đổi tùy ý.

- Để nhập được số vector tùy ý ta cần phải khai báo số vector dưới dạng mảng trong lớp DSVT như sau: private vector[] ds

Tương tự để nhập được số chiều của các vector một cách tùy ý ta cũng khai báo số chiều của vector trong lớp vector tương tự như trên: private int[]a.

-Trong lớp vector xây dựng các hàm và các phương thức public vector()

public void nhap()

public void hien()

public vector tongvector(vector T)

public vector truvector(vector Tr)

public vector(vector lhs)

public vector coppy

public static vector operator -(vector lhs, vector rhs)

public static vector operator +(vector lhs,vector rhs)

- Trong lớp DSVT

public void nhap():gọi phương thức nhập của lớp vector ra thực hiện ds[i].nhap()

public vector tong(): Gọi hàm coppy() ra thực hiện và sử dụng vòng lặp for duyệt từ vector đầu tiên đến các vector cuối cùng và trừ chúng lần lượt dựa theo phần tử (lhs và rhs

public vector tru(): Làm tương tự như cộng}

b, Bài giải mẫu:


using System;

namespace vectorchong

{

class vector

{

public static int n;

private int[] a;

public vector()

{

a = new int[n];



}

public void nhap()

{

int i;



Console.WriteLine("Phan tu cua vector:");

for (i = 0; i < n; i++)

{

Console.Write("a[{0}]=",i);



a[i] = int.Parse(Console.ReadLine());

}

}



public void hien()

{

int i;



for (i = 0; i < n; i++)
Console.Write("{0}", a[i]);

Console.WriteLine();

}

public vector tongvector(vector T)

{

vector tmp = new vector();

int i = 0;



for (i = 0; i < n; i++)

tmp.a[i] = a[i] + T.a[i];



return tmp;

}

public vector truvector(vector Tr)

{

vector tmp = new vector();

int i = 0;

for (i = 0; i < n; i++)

tmp.a[i] = a[i] - Tr.a[i];



return tmp;

}

public vector(vector lhs)

{

int i;

for (i = 0; i < n; i++)

this.a[i] = lhs.a[i];

}

public vector coppy()

{

int i;

vector tmp = new vector();

for (i = 0; i < n; i++)

tmp.a[i] = a[i];



return tmp;

}

public static vector operator +(vector lhs,vector rhs)

{

vector tmp = new vector();

int i;

for (i = 0; i < n; i++)

tmp.a[i] = lhs.a[i] + rhs.a[i];



return tmp;
}

public static vector operator -(vector lhs, vector rhs)

{

vector tmp = new vector();



int i;

for (i = 0; i < n; i++)

tmp.a[i] = lhs.a[i] - rhs.a[i];



return tmp;

}

}



}

class DSVT

{

private int SVT;



private vector[] ds;

public void nhap()

{

int i;



Console.Write("nhap so chieu cua vector n=");

vector.n = int.Parse(Console.ReadLine());

Console.Write("Nhap so vector SVT =");

SVT = int.Parse(Console.ReadLine());

ds = new vector[SVT];

for (i = 0; i < ds.Length; i++)

{

ds[i] = new vector();



Console.WriteLine("Nhap thong tin cho Vector thu {0}", i + 1);

ds[i].nhap();

}

}

public vector tong()



{

vector tmp = ds[0].coppy();

int i;

for (i = 1; i < SVT; i++)

tmp = tmp + ds[i];



return tmp;

}

public vector tru()

{

vector tmp = ds[0].coppy();

int i;

for (i = 1; i < SVT; i++)

tmp = tmp - ds[i];



return tmp;

}

}



class tester

{

private int x;



static void Main()

{

DSVT t = new DSVT();

t.nhap();

t.tong();



Console.WriteLine("- Tong cua cac vector da nhap la:");

t.tong().hien();



Console.WriteLine("- Hieu cua cac vector da nhap la:");

t.tru().hien();



Console.ReadLine();

}

}



}


Kết quả sau khi thực hiện chương trình:


Nhap so chieu cua vector n=3

Nhap so vector SVT = 3

Nhap thong tin cho vector thu 1

Phan tu cua vector:

a[0] = 2

a[1] = 4


a[2] = 2

Nhap thong tin cho vector thu 2

Phan tu cua vector:

a[0] =5


a[1] = 6

a[2] = 2


Nhap thong tin cho vector thu 3

Phan tu cua vector

a[0] =1

a[1] =5


a[2] =3

- Tong cua các vector da nhap la:

8 15 7

- Hieu cua cac vector da nhap la:



-4 -7 -3



Nhận xét:

- Qua chương trình trên ta cần chú ý làm thế nào để nhập vector có số chiều, số phần tử tùy ý từ bàn phím. Từ đó có thể nhập n ma trận hay một số phức,… từ bàn phím.

- Sử dụng hàm copy để cộng trừ nhân các vector ta nhập một cách đơn giản hơn.

- Sử dụng hàm chồng toán tử cộng, trừ hai vector





  1. Поделитесь с Вашими друзьями:
1   ...   15   16   17   18   19   20   21   22   ...   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