SLIDE1

Tuesday, September 23, 2014

hàm trong ngôn ngữ lập trình c (part 1)


Hàm là một khối lệnh được thực hiện khi nó được gọi từ một điểm khác của chương trình. Dạng thức của nó như sau:
type name ( argument1, argument2, ...) statement 
trong đó: type là kiểu dữ liệu được trả về của hàm name là tên gọi của hàm. arguments là các tham số (có nhiều bao nhiêu cũng được tuỳ theo nhu cầu). Một tham số bao gồm tên kiểu dữ liệu sau đó là tên của tham số giống như khi khai báo biến (ví dụ int x) và đóng vai trò bên trong hàm như bất kì biến nào khác. Chúng dùng để truyền tham số cho hàm khi nó được gọi. Các tham số khác nhau được ngăn cách bởi các dấu phẩy. statement là thân của hàm. Nó có thể là một lệnh đơn hay một khối lệnh.

Dưới đây là ví dụ đầu tiên về hàm:
#include<stdio.h>
#include<conio.h>
int tich(int a, int b)
{
int t;
t = a*b;
return(t);
}
void main()
{
int a, b,s;
printf("nhap vao 2 so muon tinh tich\n");
scanf_s("%d%d", &a, &b);
s = tich(a, b);
printf("tich =%d", s);
_getch();
}
Để có thể hiểu được đoạn mã này, trước hết hãy nhớ lại những điều đã nói ở bài đầu tiên: một chương trình C luôn bắt đầu thực hiện từ hàm main. Vì vậy chúng ta bắt đầu từ đây.
Chúng ta có thể thấy hàm main bắt đầu bằng việc khai báo biến,nhập dữ liệu,  sau đó là một lời gọi tới hàm .  Nếu để ý chúng ta sẽ thấy sự tương tự giữa cấu trúc của lời gọi hàm với khai báo của hàm. lệnh return (t) chính là giá trị được trả về của hàm.
Bạn cần nhớ rằng phạm vi hoạt động của các biến khai báo trong một hàm hay bất kì một khối lệnh nào khác chỉ là hàm đó hay khối lệnh đó và không thể sử dụng bên ngoài chúng. Ví dụ, trong chương trình ví dụ trên, bạn không thể sử dụng trực tiếp các biến a, b vì chúng là các biến cục bộ của hàm 
Tuy nhiên bạn có thể khai báo các biến toàn cục để có thể sử dụng chúng ở bất kì đâu, bên trong hay bên ngoài bất kì hàm nào. Để làm việc này bạn cần khai báo chúng bên ngoài mọi hàm hay các khối lệnh, có nghĩa là ngay trong thân chương trình. 
#include<stdio.h>
#include<conio.h>
int a, b, t, s;
int tich(int a,int b)
{

t = a*b;

return(t);
}
void main()
{
printf("nhap vao 2 so muon tinh tich\n");
scanf_s("%d%d", &a, &b);
s = tich(a, b);
printf("tich =%d", s);
_getch();

}

 các cách khác nhau mà một hàm có thể được gọi. 
1. tich(a,b);   với a,b là biến đã có giá trị
2.tich(12,7);  ta thay trực tiếp giá trị và hàm.
hàm có thể đươc gọi ra ngay trong lệnh xuất của ngôn ngữ c++. hay trong các phép tính toán như là 1 số bình thường.
  • các hàm không kiểu, cách sử dụng void:
Nếu bạn còn nhớ cú pháp của một lời khai báo hàm:  
type name ( argument1, argument2 ...) statement 
bạn sẽ thấy rõ ràng rằng nó bắt đầu với một tên kiểu, đó là kiểu dữ liệu sẽ được hàm trả về bởi lệnh return. Nhưng nếu chúng ta không muốn trả về giá trị nào thì sao ? 
Hãy tưởng tượng rằng chúng ta muốn tạo ra một hàm chỉ để hiển thị một thông báo lên màn hình. Nó không cần trả về một giá trị nào cả, hơn nữa cũng không cần nhận tham số nào hết. Vì vậy người ta đã nghĩ ra kiểu dữ liệu void trong ngôn ngữ C. Hãy xem xét chương trình sau:
#include<stdio.h>
#include<conio.h>
void in(void)
{
printf("in ra man hinh");
}
void main()
{
in();
_getch();
}
Từ khoá void trong phần danh sách tham số có nghĩa là hàm này không nhận một tham số nào. Tuy nhiên trong C không cần thiết phải sử dụng void để làm điều này. Bạn chỉ đơn giản sử dụng cặp ngoặc đơn ( ) là xong


Related Posts:

  • hàm malloc cập phát bộ nhớ độnghàm malloc, alloc,  realloc, free, cấp phát và giải phóng bộ nhớ động trong lập trình c biến động được tạ ra khi chạy chương trình. thông qua con trỏ bộ nhớ được cấp phát và quản lý các thao tác trên bộ nhớ và con trỏ … Read More
  • con trỏ trong lập trình C 1.toán tử lấy địa chỉ trong lập trình c chúng ta cần xác định được con trỏ của ta đang ở đâu trong ct, với bộ nhớ của biến thì ng lập trình c không cần xác định vì trình biên dịch đã làm sẵn điều rắc rối đó cho chúng ta, c… Read More
  • Đối số mảng truyền cho hàm - con trỏxuat(int a[10]) hoàn toàn tương đương với xuat(int *a), tức đối số là biến con trỏ, do đó khi printf phải thêm dấu * để chuyển thành giá trị để in. vì a là mảng ( là 1 chuổi ô nhó liên tiếp nhau, mặt định a là ô nhớ đầu tiên … Read More
  • chuỗi , xâu ký tự trong c chuỗi , xâu ký tự trong c Trong tất cả các chương trình chúng ta đã thấy cho đến giờ, chúng ta chỉ sử dụng các biến kiểu số, chỉ dùng để biểu diễn các số. Nhưng bên cạnh các biến kiểu số còn có các xâu kí tự, chúng cho p… Read More
  • KIỂU FILE TRONG LẬP TRÌNH C KIỂU FILE TRONG LẬP TRÌNH C file là 1 tập hợp thông tin được lưu dưới 1 cái tên chung *.txt, *.exe khai báo: file *tên biến; ở đây là biến con trỏ file *open(char *tên file,char *kiểu mở); kiểu mở là 1 trong các chuổi sa… Read More