Nhận làm đồ án VĐK các loại ( 8051, AVR, PIC) Tư vấn - Hướng dẫn - lập trình

Thứ Ba, 31 tháng 3, 2015

Cấu trúc hàm Ngôn ngữ C

GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C

Chào các bạn, chúng ta lại quay trở lại với loạt bài hướng dẫn cơ bản ngôn ngữ lập trình C. Trong bài cuối này tôi sẽ giới thiệu đến các bạn các vấn đề còn lại của ngôn ngữ lập trình C : Hàm, cấu trúc chương trình cơ bản trong C và việc chuyển đổi các hệ thống sốtrong C (thập phân, nhị phân, thập lục phân …v…v..).
VII. Hàm trong C
v Định nghĩa :
·        Là một đơn vị độc lập của chương trình, có tên, đầu vào và đầu ra.
·        Có chức năng giải quyết một số vấn đề chuyên biệt cho chương trình chính.
·        Được gọi nhiều lần với các tham số khác nhau.
·        Được sử dụng khi có nhu cầu
·        Các hàm có vai trò ngang nhau, do đó không cho phép xây dựng hàm bên trong hàm khác.
·      Cấu trúc hàm chia làm 2 phần chính :
·        Tiêu đề hàm
·        Thân hàm
·      Cú pháp khai báo hàm :


Trong đó :
·        <kiểu trả về> : Kiểu bất kì của C (Char, int, long, float, …). Nếu không trả về thì là kiểu void.
·        <tên hàm>: Theo quy tắc đặt tên trong C. Chú ý cần đặt tên hàm mang tính gợi nhớ vơi chức năng mà hàm thực hiện.
·        <danh sách tham số> : Tham số hình thức đầu vào. Nếu có nhiều tham số đầu vào ta có thể phân cách bằng dấu “ ,
·        Trong trường hợp hàm có giá trị trả về ta có câu lệnh [return  <giá trị>;]. Chú ý với lệnh return có thể trả giá trị tùy ý có thể là 0, 1, …v..v… hoặc giá trị tính toán trong hàm. Việc lựa chọn cho giá trị trả về do ta lựa chọn.
7.1. Tham số của hàm
·      Tham số hình thức
Là tham số mà ta ghi trong nguyên mẫu hay khai báo hàm và không phải là một biểu thức. tham số hình thức có thể là biến thường, con trỏ hoặc với lập trình C ta còn có thể khai báo dưới dạng tham biến.

VD:     void tinh (int KQ)void tinh (int *KQ)
{}{}
·      Tham số thực
Là giá trịta ghi sau khi gọi hàm và đó có thể là một biểu thức. Tham số thực được chia 2 loại.
·        Tham chiếu :tham số thực ta truyền dạng con trỏ hay địa chỉ, tham chiếu có thể ghi nhận lại những kết quả vừa tính toán trong khi hàm kết thúc.
·        Tham trị :tham số thựcmà ta truyền vào cho hàm dạng biến, tham trị không bảo lưu lại những thay đổi giá trị của nó được tính toán trong hàm. Sau khi hàm kết thúc
7.2. Phạm vi biến, mảng
v Biến :
·        Biến toàn cục:
Là biến được khai báo bên ngoài hàm, là biến được sử dụng mọi nơi trong chương trình. Biến toàn cục khá đặc biệt vì nó cos theer nhận các giá trị thay đổi trên hàm, có thể tác dụng với các chương trình theo sau nó.

·        Biến cục bộ :
Là biến được khai báo bên trong thân hàm hay tại tham số của hàm và nó chỉ tồn tại khi hàm hoạt động, khi hàm kết thuc biến sẽ được giải phóng và không tồn tại nữa.
Các biến cục bộ của các hàm riêng biệt có thể đặt tên giống nhau tùy ý, nhưng các biến cục bộ của các hàmkhông được trùng tên với biến toàn cục.
v Mảng :
Ta có các đặc điểm của mảng cục bộmảng toàn cục tương tự với biến.
7.3. Lời gọi hàm
Thường việc gọi hàm bao gồm : Gọi tên của hàm đồng thời truyền các đối số (hằng, biến, biểu thức) cho các tham số theo đúng thứ tự đã được khai báo trong hàm.
Do có 2 dạng hàm: đó là hàm có giá trị trả vềhàm không có giá trị trả về nên ta có lời gọi hàm cho 2 loại hàm này cũng có khác nhau chút xíu.
v Hàm có giá trị trả về: int tinh (unsigned char x) {}

Cần có một biến tạo trước để nhận giá trị trả về từ hàm.
Cú pháp gọi hàm:        intx;    x= <tên hàm>(<đối số>);=>  x=tinh (10);

v Hàm không có giá trị trả về: void tinh (unsigned char x) {}

