1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng ngôn ngữ lập trình c chương 4 GV dương khai phong

22 381 1

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 194,05 KB

Nội dung

 Một chương trình bắt đầu thực hiện từ câu lệnh đầu tiên của hàm main cho đến khi gặp dấu ngoặc } cuối cùng của hàm này.. CHƯƠNG TRÌNH VÀ HÀM TRONG C* Cấu trúc của một chương trình: 1..

Trang 1

TIN HỌC ĐẠI CƯƠNG

Lý thuyết: 6 buổi Thực hành: 8 buổi

GVHD: Dương Khai PhongEmail: khaiphong@gmail.com

Ngôn ngữ lập trình: C

Trang 2

NỘI DUNG CÁC BUỔI HỌC

1. Tổng quan về C (chương 1,2)

2. Các cấu trúc điều khiển trong C (chương 3)

3. Hàm và cấu trúc chương trình (chương 4)

4. Mảng, chuỗi và con trỏ (chương 5)

5. Kiểu cấu trúc, đệ qui, tập tin (chương 6,7,8)

Trang 3

CHƯƠNG 4: HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH

1. Chương trình và hàm trong C.

2. Cách viết một hàm.

3. Phân loại hàm trong C.

a) Hàm với đối số là tham trị.

b) Hàm với đối số là tham biến.

Trang 4

1 CHƯƠNG TRÌNH VÀ HÀM TRONG C

a Chương trình là gì?

Chương trình là một tập hợp gồm một hay nhiều hàm Trong

đó bắt buộc phải có hàm main().

 Một chương trình bắt đầu thực hiện từ câu lệnh đầu tiên của hàm main() cho đến khi gặp dấu ngoặc } cuối cùng của hàm này.

- Hàm là một đơn vị độc lập của chương trình.

- Không cho phép xây dựng một hàm bên trong một hàm.

Trang 5

1 CHƯƠNG TRÌNH VÀ HÀM TRONG C

* Cấu trúc của một chương trình:

1. <Khai báo thư viện>

2. <Khai báo hằng,biến toàn cục>

3. <Khai báo các hàm>

4. <Chương trình chính / hay hàm main>

5. <Định nghĩa hàm>

Lưu ý: việc truyền dữ liệu từ hàm này sang hàm

khác được thực hiện theo một trong 2 cách:

Trang 6

return kq;

Trang 7

2 CÁCH VIẾT MỘT HÀM

* Cú pháp khai báo chung:

<Kiểu dữ liệu trả về> <Tên_hàm>([Danh sách các tham

số nếu có]);

Trong đó:

• <Kiểu dữ liệu trả về>: int,float,char, Nếu hàm không

có kiểu dữ liệu trả về thì ta dùng kiểu void

Ví dụ: int binhphuong(int a), void xuat()

<Tên_hàm> : cần đặt tên sao cho gợi nhớ chức n8angcủa hàm

• [Danh sách các tham số nếu có]: tùy theo chức năngcủa hàm mà danh sách này có hay không có tham số,

các tham số cách nhau bởi dấu phẩy “ , ”

Trang 9

2 CÁC VÍ DỤ CÁCH VIẾT HÀM

* Ví dụ 1: viết chương trình tính S,P hình chữ nhật bằngcách dùng hàm

#include “stdio.h”

#include “conio.h”

int tinhP(int dai,int rong);

int tinhS(int dai,int rong);

void main()

{ int dai,rong;

printf (“Nhap dai,rong: ”);

scanf(“%d %d”,&dai,&rong);

printf (“Chu vi hcn là %d”,tinhP(dai,rong));

printf (“Dien tich hcn là %d”,tinhS(dai,rong));

int S;

S=dai*rong;

return S;

}

Trang 10

printf (“pt co nghiem x=%.2f”,x); }

}

Trang 11

2 CÁC VÍ DỤ CÁCH VIẾT HÀM

* Ví dụ 3: viết chương trình giải ptb2 ax^2+bx+c=0 dùng hàm.

#include “stdio.h”

#include “conio.h”

void giaiPTB1(int a,int b);

void giaiPTB2(int a,int bint c);

void giaiPTB2(int a,int b,int c) {

}

Trang 12

3 PHÂN LOẠI HÀM TRONG C

* Xét ví dụ: viết CT hoán vị giá trị cho 2 số nguyên a,b như

b = 1fx rác (-859…)

tam = 2fx rác (…)

5 6

5

6 5

Nhap a,b:

Truoc khi hvi a=5 b=6

5 6

Trang 13

3 PHÂN LOẠI HÀM TRONG C

* Xét ví dụ: viết CT hoán vị giá trị cho 2 số nguyên a,b bằng

