顺序结构程序设计_第1页
顺序结构程序设计_第2页
顺序结构程序设计_第3页
顺序结构程序设计_第4页
顺序结构程序设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章顺序结构程序设计 QBASIC程序的结构QBASIC程序中的运算量 运算符和表达式赋值语句和交换语句数据的输入输出概念与输出语句 QBASIC程序的结构 引例1 一列火车在某一地点时的速度是v0为40km h 以加速度a 2m min2加速行驶 求10min后的速度v和距开始点的距离s QBASIC程序 LETv0 40000 3600LETa 2 60LETt 10 60LETv v0 a tLETs v0 t 1 2 a t 2PRINTv 3600 1000PRINTs 1000END WELCOMTOQBASIC QBASIC程序的结构 引例2 打印如下图案 方法1 不使用子程序 用PRINT语句显示图案 方法2 调用子程序 例 sam3 2 bas QBASIC程序的结构 一个QBASIC程序可以由一个主程序组成 也可由主程序和若干子程序构成 每一个主程序或子程序为一个单独的程序模块 分别进行设计 在运行时QBASIC会把这些模块组织起来 成为一个整体 程序执行时 从主程序的第一行开始 遇到CALL语句 调用CALL语句指定的子程序 顺序执行该子程序中的语句 执行完后在接着执行主程序的后继语句 直到遇到END PRINT 在主程序中 CALLMySub1 PRINT 返回主程序中 END SUBMySub1 PRINT 在子程序中 ENDSUB QBASIC程序中的运算量 数据类型 数值型数据 非数值型数据 运算对象 又称运算量 操作数 就是参加运算的数据 常量 变量 数组和数组元素 函数 标准函数和自定义函数 QBASIC程序中的常量 常量 数值型常量 字符型常量 采用何种类型的常量或变量要视计算精度的需要 三种类型常数的表示和区分方法 凡不超过5位数字且不带小数点 范围在 32768 32767之间的常数都作为整数对待 也可在整数后加一个整数符号 如3200 1200 是合法的整数 超过 32768 32767范围而在 231 231的不带小数点的常数 作为长整数 也可在数的末尾加 表示 例如1976543 1976543 18765 内存中占4个字节 小数形式表示且不超过7位的数 或者用 E or e 表示指数部分 也可在数的末尾加 是单精度实数 如128 596 23E 28 1284 23 小数形式表示且超过7位的数 或者用 D or d 表示指数部分 也可在数的末尾加 是双精度实数 如128 59566 23D 28 1284 23 符号常量 用一个符号代表一个常量 如CONSTg 9 81 例 求圆的周长 面积和圆球体积 r 3 5 LETl 2 3 14159 3 5LETs 3 14159 3 5 3 5LETv 4 3 3 14159 3 5 3 5 3 5PRINTlPRINTsPRINTvEND CONSTPi 3 14159CONSTr 3 5LETl 2 pi rLETs pi r rLETv 4 3 pi r r rPRINTlPRINTsPRINTvEND 变量 程序运行期间可以改变的量就是变量 变量的命名规则 以字母开头 后面跟字母 数字和小数点 不能有空格 如A A2 CD1 Mr John合法 而 Y LIMing不合法 变量名的长度不限 但只有前40个字符有效 变量名不区分大小写 如果一个程序中前后输入同一变量名且大小写不一致 则以后一次输入为准 如先输入sum 后输入Sum 则前面的sum变为Sum 变量的命名要见 其名知其意 如SUM AVER 变量的类型和定义方法 有关变量的定义的几点说明 定义变量类型可以使用以上三种中的任意一种 但不能同时使用 例DIMd ASDOUBLE 单精度数变量名是否含类型定义符 是等价的 即c c 类型说明符和DIM语句优先于DEFtype语句 DEFLNGk m 指定凡以k l m开头的变量均为长整型 DIMk1ASINTEGER除单精度型外 如果变量名中含有类型定义符 则类型定义符就成为变量名不可分割的一部分 LETn 16PRINTn 输出0 因为n和n 不是同一个变量 同理a a a a 不是同一变量 QBASIC中的标准函数 QBASIC中有12个最常用的标准函数 这些函数可在程序中直接引用 请参阅P61 表3 2标准函数表 例如 x 3 6y 2 8PRINTSQR x y QBASIC的运算符 算术运算符 MOD 关系运算符 逻辑运算符 AND OR NOT 说明 的作用是整除 如果除数或被除数中有实数 则先将实数四舍五入取整后再相除 如13 8 2 4与14 2结果相同 都为7 对于结果不是整数的 取整数部分 13 3 4 MOD 取余运算 求整数相除的余数 如果除数或被除数中有实数 则先将实数四舍五入取整后再相除 如13 8MOD2 4 0 13MOD3 1 QBASIC的算术表达式 用QBASIC的运算符将常量 变量 函数和数组元素等连接起来的式子成为QBASIC的表达式 如 2 3 4 5 3 SIN x 2 QBASIC中的运算次序 2 5 2 5 0 1011929 QBASIC中的运算次序举例 6 2 4 3 3 5 5MOD2 2 3 SQR 4 2 第一步 6 2 12 第二步 4 3 12 第三步 12 12 1 第1步 3 5 8 第2步 SQR 4 2 第3步 2 2 4 第4步 8 5 40 第5步 2 3 6 第6步 6 4 24 第7步 40MOD2 0 第8步 0 24 24 课堂练习 将下列代数式用转换为QBASIC表达式 c d a b b SQR b 2 4 a c 2 a 不同类型数据的混合运算 问题的提出 PRINT425 120 OverFlow 溢出 规则 同类型数据运算所得数据类型不变 不同类型数据运算时先将 低级别 数据转变为 高级别 然后进行同类型数据运算 赋值和输入输出语句 LET 赋值语句 SWAP 交换语句 PRINT LPRINT 输出语句 INPUT 键盘输入语句 READ DATA 读数和置数语句 RESTORE 恢复数据区语句 LET语句 I 1 不是数学中的 等号 而应理解为一个 赋值号 a 3a 3 b 4 a bn n 12 赋值号左侧只能是变量 而不能是常数或表达式 右侧可以是表达式 具有计算功能 3 a b 6 a a 3 5 4 赋值语句的一般格式 LET变量 表达式 LET语句 II 3 一个赋值语句一次只能给一个变量赋值 LETa b c 3 5 LETa b c 3 5 LETa 3 b 4 c 5 LETa 3 5 LETb 3 5 LETc 3 5 4 如果赋值号左侧的数值与右侧的变量在类型上不一致时 则赋值号会自动将右侧的数据类型转换为左侧的类型 然后赋值 LETa 3 5 先将3 5四舍五入为4 再赋值 LETs a b h 2 不能保证计算精度 LETs a b h 2 左侧也变为双精度 SWAP语句 引例 a 3 b 4 请将a b两个变量的值交换 a 3 b 4LETc aLETa bLETb cPRINTa bEND a 3 b 4SWAPa bPRINTa bEND PRINT语句 用PRINT语句能输出常量 变量和表达式 LETpi 3 14159LETpi 3 14159LETr 2LETr 2LETs pi r rPRINTpi r r 输出表达式 PRINTs 输出变量 ENDEND用PRINT语句能输出字符串 a 3 b 4 c 5s a b c 2Area AQR s s a s b s c PRINT Theareaofthetriangleis PRINTs 语法 PRINT 输出列表项 PRINT语句的格式控制输出 I 1 屏幕的分区 2 标准格式输出 用逗号分隔 每区输出一个列表项 例 PRINT3 5 this PRINT语句的格式控制输出 II 2 紧凑格式输出 用分号分隔 输出一项后接着输出下一项 例 PRINT3 5 5 8 this is 紧凑格式输出字符串时 两个字符串之间无空格 紧凑格式输出数值时 一个数值输出后空一个字符位输出下一个数值或字符 3 用TAB 函数定位输出 PRINTTAB 15 This 4 PRINT语句不接任何输出项 则实现换行 5 LPRINT将结果输出到打印机 其他与PRINT相同 基本要求 掌握QBASIC程序中的运算量 运算符和表达式的使用 掌握赋值语句 交换语句和输出语句的使用 INPUT语句 I 问题的提出 给定a b c 求方程ax2 bx c 0的根 假定判定式b2 4ac 0 LETa 4LETb 5LETc 2LETd b b 4 a cLETx1 b SQR d 2 a LETx2 b SQR d 2 a PRINT x1 x1 x2 x2END INPUTaINPUTbINPUTcLETd b b 4 a cLETx1 b SQR d 2 a LETx2 b SQR d 2 a PRINT x1 x1 x2 x2END INPUT语句 II 语法 INPUT 信息提示 输入变量表列 当没有输入提示信息时 程序运行中每遇到一个INPUT语句 就输出一个 询问操作人员输出数据 一个INPUT语句可以包含一个变量 也可以包含多个变量 当输入的数据多于或少于变量的个数时 会给出 Redofromstart 为了给用户以提示 可以在INPUT语句后加一个提示信息 如 INPUT a b c a b c如果用分号 分隔提示信息与变量 则在给出提示信息的同时加一个 而用逗号 分隔则没有 INPUT使用说明 使用INPUT语句从键盘输入数据时 数据只能是常量 而不能是变量或表达式 如下面的输入是错误的 A b c 3 5 8 2 XINPUT语句常用于参加运算的数据事先不确定 而是根据情况随时修改数据的情况 READ DATA语句 I 当需要处理大量数据时 可以使用READ DATA语句 功能 将DATA语句中的数据读入READ语句中所指定的变量中 READa b cDATA4 5 2LETd b b 4 a cLETx1 b SQR d 2 a LETx2 b SQR d 2 a PRINT x1 x1 x2 x2END 说明 READ语句和DATA语句是同时出现 DATA语句中的数据不能少于READ语句中的变量个数 DATA语句可以放在程序的任何位置 在一个程序中 可以不止一个READ或DATA语句 DATA语句中不能有表达式 必须是具体的数值 READ DATA语句 II DATA1 2 READa b c READd e f g DATA3 4 5 6 7 8 DATA9 10 11 DATA12 13 14 15 READh i j k READl m 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 RESTORE语句 DATA1 2 3 READa b c d READe f g h i j k DATA4 5 b DATA6 7 8 c DATA9 10 11 12 READl m n READo p r s 1 2 3 4 5 6 7 8 9 10 11 12 RESTORE RESTOREb RESTORE语句返回行号或行标号语法 RESTORE 行号或标号 STOP语句 用途 暂停程序的运行 程序暂停后F5继续运行 SHIFT F5从程序的开头继续运行 在第一次运行程序时 SHIFT F5和F5的功能是相同的 INPUT a b c a b cPRINTa b c a c b b c aSTOPs a b c 2Area SQR s s a s b s c PRINT Theareais AreaEND 其他语句 END语句 结束程序的运行 REM语句 注释行 程序在运行时不执行该语句行 主要是为了阅读程序的方便 也可用单引号的一半 标记 其后本句所有内容都作为注释内容 CLS语句 清除屏幕 调试前的准备 熟悉程序运行的环境 字符或行的删除 空行插入 复制或文字块的选定 移动等基本操作 程序的静态检查 语法规则的检查 语句定义符的书写是否正确 形体相近的字符是否写错 如数字1与英文小写字母l 数字0与英文字母O等 逻辑结构的检查主要包括变量的初值是否正确 循环结构中的循环次数是否符合要求 选择结构和循环结构的条件是否正确 各结构间的嵌套关系是否正确 表达式的书写是否正确等等 程序的调试 程序错误的类型 语法错误 输入的程序不符合语法规则 例如把语句定义符READ错写成RAED 块IF结构中忘了写ENDIF DATA语句中出现表达式 运行错误 程序语法没有错误 但在运行时出现错误 例如对0取对数 0作除数等 逻辑错误 程序中即没有语法错误 也没有运行错误 运行后计算机不现实任何错误 但结果不对 例如求一元二次方程根时把 b SQR b b 4 a c 2 a 写成 b SQR b b 4 a c 2 a或者写成 b SQR b b 4 a c 2 a 程序的调试 程序的调试 使用STOP语句暂停程序的执行 观察执行情况 F8键单步跟踪程序的执行 设置断点 程序执行到该行时暂停 此时可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论