1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Chương trình con

3 366 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 66,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương trình con1.. Trong lập trình chúng ta gặp những đoạn chương trình lặp đi lặp lại ở những vị trí khác nhau.. Để tránh rườm rà, những đoạn chương trình này được thay thế bằng các ch

Trang 1

V Chương trình con

1 Khái niệm.

Trong lập trình chúng ta gặp những đoạn chương trình lặp đi lặp lại ở những vị trí khác nhau Để tránh rườm rà, những đoạn chương trình này được thay thế bằng các chương trình tương ứng và khi cần thì gọi lại

nó ra mà không cần viết lại Chương trình thay thế tương ứng đó gọi là chương trình con

Ví dụ Để tính tổng của biểu thức sau : S= 1+x + x2 + … + xn

Chúng ta thấy để tính tổng của S thì chúng ta phải tính được tất cả các x mũ i, sau đó cộng lại để được tổng S Vậy để tính được S thì chúng ta có thể chia chương trình thành nhiều chương trình nhỏ như sau:

 Viết chương trình tính x mũ i

 Trong chương trình chính ta gọi tính tổng của các x mũ i

Chúng ta sẽ xem qua đoạn chương trình tính tổng S có sử dụng chương trình con được viết như sau:

#include <stdio.h>

#include <conio.h>

float xmu(float x, int n) {

int i=1;

float m=1;

for(i=1;i<=n;i++) m=m*x;

return m;

}

void main() {

int n,i;float x,s;

printf(“n=“); scanf(“%d”,&n);

printf(“x=“); scanf(“%f”,&x);

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

s=s+xmu(x,i);

printf(“Tong chuoi la: %f”,s);

}

Để hiểu rõ hơn cú pháp của một chương trình con (hay hàm), chúng ta sẽ tìm hiểu ở các phần tiếp sau

2 Hàm (chương trình con)

Khi định nghĩa một hàm tức là chỉ rõ các lệnh cần phải được thực hiện mỗi khi hàm đó được gọi đến Như thế, tất cả những hàm được sử dụng trong một chương trình đều phải có một định nghĩa tương ứng Ngoài ra, hàm còn trả về cho chương trình gọi nó một giá trị, giá trị này có kiểu được khai báo trong khi định nghĩa hàm

Hàm có các đặc tính cơ bản sau:

 Giá trị của hàm có thể không cần dùng đến, như: printf, scanf

Hàm có thể không có giá trị gán cho tên hàm (giá trị trả về - kiểu void)

 Hàm có thể cung cấp các giá trị không phải kiểu vô hướng

 Hàm có thể thay đổi các giá trị đối số (tham số) của nó

 Hàm trong C không hạn chế cách dùng

Trong Turbo C, có hỗ trợ một số hàm nhất định, các hàm này được đặt trong các thư viện: alloc.h, conio.h, dos.h, graphics.h, io.h, math.h, process.h, stdio.h, stdlib.h, string.h

 Cú pháp:

[Kiểu dữ liệu] <Tên hàm>([Danh sách tham số])

{

[Khai báo biến cục bộ ];

<Thân hàm>;

[return [biểu thức kết quả] ; ] }

[Kiểu dữ liệu]: Nếu hàm trả về một giá trị thì kiểu dữ liệu của hàm phải được khai báo

<Ten hàm>:theo qui tắc đặt tên

[danh sách tham số]: có thể có hoặc không, nếu có nhiều tham số thì cách nhau bởi dấu phảy

“,”

[Khai báo biến cục bộ]: Khi cần dùng biến chỉ cho thần hàm thì chúng ta có thể khai báo danh

sách các biến cần thiết

Trang 2

<Thân hàm>: đây là phần chính của hàm, chỉ ra các lệnh cần thực hiện của hàm.

[return [biểu thức kết quả];]: Lệnh return cho phép thoát khỏi hàm, và đưa kết quả trong [biểu

thức kết quả] cho tên hàm Lệnh return có thể đặt bất cứ vị trí nào trong tham hàm

Ví dụ: Chúng ta xem xét hàm tính x mũ n được viết như sau:

float xmu(float x, int n) {

for(i=1;i<=n;i++) // thân hàm

}

 Một số quy tắc

 Tham số hình thức và tham số thực:

 Tham số hình thức: Tham số dùng khi khai báo, và tham số này sẽ được dùng tạm trong quá trình định nghĩa hàm

 Tham số thực: Là tham số được cung cấp khi hàm được sử dụng, tham số này sẽ thay thế vào vị trí của tham số hình thức hay nói cách khác là gán tham số thực tế cho tham số hình thức

 Ví dụ: Tham số hình thức và tham số thực tế

void ham(int n) {

…………

} void main() {

int a;

ham(a);

}

Lệnh return :

 Trả lại kết quả cho tên hàm

 Dừng hàm lại để kết thúc hàm

 Ví dụ:

int max(int a, int b) {

m=(a>b)?a:b;

return m;

}

 Hàm không có giá trị:

void là một kiểu dữ liệu đặc biệt của C để mô tả sự việc không có giá trị.

 Ví dụ:

void ham_khong_co_gia_tri(int n) {

}

 Trường hợp hàm không có tham số

float vidu() {

}

Trường hợp hàm không có khai báo kiểu trả về: Hàm sẽ nhận kiểu giá trị ngầm định là int

ham(int a); /* hàm sẽ nhận kiểu là int */

Tham số x và n

Tên hàm

Tham số hình hức

Tham số thực tế

Trang 3

Ví dụ: Tính giai thừa của một số n.

#include <stdio.h>

long int giathua(int n) {

int i;

long int gt=1;

for(i=2; i<=n;i++) gt=gt*i; return gt;

}

void main() {

int n;

long int kq;

printf(“n=“); scanf(“%d”,&n) kq=giaithua(n);

printf(“%d giai thua = %ld”,n,kq); }

Ngày đăng: 22/12/2016, 13:38

w