- Sơ đồ cỳ phỏp
4.7 Định nghĩa chồng hàm
4.7 Định nghĩa chồng hàm
Trong cựng một lớp chỳng ta cú thể định nghĩa cỏc hàm trựng tờn nhau, ta gọi đú là sự chồng hàm. Nếu như trong cựng một lớp cỏc hàm trựng tờn nhau thỡ để mỏy phõn biệt giữa cỏc hàm thỡ cỏc hàm phải khỏc nhau về số đối, kiểu của cỏc đối và giỏ trị trả về. Giả sử trong cựng một lớp hai hàm cú cựng tờn là max, cú cựng số lượng đối là hai thỡ để mỏy phõn biệt được giữa hai hàm này khi nú được gọi ra sử dụng thỡ hai hàm này phải khỏc nhau về kiểu của cỏc đối.
Vớ dụ: Nhập vào ba số nguyờn a,b,c từ bàn phớm. Sau đú cho biết giỏ trị lớn nhất của hai số nguyờn bất kỳ và của ba số nguyờn đú.
using System;
class VD {
static int a,b,c; static void Nhap() {
Console.Write("Nhap a=");a=int.Parse(Console.ReadLine()); Console.Write("Nhap b=");b=int.Parse(Console.ReadLine()); Console.Write("Nhap c=");c=int.Parse(Console.ReadLine()); }
static int Max(int x,int y) {
return x>y?x:y; }
static int Max(int x,int y,int z) {
int tg=Max(x,y);/*Đõy khụng phải là gọi đệ quy mà chớnh là gọi một hàm tớnh Max của hai số ở phớa trờn ra sử dụng*/
tg=Max(tg,z); return tg; }
static void Main() { Nhap(); Console.WriteLine("Max({0},{1})={2}",a,b,Max(b,c)); Console.WriteLine("Max({0},{1},{2})={3}",a,b,c,Max(a,b,c)); Console.ReadKey(); } } --- 4.8 Cách gọi hàm
Trong cựng một lớp một hàm cú quyền gọi cỏc hàm khỏc ra sử dụng(thứ
tự cỏc hàm trong cựng một lớp là khụng quan trong), một hàm cú thể gọi chớnh
nghiờn cứu trong cỏc tài liệu khỏc, ở đậy tụi chỉ giới thiệu sơ bộ về cỏch gọi đệ quy trong việc xõy dựng một hàm trong C# thụng qua một vớ dụ như sau:
Vớ dụ: Xõy dựng chương trỡnh tớnh giỏ trị của biểu thức sau:
n! x ... 3! x 2! x x S n 3 2 + + + = --- using System; class VD { static double x; static int n;
static void Nhap() {
Console.Write("Nhap x=");x=double.Parse(Console.ReadLine()); Console.Write("Nhap n=");n=int.Parse(Console.ReadLine()); }
static double Mu(double x,int n) {
if(n==0) return 1;
else return x*Mu(x,n-1); }
static int GiaiThua(int n) {
if(n==0) return 1;
else return n*GiaiThua(n-1); }
static void Main() { double s=0; int i; Nhap(); for(i=1;i<=n;++i) s=s+Mu(x,i)/GiaiThua(i); Console.Write("S={0:N2}",s); Console.ReadKey(); } }
Chơng 5: Một số kiểu dữ liệu mở rộng