简单C程序设计方案.ppt
简单C+程序设计,算法与程序流程控制,程序就是数据和算法算法(Algorithm),数据处理过程算法的表示自然语言,流程图,伪代码基本流程控制顺序,选择,循环,算法示例,从一组数中找出最大的数自然语言:假设第一个最大第一个与别的数每一个比一次,如果后面的数更大,记住它的位置,从这个位置继续往后比继续以上过程,最后记住位置的数就是最大的数,算法示例(cont.),伪代码:找大数算法输入:一组数N输出:N中的最大数MM=N0For each n in N(i0),do If n M,then M=nReturn M,算法示例(cont.),流程图(flow chart)不同操作用特定符号表示程序执行流向,M=N0;i=0,输入数组N,开始,i=i+1,i n?,MNi,输出M,真,假,M=Ni,结束,程序流程控制,顺序,按照语句前后次序执行选择,按照条件执行不同语句分枝循环,重复执行一段代码,按照一定条件退出,选择结构,if(expression)statements;if(expr)stat1;else stat2;if(expr1)stat1;else if(expr2)stat2;else statn;分支可以是复合语句,复合语句中还可以有各种结构,选择结构(cont.),switch(expr)case const1:stat1;case const2:stat2;case constn:statn;default:stat_default;case分支可以包含多条语句,不必用复合语句表达式、常数值只能是整数型(int,char等),不是范围或者bool值。多分支可执行同一组语句。break语句,循环,while(expr)stats;do stats;while(expr);for(start;cond;incr)stats;都可以省略或者多条(逗号表达式),选择和循环的嵌套,注意层次,“”和“”正确配对,辅助控制语句,break,结束循环continue,结束本次循环,继续下一次循环goto 无条件转移到标号处loop:stats;goto loop;,Derived types(vs.basic types),typedef,enum,union,structtypedef,定义某种数据类型的名称为另一个名称typedef long id;typedef double height;typedef int age;height h1,gaodu;id student1,s2(4050607);age puppy=1,zhang3;h1=2.08;,enum,相当于定义一系列特定类型的整数常数,不能再赋值enum week Sun,Mon,Tue,Wed,Thu,Fri,Sat;week day,d;枚举元素缺省值为从第一个开始:0,1,2,.。可以指定枚举元素的值:enum week Sun=7,Mon=1,Tue,Wed,Thu,Fri,Sat;这时Tue=2,Wed=3,enum量可以比较大小。整数值不能直接赋给枚举变量,需要强制类型转换。,struct,struct student long id;char name20;Sex sex;stu1=040201,“zhang 3”,male,stu2;结构变量占用内存大小可用 sizeof 运算求出:coutsizeof(stu1);stu2.id=040506;stu2.sex=female;,Union,不同名称,占用同一内存空间union union_name type1 data1;type2 data2;无名Union,#include using namespace std;void main(void)union int i;float f;i=1;cout i=i f=fendl;f=2.34f;cout i=i f=fendl;,上机练习,输出除0以外的所有ASCII码,以及有符号和无符号的短整数序列1000,2000,3000,一百项输出如下乘法九九表1X1=12X1=2 2X2=43X1=3 3X2=6 3X3=94X1=4 4X2=8 4X3=12 4X4=165X1=5 5X2=10 5X3=15 5X4=20 5X5=256X1=6 6X2=12 6X3=18 6X4=24 6X5=30 6X6=367X1=7 7X2=14 7X3=21 7X4=28 7X5=35 7X6=42 7X7=498X1=8 8X2=16 8X3=24 8X4=32 8X5=40 8X6=48 8X7=56 8X8=649X1=9 9X2=18 9X3=27 9X4=36 9X5=45 9X6=54 9X7=63 9X8=72 9X9=81输入一个正整数,输出它的所有素数因子编译运行书上的例题程序,尝试修改源程序,看有没有别的方法做同样的事情论坛上的自由练习题。,练习,编程序:百鸡百钱问题:公鸡1只值钱5,母鸡1只值钱3,小鸡3只值钱1。今有钱100,买鸡100只。问公鸡、母鸡、小鸡各买几只?,