cách dùng hàm như sau:

… void hoanvi(int a,int b);

void main() { int a,b;

printf (“Nhap a,b: ”);

Trang 14

3 PHÂN LOẠI HÀM TRONG C

b= giá tri rác (-859…) 1fx

a= 5 0fx

b= 6 1fx

a'= 5 (lấy giá trị từ a) 2ffx.

b'= 6 (lấy giá trị từ b) 3ffx.

a'= 6 (hoán vị a=b) 2ffx.

b'= 5 (hoán vị b=tam) 3ffx.

Tạo 2 vùng nhớ phụ khác:

Sau khi kết thúc hàm hoanvi 2 vùng nhớ phụ được giải phóng

Thực hiện các lệnh để hoán vị:

Không đổi

Trang 15

3 PHÂN LOẠI HÀM TRONG C

* Cách khắc phục: truy cập trực tiếp đến địa chỉ vùng nhớ

b = 1fx rác (-859…)

5 6

6 5

tam = 1fx rác (-859…)5

Trang 16

3 PHÂN LOẠI HÀM TRONG C

* Nhận xét: từ ví dụ trên, ta phân loại hàm trong C theo

Trang 17

3 PHÂN LOẠI HÀM TRONG C

a/ Hàm với đối số là tham trị:

Định nghĩa: là hàm không làm thay đổi giá trị của

các tham số truyền vào khi hàm kết thúc

Khai báo:

<Kiểu_data_trả_về> <Tên_hàm> ([DS_các tham_số])

Ví dụ:

float tinhDTB ( float van, float toan);

float rutcan_bac_hai ( float so);

Trang 18

3 PHÂN LOẠI HÀM TRONG C

b/ Hàm với đối số là tham biến:

Định nghĩa: là hàm làm thay đổi giá trị của các

tham số truyền vào khi hàm kết thúc

Khai báo cơ bản:

<Kiểu_data_trả_về> <Tên_hàm> ([ & DS_các tham_số])

Ví dụ:

void tinhDTB ( float van, float toan, float & DTB);

float rutcan_bac_hai ( float so, float & kq);

Trang 19

3 PHÂN LOẠI HÀM TRONG C

* Các vấn đề liên quan đến biến: (xem trang 100)

a/ Địa chỉ của biến : là địa chỉ vùng nhớ của máy

tính khi ta khai báo biến (qui ước: đó là số thứ tự của byte đầu tiên trong một dãy các byte liên tiếp)

=> Cú pháp để lấy địa chỉ của biến: & <Tên_biến>

b/ Biến con trỏ: là một loại biến dùng để lưu địa chỉ

của biến (phụ thuộc vào kiểu dữ liệu của biến)

=> Cú pháp khai báo biến con trỏ:

<Kiểu_data> * <Tên_biến>;

=> Qui tắc sử dụng: biến con trỏ bắt buộc phải sử

dụng kết hợp với địa chỉ của vùng nhớ

Trang 20

3 PHÂN LOẠI HÀM TRONG C

int *p; // khai báo con trỏ

p=&a; // gán vào địa chỉ biến a

*p=7; // Thay đổi giá trị biến a

}

Tạo vùng nhớ chứa số nguyên a:

a = 0fx 57

Truoc a=5

1fx p NULL

Trang 21

3 PHÂN LOẠI HÀM TRONG C

* Các vấn đề liên quan đến biến: (xem trang 115,117)

c/ Biến cục bộ (biến nội) : là các biến khai báo bên

trong thân của một hàm

Thời gian tồn tại: từ lúc hàm bắt đầu cho đến khi hàm đó

kết thúc (như vậy các biến khai báo trong hàm main() tồn tại cho đến khi kết thúc chương trình)

Phạm vi sử dụng: chỉ sử dụng bên trong hàm mà nó

được khai báo

d/ Biến toàn cục (biến ngoại) : là các biến được khai

báo bên ngoài các hàm

Thời gian tồn tại: tồn tại trong suốt chương trình

Phạm vi sử dụng: từ vị trí nó được khai báo cho đến cuối

chương trình.

Trang 22

3 PHÂN LOẠI HÀM TRONG C

* Bảng tóm tắt về cách dùng hàm:

trong khai báo hàm

Tham số thực trong hàm main

Khai báo dạng địa chỉ của biến

void hoanvi(int &a,int &b)

int a=5,b=6;

hoanvi(a,b);

Khai báo dạng biến con trỏ

void hoanvi(int *a,int *b)

int a=5,b=6;

hoanvi(&a,&b);

Ngày đăng: 03/12/2015, 15:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w