[帕斯卡尔 – TUT] 帖子 7: 子程序
1. 使用子程序的优点(CTC)
– 该方案有许多段每个段执行特定功能{ 同时,我们用它来使段反恐委员会}
– 在程序, 有必要建立通道走, 反复数次在不同的地方. 为了避免不必重写该段,它通常被分为几种四氯化碳程序
– 使用四氯化碳作为一个可以轻松连接主程序装配前检查它的有效性的另一个便利. 因此,错误的识别和作出调整,该计划将更为有利.
=> CTC是全面实施方案或特定功能的一个片段. 在Turbo Pascal的, 有 2 CTC格式: 函数和过程. 功能和操作步骤CTC, 但在适当的程序功能等功能通过函数名返回一个值的号召,不再程序
2. CTC声明
– 回顾一个机智的结构
PROGRAM Tên_chương_trình; { Tên chương trình} USES ...; {Khai báo thư viện} CONST ...;{Khai báo hằng} TYPE ...;{Khai báo kiểu} VAR ...;{Khai báo biến} Khai báo CTC BEGIN {Chương trình chính} <các lệnh>; END.
因此,反恐委员会宣布位于该声明的末尾
该. 声明和函数调用
– 声明:
FUNCTION <tên hàm>(Danh sách ác tham số):<Kiểu dữ liệu>; [Khai báo Const, Type, Var] BEGIN <các lệnh trong thân hàm>; <tên hàm>:=<Giá trị>; END;
注意始终允许分配给函数名函数值调用时返回一个值
例: 总的 2 x和y
Function tong(x,y:integer):integer; {Do có giá trị trả về} var s:integer; begin s:=x+y; tong:=s; end;
– 函数调用
<tên hàm>(danh sách các tham số thực);
例:
tong(4,5);
B. 声明并调用程序
– 声明:
PROCEDURE <tên thủ tục>(Danh sách các tham số);{không có giá trị trả về} [Khai báo Const, Type, Var] BEGIN <các câu lệnh>; END;
例:
Procedure inso(n:integer); var i:inteher; Begin for i:=1 to n do write(i:5); end;
– 过程调用
<tên thủ tục>(danh sách các tham số thực);
例:
INSO(6);
3. 全局变量和局部变量
– 全局变量是在主程序中声明的变量. 这些变量可以在任何地方在程序中使用,并且存在该程序工作的持续时间
– 局部变量 (局部变量) 在变量声明CTC. 这些变量仅用于它被声明CTC的程度. 反恐委员会经过公式变量将不复存在.
例:
PROGRAM vidu; Var a,b,c:integer; {3 biến toàn cục} PROCEDURE thutuc(n:integer);{n là biến cục bộ} var i:integer; {i là biến cục bộ} begin for i:=1 to 10 do writeln(i); end; BEGIN a:=5;b:=6;c:=8; thutuc( a); thutuc( b); thutuc( c); readln; END.
– 在具有相同名称的局部变量的情况下,全局变量没有误导机器,这将在本地变量进行. 全局变量不受影响.
4. 如何传递参数的子程序
– CTC不需要参数 (名称后CTC) 如果不使用它们,或直接使用全局变量
– 当调用正确的顺序反恐委员会宣布CTC当对应类型的传输参数参数.
例:
Procedure inso(a:integer; ch:char); begin {các lệnh của CTC} end;
{gọi} inso(13,'a'); {lời gọi đúng} inso('a',13); {loi goi sai} inso(13);{lời gọi sai}
– 参数表 (到) 是函数名以下参数和程序声明.
– 的参数是函数名以下参数和程序在呼叫.
– 参数: 这些参数关键字var声明后. 这些参数变量其实一直没价值. 参数可以在CTC和CTC被改变后,被排除在价值变动.
– 加入治疗: 背后khia报纸上的参数,而var关键字. 这些参数可以是实数值, 不变, 变量. 加入董事会可能会改变,但最终CTC CTC后返回其值与原.
– 函数参数总是按值传递, 中的过程中的参数可以是涉及或参数值.
5. 区分使用函数和过程
该函数的功能通过函数名返回一个值到该呼叫等程序,不再程序.
*使用功能
– 问题回报结果 1 独特的价值 (标量类型, 字符串或指针类型).
– 反恐委员会应在计算表达式调用.
*使用过程
– 这个问题的结果没有返回值或返回值或返回结构化数据类型 (排列, 记录, 文件)
– 四氯化碳呼叫是不是在计算表达.
注意: 如果作业可以通过函数来完成,他们一定会做的过程 {然而,要使用功能时比更复杂} 但是一个程序,使得它不太可能的步骤,通过函数进行.
Borland的帕斯卡尔 7.0 可调用函数作为过程调用. 不一定能得到的返回值. 要在选项菜单中实现这一点 >编译器应该声明扩展语法 (扩展语法), 或者在程序应该已编制指南 {$ X +}. 除非, 编译时 (打字F9) 帕斯卡尔将是错误消息“ 122: 无效的变量引用“.
6. 子程序的递归计算
CTC一个Pascal中可以调用本身. 像那样的呼叫被称为递归调用
考虑下面的例子:
进入 1 n和n!
我们已经知道N.! = 1 如果n万一= 0 N>= 1我们有N!= N。(N-1)!
火腿计算n!
function giai_thua(n:integer):longint; begin if n=0 then giai_thua:=1 else giai_thua:=n*giai_thua(n-1); end;
– 注意:
+ 当使用递归结束条件递归 (TH退化). 在这个例子中,我们考虑递归结束条件为n = 0. 如果有截至这一计划,我们将无限重复没有条件.
+ 总是有递归, 在TH在电话giai_thua(N-1);
原创文章: vietsource.net
我在写 1 智力竞赛节目测验帕斯卡. 如果你选择没有错,程序会调用write命令过程(“世投资回报率 ! 无赖“。);…. 如果为真,相反. 我问,如果允许这样做,那么什么是过程调用爵士 ?
我只是写它,并调用程序.
例如,该过程调用TEEB众所周知thongbao thongbao() 只有RS
老师, E也涉足想去做测验v计划, 达格秘密ë不知道从哪里开始, 先生暗示è先生有点PES, Ë谢谢各位大大先生
这一个命令,如果是别人.
事实上,E仍然无法想象,它NTN DC; 使得f想要重复使用的情况下….挖KO爵士
我想使用的重复循环.
你能为电子PES先生提供具体指导, Ë纠结的所有锐先生, 希望他帮忙; Ë谢谢主席先生
使用循环重复问题. 在每一个问题让节目的问题和答案的人选择, 这一切.
老师, E也涉足想去做测验v计划, 达格秘密ë不知道从哪里开始, 先生暗示è先生有点PES, Ë谢谢主席先生
MK是有点长瑞新类 8 应该否认他将传达给设施 : 如果函数他应该使用 (条件) 然后 (声明 1) 其他 (声明 2);
DJK真,则执行该语句给出 1 错误的,那么执行语句 2;
我不明白的参数和参数的形式在本地不同品种,他怎么一. 写作教科书不是很清楚. 据老师他们并不了解真实NTN:
首席执行官:
VAR点¯x: 整数;
程序vidu1( X: 整数) ;
………. {代码}
那么x被认为是一个参数,因为它是在本地报关私人变种, 它的名字是CT直接使用
首席执行官:
VAR点¯x:整数;
程序vidu2( 和: 整数);
…… {代码}
开始
写(“纳米羟基磷灰石点¯x: “); readln(X);
vidu2(X);
则y被称为在声明的程序的形式参数,但它仅代表一种形式,而不是其它值中的过程程序vidu2的主体
渴望帮助教师解释
你明白如何成为真,那么.
我正在写一个使用功能的程序时,它不是SUM函数或者是检查条件的表达式的必修课至少一个功能,怎么?
例如,它开始打印学生自己的病情,什么中间名的名单是我可以发挥作用的名称,以及如何NTN爵士?
仅此一点不太明白你的描述.
我只是新的帕斯卡
我发现了一些非常有用的文章
发展应继续离线博客
我会定期监测,以了解来自博客,先生更多的知识
老师, 作者何姒耷呒, 胡哈, 做亨·特伦, 阮德Nghia酒店, 阮Thanh·通, 非政府组织安·塔耶特说,局部变量不包含形式参数:
VAR TICH: 真实;
功能Luythua(X: 真实; 到: 整数): 真实; {X, k是参数形式}
VARĴ: 整数; {j是一个局部变量}
开始
TICH:= 1;
对于j:= 1到k做TICH:= X * TICH;
Luythua:= TICH;
比;
开始
—–
比.
信息学教科书阅读课 11 (页 92, 93, 94) 然后读取所有教师, 我想知道: 不知道下党?
我还没有完全明白你的问题.
是的…
我都忽略了,而不是很感兴趣tubol帕斯卡和儿童正在遭受的后果先生…? 基本知识几乎完全丧失, PT现在写信给你作为奢侈品
我通过了考试意识到其危害的严重性… 现在我真的想从头开始爵士
请你能只是你应该做的首先是不是?( 孩子们的评论就是从根本上从什么地方开始爵士?). 是的, 先生请老师帮忙( 是的, 请说明补充说,今年等级 11 我想达到在学期考试结束点 … 水跃到新的腿是错误的, 我知道, 但舞蹈是不是固步自封更多). 期待收到反馈
谢谢
你好麦, 阅读您的意见有点晚真是不好意思. 这个时候,你不知道学期考试,或有自己的学习面向对象编程帕斯卡只是不再期待积极成果.
关于如何你应该问, 什么研究首次实现了很高的分数,你回头看看课本基础知识. 读它,如果不明白的地方可以问老师或朋友可以发送自己的邮件. 然后可以参考网上 (例如,他对基本程序博客). 所以是最适合你的考试.
但是,如果你想更好的节目,尝试了解更多, 想过我们想要做的 (如贪吃蛇游戏或程序的东西), 并逐渐学会做它. 就这样你会好起来.
如果您有任何疑问,请发送电子邮件至自己.
祝您身体健康,学习.
老师们帮助孩子们写的子程序方向进入 1 串并给予 1 从字符串中除去空间ķ先生后串获得? Cô cho bài tập mà e k bt hướng làm 🙁
Gợi ý là dùng vòng lặp for, kiểm tra cái nào là dấu cách thì xóa nó đi. 🙂
Var x,和: Integer;
Procedure TT(该,B:Integer);
Var x,和: Integer;
开始
X:= 3; 和:= 4;
结束;
开始
X:= 5; 和:= 6;
TT(X,和);
写(X,和);
结束.
nhờ thầy giải thích giúp kq
程序与TT 2 变量x, 如上述,它是按值传递, 所以下车后道工序中,变量不会,如果有程序,而不是倒保值. 从而导致在x和y保持 5 和 6
有X:Integer;
程序MASTERS;
有X:Integer;
开始
X:= 1; X:= X + 12;
结束;
开始X:= 10; ESSENTIAL; Writeln(X); 结束.
一次KQ这个问题? 为什么要在KQ CTC声明变量回= 10
与全局变量的子程序名转弯时,子程序只使用它的变量,并不做任何事情,以全局变量. 就是说全局变量不会在子程序任何影响.
相反OI林E能隙写程序收集网络入口 10 整数和打印成像仪
E上的凸轮
教师可以帮助孩子PASCAL编程使用子程序的一个角落的任何消息的计算 , 怎么办先生???
孩子们都非常迫切需要, 请帮我VS
亲爱的老师,您需要编写计算S上节目:= 1!+2!+3!+…ñ! 使用子程序. 请老师帮忙
你需要帮助的问题? 制造, 或错误,… ???
晚报方式先生
你可以写 1 子程序来计算x!, 然后写 1 基于X因子的子程序总和! 计算出.
在任何时候各种命令的功能和程序,呵呵老师?
你读项目 5 在文章称我给你.
亲爱的老师要在CTC声明字符串类型必须声明如何?
你只要把它声明为正常, 别人不是在所有.
我的老师让我问, 这里返回值是什么?.
即在计算做了什么, 功能并返回结果.
老师, Ë需要写 1 CT,尽管运行,则 1 选择器, 同时,如果按 1 键盘上的特定号码,它会出现 1 CT解决方案或答案. 这里VD选择器是图像的区域. 如果拨号 1 它将计算面积 1 某些图像, 即是这样:
计算图像的区域
0. 出口
1. 三角形的
2. 矩形
3. 广场
4. 圈
如果按号码 4 它会计算一个圆的面积, 类似于其他
希望他帮忙, 我已经尝试了很多方法,但没有都 (但现在我的等级 8, 我没有经历过).
我感谢你
我用那就要检查一下,如果他们输入任何内容,我会做一些事情,是.
我的老师让我完成这个项目上的主要程序不知道如何从子程序.Thay帮助孩子PES A111声明
然后在主程序中你称呼它是.
thầy ơi vậy về phần produce đọc file inp với file out là làm riêng hay chung thầy???
là làm 1 lần produce hay 2 lần produce 1 inp 1 out ạ???
Riêng nhé.
cho hỏi làm cách nào để ấn thanh đứng của bảng mã ASCII trong Pascal z ạ!?
Mình chưa hiểu ý của bạn?
老师,返回值是多少?? 什么是非返回值??
完成后, 它给出了一个可保存的结果 1 转高. 请多读几遍文章.
老师, 我什么时候应该使用 ctc,什么时候不应该使用?