Cú pháp gọi hàm:      <tên hàm>(<đối số>);=>tinh (10);
7.4. Cấu trúc chương trình trong C
7.4.1. Cách khai báo thư viện, lệnh dịch trong  C
v Để chèn tệp, các thư viện vào chương trình nguồn ta sử dụng cú pháp :
·        #include<tên thư viện.h>    // ý nghĩa: Tìm tới thư viện nguồn trong CS1/INC ổ cài đặt.
·        #include“tên thư viện.h”     // ý nghĩa: Tìm thư viện ngay tại forder khởi tạo trước, sau đó mới tìm đến nguồn.

v Định nghĩa Macro, xóa bỏ định nghĩa macro
Cú pháp định nghĩa: #define
VD :                      #defineMAX    100

Cú pháp hủy định nghĩa:#undef
VD:                                   #defineSIX6
                                           #undefSIX     6
#defineSIX     6

v Các lệnh chỉ thị biên dịch trong các thư viên.
·           Lệnh IF , endif :
o   #ifbiểu thức hằng
đoạn chương trình
#endif
o   #ifbiểu thức hằng
đoạn chương trình 1
#else
đoạn chương trình 2
#endif
o   #ifbiểu thức hằng 1
   đoạn chương trình 1
#elifbiểu thức hằng 2
   đoạn chương trình 2
#elifbiểu thức hằng n
   đoạn chương trình n
[
 #else
  Đoạn chương trình n+1
] => Nếu có
#endif
·           Lệnh :
#ifdef - #endif=> Biên dịch nếu đã được định nghĩa
#ifndef#endif=> Biên dịch nếu chưa được định nghĩa
VD:
#ifdeften_macro
    đoạn chương trình
#endif

Nếu ten_macrođã được định nghĩa bởi  #define thì trình biên dịch C sẽ dịch đoạn chương trình nằm giữa  #ifdefvà  #endif.  Ngược lại bỏ qua. Các trường hợp của if cũng tương tự.
v Cấu trúc 1 chương trình trong C
1.      Khai báo thư viện
2.      Định nghĩa biến, hằng (nếu có)
3.      Có hai cách viết chương trình đến bước 3 này :
v   Cách 1 :
·      Khai báo nguyên mẫu hàm con
·      Khai báo hàm chính
·      Khai báo hàm con đầy đủ
v   Cách 2 :
·      Khai báo hàm con đầy đủ
·      Khai báo hàm chính
VIII. Các hệ đếm trong C.
Tôi sẽ giới thiệu khái quát qua về một số các hệ thống số dùng phổ biến trong C:
8.1. Hệ thập phân :
Là hệ cơ số 10 gồm 10 chữ số :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Hệ thập phân là 1 hệ thống theo vị trí vì giá trị 1 chữ số phụ thuộc vị trí của nó
VD:   345
3 : Biểu thị hằng trăm mang giá trị lớn nhất (MSD)
4 : Biểu thị hàng chục
5 : Biểu thị hàng đơn vị, mang giá trị nhỏ nhất (LSD)
Với 1 số thập phân lẻ, ta dùng dấu chấm thập phân để chia phần nguyênphần phân số.
VD :  435.35
= 4.102 + 3.101 + 5.100 + 3.10-1 + 5.10-2
= > 1 số thập phân tổng của các tíchgiữa các giá trị của chữ sốvới giá trị vị trí tương ứng số đó.
8.2. Hệ nhị phân
Trong hệ thống số, hệ nhị phân chỉ có 2 giá trị số 01. Nhưng có thể biểu diễn bất kì đại lượng nào mà hệ thập phânvà các hệ thống số khác có thể biểu diễn được. Tuy nhiên nhiên có nhược điểm đó là hệ nhị phânlà ngôn ngữ máy nên để hiểu được ý nghĩa của nó cần có những quy tắc nhất định, việc biểu diễn một đại lượng nhất định cũng cồng kềnh gây khó khăn cho người sử dụng.
Hệ nhị phân cũng là hệ thống sô theo vị trí. Mỗi nhị phânđều có giá trị riêng, tức dạng số, là lũy thừa của 2. Với số nhị phân lẻ ta cũng dùng dấu chấm thập phân để cách phần nguyên phần lẻ.
1 con số trong số nhị phân được gọi là 1 bit, bít đầu hàng tận cùng bên tráigiá trị cao nhất, bít cuối hàng tận cùng bên phảigiá trị nhỏ nhất
VD:
1100 = 1.23 + 1.22 + 0.21 + 0.20
11.01= 1.21 + 1.20 + 0.2-1 + 1.2-2
8.3. Hệ thập lục phân
Là hệ sử dụng cơ số 16, nghĩa là có 16 chữ, số tổng hợp:  Gồm: 0->96 chữ cái :A, B, C, D, E, F.
Một số trong hệ cơ số 16 biểu diễn 1 nhóm 4 số nhị phân.






Mọi thắc mắc vui lòng liên hệ qua:
Facebook: Rid HaUI
Gmail: dienturid@gmail.com 

Next previous home

0 nhận xét:

Đăng nhận xét