夏令营2010信息学魏隽.pptxVIP

  • 1
  • 0
  • 约1.18万字
  • 约 61页
  • 2021-12-03 发布于北京
  • 举报
海盐县2010年信息学夏令营第四天函数和过程元济高级中学 周家峰、魏隽计算机程序设计和问题求解的基本思想是将一个大的复杂问题分解成更小、更简单和容易处理的子问题,为此提出了结构化程序设计思想。其基本要点是:(1)自顶向下,逐步求精(2)程序的模块化子程序的概念在程序设计中,一些程序段在程序的不同地方反复出现,此时可以将这些程序作为相互独立的整体,用一个标识符给它起一个名字,凡是程序出现该程序段的地方,只要简单地写上其标识符即可。这样的程序段称为子程序.特点:(1)、本身不能单独执行,需要其他程序调用才能执行。如我们前面介绍的函数(abs,sqr,sqrt)以及输入输出标准过程(read,readln,write,writeln)等。(2)、我们所设计的程序可称为主程序,程序从主程序开始执行,通过主程序去调用子程序。(3)、一个完整的程序包含一个主程序和若干个子程序。6.2函数如果我们要设计一个子程序,每调用一次产生一个结果,那么可以把这个子程序设计成函数的形式。求值在数学上,如果y的值随x的变化而变化,那么称y是x的函数,x是自变量。例如函数y=5x+8,当x=2是y=18;当x=3时y=23函数分类:标准函数和自定义函数函数的定义Pascal语言允许用户自定义函数,注意的是,标准函数的调用可用在不同程序中,而自定义函数只能在定义它的程序中被调用。函数定义的一般格式:Function 函数名(形式参数表):函数类型; 局部变量说明Begin语句1;…语句n;函数名:=表达式;End;设计y=5x+8这个函数Function y(x:integer):integer;var t:integer;Begint:= 5*x+8;y:=tEnd;例6-1设计一个求累加和的函数。输入一个正整数,然后计算从1到此数的累加和。Function sum(n:integer):integer;Var s,i:integer; begin s:=0; For i:=1 to n do s:=s+i; ;End;函数首部说明部分函数体执行部分sum:=s函数的调用例6-2设计程序求1+2+3+…+100的值?Function sum(n:integer):integer;Var s,i:integer; begin s:=0; For i:=1 to n do s:=s+i; sum:=sEnd;Begin Writeln( .);End.思考:设计求n!的函数并计算5!+8!函数sum(100)主程序Function sum(n:integer):longint;Var s:longint; i:integer; begin s:=1; For i:=1 to n do s:=s*i; sum:=sEnd;Begin Writeln(sum(5)+sum(8));End.函数调用一般形式为:函数名(实在参数表)(1)、函数调用必须出现在表达式中(2)、实在参数简称实参。在调用时,实参将值赋给形参,因此,实参的个数、类型必须与形参一一对应,并且要有确定的值(3)调用步骤是:首先在主程序中计算实参的值,传递给所调用函数中对应的形参,然后执行函数体,最后将函数值返回给主程序。例6-3求五边形面积海伦公式S=其中p=(a+b+c)/2var a1,a2,a3,a4,a5,a6,a7,s:real;function area(a,b,c:real): ;var p:real;begin p:=(a+b+c)/2; area:= ;end;begin write(input a1 to a7:); readln(a1,a2,a3,a4,a5,a6,a7); s:= ; writeln(s=,s:8:2);end.realsqrt(p*(p-a)*(p-b)*(p-c))area(a4,a5,a7)+area(a1,a6,a7)+area(a2,a3,a6)读程序写结果练习1:Var n:integer;Function f(x:integer):integer;Begin f:=x*x+10*x-2End;Beginn:=6;Writeln(f(n));Writeln(f(n+5):4,n:4)End.94229 6练习2:Var s,i:integer;Function f(x:integer):integer;var y,j:integer;Begin y:=1; for j:=1 to x do y:=y*j; f:=y;End; BeginS:=0;For i:=1 to 5 do s:=s+f(i);Write(‘s=‘,s);End.s=153练习3:读入正整数,求2到n之间所有的素数。varj,k,n:integer;func

文档评论(0)

1亿VIP精品文档

相关文档