《【教学课件】第三讲程序的基本结构.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第三讲程序的基本结构.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三讲 程序的基本结构上一讲 运算符与表达式下一讲 简单程序应用程序三大基本结构程序三大基本结构1、顺序结构、顺序结构 按语句顺序,每句执行且只执行一次2、分支结构(选择结构)、分支结构(选择结构)按指定条件决定执行或不执行某些程序段3、循环结构、循环结构 按指定循环条件反复执行某程序段顺序结构Var i:integer;Begin readln(i);writeln(i=,i);i:=i+1;或inc(i);writeln(i+1=,i);writeln(i+10=,i+10);readln;End.每个执行语句按顺序均被执行一次。每个执行语句按顺序均被执行一次。顺序结构Var a,b,c:
2、integer;Begin readln(a,b);输入-5和6 c:=a;a:=b b:=c;writeln(a,b:5);readlnEnd.运行上述程序,改变三个赋值语句的顺序,观察对程运行上述程序,改变三个赋值语句的顺序,观察对程序运行结果的影响。序运行结果的影响。分支结构/选择结构单分支结构单分支结构If 条件 then 执行语句;If 条件 then begin 执行语句序列 End;“条件条件”为真,则执行;为真,则执行;“条件条件”为假,则跳过。为假,则跳过。分支结构ifthen形式举例Var a:integer;Begin readln(a);if a=0 then writ
3、eln(sqrt(a):10:4);readlnEnd.如果输入一个负数如果输入一个负数,会出现什么结果会出现什么结果?分支结构ifthen形式举例Var a,b,c:integer;Begin readln(a,b);先输入ab,后输入ab then begin c:=a;a:=b;b:=c;end;writeln(a,b:5);End.该程序无论输入怎样,共同的结果是?该程序无论输入怎样,共同的结果是?分支结构ifthenelse形式举例Var a,b,c:integer;Begin readln(a);先输入a0,后输入a0 then b:=sqrt(a)else b:=sqrt(-a)
4、writeln(a,b:5:10:3);End.这次这次,负数也能开方了负数也能开方了?!分支结构ifthenelse形式举例Var a,b,c:integer;Begin readln(a,b);先输入a0,后输入ab then begin a:=a+b;a:=a-b;b:=a-b;writeln(a,b:5,Change);end else begin /此处beginend可省去可省去 write(a,b:5,No change);end;End.多分支ifthenelse结构嵌套If then Else if then else if then else if then else 注意
5、注意:else前面不能有分号前面不能有分号!多分支case ofend结构Case 可数变量 of 值或值列表1:程序段1;值或值列表2:程序段2;值或值列表n:程序段n;else 程序段n+1;end;注意注意:else前可以有分号前可以有分号!多分支case ofend结构Readln(n);Case n of 0:程序段1;1:程序段2;k:程序段k-1;end;N为整数为整数,每一个分支对应一个值每一个分支对应一个值!多分支case ofend结构readln(c);case c of 0.9:程序段1;A.Z:程序段2;a.z:程序段3;else write(error);/对应未例
6、举的情况end;c为符为符,每一个分支对应一个值域每一个分支对应一个值域!循环结构1、计数型循环计数型循环 循环过程中计算机自动记录循环次数,达到指定的循环次数为止。2、当型循环当型循环 当指定条件为真,继续循环。3、直到型循环直到型循环 循环到满足指定条件为止。返回计数型循环计数型循环for i:=5 to 54 do writeln(i);/循环打印次变化了的i值s:=0;for i:=1 to 100 do begin s:=s+i;write(s:10);end;/100次循环执行值的累加与打印 变量变量 i 的值自动累加的值自动累加1,无须累加赋值。无须累加赋值。计数型循环计数型循环
7、for i:=54 downto 5 do writeln(i);/循环打印50次变化了的 i 值s:=0;for i:=100 downto 1 do begin s:=s+i;write(s:10);end;/100次循环执行值的累加与打印 循环控制变量循环控制变量 i 的值自动累加的值自动累加-1。计数型循环计数型循环注意:计数型循环体内,修改控制变时的值会影响循环的正常进行for i:=1 to 100 do begin inc(i);writeln(i);/打印的全部是偶数end;for i:=1 to 100 do i:=101 /无法退出循环,俗称“死循环”,是写程序的大忌。循环
8、体内非必要莫给循环控制变量重新赋值循环体内非必要莫给循环控制变量重新赋值。计数型循环计数型循环for c:=a to z do write(c:2);for c:=Z downto A do s:=s+c;for c:=chr(32)to chr(120)do begin end;ASCII字符均可做循环控制变量,字符均可做循环控制变量,但实数不可用。但实数不可用。返回当型循环当型循环i:=0;while i1 do begin /设定继续循环的条件 dec(i);/改变循环控制变量的值,缺少则死循环 s:=s+i;/循环执行体end;初始化、设定条件、改变循环控制变量的值初始化、设定条件、改
9、变循环控制变量的值当型循环当型循环i:=100;while i1 do begin inc(i);/循环条件使循环无法终止 s:=s+i;end;可能一次出不执行可能一次出不执行,容易写成死循环容易写成死循环返回直到型循环直到型循环i:=0;S:=0;repeat /同样实现了从1累加至100的运算 inc(i);/缺此死循环 s:=s+i;until i=100;writeln(i);初始化、改变循环控制变量的值、判断初始化、改变循环控制变量的值、判断是否继续循环!是否继续循环!直到型循环直到型循环i:=100;/初始条件已满足退出循环的条件S:=0;repeat inc(i);s:=s+i;until i=100;/到此条件不满足了writeln(i);初始条件不当,造成死循环!初始条件不当,造成死循环!直到型循环直到型循环i:=100;/初始条件未变,且满足退出循环的条件S:=0;repeat inc(i);s:=s+i;until i=100;/增加大于符号。writeln(i);循环无条件执行一次后退出!循环无条件执行一次后退出!返回
限制150内