Cơ sở lập trình - Trường ĐH Thương mại - 11

Tham số thực sự: là tham số được viết trong lời gọi

hàm

Ý nghĩa: sử dụng hàm với tham số cụ thể

Cú pháp lời gọi hàm:

[v =]<name>([<real_pars>]); Trong đó:

v: là tên một biến nào đó được gán giá trị của hàm

name: tên hàm

real-pars: danh sách tham số thực sự

7/2020 Cơ sở lập trình 161


Vị trí lời gọi hàm: Lời gọi hàm được thực hiện bên trong một thân hàm bất kì nào đó miễn là nó đã được khai báo nguyên mẫu.

Yêu cầu

Số lượng tham số

Kiểu giá trị của các tham số.

Giá trị của tham số:

Biến, hằng, một lời gọi hàm khác


7/2020 Cơ sở lập trình 162


Ví dụ:

Gthua(5);

Nhap(x,d);

Nhap(x);//tham số có giá trị mặc định

Vấn đề: giá trị của tham số thực không thay đổi sau khi thực hiện hàm???


7/2020 Cơ sở lập trình 163


Ví dụ:kết quả ??

#include <stdio.h>

#include <conio.h>

void swap_func ( int x, int y) // Ham hoan vi ban 1

{ int temp; temp = x;

x = y ;

y = temp;

}

void main ()

{ int x,y;

printf(“n Nhap vao hai so x,y: ”); scanf (“%d %d”,&x,&y); swap_function(x,y) ;

printf(“n Hai so sau khi hoan vi: %d %d”,x,y );

}

7/2020 Cơ sở lập trình 164

Giải pháp: sử dụng con trỏ làm tham số hình thức void swap_func ( int *x, int *y) // Ham hoan vi ban 2

{ int temp ;

temp = *x;

*x = *y ;

*y = temp;

}

void main ()

{ int x,y;

printf(“n Nhap vao hai so x,y: ”); scanf (“%d %d”,&x,&y);

swap_function(&x,&y) ;

printf(“n Hai so sau khi hoan vi: %d %d”,x,y );

}

7/2020 Cơ sở lập trình 165


Vấn đề

Khi nào sử dụng con trỏ làm tham số hình

thức?

Nếu tham số hình thức là con trỏ thì tham số thực sự tương ứng có giá trị và kiểu như thế nào?


7/2020 Cơ sở lập trình 166

5.1 Khái niệm kiểu dữ liệu có cấu trúc

5.2 Khai báo và truy nhập vào phần tử struct

5.3 Mảng cấu trúc

5.4 Dữ liệu kiểu enum và kiểu typedef (tự học)

5.5 Kiểu dữ liệu file


07/2020 Cơ sở lập trình 167


Khái niệm: Kiểu dữ liệu có cấu trúc là kiểu dữ liệu mà các phần tử dữ liệu của nó thuộc kiểu dữ liệu đơn giản và được tổ chức theo một quy tắc nhất định. Hay kiểu dữ liệu có cấu trúc là kiểu dữ liệu mà các giá trị của nó là sự kết hợp của các giá trị thuộc kiểu dữ liệu đơn giản.

Các kiểu dữ liệu có cấu trúc: kiểu mảng, kiểu bản ghi, kiểu tập hợp và kiểu tệp tin


07/2020 Cơ sở lập trình 168


5.2.1 Khai báo kiểu struct

5.2.2 Truy nhập vào phần tử struct


07/2020 Cơ sở lập trình 169


Cú pháp: 2 cách


struct TypeName

{

// Khai báo các thành phần

};

typedef struct

{

//khai báo các thành phần

} TypeName;

Trong đó:

struct là từ khóa

TypeName: do người dùng đặt theo quy tắc đặt tên

Các thành phần: có thể là biến, mảng, hợp hoặc một cấu trúc

khác mà kiểu của nó đã định nghĩa từ trước

Có thể bạn quan tâm!

Xem toàn bộ 113 trang tài liệu này.

Cơ sở lập trình - Trường ĐH Thương mại - 11

Cơ sở lập trình 170

Ví dụ



struct date

{

unsigned char ngay; unsigned char thang; unsigned char nam;

};

typedef struct

{

unsigned char ngay; unsigned char thang; unsigned char nam;

} date;


Cơ sở lập trình 171




struct dia_chi

{

int so_nha;

char phuong[20];

char quan[15];

char thanh_pho[15];

};

typedef struct

{

int so_nha;

char phuong[20];

char quan[15];

char thanh_pho[15];

}dia_chi;


Cơ sở lập trình 172


struct sinh_vien

{

char ho_ten[30]; date ngay_sinh; char maSV[10];

};

typedef struct

{

char ho_ten[30]; date ngay_sinh; char maSV[10];

} sinh_vien;


Cơ sở lập trình 173



Khai báo biến kiểu struct

Cách 1

struct TypeName VarName;

Trong đó:

TypeName: là tên kiểu struct

VarName: là tên biến struct

Nhận xét: với cách khai báo này thì các biến sẽ được cấp phát đầy đủ cho tất cả các thành phần của nó.


07/2020 Cơ sở lập trình 174


Ví dụ

struct date ngay_sinh,ngay_nhap_hoc;

struct dia_chi A, B;

struct sinh_vien X, Y;



07/2020 Cơ sở lập trình 175


Khai báo biến kiểu struct

Cách 2: định nghĩa kiểu kết hợp với khai báo biến struct TypeName

{

// Khai báo các thành phần

}danh_sach_ten_bien;

Nhận xét: với cách khai báo này ta có thể không cần tên kiểu cấu trúc nhưng nếu khai báo thêm biến thì sẽ thành kiểu dữ liệu khác.

struct

{

// Khai báo các thành phần

}danh_sach_ten_bien;

07/2020 Cơ sở lập trình 176

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 01/10/2023