- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                Ada子程序概述.pdf
                    
                              Ada⼦程序概述 
概述 (Overview) 
    ⼀个程序是由⼀个或更多的⼦程序组成,以⼀个主过程(main procedure)为根本,主 
过程类似与 C 下的 main  函数。⼦程序包括过程(proceudre)和函数(function)两类,两 
区别在于,过程没有返回值,⽽函数有返回值。 
     ⼦程序,包括函数和过程,以及下⼀章所讲述的程序包,是构成 Ada 程序的基 
础。Ada 提供了⼀些和 C、Pascal 不同的新特性,如重载、参数模式、分离程序等。 
过程(Procedure) 
    过程我们以前已经见过了,但那些都是主过程(main procedure) ,即程序的主体部 
体,作⽤和C下的 main  函数相似。⼀般情况下,Ada 程序的主程序名应当和该主程序 
所在的⽂件名相同。过程的声明格式如下: 
 procedure procedure_name (parameter_specification); 
    它的执⾏部份则为: 
 procedure procedure_name (parameter_specification) is 
     declarations; 
 begin 
     statements; 
 end procedure_name  ; 
    p rocedure_name 为该过程的名称;p arameter_sp ecif ication 是这个过程所要使⽤的参 
数,是可选的;declarations 是声明⼀些局部的新类型、变量、函数、过 
程;statements 则是该过程要执⾏的语句。 
   下例创建⼀个⽐较两数⼤⼩,并输出较⼤值的过程: 
 procedure compare (A :Integer; B  :Integer) is  
 begin  
    if A  B then  
       Put_Line (A  B); 
    elsif A   B then  
       Put_Line (A   B); 
    else  
        Put_ine (A B);  
    end if; 
 end compare; 
    下例则是完整的程序: 
 000 -- filename:comp.adb; 
 001 with Ada.Text_IO; use Ada.Text_IO; 
 002 with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; 
 003 procedure comp is  
 004     procedure compare (A :Integer; B  :Integer) is  
 005     begin  
 006        if A  B then  
 007            Put_Line (A  B.); 
 008        elsif A   B then  
 009            Put_Line (A   B.); 
 010        else 
 011            Put_ine (A  B.); 
 012        end if; 
 013     end compare; 
 014 X,Y :Integer; 
 015 begin 
 016     Put (Enter A :); Get (X); 
 017     Put (Enter B:); Get (Y); 
 018    compare (X,Y); 
 019 end comp; 
    通过上例,对过程的⽤法应该会有基本的了解了。因为 compare  的执⾏部分是在 
comp  内部,所以我们⽆须给出单独的 compare 声明,如果要加⼀ 
句procedure compare (A:Integer; B  :Integer) ; ,程序还是⽼样⼦。声明部份和执⾏部 
份⼀般在使⽤程序包时分离。其中Put_Line ,Get也都是预定义的过程。 
函数 (Function) 
    函数和过程也很像,只是它还要有返回值,和 C 很相似,也⽤ return 来返回函数 
值。声明格式为: 
function f unction_name (p arameter_sp ecif ication) return return_typ e; 
执⾏部份为: 
function f unction_name (p arameter_sp ecif ication) retur
                 原创力文档
原创力文档 
                        

文档评论(0)