11-Ham

Post on 03-Sep-2015

214 views 1 download

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