Follow us on...
Follow us on Twitter Follow us on Facebook Watch us on YouTube

Smartphone WIKO của Pháp chính thức xuất hiện tại Việt Nam

Tìm HD - Phần mềm tìm và xem phim HD miễn phí

Cuộc thi khoảnh khắc tuyệt vời cùng Vn-Zoom.com

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Tuyển thành viên nhóm Reviews diễn đàn

VN-Zoom & ASUS đón siêu phẩm,tăng tốc chuẩn bị ASUS Expo 2014
kết quả từ 1 tới 8 trên 8
  1. #1
    hoangdongpc's Avatar
    hoangdongpc vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Nov 2010
    Bài
    166
    Cảm ơn
    119
    Điểm
    62/45 bài viết
    VR power
    0

    Exclamation Cần một vài ví dụ đơn giản về chương trình con trong pascal

    Các bạn có thể cho mình một vài ví dụ đơn giản mà dễ hiểu về chương trình con được không mình đã đọ mấy ngày nay rồi mà không tài nào hiểu nổi ! "hơi chậm hiểu một chút"
    thanks các bạn nhiều !

  2. Có 1 thành viên cảm ơn hoangdongpc cho bài viết này:
    win 8 (01-08-2011)

  3. #2
    picachusays's Avatar
    picachusays vẫn chưa có mặt trong diễn đàn Rìu Sắt Đôi
    Tham gia
    Nov 2009
    Bài
    247
    Cảm ơn
    7
    Điểm
    69/50 bài viết
    VR power
    0

    Default

    ví dụ nhé : chương trình trong hàm main (BEGIN) của bạn được chia ra làm nhiều phần nhỏ
    Bước 1
    Bươc 2
    Bước 3
    ...
    Bước n
    Bây giờ bạn chia chương trình con của bạn theo các bước. Mỗi bước là một hàm thủ tục (chương trình con)
    trong chương trình con sử dụng biến toàn cục (khai báo ngoài hàm BEGIN sau program)
    cuối cùng trong chương trình của bạn chỉ còn lại lời gọi hàm của các chương trình con đó
    BEgin
    hàm 1()
    hàm 2()
    hàm 3 ()
    ...
    hàm n()
    END

  4. Có 2 thành viên cảm ơn picachusays cho bài viết này:
    hoangdongpc (31-07-2011), win 8 (01-08-2011)

  5. #3
    Đam mê lập trình's Avatar
    Đam mê lập trình vẫn chưa có mặt trong diễn đàn Thành viên đang bị kỷ luật
    Tham gia
    May 2011
    Đến từ
    Trên núi
    Bài
    428
    Cảm ơn
    433
    Điểm
    633/248 bài viết
    VR power
    0

    Default

    Trong C , 1 chương trình con có dạng :

    Code:
    datatype Func_name(type1 para1,type2 para2,.....typen paran)
    {
       process;
       return value;
    }
    Các tham số para1, para2,para3,... xem như biến của hàm Func_name(para1,para2,...paran) .


    Vd :
    Cho F(x)= x^2+x+1 .
    Tính :
    F(1) .
    F(2)
    F(3)
    .
    .
    .
    F(n) .


    Bạn sẽ viết 1 hàm như sau :

    Code:
    float F(float x)
    {
       return x*x + x + 1;
    }
    Thực chất hàm là 1 biểu thức của 1 hàm số nói chung ( cũng có 1 số trường hợp ngoại lệ ) . Hàm ( hàm số ) thì phải có :
    + biến
    +tập xác định của biến
    +tập giá trị


    para1,para2,...paran là các biến của hàm Func_name
    type1,type2,...typen là tập xác định của biến .
    datatype là tập giá trị của hàm .


    Giá trị sau từ khóa return chính là giá trị của hàm sau khi tính .


    Thêm 1 ví dụ
    F(x,y,z) = 3x+ 2y + z ; ( x,y,z thuộc R)

    Thì ta có biểu diễn của hàm F(x) như sau

    Code:
    float F(float x,float y,float z)
    {
       return 3*x+2*y+z;
    }
    Bây giờ cần tính F , ta chỉ cần thay giá trị vào :
    cần tính khi x=2,y=3,z=1, ta gọi hàm này :
    F(2,3,1)
    ...

    Chương trình thế này :

    Code:
    #include <stdio.h>
    #include <conio.h>
    
    float F(float x,float y,float z)
    {
       return 3*x+2*y+z;
    }
    
    int main()
    {
       printf("\n Tai x=2, y=3, z=2 , ta co gia tri của hàm F(x) là %d",F(2,3,2));
       printf("\n Tai x=2, y=3, z=1 , ta co gia tri của hàm F(x) là %d",F(2,3,1));
       printf("\n Tai x=2, y=4, z=1 , ta co gia tri của hàm F(x) là %d",F(2,4,1));
       getch();
       return 0;
    }

    Trong tin học , ko chỉ có các hàm số có xác định trên R , mà còn có hàm logic , hàm chuỗi ,....

    Ví dụ hàm kiểm tra 1 số nguyên tố :

    (y = F(x) = True nếu x là số nguyên tố)
    V (y=F(x)=False nếu x ko là số nguyên tố ) .

    Bạn sẽ viết 1 hàm như sau :

    Code:
    bool F(int x)
    {
       for(int i=2;i<=x div 2;++i)
         if (x%i==0)
             return false;
      return true;
    }
    
    void main()
    {
       printf(" nhap n");
       scanf("%d",&n);
       if (F(x)==true)
          printf(" n=%d là số nguyên tố ",n);
       else
         printf(" khong phai so nguyen to ");
        getch();
    }

    cũng có 1 số hàm ko có giá trị trả về nếu ra ko cần xác đinh giá trị của nó , mà chỉ cần xử lý các việc khác .

    Ví dụ :

    Code:
    void init(int top)
     {
         top=0;
     }

    Sau khi thực hiện hàm này thì giá trị của biến top trong hàm init sẽ bằng 0 .

    int x=1;
    int y=2;
    init(x);
    init(y);
    //Lúc này x=y=0 .

    Hàm main là hàm chính của chương trình , khi chương trình bắt đầu chạy , thì hàm main được gọi đầu tiên . Trong hàm main , lần lượt bạn gọi các hàm khác để thực hiện yêu cầu của bài toán .
    Thay đổi nội dung bởi Đam mê lập trình; 31-07-2011 lúc 09:26.

  6. Có 4 thành viên cảm ơn Đam mê lập trình cho bài viết này:
    19-6 (31-07-2011), auauau97 (31-07-2011), hoangdongpc (31-07-2011), win 8 (01-08-2011)

  7. #4
    hoangdongpc's Avatar
    hoangdongpc vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Nov 2010
    Bài
    166
    Cảm ơn
    119
    Điểm
    62/45 bài viết
    VR power
    0

    Default

    mình đang cần ví dụ trong pascal mà , một vài ví dụ đơn giản thôi nếu giải thích thì càng tốt !

  8. Có 1 thành viên cảm ơn hoangdongpc cho bài viết này:
    win 8 (01-08-2011)

  9. #5
    Đam mê lập trình's Avatar
    Đam mê lập trình vẫn chưa có mặt trong diễn đàn Thành viên đang bị kỷ luật
    Tham gia
    May 2011
    Đến từ
    Trên núi
    Bài
    428
    Cảm ơn
    433
    Điểm
    633/248 bài viết
    VR power
    0

    Default

    trong pascal cũng tương tự C thôi .

    Khai báo 1 hàm trong pascal như sau :
    Code:
    Function  F(para1:type1;para2:type2;para3:type3;......paran:typen):datatype;
    Begin
      Process;
      F=.....;
    End;

    hàm này tương đương với hàm void trong C . ( ko có giá trị trả về )
    Code:
     Procedure F(para1:type1;para2:type2;para3:type3;......paran:typen);
       Begin
         Process;
       End;

    Từ đó bạn suy ra nhé , Pascal và C đều giống nhau cả thôi .

  10. Có 2 thành viên cảm ơn Đam mê lập trình cho bài viết này:
    hoangdongpc (01-08-2011), win 8 (01-08-2011)

  11. #6
    19-6's Avatar
    19-6 vẫn chưa có mặt trong diễn đàn Moderator
    Tham gia
    Sep 2008
    Đến từ
    Abyss
    Bài
    1.904
    Cảm ơn
    858
    Điểm
    3.410/1.515 bài viết
    VR power
    0

    Default

    Trích hoangdongpc View Post
    mình đang cần ví dụ trong pascal mà , một vài ví dụ đơn giản thôi nếu giải thích thì càng tốt !
    bạn tham khảo bài này đi


  12. Có 3 thành viên cảm ơn 19-6 cho bài viết này:
    hoangdongpc (01-08-2011), Tung_Huynh (31-07-2011), win 8 (01-08-2011)

  13. #7
    vuquangict's Avatar
    vuquangict vẫn chưa có mặt trong diễn đàn Rìu Vàng
    Tham gia
    Oct 2009
    Đến từ
    Thái Nguyên, Vietnam
    Bài
    749
    Cảm ơn
    497
    Điểm
    136/99 bài viết
    VR power
    0

    Default

    Mình cho bạn vài VD nèy .

    Code:
    Program T_31; { Ktra cac so ngto trong mang 2 chieu bang Procedure }
    uses crt;
    var
     Nt:boolean;
     i,j,m,n:integer;
     a:array[1..50,1..50] of integer;
     Procedure Ng_to(x:integer);
     var i,d:integer;
     begin
     d:=0;
     if (x<=1) then Nt:= false else
     if (x=2) or (x=3) then Nt:=true else
     if (x>3) then
       begin
       for i:=1 to (x div 2) do if (x mod i = 0) then
         begin
         inc(d);
         end;
         if (d=1) then Nt:=true else Nt:=false;
       end;
     end;
    Begin clrscr;
      writeln(' Nhap vao kich thuoc cua mang:');
      write(' So hang M= '); readln(m);
      write(' So cot  N= '); readln(n);
      for i:=1 to m do
      for j:=1 to n do
        begin
        write(' A[',i,',',j,']= '); readln(a[i,j]);
        end;
      clrscr;
      writeln;
      writeln(' Mang vua nhap la: ');
      for i:=1 to m do
      begin
      for j:=1 to n do write(a[i,j]:3); writeln;
      end;
      writeln;
      write(' Cac so sau la so nguyen to: ');
      for i:=1 to m do
      for j:=1 to n do
        begin
        Ng_to(a[i,j]);
        if Nt=true then write(' ',a[i,j]);
        end;
    
    readln;
    End.


    Code:
    Program ace; { Ktra so ngto trong mang bang Function }
    uses crt;
    var
     i,j,m,n:integer;
     a:array[1..50,1..50] of integer;
    
     Function Ng_to(x:integer):boolean;
     var i,d:integer; Tg:boolean;
     begin
     d:=0;
     if (x<=1) then Tg:=false else
     if (x=2) or (x=3) then Tg:=true else
     if (x>3) then
       begin
       for i:=1 to (x div 2) do if (x mod i =0) then
         begin
         inc(d);
         end;
       if (d=1) then Tg:=true else Tg:=false;
       end;
     Ng_to:=Tg;
     end;
    Begin
    clrscr;
      writeln(' Nhap vap kich thuoc mang :');
      write(' So hang M= '); readln(m);
      write(' So cot  N= '); readln(n);
      For i:=1 to m do
       for j:=1 to n do
        begin
        write(' A[',i,',',j,']= '); readln(a[i,j]);
        end;
      writeln;
      For i:=1 to m do
       begin
       for j:=1 to n do write(a[i,j]:3); writeln;
       end;
      writeln;
      writeln(' Cac so sau la so ng to:');
      For i:=1 to m do
       for j:=1 to n do if ( Ng_to(a[i,j])=true ) then write(' ',a[i,j]);
    readln;
    End.
    Thay đổi nội dung bởi vuquangict; 01-08-2011 lúc 11:25.

  14. Có 1 thành viên cảm ơn vuquangict cho bài viết này:
    win 8 (01-08-2011)

  15. #8
    kien_coi_1997's Avatar
    kien_coi_1997 vẫn chưa có mặt trong diễn đàn Rìu Vàng Đôi
    Tham gia
    Apr 2009
    Đến từ
    Hà nội
    Bài
    1.116
    Cảm ơn
    693
    Điểm
    1.254/559 bài viết
    VR power
    0

    Default

    Trích hoangdongpc View Post
    Các bạn có thể cho mình một vài ví dụ đơn giản mà dễ hiểu về chương trình con được không mình đã đọ mấy ngày nay rồi mà không tài nào hiểu nổi ! "hơi chậm hiểu một chút"
    thanks các bạn nhiều !
    Đây là cách mình mở đầu với procedure và function

    Trước hết, bạn hãy làm một chương trình đơn giản, vd:

    Code:
    var x:integer;
    Begin
      writeln('Nhap so x:');
      readln(x);
      writeln('Binh phuong cua x la = ',x*x);
      readln;
    End.
    trước hết bạn phải hiểu đựoc nội dung của chương trình đơn gian này đã.
    Bây giờ ta chuyển nó về procedure mang tên Cau1 rồi gọi nó:

    Code:
    Procedure Cau1; {chỉ cần thêm dòng này}
    var x:integer;
    Begin
      writeln('Nhap so x:');
      readln(x);
      writeln('Binh phuong cua x la = ',x*x);
      readln;
    End; {thay dấu . thành dấu ; }
    Tất nhiên ta chưa thể compile chương trình đựoc vì code trên chưa phải chương trình đầy đủ.
    Vạy ta phải tiếp tục như thế nào?

    Ta đã có procedure, bây giờ, ta viết thân chuơng trình {main program}
    Code:
    BEGIN 
    Cau1; {ta gọi chương trình con}
    END.
    Ta lắp hai đoạn này lại với nhau và đựoc một chương trình hòa thiện, một ví dụ cực kì cơ bản về chương trình con:

    Code:
    Procedure Cau1; 
    var x:integer;
    Begin
      writeln('Nhap so x:');
      readln(x);
      writeln('Binh phuong cua x la = ',x*x);
      readln;
    End; 
    
    BEGIN {đây là chương trình chính}
    Cau1;
    END.
    Ví dụ trên giống như việc mẹ bạn sai bạn đi rửa bát,

    mẹ bạn sẽ nói rằng
    "rửa bát"

    chứ không nói:
    "nhặt bát, đem ra vòi nước,
    đổ đầy chậu nước,
    lấy một cái bát,
    đổ nuóc và xà phòng vào,
    dùng giẻ nhứng vào nước xà phòng
    xoay vài cái,
    đặt ra ngoài để chuẩn bị tráng,
    lặp lại các bước trên đến khi hết bát
    ..."

    Lời đề nghị "rửa bát" giống như lời gọi Cau1 trong thân chương trình phía trên, còn "rửa" như thế nào thì đó là phần của chương trình "con"

    >> Khi nào rỗi nói tiếp

    ---------- Bài thêm lúc 14:54 ---------- Bài trước là lúc 14:59 ----------

    Trích hoangdongpc View Post
    Các bạn có thể cho mình một vài ví dụ đơn giản mà dễ hiểu về chương trình con được không mình đã đọ mấy ngày nay rồi mà không tài nào hiểu nổi ! "hơi chậm hiểu một chút"
    thanks các bạn nhiều !
    Đây là cách mình mở đầu với procedure và function

    Trước hết, bạn hãy làm một chương trình đơn giản, vd:

    Code:
    var x:integer;
    Begin
      writeln('Nhap so x:');
      readln(x);
      writeln('Binh phuong cua x la = ',x*x);
      readln;
    End.
    trước hết bạn phải hiểu đựoc nội dung của chương trình đơn gian này đã.
    Bây giờ ta chuyển nó về procedure mang tên Cau1 rồi gọi nó:

    Code:
    Procedure Cau1; {chỉ cần thêm dòng này}
    var x:integer;
    Begin
      writeln('Nhap so x:');
      readln(x);
      writeln('Binh phuong cua x la = ',x*x);
      readln;
    End; {thay dấu . thành dấu ; }
    Tất nhiên ta chưa thể compile chương trình đựoc vì code trên chưa phải chương trình đầy đủ.
    Vạy ta phải tiếp tục như thế nào?

    Ta đã có procedure, bây giờ, ta viết thân chuơng trình {main program}
    Code:
    BEGIN 
    Cau1; {ta gọi chương trình con}
    END.
    Ta lắp hai đoạn này lại với nhau và đựoc một chương trình hòa thiện, một ví dụ cực kì cơ bản về chương trình con:

    Code:
    Procedure Cau1; 
    var x:integer;
    Begin
      writeln('Nhap so x:');
      readln(x);
      writeln('Binh phuong cua x la = ',x*x);
      readln;
    End; 
    
    BEGIN {đây là chương trình chính}
    Cau1;
    END.
    Ví dụ trên giống như việc mẹ bạn sai bạn đi rửa bát,

    mẹ bạn sẽ nói rằng
    "rửa bát"

    chứ không nói:
    "nhặt bát, đem ra vòi nước,
    đổ đầy chậu nước,
    lấy một cái bát,
    đổ nuóc và xà phòng vào,
    dùng giẻ nhứng vào nước xà phòng
    xoay vài cái,
    đặt ra ngoài để chuẩn bị tráng,
    lặp lại các bước trên đến khi hết bát
    ..."

    Lời đề nghị "rửa bát" giống như lời gọi Cau1 trong thân chương trình phía trên, còn "rửa" như thế nào thì đó là phần của chương trình "con"

    >> Khi nào rỗi nói tiếp
    Blog về Pascal_chương trình pascal_ game pascal...
    Pascal-Chương trình hay, Unit hay, Game Pascal, các phần hỗ trợ trong Pascal.
    My blog: http://vn.360plus.yahoo.com/kien_coi_1997

  16. Có 1 thành viên cảm ơn kien_coi_1997 cho bài viết này:
    win 8 (01-08-2011)

 

 

Quyền sử dụng

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể tự sửa bài viết của mình
  •