30/09/2018, 21:42

Khuông hình hàm trong lập trình

mình có bài này,mình vẩn chưa hiểu lắm,các bạn giải thích cho mình hiểu với

Lập chương trình sử dụng khuôn hình hàm để nhập vào một dãy số, xuất dãy số và tính trung bình cộng các phần tử của dãy số đó.

Củ Chuối viết 23:56 ngày 30/09/2018

Có lẽ đây là cái bạn cần.

Nhox Namby viết 23:50 ngày 30/09/2018

mình xem rồi,không hiểu bạn ơi,mình mới học, bạn có thể tóm tắt bằng code c++ không ạ

Xuân Hòa viết 23:45 ngày 30/09/2018

Bạn hình dung như này:
Ví dụ bạn cần tìm số lớn nhất trong 2 số(có thể số nguyên hoặc số thực)
Vậy giờ bạn muốn tìm Max 2 số nguyên bạn cần 1 hàm Max(int a, int b)
Rồi bạn lại cần tìm Max 2 số thực bạn lại đi viết thêm 1 hàm Max(float a, float b) chẳng hạn. Bạn thấy như thế nó có hay ko
Để khắc phục người ta dùng khuôn hình hàm để giải quyết vấn đề này

template<typename T>
T Max(T a, T b) {
  return a > b ? a : b;
} 

Bây giờ bạn dùng hàm Max này với 2 số bất kì có kiểu T(là kiểu có sẵn hoặc bạn tự đình nghĩa)

Nhox Namby viết 23:43 ngày 30/09/2018

uầy nó vẩn chưa rõ, phần tính trung bình cộng và phần tử của dãy số

Xuân Hòa viết 23:53 ngày 30/09/2018

Trung bình công cũng vậy thôi:

template<typename T>
T TrungBinhCong(T *a, int soPhanTu) {
  T tong = 0;
  for(int i = 0; i < soPhanTu; i++)
  {
    tong += a[i];
  }
  return tong;
}
Nhox Namby viết 23:50 ngày 30/09/2018

bạn ơi, bạn có thể viết đủ 1 chương trình của bài toán này không,mình mới học,không biết rap chương trình cho hợp lệ,
hàm main nữa,

Nhox Namby viết 23:44 ngày 30/09/2018

#include

// Ham lay tri tuyet doi cua mot so nguyen
int __abs(int int_val) {
if (int_val >= 0)
return int_val;
return -int_val;
}

// Ham lay tri tuyet doi cua mot so thuc
float __abs(float float_val) {
if (float_val >= 0)
return float_val;
return -float_val;
}

// Ham lay tri tuyet doi cua mot so thuc voi do chinh xac doi
double __abs(double double_val) {
if (double_val >= 0)
return double_val;
return -double_val;
}

// va co the la kieu long, short, char …
int main () {
int int_val = 10;
float fl_val = -10;
double db_val = -20;
__abs(int_val); // ham int __abs(int int_val) duoc goi
__abs(fl_val); // ham float __abs(float float_val) duoc goi
__abs(db_val); // ham double __abs(double double_val) duoc goi
return 0;
}

X viết 23:52 ngày 30/09/2018

bạn ơi, bạn có thể viết đủ 1 chương trình của bài toán này không,mình mới học,không biết rap chương trình cho hợp lệ,hàm main nữa,

Thế bạn đã biết gì về các kiểu dữ liệu (data type) cơ bản chưa? Mới học là bao lâu?
Sao nhiều bạn chưa tập đi mà cứ thích tập chạy thế này

Bài liên quan
0