版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章C语言程序设计基础知识
以封魔录游戏中的具体功能描述流程图以封魔录游戏中的具体代码描述C语言程序设计的基本知识1.1引言1.1.1计算机与信息社会计算机定义:一种在事先存入程序的控制下,能够接收数据、存储数据、处理数据并提供处理结果的数字化电子设备。计算机工作流程图输入运算与控制存储输出数据计算机结果1.1.2计算机中信息的表示
1.计算机内所有信息采用二进制表示
2.采用二进制的原因:
1)二进制只包含0和1,可以使用具有两种不同稳定状态的元件来表示。
2)二进制数的运算规则简单,使得计算机中的运算部件的结构也比较简单。3.计算机中信息的表示数值直接转换为二进制字符采用ASCII编码(7位、美国标准信息交换码)其它信息(汉字、图形、图象、声音、表格)也有相应的编码标准和规则。
计算机系统软件系统硬件系统系统软件(操作系统、编译程序、诊断程序系统服务软件等)应用软件(信息管理软件、游戏等)CPU控制器运算器输入设备(键盘、鼠标、手写笔、MIC等)输出设备(显示器、绘图仪、打印机等)存储器内存储器(RAM)外存储器(硬盘、U盘、光盘)1.1.3计算机系统的组成HIT-CProgramming
C程序的程序设计步骤Whattodo?可执行文件扩展名为.exe的文件
需求分析(Analysis)设计(Design)编码(Write)编辑(Edit)编译(Compile)连接(Link)运行(Run)调试(Debug)Howtodo?扩展名为.c的文件扩展名为.obj的文件开发C程序的步骤1.设计算法2.编写程序源代码把自己的意图写入源代码3.编辑源程序4.编译和连接5.调试程序
直到改正了所有的编译错误和运行错误6.运行程序例子1输入一个整数,输出其绝对值算法:1输入一个整数;2若该数为正数,则其绝对值取该数的值
否则,其绝对值取该数的相反数值;3输出其绝对值。程序#include<stdio.h>
void
main(){
intnumb;/*代表一个整数*/
intabs;/*代表运算结果:绝对值*/
scanf(“%d”,&numb);/*输入整数的值*/
if(numb>0)abs=numb;
elseabs=-numb;
printf(“numb的绝对值是:%d\n”,abs);}例子2封魔录游戏主界面功能选择算法:1初始化(令hang=0;ch=1等);
2如果处于第5个功能项且字符ch等于回车符,跳到第6步;
3显示5个功能项;
4输入一个字符ch;5如果字符ch等于’s’(向下),则选择下一功能项(hang增加2),其中如果已经处于第5个功能项,不再往下选。否则如果字符ch等于’w’(向上),则选择上一功能项(hang减少2),其中如果已经处于第1个功能项,不再往上选。跳到第2步;
6结束程序intmain(void){ charch=1;//输入的字符,初始设为1。 inthang=0;//用来控制光标的行位置。共有0,2,4,6,
8//四个有效值,初始设为0,即处于第1个功能项
//调用DOS命令;title为命令提示符窗口创建标题。 system("title封魔录"); system("colorf1");//color设置颜色
while(!(hang==8&&ch==13))//循环选择。 {
//显示5个功能项
if(hang==0)gotoxy(20,8); printf("%c%c",16,16); gamedifficult_show(); gotoxy(22,8); printf("开始游戏"); gotoxy(22,10); printf("按键设置"); gotoxy(22,12); printf("难度设置"); gotoxy(22,14); printf("游戏制作"); gotoxy(22,16); printf("退出");
ch=getch();//无回显获取一个字符;
if(ch==key_down)//’s’
{
hang=hang+2;
if(hang>8)hang=hang-2;
gotoxy(20,6+hang);printf("");
gotoxy(20,8+hang);printf("%c",16);
}
elseif(ch==key_up)//’w’
{
hang=hang-2;
if(hang<0)hang=hang+2;
gotoxy(20,10+hang);printf("");
gotoxy(20,8+hang);printf("%c",16);
}
}
}程序的灵魂—算法一个程序应包括:对数据的描述:在程序中要指定数据的类型和数据的组织形式即数据结构(datastructure)对操作的描述:数据进行操作的具体步骤,即算法(algorithm)程序构成公式NikiklausWirth提出的公式:
程序=数据结构+算法目前已经修改为程序=算法+数据结构
+程序设计方法+语言工具和环境
算法及其表示算法:解决问题所采取的一系列步骤例,要求计算圆的面积,算法为:
设置(输入或指定)半径值r;使用公式s=лr2;显示(输出)S的值。算法的特点(1)有输入算法可以有零个或多个输入。在一个算法的执行过程中,提供需处理的数据或控制算法执行过程的信息。(2)有输出算法必须具有一个或多个执行结果的输出。没有输出的算法是一个无效的算法。算法的特点(3)有穷性任何算法都应该在执行有穷步骤之后结束。(4)确定性算法不能具有二义性。算法中每一步的语义都应该清晰明了,明确指出应该执行什么操作,如何执行操作。算法的特点(5)高效性根据算法编写出来的程序应具有较高的时空效率:执行时间短不占用过多内存。算法的表示(描述)自然语言表示易理解和交流,但易产生二义性。伪代码表示伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法
算法的表示(描述)程序流程图用图形符号和文字说明来表示数据处理的过程和步骤。N-S流程图也称方框图;适于结构化程序设计的算法描述工具。程序流程图描述算法的良好工具。逻辑框和流向线组成。逻辑框是表示功能的图形符号流向线指示逻辑处理顺序逻辑框和流向线NY流程图的逻辑框起止框表示程序的开始和结束。处理框表示一种处理功能或程序段,框内用文字简述其功能。逻辑框判断框表示在此进行判断以决定程序的流向,框内注明判断条件。连接框框内注有字母,当流程图跨页时,或者可能出现流向线交叉时,用它来表示彼此之间的关系,相同符号的连接框表示它们是相互连接的。流向线流向线以单向箭头表示。N-S流程图1973年美国学者Nassi和Schneiderman提出N-S流程图(也称为方框图),它是一种适于结构化程序设计的算法描述工具。由于流程图各步骤之间,一般总是按照从上到下顺序执行(N-S流程图中取消了流向线)二选一结构的表示ABYN满足不满足AB编写程序
算法用C语言进行实现,该过程也称对算法进行编码;按照算法的流程顺序编写程序;编写程序还必须进行语句执行过程的控制。语言提供的控制结构1.顺序:定义了语句按顺序执行的次序。2.选择:根据某个条件的结果,对多条语句,选择执行其中的一条语句。3.循环(重复):根据某个条件的结果,重复执行某些语句。4.调用:即在需要时运行指定的代码段。C语言程序的基本结构#include<stdio.h>
void
main(){
数据定义;(变量说明语句);
数据处理;(执行语句);}数据结构算法程序说明每个C程序必须有一个主函数main{
}是函数开始和结束的标志若需要输入和/或输出功能,程序开头应该为
#include<stdio.h>
#include<stdio.h>
void
main(){
printf(“我可以设计程序了.\n”);}
程序简例程序的作用是输出一行信息:我可以设计程序了.自然语言描述:
1输入一个整数;2若该数为正数,则其绝对值取该数的值
否则,其绝对值取该数的相反数值;3输出其绝对值。例子1输入一个整数,输出其绝对值算法伪码表示BEGINREADnumbIFnumb>0abs=numbELSEabs=-numbPRINTabsENDBEGINREADnumbIFnumb<0numb=-numbPRINTnumbEND对比程序流程图
---学生当场画BEGINREADnumbnumb>0abs=numbabs=-numbPRINTabsENDYN程序#include<stdio.h>
void
main(){
intnumb;/*代表一个整数*/
intabs;/*代表运算结果:绝对值*/
scanf(“%d”,&numb);/*输入整数的值*/
if(numb>0)abs=numb;
elseabs=-numb;
printf(“numb的绝对值是:%d\n”,abs);}例子2封魔录游戏主界面功能选择算法自然语言描述:1初始化(令hang=0;ch=1等);
2如果处于第5个功能项且字符ch等于回车符,跳到第6步;
3显示5个功能项;
4输入一个字符ch;5如果字符ch等于’s’(向下),则选择下一功能项(hang增加2),其中如果已经处于第5个功能项,不再往下选。否则如果字符ch等于’w’(向上),则选择上一功能项(hang减少2),其中如果已经处于第1个功能项,不再往上选。跳到第2步;
6结束伪代码BEGINSET0→hangSET1→chWHILEch==13andhang==8arenotsatisfiedBEGINDISPLAY5functionitems
READachardatatochfromkeyboard
IFch==‘s’then
hang+2→hang IFhang>8thenhang-2→hang SELECTthecorrespondingfunctionitem ELSEIFch==‘w’thenhang-2→hang IFhang<0thenhang+2→hang SELECTthecorrespondingfunctionitem END_IFEND_WHILEEND程序流程图描述算法BEGINch==‘s’YNENDYNhang==8&&ch==13YNSET:0→hang,1→chDISPLAY5functionsREADchhang>8hang+2→hanghang-2→hangSELECTtheitemNNYNYNch==‘w’YNhang-2→hanghang+2→hangSELECTtheitemNNYNhang<0程序intmain(void){ charch=1;//输入的字符,初始设为1。 inthang=0;//用来控制光标的行位置。共有0,2,4,6,
8//四个有效值,初始设为0,即处于第1个功能项
//调用DOS命令;title为命令提示符窗口创建标题。 system("title封魔录"); system("colorf1");//color设置颜色
while(!(hang==8&&ch==13))//循环选择。 {
//显示5个功能项
if(hang==0)gotoxy(20,8); printf("%c%c",16,16); gamedifficult_show(); gotoxy(22,8); printf("开始游戏"); gotoxy(22,10); printf("按键设置"); gotoxy(22,12); printf("难度设置"); gotoxy(22,14); printf("游戏制作"); gotoxy(22,16); printf("退出");
ch=getch();//无回显获取一个字符;
if(ch==key_down)//’s’
{
hang=hang+2;
if(hang>8)hang=hang-2;
gotoxy(20,6+hang);printf("");
gotoxy(20,8+hang);printf("%c",16);
}
elseif(ch==key_up)//’w’
{
hang=hang-2;
if(hang<0)hang=hang+2;
gotoxy(20,10+hang);printf("");
gotoxy(20,8+hang);printf("%c",16);
}
}
}注释“/*……*/”、“//”表示注释。注释是对源程序进行的注解,增加程序的可读性;对编译和运行不起作用。库函数C语言(编译器)提供了许多基本的、常用的功能;分别保存在不同的文件中;以函数形式提供给程序员使用;库函数分类(1)I/O功能,需要的包含文件:stdio.h
如:printf,scanf等。(2)字符(串)处理功能,string.h如:islower,strcat,strcmp,strlen等。(3)数学功能,math.h
如:sin,cos,exp,log,sqrt等。库函数分类(4)时间、日期功能,time.h
如:time()(5)动态存储分配,alloc.h…C程序的结构特点
C程序由函数(模块)构成;C程序可由一个或多个函数组成,其中必须有且仅有一个main函数;C程序在执行中可调用由C语言提供的各种标准库函数和用户自定义的函数。编程风格1、通常使用小写英文字母;2、充分利用注释功能,增加可读性;3、程序中的各语句组按功能和嵌套关系缩进编排,使程序的模块和复合关系明显;4、注意花括号对齐和配对;5、适当空格和空行可使程序更加清晰
字母是程序中的最小单位,是构成其他语法单位的基础。C规定的合法字符集是ASCII码字符集。C语言字母表(字符集)C语言单词符号标识符关键字运算符常量(分)界符标识符——例子2中的hang、gotoxy等程序员对于使用的常量、变量、函数、语句标号、类型定义等进行命名的字符串。只能由字母、下划线和数字组成,并以字母和下划线开始。非法:5class、m*n、studentname、int
见名知意:如sum、volume、result大小写字母有别:name不同于Name关键字(保留字、基本字)——例子2中的int、char、include、if、else等对某些标识符,语言规定其具有特定的含义;不能另作他用。关键
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI在核电站动力设备运行与维护中的应用
- 2026年仓库目视化管理与标识规范
- 2026年学校食堂食品追溯系统建设
- 2026年幼儿园小班家长沟通技巧
- 2026年招聘旺季劳务派遣用工方案
- 2026年幼儿园外来人员来访登记表
- 2026年疫苗接种知识家长课堂巡回讲座计划
- 2026年原材料入库至成品出库全流程物流管理
- 2026年学校管理团队项目管理能力培养
- 2026年安全事故信息报送与发布规定
- 废旧刀具管理办法
- 无讼学院实习律师培训结业考试题目含答案
- 土木工程水泥混凝土研究毕业论文范文
- DB65∕T 8006-2024 建筑吊篮安全施工管理规程
- 2025年四川省凉山州中考生物试卷真题(含答案解析)
- 儿童免疫性血小板减少护理
- 森林培育学试题及与答案
- 设计青年社区方案策划书3
- 中建地下通道基坑支护与土方开挖
- TCSRME 034-2023 隧道岩溶堵水注浆技术规程
- 贵州省遵义市播州区2024届六年级下学期小升初招生数学试卷含解析
评论
0/150
提交评论