11-Ham

12
1 TRƯỜNG ðẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ðẠI CƯƠNG Bài 11. Hàm Nội dung 11.1. Khái niệm hàm 11.2. Khai báo và sử dụng hàm 11.3. Phạm vi của biến 2

description

Tin Dai Cuong

Transcript of 11-Ham

  • 1TRNG I HC BCH KHOA H NIVIN CNG NGH THNG TIN V TRUYN THNG

    TIN HC I CNGBi 11. Hm

    Ni dung

    11.1. Khi nim hm

    11.2. Khai bo v s dng hm

    11.3. Phm vi ca bin

    2

  • 2Ni dung

    11.1. Khi nim hm

    11.1.1. Khi nim chng trnh con

    11.1.2. Phn loi chng trnh con

    11.2. Khai bo v s dng hm

    11.3. Phm vi ca bin

    3

    11.1.1. Khi nim chng trnh con

    Khi nim L mt chng trnh nm trong mt chng

    trnh ln hn nhm thc hin mt nhim v c th

    Vai tr Chia nh chng trnh ra thnh tng phn

    qun l => Phng php lp trnh c cu trc

    C th s dng li nhiu ln: printf, scanf

    Chng trnh d dng c v bo tr hn

    4

  • 3 Phn loi chng trnh con

    Hm: tr v gi tr trong khi th tc th khng

    Trong C: Ch cho php khai bo chng trnh con l hm.

    S dng kiu void vi ngha khng l kiu d liu no c chuyn th tc v dng hm

    Th tc(procedure)

    Chng trnh con

    Hm(function)

    11.1.2. Phn loi chng trnh con

    5

    Phn loi hm

    Hm t vit(Ngi dng nh ngha)

    HM

    Hm chun(C trong th vin)

    11.1.2. Phn loi chng trnh con

    6

  • 411.2. Khai bo v s dng hm

    11.2.1. Khai bo hm

    11.2.2. S dng hm

    7

    11.2.1. Khai bo hm

    1. Trong chng trnh ln c nhiu chng trnh con, im bt u thc hin chng trnh s thuc chng trnh con no?

    2. Main l mt chng trnh con?

    3. Khai bo cc chng trnh con c lp nhau/lng ln nhau?

    4. Mun lp rp cc cng vic khc nhau cng thc hin, cn phi a ra li gi hm. Li gi cn cung cp nhng g?

    8

  • 511.2.1. Khai bo hm

    V d:

    Chng trnh in ra bnh phng ca cc s t nhin t 1 n 10

    Gm 2 hm:

    Hm binhphuong(int x): tr v bnh phng ca x

    Hm main(): vi mi s nguyn t 1 n 10, gi hm binhphuong vi mt gi tr u vo v hin th kt qu.

    9

    #include

    #include

    int binhphuong(int x){

    int y;

    y = x * x;

    return y;

    }

    void main(){

    int i;

    for (i=0; i

  • 6 Dng u hm L thng tin trao i gia cc hm. Phn bit

    gia cc hm vi nhau.

    Kiu gi tr tr v: kiu d liu bt k, khng c l kiu d liu mng.

    Tn hm: l tn hp l, trong C tn hm l duy nht

    [] tn_hm ([danh_sch_tham_s]){

    [][]

    }

    11.2.1. Khai bo hm

    11

    Tham s Cho bit nhng tham s gi nh cung cp hot

    ng cho hm => cc tham s hnh thc

    Tham s cung cp d liu cho hm lc hot ng: tham s thc

    V d: int max(int a, int b, int c)

    Thn hm return

    Gi hm thng qua tn hm v cc tham s thc cung cp cho hm.

    Sau khi thc hin xong, tr v im m hm c gi thng qua cu lnh return hoc kt thc hm.

    C php chung: return biu_thc;

    11.2.1. Khai bo hm

    12

  • 711.2.1. Khai bo hm#include

    #include

    int binhphuong(int );

    void main(){

    int i;

    for (i=0; i

  • 8 Cc hm th vin

    Ngn ng C cung cp mt s hm th vin nh: x l vo ra, hm ton hc, hm x l xu

    s dng cc hm ny chng ta ch cn khai bo nguyn mu ca chng trc khi s dng. Khai bo thng qua ch th

    #include

    tp_tiu_ (.h) cha cc nguyn mu hm

    11.2.1. Khai bo hm

    11.2.2. S dng hm

    C php:

    tn_hm (danh_sch_tham_s);

    V d: binhphuong(0), binhphuong(1)

    Lu : Nu hm nhn nhiu tham s th cc tham s ngn

    cch nhau bi du phy

    Lun lun cn cp du ngoc n sau tn hm

    Cc tham s ca hm s nhn cc gi tr t tham s truyn vo

    Thc hin ln lt cc lnh cho n khi gp lnh return/kt thc chng trnh

    16

  • 911.3. Phm vi ca bin

    11.3.1. Phm vi ca bin

    11.3.2. Phn loi bin

    11.3.3. Cu lnh static v register

    17

    Phm vi: khi lnh, chng trnh con, chng trnh chnh

    Bin khai bo trong phm vi no th s dng trong phm vi

    Trong cng mt phm vi cc bin c tn khc nhau.

    Tnh hung Trong hai phm vi khc

    nhau c hai bin cng tn. Trong mt phm vi ny nm trong phm vi kia?

    #include

    #include

    int i;

    int binhphuong(int x){

    int y;

    y = x * x;

    return y;

    }

    void main(){

    int y;

    for (i=0; i

  • 10

    Phn loi bin Bin ton cc: bin c khai bo ngoi mi

    hm, c s dng cc hm ng sau n

    Bin cc b: bin c khai bo trong lnh khi hoc chng trnh con, c t trc cc cu lnh.

    Ghi nh Hm main() cng l mt chng trnh con

    nhng l ni chng trnh c bt u cng nh kt thc

    Bin khai bo trong hm main() cng l bin cc b, ch c phm vi trong hm main().

    11.3.2. Phn loi bin

    19

    Bin static Xut pht: bin cc b ra khi phm vi th b

    nh dnh cho bin c gii phng

    Yu cu lu tr gi tr ca bin cc b mt cch lu di => s dng t kha static

    So snh vi bin ton cc?

    C php:

    static tn_bin;

    11.3.3. Cu lnh static v register

    20

  • 11

    # include

    # include

    void fct() {

    static int count = 1;

    printf("\n Day la lan goi ham fct lan thu

    %2d", count++);

    }

    void main(){

    int i;

    for(i = 0; i < 10; i++) fct();

    getch();

    }

    11.3.3. Cu lnh static v register

    21

    11.3.3. Cu lnh static v register

    Day la lan goi ham fct lan thu 1

    Day la lan goi ham fct lan thu 2

    Day la lan goi ham fct lan thu 3

    Day la lan goi ham fct lan thu 4

    Day la lan goi ham fct lan thu 5

    Day la lan goi ham fct lan thu 6

    Day la lan goi ham fct lan thu 7

    Day la lan goi ham fct lan thu 8

    Day la lan goi ham fct lan thu 9

    Day la lan goi ham fct lan thu 10

    22

  • 12

    11.3.3. Cu lnh static, register

    Bin register Thanh ghi c tc truy cp nhanh hn RAM,

    b nh ngoi

    Lu bin trong thanh ghi s tng tc thc hin chng trnh

    C php

    register tn_bin;

    Lu : s lng bin register khng nhiu v thng ch vi kiu d liu nh nh int, char

    23

    Tho lun

    24