[计算机]实验一 程序流程设计

合集下载

实验一 C++开发环境与程序设计步骤

实验一 C++开发环境与程序设计步骤

实验一 C++开发环境与程序设计步骤实验一c++开发环境与程序设计步骤实验一c++开发环境与程序设计步骤一、目的和建议1.学习visualc++6.0集成环境,掌握源程序编辑方法;2.掌控在visualc++6.0内置研发环境中编程、调试与运转程序的方法;3.通过运转直观的c++程序,初步介绍c++源程序的特点。

二、实验设备及分组1.windows2000以上操作系统;2.visualc++6.0语言环境;3.每人一台pc机。

三、内容和步骤(一)c++程序设计步骤一个c++程序的设计可分成5个步骤:1.分析问题。

根据实际问题,分析市场需求,确认化解方法。

2.编辑源程序。

编写c++源程序,并利用一个编辑器将源程序输入到计算机中的某一个文件中。

c++源文件的扩展名为“.cpp”。

3.编译程序。

编程源程序,检查语法错误,分解成目标代码文件。

目标代码文件的拓展名叫“.obj”。

4.相连接程序。

将一个或多个目标程序与库函数展开相连接后,分解成一个可执行文件。

可执行文件的拓展名叫“.exe”。

5.运行程序。

执行可执行文件,分析运行结果。

若有算法错误,可进一步进行修改、编译、调试。

在编译、连接和运行程序的过程中,都有可能出现各式各样的错误,要不断地修改源程序,重复以上过程,直到获得正确的结果为止。

(二)visualc++6.0上机操作方法visualc++6.0系统包含了许多独立的组件,如编辑器、编译器、调试器以及各种各样为开发windows环境下的c++程序而设计的工具。

其中最重要的是一个名为developerstudio的集成开发环境(ide)。

developerstudio把所有的visualc++工具结合在一起,集成为一个由窗口、对话框、菜单、工具栏、快捷键及宏组成的和谐系统,通过该集成环境,程序员可以观察和控制整个开发进程。

采用visualc++6.0调试c++程序必须经过以下几个步骤:1.启动visualc++6.0系统启动visualc++6.0系统存有很多种方法,最常用的就是通过鼠标单击“已经开始”菜单,挑选“程序”,挑选“microsoftvisualstudio6.0”,挑选“microsoftvisualc++6.0”启动visualc++6.0。

计算机实验原理实验程序

计算机实验原理实验程序

计算机实验原理实验程序实验1:二进制加法器设计与实现实验目的:通过设计与实现二进制加法器,加深对计算机数字电路的理解。

实验要求:1. 使用逻辑门实现一个4位二进制加法器。

2. 利用开关模拟输入信号,通过LED灯显示输出结果。

3. 测试不同的二进制数相加,并观察结果是否正确。

实验步骤:1. 将逻辑门按照图1所示进行连接,构建4位二进制加法器电路。

2. 将4个开关分别连接到A、B的输入端,将进位标志位CI 连接到电源正极。

3. 将4个LED灯分别连接到S的输出端,将进位输出CO连接到第5个LED灯。

4. 打开开关,模拟输入二进制数。

5. 观察LED灯的亮灭情况,判断输出是否正确。

6. 尝试不同的输入组合,观察输出结果是否正确。

7. 总结实验结果并思考可能存在的问题。

实验数据:输入A:0010输入B:0101输出S:0111输出CO:0实验结果分析与讨论:根据实验数据,输入的A为0010,输入的B为0101,输出的S为0111,输出的CO位为0。

经过计算,结果正确。

实验结论:通过实验设计与实现,成功构建了一个4位二进制加法器。

通过对不同的输入组合进行测试,证明了电路能够正确计算加法并输出结果。

实验2:计算机内存读写速度测试实验目的:通过测试计算机内存的读写速度,了解计算机内存的性能特点。

实验要求:1. 使用编程语言编写内存读写测试程序。

2. 测试读取和写入不同大小的数据块,记录时间。

实验步骤:1. 编写内存读写测试程序,包括读取数据块和写入数据块的功能。

2. 设置测试数据块的大小,例如4KB、8KB、16KB等。

3. 记录开始时间。

4. 进行数据读取或写入操作。

5. 记录结束时间,并计算时间差。

6. 分析测试结果,得出计算机内存的读写速度。

实验数据与结果:测试数据块大小为4KB:读取时间:0.001s写入时间:0.002s测试数据块大小为8KB:读取时间:0.001s写入时间:0.003s测试数据块大小为16KB:读取时间:0.003s写入时间:0.005s实验结果分析与讨论:根据实验数据,随着数据块大小的增加,读取和写入时间也逐渐增加。

程序流程设计(实验报告)

程序流程设计(实验报告)
else
if(x>=70) printf("该生成绩为C\n");
else
if(x>=60) printf("该生成绩为D\n");
else
printf("该生成绩为E");
return 0;
}
(3)#include<stdio.h>
main()
{
float sum,a,b,c,d,t;
b=2;
a=1;
6.掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
7.进一步学习调试程序。
实验内容:1、本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。
(1).有一函数:
用scanf函数输入x的值,求y值。
运行程序,输入x的值(分别为x<1、1≤x<10、x≥10三种情况),检查输出的y值是否正确。
else k++;
s=getchar();
}
printf("英文字母的个数:%0.2f\n空格的个数:%0.2f\n数字的个数:%0.2f\n其它字符的个数:%0.2f\n",h,m,i,k);
return 0;
}
实验结果:
(1)
(1)
(2)
(2)
(3)
(3)
(4)
(4)
实验总结:通过这次实验我了解C语言表示逻辑量的方法并且学会正确使用逻辑运算符和逻辑表达式。
int main( )
{
float x;
printf("输入你的成绩");
scanf("%f",&x);

C语言程序设计课件-实验一-一个简单C程序编写及运行过程

C语言程序设计课件-实验一-一个简单C程序编写及运行过程
四、思考题
1.数学不等式-10≤x≤10的逻辑表达式如何表示。 2.在输入数值数据时,有时错误地输入了字符,导致程序运行
后出现不正常的结果。请考虑,如何改进程序,使得发生 这种错误输入时能检查出来。
3.能否对实验内容2程序进行改写,用条件表达式代替if-else语 句。
实验五 利用循环结构编写程序
2.实型变量及算术运算。下面是一个计算矩形面积的程序,矩形的两个边 长分别用m、n表示。请编辑运行该程序,分析程序的运行结果。 /*实型变量及算术运算实验程序*/
#include <stdio.h> main()
{ float m , n , s ; printf(“ m = 〞); scanf(“ %f〞, &m); printf(“ n = 〞); scanf(“ %f〞, &n); s=m*n; printf(“s=%f \n〞,s);
教材习题5.7,分析运行结果。 4. 用while、do-while、for循环求解猴子吃桃问题。编辑运行
教材习题5.9,分析运行结果。
四、思考题
1.修改猴子吃桃程序,使任意指定一天时,能够求出这一天吃 桃前后的桃子数。
2.打印输出九九乘法表。
实验六 利用数组编写程序
一、实验目的 1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2. 掌握字符数组和字符串函数的使用; 3. 掌握与数组有关的算法〔特别是排序算法〕。
闽南理工学院实践教学中心 计算机教研室
实 验 目录
实验一 一个简单C程序编写及运行过程 实验二 利用函数的输入、输出格式编写程序 实验三 利用运算符与表达式知识编写程序 实验四 利用条件分支语句编写程序 实验五 利用循环结构编写程序 实验六 利用数组编写程序 实验七 编写一个用户自定义函数程序 实验八 编译预处理 实验九 指针 实验十 结构体和共用体 实验十一 位运算 实验十二 文件

实验一 C程序设计概述

实验一 C程序设计概述

实验一C程序设计概述一、实验目的1.熟悉编译器的安装2.掌握程序的编辑、编译、链接、运行和查看结果的过程以及操作方法3.熟悉程序的基本调试方法二、实验相关知识本次实验涉及到编译器的安装,程序的新建、装入、编辑、保存、编译、运行和查看结果等操作,简单程序的模仿编程,程序的简单调试。

TC2.0、Visual C++6.0和Dev C++等编译器的安装都较简单,只要按照提示一步步执行即可。

在图1-1所示的TC2.0开发环境中,由于不支持鼠标操作,使用时通过菜单命令和快捷键来完成各类操作。

Visual C++6.0和Dev C++均支持鼠标操作。

图1-1 TC2.0开发环境界面1.程序开发过程一个程序从编辑到运行要经过若干个步骤,以下简要介绍每个步骤。

⑴新建或打开源程序文件新建、打开和保存源程序文件等操作可以通过“File”菜单中的相应命令完成,也可以通过相应的快捷键来实现。

对于Visual C++ 6.0和Dev C++来说一般都以工程为单位,所以通常直接新建某一种类型(作为编程学习一般选择Win32 Console Application类型)的工程(如图1-2所示),每个工程可以包含一个或多个C语言源程序文件。

⑵编译和链接程序源程序编辑好后保存成.C文件,还需要通过编译、链接后才能生成可执行文件。

编译的主要任务是检查语法错误及提示部分逻辑错误,如果通过了正确性检查则表示编译成功,同时生成目标文件(.OBJ文件)。

链接的主要任务是为了将目标文件和C语言库函数连接生成一个可执行文件(.EXE文件)。

在实际使用过程中,常常将编译和链接两个步骤用一个菜单命令、快捷键或工具按钮完成。

例如在TC2.0中,可以通过Alt键+C(显示为红色)打开Compile菜单(,然后按字母“M”(即选择“Make EXE file”命令)进行编译和链接;也可通过快捷键F9实现此两步操作,在Visual C++6.0中可使用快捷键F7实现此两步操作。

[计算机]实验一 程序流程设计

[计算机]实验一  程序流程设计

n=val(this.value)
IF n<800
MESSAGEBOX("不超过800元,不必纳税!")
ELSE
S1=500*0.05
S2=2000*0.15
S3=5000*0.2
S4=20000*0.25
S5=40000*0.3
S6=60000*0.35
S7=80000*0.4
S8=100000*0.45
Text1~ Text3
Value InputMask
0 9999
说明 按钮标签
6
• 编写Command1的Click事件代码:
a=thisform.text1.value b=thisform.text2.value c=thisform.text3.value
IF b>a d=a a=b b=d
• thisform.text1.value=a
3
2、输入3个 不同的数,将他们从大到小排序。
• 分析:
– 先将a与b比较,把较大者放入a中,小者放入b中;再将a 与c比较,把较大者放入a中,小者放入c中,此时a为三 者中的最大者;最后将b与c比较,把较大者放入b中, 小者放入c中,此时a、b、c已由大到小顺序排列;
8
3、设计个人纳税计算程序。“税法”规定,工资、 薪金所得,使用超额累进税率。以每月收入额减 去800元后的余额,为应纳税所得额。其税率表见 表5-3。
9
输入n n←n-800 S1=500*0.05 S2=2000*0.1+ s1 S3=5000*0.15+ S2 S4=20000*0.2+ S3 S5=40000*0.25+ S4 S6=60000*0.3+ S5 S7=80000*0.35+ S6 S8=100000*0.4+ S7 情形

实验一 顺序程序设计

实验一 顺序程序设计
汇编程序MASM.EXE
ቤተ መጻሕፍቲ ባይዱ接程序LINK.EXE
调试程序DEBUG.EXE
可视化编程环境emu8086
三、实验内容:
1.已知X和Y是数据段中的两个无符号字节单元,用程序完成表达式Z=(X2+Y2)/2的计算。
源代码如下:
DATA SEGMENT
MOV Z,AX ;结果送Z单元
MOV AH,4CH
INT 21H ;返回DOS
CODE ENDS
END START ;汇编结束
从键盘读入两个一位数(按键时保证按下的是数字键),显示它们的积。
源代码如下:
INT 21H ;换行
MOV AH,1
INT 21H ;读入第2个数字
SUB AL,30H ;第2个数字转换成十进制数
SUB BL,30H ;第1个数字转换成十进制数
MUL BL ;两个数相乘,积在AX中
MOV BL,10 ;
DIV BL ;积除以10取商送AL,余数在AH中
CODE SEGMENT
ASSUME CS:CODE
MAIN: MOV AH,1
INT 21H ;读入第1个数字
MOV BL,AL ;保存在BL中
MOV AH,2
MOV DL,13
INT 21H ;回车
MOV DL,10
ADD AX,3030H ;转换成相应的ASCⅡ码
MOV BX,AX ;保存在BX中
MOV AH,2
MOV DL,13
INT 21H ;回车
MOV DL,10
INT 21H ;换行
MOV DL,BL
MOV AH,2

计算机基础与程序设计实验方案

计算机基础与程序设计实验方案

《计算机基础与程序设计》课程实验项目及学时分配实验一顺序结构一、实验目的1、掌握在TC集成环境下编辑、编译、链接、运行C程序的全过程;2、掌握基本数据类型及其使用规则;3、重点熟悉C的输入输出方法。

二、实验环境1、一台能正常启动的386以上个人计算机2、安装有Turboc2软件三、实验步骤1、启动Turboc2,创建一个新的C程序2、输入相应的代码。

3、保存程序4、运行程序实验1:一个简单的的C程序。

main(){int a,b,sum;a=123;b=456;sum=a+b; /*求出a,b之和*/printf(“sum is %d\n”,sum);}实验2:数据类型的应用。

main(){char c1 , c2;c1=97;c2=98;printf(“%c %c”, c1, c2);printf(“%d,%d”, c1, c2 );}实验3:按格式要求输入/输出数据#include "stdio.h"main(){int a,b;float x,y;char c1,c2;scanf(“a=%d,b=%d”,&a,&b);scanf(“%f, %e”,&x,&y);scanf(“%c %c”,&c1,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”,a,b,x,y,c1,c2);}运行该程序,必须按如下方式在键盘上输入数据a=3,b=7 ↙8.5,71.82 ↙a A ↙请同学们写出输出结果实验4:编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。

#include "stdio.h"main(){int x,h,m;scanf("%d",&x);h=x/60;m=x%60;printf("%d分钟为%d小时%d分\n",x,h,m);}四、思考题1、在实际编写程序过程中,怎样确定变量的类型?2、在printf函数中可以使用的各种格式指定符。

《计算机软件技术基础》实验1 程序流程设计

《计算机软件技术基础》实验1 程序流程设计

计算机科学系实验报告书
课程名:《计算机软件技术基础》题目:程序流程设计
班级:
学号:
姓名:
1、实验内容或题目
编程实现输出9*9乘法口诀表
2、实验目的与要求
⑴进一步熟悉熟悉VC++6编译环境,掌握运用VC编译C程序的基本方法
⑵掌握常见的流程控制结构,运用控制结构编写多重循环的C程序,输出9*9表
⑶输出上三角、下三角、左三角、右三角等几种形式
3、实验步骤与源程序
⑴实验步骤
1.定义整型变量i,j,k;
2.定义循环语句使i能从一加到九,并在i的循环语句中,再利用循环语句使得j依次从
一加到九,定义k为i与j的乘积,并输出k=j*i,当i完成一次循环后换行
⑵源代码
4、测试数据与实验结果(可以抓图粘贴)
结果分析与实验体会
很久没有用VC编写C程序,刚开始找不到编译按纽,后来在老师的指点下完成程序的运行,并在编写过程中逐步完善程序,按照乘法表的顺序及格式慢慢调试使得运行结果和预期的相符,。

实验一 C调试程序基础及顺序结构程序设计

实验一  C调试程序基础及顺序结构程序设计

实验一C调试程序基础及顺序结构程序设计一、实验目的(1) 熟悉在Visual C++ 6.0环境中调试C程序的步骤和方法。

(2) 熟悉C程序调试的一般方法。

(3) 掌握C语言中各种运算符的运算规则和表达式的求值规则。

(4) 掌握格式化输入/输出函数和字符输入/输出函数的使用方法。

(5) 熟悉顺序结构程序设计的方法。

二、实验准备1、C语言程序的上机操作C是编译型语言,设计好一个C源程序后,需要经过编译生成目标文件(扩展名.obj)、连接生成可执行文件(扩展名.exe),然后执行。

一个C程序的具体开发步骤如下:(1) 启动VC++ 6.0:“开始”→“程序”→“Microsoft Visual C++ 6.0”(2) 新建文件:“文件”→“新建”→在“新建”对话框中选择“文件”标签→列表框中选“C++ Source File”,在右边指定文件名和保存位置。

(3) 编辑:录入或修改源程序并保存(Ctrl+S)(4) 调试运行:编译(Ctrl+F7)→连接(F7)→运行(Ctrl+F5),若有错需修改源程序后再调试程序(5) 关闭工作区:“文件”→“关闭工作空间”,一个程序调试结束后需关闭当前工作空间,再从第(2)步开始下一个程序的调试2、C程序的调试调试即是在源程序中查找错误并修改错误的过程。

程序的错误一般分为两类:语法错误和逻辑错误。

①语法错误:指不符合C语言语法规则而产生的错误。

语法错误系统能检测出来并告之原因及位置,设计者可参考修改。

②逻辑错误:指程序的运行结果与预期的结果不符而产生的错误。

这类错误拔除难度较大,一般需祥细分析算法或在程序运行过程中设置断点、追踪程序的运行来纠错。

(1)语法错误调试案例(建立程序名为ex1-1.c)# include <stdio.h>void main(){int i=0printf("i=%d\n",i);}调试并查找以上程序的语法错误并分析原因并改正。

实验一顺序程序设计方案

实验一顺序程序设计方案

实验一顺序程序设计(一)实验目的1、学习算术运算(加、减、乘、除)和扩展指令的用法;2、掌握顺序程序结构和设计方法;3、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。

(二)实验设备硬件环境:IBM-PC及其兼容机软件环境:操作系统DOS上编辑程序EDIT或其它编辑程序汇编程序MASM.EXE 6.1X连接程序LINK.EXE调试程序(三)实验内容和要求实验内容:X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。

试编写汇编语言程序完成以下功能:①计算表达式值(V–(X*Y+Z-720))/X;②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。

要求:①编写出完整的汇编语言源程序,根据题目的需要建立相应的逻辑段(如程序段、数据段)。

②可选用任何一种编辑程序在磁盘上建立一个源文件(扩展名为.ASM)。

③用宏汇编程序MASM对源文件进行汇编,生成目标文件(扩展名为.OBJ)。

④用连接程序LINK对目标文件进行连接,生成可执行程序.EXE文件。

⑤用DEBUG调试程序对源程序进行动态调试。

(四)预习要求1、复习掌握8086指令系统相关指令,按实验内容和要求预先编写好源程序;2、熟悉在宏汇编程序MASM环境下,对源程序进行编辑、汇编、连接、运行。

3、进一步熟练用DEBUG对源程序进行动态调试,掌握一些常用的调试命令和方法。

(五)实验步骤1、启动DOS操作系统;2、调用某种编辑程序,在磁盘上建立扩展名为ASM的源程序;3、在DOS提示下,打入MASM调入宏汇编程序,用以对源程序进行汇编。

设在磁盘上已建立了一个EXAMPLE.ASM源程序,操作如下所示:C:>MASM↙Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Source filename [.ASM]:EXAMPLE↙Object filename [EXAMPLE.OBJ]:↙Source listing [NUL.LST]:EXAMPLE↙Cross reference [NUL.CRF]:EXAMPLE↙Warning SevereErrors Errors0 0C:>汇编程序MASM需要和用户进行上述相关信息交互,以便进行汇编、生成相应的文件。

计算机程序设计实践

计算机程序设计实践

计算机程序设计实践计算机程序设计实践是计算机科学领域中的核心技能之一,它涉及到使用编程语言来创建软件的过程。

这个过程不仅包括编写代码,还包括需求分析、设计、测试和维护等多个阶段。

以下是对计算机程序设计实践的详细介绍。

1. 需求分析在程序设计之前,首先需要进行需求分析。

这一阶段的目的是理解用户的需求,明确软件需要完成的功能。

需求分析通常包括与用户沟通、收集信息、定义需求和制定规格说明。

2. 设计设计阶段是将需求转化为具体的设计文档。

这个阶段包括系统架构设计、模块划分、接口设计和数据结构设计等。

设计阶段的成果是一套详细的设计文档,为后续的编码工作提供指导。

3. 编码编码是程序设计实践的核心环节,涉及到使用特定的编程语言来实现设计文档中定义的功能。

编码时需要遵循良好的编程习惯,包括代码的可读性、可维护性和效率。

4. 测试测试是确保软件质量的关键步骤。

测试包括单元测试、集成测试、系统测试和验收测试等。

测试的目的是发现并修复代码中的错误,确保软件能够按照预期工作。

5. 维护软件发布后,维护是必不可少的。

维护包括修复软件中发现的错误、更新软件以适应新的环境或需求、以及优化软件性能等。

6. 文档编写在整个程序设计过程中,编写文档是同样重要的。

文档不仅包括需求分析文档和设计文档,还包括用户手册和在线帮助等。

良好的文档能够提高软件的可用性和可维护性。

7. 版本控制版本控制是程序设计实践中的一个重要工具,它帮助开发者管理代码的变更历史。

使用版本控制系统,如Git,可以跟踪每次的代码更改,方便团队协作和代码回溯。

8. 持续集成与持续部署随着软件开发的迭代速度加快,持续集成(CI)和持续部署(CD)变得越来越重要。

CI/CD可以帮助自动化测试和部署流程,提高开发效率和软件质量。

9. 编程语言和工具程序设计实践涉及到多种编程语言和工具。

例如,Java、Python、C++等是常用的编程语言,而Eclipse、Visual Studio、PyCharm等是流行的集成开发环境(IDE)。

最简单的C程序设计—顺序程序设计实验报告

最简单的C程序设计—顺序程序设计实验报告
3 年期定期存款利息为 5.45%;
5 年期定期存款利息为 5.85%;
活期存款利息为 0.75%(活期存款每一季度结算一次利息)。
程序代码为:
#include<stdio.h> #include<math.h> int main() {float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.0545; r2=0.0471; r1=0.0416; r0=0.0075; p1=p*((1+r5)*5); p2=p*(1+2*r2)*(1+3*r3); p3=p*(1+3*r3)*(1+2*r2); p4=p*pow(1+r1,5); p5=p*pow(1+r0/4,4*5); printf("第 1 种方案得到的本息和为 p1=%f\n",p1); printf("第 2 种方案得到的本息和为 p2=%f\n",p2); printf("第 3 种方案得到的本息和为 p3=%f\n",p3); printf("第 4 种方案得到的本息和为 p4=%f\n",p4); printf("第 5 种方案得到的本息和为 p5=%f\n",p5); return 0; }
#include<stdio.h> int main() {char c1='C',c2='h',c3='i',c4='n',c5='a'; c1=c1+4; c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4; printf("password is %c%c%c%c%c\n",c1,c2,c3,c4,c5); return 0;

实验一 简单程序设计实验

实验一  简单程序设计实验

实验一简单程序设计实验一、实验目的掌握单片机程序设计的基本方法,熟悉程序交叉编译和调试执行的过程。

二、实验器材1、PC机(安装Keil软件)1台2、实验开发板 1块3、U-EC5型仿真器1只4、直流稳压电源 1台三、实验要求1、课前温习和回顾C语言程序设计方面的知识。

2、搭建集成开发环境 (参考所给实验附件中《Keil软件与仿真驱动程序安装.doc》)。

3、编写简单的C程序,熟悉Keil环境下的调试方法,包括跟踪、单步运行和断点设置等。

4、仔细观察实验板电路图,并结合《C8051F411数据手册》给出自己I/O 端口配置方案。

5、编写程序,实现LED的亮灭、蜂鸣器的鸣叫以及按键状态识别等控制功能。

四、扩充实验(思考题)1、如何实现蜂鸣器的间歇鸣叫(1秒)?2、如何实现依次点亮LED的控制功能?五.实验程序1.实现LED的亮灭#include "c8051F410.h"#define OLD_BOARD#ifdef OLD_BOARDsbit LED8=P1^7;sbit LED7=P1^6;sbit LED6=P1^5;sbit LED5=P1^4;sbit LED4=P1^3;sbit LED3=P1^2;sbit LED2=P1^1;sbit LED1=P1^0;sbit KEY5=P2^2;sbit KEY4=P2^1;sbit KEY3=P2^0;sbit KEY2=P0^2;sbit KEY1=P0^1;sbit SPKOUT=P0^0;#elsesbit LED8=P2^1;sbit LED7=P2^0;sbit LED6=P0^7;sbit LED5=P0^6;sbit LED4=P0^3;sbit LED3=P0^2;sbit LED2=P0^1;sbit LED1=P0^0;sbit KEY5=P1^7;sbit KEY4=P1^6;sbit KEY3=P1^5;sbit KEY2=P1^4;sbit KEY1=P1^3;sbit SPKOUT=P2^2;#endifvoid init(void); //初始化子程序void main(){init(); //初始化子程序LED1 = 1;LED2 = 0;LED3 = 0;LED4 = 0;LED5 = 0;LED6 = 0;LED7 = 0;LED8 = 1;SPKOUT = 0;for(;;){}}voidinit(void){PCA0MD=0x00;//关闭WDT控制OSCICN=0xc7;//设置内部振荡器工作(使用内部晶振24.5MHz)#ifdef OLD_BOARDP0MDIN=0xFF;P0MDOUT=0x11;P0SKIP=0xCF;P1MDIN=0xFF;P1MDOUT=0x00;P1SKIP=0xFF;P2MDIN=0xFF;P2MDOUT=0x04;#elseP0MDIN=0xFF;P0MDOUT=0x10;P0SKIP=0xCF;P1MDIN=0xFF;P1MDOUT=0x00;P1SKIP=0xFF;P2MDIN=0xFF;P2MDOUT=0x04;P2SKIP=0xFF;#endifXBR0=0x01;XBR1=0x41;}2. 蜂鸣器的实现#include "c8051F410.h"#define OLD_BOARD#ifdef OLD_BOARDsbit SPKOUT = P0^0;#elsesbit SPKOUT = P2^2;#endifvoid init(void); //初始化子程序void main(){init(); //初始化子程序for(;;){SPKOUT = 1;//蜂鸣器鸣叫}}voidinit(void){PCA0MD=0x00;//关闭WDT控制OSCICN=0xc7;//设置内部振荡器工作(使用内部晶振24.5MHz) #ifdef OLD_BOARDP0MDIN=0xFF;P0MDOUT=0x11;P0SKIP=0xCF;P1MDIN=0xFF;P1MDOUT=0x00;P1SKIP=0xFF;P2MDIN=0xFF;P2MDOUT=0x04;P2SKIP=0xFF;#elseP0MDOUT=0x10;P0SKIP=0xCF;P1MDIN=0xFF;P1MDOUT=0x00;P1SKIP=0xFF;P2MDIN=0xFF;P2MDOUT=0x04;P2SKIP=0xFF;#endifXBR0=0x01;XBR1=0x40;}3.实现亮灯且按键状态识别蜂鸣#include "c8051F410.h"#define OLD_BOARD#ifdef OLD_BOARDsbit LED8=P1^7;sbit LED7=P1^6;sbit LED6=P1^5;sbit LED5=P1^4;sbit LED4=P1^3;sbit LED3=P1^2;sbit LED2=P1^1;sbit LED1=P1^0;sbit KEY5=P2^2;sbit KEY4=P2^1;sbit KEY3=P2^0;sbit KEY2=P0^2;sbit KEY1=P0^1;sbit SPKOUT=P0^0;#elsesbit LED8=P2^1;sbit LED7=P2^0;sbit LED6=P0^7;sbit LED5=P0^6;sbit LED4=P0^3;sbit LED3=P0^2;sbit LED2=P0^1;sbit LED1=P0^0;sbit KEY5=P1^7;sbit KEY4=P1^6;sbit KEY3=P1^5;sbit KEY2=P1^4;sbit KEY1=P1^3;sbit SPKOUT=P2^2;#endifvoid Delay(int n);void main(void){PCA0MD=0x00;OSCICN=0xc7;//设置内部振荡器工作(使用内部晶振24.5MHz) #ifdef OLD_BOARDP0MDIN=0xFF;P0MDOUT=0x11;P0SKIP=0xCF;P1MDIN=0xFF;P1MDOUT=0x00;P1SKIP=0xFF;P2MDIN=0xFF;P2MDOUT=0x04;P2SKIP=0xFF;#elseP0MDIN=0xF0;P0MDOUT=0x10;P0SKIP=0xCF;P1MDIN=0xFF;P1MDOUT=0x00;P1SKIP=0xFF;P2MDIN=0xFF;P2MDOUT=0x04;P2SKIP=0xFF;#endifXBR0=0x01;XBR1=0x40;LED5 = 0;LED6 = 0;LED7 = 0;LED8 = 0;SPKOUT = 0;for(;;){if(KEY1==0){Delay(1000000);if(KEY1==0)SPKOUT = !SPKOUT;}}}void Delay(int n){while(--n);}4.实现蜂鸣器的间歇鸣叫及依次点亮LED #include "C8051F410.H"#define OLD_BOARD#ifdef OLD_BOARDsbit LED8=P1^7;sbit LED7=P1^6;sbit LED6=P1^5;sbit LED5=P1^4;sbit LED4=P1^3;sbit LED3=P1^2;sbit LED2=P1^1;sbit LED1=P1^0;sbit KEY5=P2^2;sbit KEY4=P2^1;sbit KEY3=P2^0;sbit KEY2=P0^2;sbit KEY1=P0^1;sbit SPKOUT=P0^0;#elsesbit LED8=P2^1;sbit LED7=P2^0;sbit LED6=P0^7;sbit LED5=P0^6;sbit LED4=P0^3;sbit LED3=P0^2;sbit LED2=P0^1;sbit LED1=P0^0;sbit KEY5=P1^7;sbit KEY4=P1^6;sbit KEY3=P1^5;sbit KEY2=P1^4;sbit KEY1=P1^3;sbit SPKOUT=P2^2;#endif#define SYSCLK 24500000L#define TIME0TIME 1000 //定时时间为0.001s(1ms)#define TIMER0CNT -SYSCLK*TIME0TIME/12 //定时器0时间常数voidinit(void);void Time0_ISR(void);void main(void){init();SPKOUT = 0;LED1 = 1;LED2 = 1;LED3 = 1;LED4 = 1;LED5 = 1;LED6 = 1;LED7 = 1;LED8 = 1;for(;;);}voidinit(void){PCA0MD=0x00; //关闭WDT控制OSCICN=0xc7; //设置内部振荡器工作(使用内部晶振24.5MHz) #ifdef OLD_BOARDP0MDIN=0xFF;P0MDOUT=0x11;P0SKIP=0xCF;P1MDIN=0xFF;P1MDOUT=0x00;P1SKIP=0xFF;P2MDIN=0xFF;P2MDOUT=0x04;P2SKIP=0xFF;#elseP0MDIN=0xFF;P0MDOUT=0x10;P0SKIP=0xCF;P1MDIN=0xFF;P1MDOUT=0x00;P1SKIP=0xFF;P2MDIN=0xFF;P2MDOUT=0x04;P2SKIP=0xFF;#endifXBR0=0x01;XBR1=0x40;TMOD = 0x21;TCON = 0x05;TH0 = TIMER0CNT/256;TL0 = TIMER0CNT;TR0 = 1;IP = 0x00;ET0 = 1;EA=1;}void Time0_ISR(void) interrupt INTERRUPT_TIMER0 {staticint Counter=0;static unsigned char LEDNUM=0;Counter++;if (Counter>999){Counter = 0;LEDNUM--;LEDNUM = LEDNUM & 0x07;SPKOUT = !SPKOUT;LED1 = !(LEDNUM == 0x00);LED2 = !(LEDNUM == 0x01);LED3 = !(LEDNUM == 0x02);LED4 = !(LEDNUM == 0x03);LED5 = !(LEDNUM == 0x04);LED6 = !(LEDNUM == 0x05);LED7 = !(LEDNUM == 0x06);LED8 = !(LEDNUM == 0x07);}TH0=TIMER0CNT/256;TL0=TIMER0CNT;TR0=1;}六.实验结果1.实现LED的亮灭运行此程序后,单片机板上的led灯全部都亮,当停止编译后,灯全部熄灭。

程序设计实践实验报告(2篇)

程序设计实践实验报告(2篇)

第1篇一、实验目的通过本次实验,使学生能够掌握程序设计的基本方法和技巧,提高编程能力,培养解决实际问题的能力。

本实验旨在通过具体的编程任务,让学生熟悉编程环境,理解程序设计的基本原理,并能够将所学知识应用于实际问题中。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容本次实验选择了两个任务,分别是“学生信息管理系统”和“简易计算器”。

四、实验步骤1. 学生信息管理系统(1)需求分析本系统用于管理学生信息,包括学生的基本信息(如姓名、学号、性别、年龄等)和成绩信息。

系统应具备以下功能:- 添加学生信息- 查询学生信息- 删除学生信息- 修改学生信息- 显示所有学生信息(2)设计根据需求分析,设计如下模块:- 数据存储模块:用于存储学生信息,采用文本文件进行存储。

- 数据处理模块:用于处理学生信息,包括添加、查询、删除、修改和显示等功能。

- 用户界面模块:用于与用户进行交互,接收用户输入和显示系统信息。

(3)实现以下是学生信息管理系统的部分代码:```python数据存储模块def save_data(student_info):with open("students.txt", "a") as file:file.write(student_info + "\n")def load_data():with open("students.txt", "r") as file:data = file.readlines()return data数据处理模块def add_student():name = input("请输入学生姓名:")student_id = input("请输入学生学号:")gender = input("请输入学生性别:")age = input("请输入学生年龄:")student_info = f"{name},{student_id},{gender},{age}"save_data(student_info)def search_student():student_id = input("请输入学生学号:")data = load_data()for line in data:if line.split(",")[1] == student_id: print("查询成功!")print(line.strip())breakelse:print("查询失败!")用户界面模块def main():while True:print("1. 添加学生信息")print("2. 查询学生信息")print("3. 删除学生信息")print("4. 修改学生信息")print("5. 显示所有学生信息")print("6. 退出系统")choice = input("请输入你的选择:") if choice == "1":add_student()elif choice == "2":search_student()elif choice == "3":删除学生信息elif choice == "4":修改学生信息elif choice == "5":显示所有学生信息elif choice == "6":breakelse:print("无效的选择,请重新输入!") if __name__ == "__main__":main()```2. 简易计算器(1)需求分析本计算器应具备以下功能:- 加法- 减法- 乘法- 除法(2)设计根据需求分析,设计如下模块:- 输入模块:用于接收用户输入的两个数和运算符。

实验一 C调试程序基础及顺序结构程序设计

实验一  C调试程序基础及顺序结构程序设计

实验一C调试程序基础及顺序结构程序设计一、实验目的(1) 熟悉在V isual C++ 6.0环境中调试C程序的步骤和方法。

(2) 熟悉C程序调试的一般方法。

(3) 掌握C语言中各种运算符的运算规则和表达式的求值规则。

(4) 掌握格式化输入/输出函数和字符输入/输出函数的使用方法。

(5) 熟悉顺序结构程序设计的方法。

二、实验准备1、C语言程序的上机操作C是编译型语言,设计好一个C源程序后,需要经过编译生成目标文件(扩展名.obj)、连接生成可执行文件(扩展名.exe),然后执行。

一个C程序的具体开发步骤如下:(1) 启动VC++ 6.0:“开始”→“程序”→“Microsoft V isual C++ 6.0”(2) 新建文件:“文件”→“新建”→在“新建”对话框中选择“文件”标签→列表框中选“C++ Source File”,在右边指定文件名和保存位置。

(3) 编辑:录入或修改源程序并保存(Ctrl+S)(4) 调试运行:编译(Ctrl+F7)→连接(F7)→运行(Ctrl+F5),若有错需修改源程序后再调试程序(5) 关闭工作区:“文件”→“关闭工作空间”,一个程序调试结束后需关闭当前工作空间,再从第(2)步开始下一个程序的调试2、C程序的调试调试即是在源程序中查找错误并修改错误的过程。

程序的错误一般分为两类:语法错误和逻辑错误。

①语法错误:指不符合C语言语法规则而产生的错误。

语法错误系统能检测出来并告之原因及位置,设计者可参考修改。

②逻辑错误:指程序的运行结果与预期的结果不符而产生的错误。

这类错误拔除难度较大,一般需祥细分析算法或在程序运行过程中设置断点、追踪程序的运行来纠错。

(1)语法错误调试案例(建立程序名为ex1-1.c)# include <stdio.h>void main(){int i=0printf("i=%d\n",i);}调试并查找以上程序的语法错误并分析原因并改正。

计算机硬件技术基础实验教程答案(重庆大学)

计算机硬件技术基础实验教程答案(重庆大学)

计算机硬件技术基础实验教程答案 实验一:简单程序设计实验(1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放 在 NUM2 中的 16 位无符号数相除,结果存放在 NUM3 和 NUM4 中。

程序流程图略。

参考源程序:DATASEGMENTNUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ? NUM4 DW ?DATAENDSCODESEGMENTASSUME DS:DATA, CS:CODESTART: MOV AX,DATA;数据段寄存器初始化MOV DS,AXMOV AX, WORD PTR NUM1 MOV DX, WORD PTR NUM1+2 DIV NUM2 MOV NUM3,AX MOV NUM4,DX MOV AH,4CH ;正常返回DOS 系统INT 21HCODEENDS END START(2)编写一个拆字程序。

要求将存放在 ARY 单元的 2 位十六进制数 X 1X 2 拆为 X 1 和 X 2 两 部分,并以 0X 1 和 0X 2 的形式分别存入 ARY+1 和 ARY+2 单元中。

程序流程图略。

参考源程序:DATA SEGMENTARY DB 2AH,?,?DATA ENDSCODESEGMENTASSUME DS:DATA, CS:CODESTART: MOV AX,DATAMOV DS,AXMOV SI,OFFSET ARY ;取ARY 的偏移地址 MOV AL,[SI];取16进制数至ALMOV BL,ALAND AL,0F0H ;取16进制数的高四位,即X1SHR AL,4MOV [SI+1],AL ;存0X1MOV AL,BLAND AL,0FH ;取16进制数的低四位,即X2MOV [SI+2],AL ;存0X2MOV AH,4CHINT 21HCODE ENDSEND START实验二:分支程序设计实验(1)编写一个字符比较程序,比较3 个无符号字节数A,B,C 的大小,并根据比较结果对变量K 赋值:如果3 个数不相等,则K=0;如果3 个数中有两个相等,则K=1;如果3 个数都相等,则K=2。

实验一 顺序程序设计

实验一  顺序程序设计

实验一顺序程序设计一、实验目的⒈掌握算术运算指令的使用方法。

⒉学会顺序结构程序的编程方法。

⒊掌握利用DEBUG调试程序查看F标志寄存器值方法。

⒋掌握程序中变量的定义方法及变量值的查看方法。

二、实验内容已知变量X、Y、Z、V中存放的是有符号字型数据,编写程序,计算(V-(X*Y-540))/X,并把结果存放到DX和AX寄存器中。

三、程序清单及实验数据DA TA SEGMENTX DW 45HY DW 2HZ DW 0HV DW 124HDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS;DATASTART:MOV AX,DATAMOV DS:AXMOV AX,XIMUL YSUB AX,540SBB DX,0SUB V,AXSBB Z,DXMOV AX,VMOV DX,ZIDIV XMOV AH,4CHINT 21HCODE ENDSEND START四、程序流程图开始X,Y相乘结果存入DX,AXAX减去540,DX减去0(540<2^16)V减去AX,Z减去DX(z=0)将V,Z转移到AX,DX方便进行除法运算将AX,DX除以X商存入AX,余数存入DX结束五、实习中出现问题及解决办法由于对数据定义的格式不对,导致最后不能进行除法运算,总显示overflow,后来对所给的数据值进行修改后达到了目的。

六、实习小结通过本次试验,我们掌握算术运算指令的使用方法,学会顺序结构程序的编程方法,掌握利用DEBUG调试的P,T,R等执行命令查看F标志寄存器值方法,掌握程序中变量的定义方法及变量值的查看方法。

实验一 顺序结构程序

实验一 顺序结构程序

实验一顺序结构程序设计
一、实验目的
1.验证巩固掌握8086/8088的指令、结构和功能
2.掌握8086/8088汇编程序结构
3.掌握微软MASM FOR WINDOWS软件编辑、编译、运行汇编程序的方法、步骤4.初步掌握源程序中语法错误的检查方法
5.掌握DEBUG工具调试程序的方法
二、实验内容
(一) 编写程序,在屏幕上输出一个大写字母‘A’。

(二)设有三个字节变量A,B,D,求表达式Y=(2(A+B)+D)/2的值,并将结果存放至内存Y单元中。

三、实验步骤
1.编写源程序
2.编译程序。

3.连接,生成可执行程序
4.运行程序
(1). 全速运行程序,查看结果(实验(一)可直接运行)
(2). 用DEBUG调试命令,根据自己调试程序的需要分别使用下面有关命令来跟踪程序指令的执行情况:单步运行程序观察执行情况,说明相关
段在内存中的段地址等。

(实验(二)需调试)
1).反汇编:-U,查看程序在存储器中的存放情况;
2).显示内存:-D段地址:偏移地址,查看内存中的数据;
3).显示寄存器:-R,查看寄存器中数据;
4).单步运行:-T,跟踪观察指令执行结果是否正确;
5).连续运行:-G,连续运行;(例–G=0:15,运行代码段中偏
移地址为0至偏移地址为15H之间的代码)
6).退出:-Q,退出DEBUG调试程序。

四、实验报告
写出程序清单,记录运行结果;总结DEBUG中常用命令的功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4、“完备数”是指一个数恰好等于它的因子之和,如 6的因子为1、2、3,而6=1+2+3,因而6就是完备数。 编制程序,找出1~1000之间的全部“完备数”。 • 分析:依题意可知,要想知道一个自然数是否为完 备数,首先必须找除其所有因数。从2开始到这个数 的最打因数为止(偶数不大于其值的二分之一,奇 数不大于其值的三分之一),进行整除判断,凡是 可以被整除的数均为这个数的因数。由此,可画出 其流程图。

交换a,c 真
交换b,c
{输出交换后的a,b,c}
对象 Command1
属性 Caption
属性值 排序
说明 按钮标签
label1
Label2~label4 Text1~ Text3
Caption
Caption Value InputMask
请输入3个数
0 9999
• 编写Command1的Click事件代码:
{输入应纳税所得额}
• Text1的KeyPress事件代码: LPARAMETERS nKeyCode, nShiftAltCtrl IF nKeyCode=13 n=val(this.value) IF n<800 MESSAGEBOX("不超过800元,不必纳税!") ELSE S1=500*0.05 S2=2000*0.15 S3=5000*0.2 S4=20000*0.25 S5=40000*0.3 S6=60000*0.35 S7=80000*0.4 S8=100000*0.45 n=n-800
• 给出部分由窗体的激活(activate)事件代码完成: a=int(10+90*rand()) b=int(10+90*rand()) p=int(2*rand()) do case case p=0 this.text1.value=str(a,3)+"+"+str(b,3)+"=" this.text1.tag=str(a+b) &&将本题答案放入text1.tag中 case p=1 if a<b t=a a=b b=t endif
实验一 程序流程设计
1 、理解大小写转换函数。在文本框中输入文本串,按 “转大写”按钮,文本中的英文字母变为大写,按 “转小写”按钮,文本中的英文字母变为小写,如图 所示。
• 设计代码
方法一:
– 首先设计文本框的 InteractiveChange 事件代码, 使得输入的字符存入表单的 Tag 属性 ( 用来存储 程序所需的任何额外数据)中: • thisform.tag=this.value – 编写“大写”按钮 Command1的Click事件代码: • thisform.text1.value=upper(thisform.tag) – 编写“小写”按钮 Command2的Click事件代码: • thisform.text1.value=lower(thisform.tag) – 编写“复原”按钮 Command2的Click事件代码: • thisform.text1.value=thisform.tag
DO CASE CASE n<=500 s=n*0.05 CASE n<=2000 s =(n-500)*0.1+s1 CASE n<=5000 s =(n-2000)*0.15+s2 CASE n<=20000 s =(n-5000)*0.2+s3 CASE n<=40000 s =(n-20000)*0.25+s4 CASE n<=60000 s =(n-40000)*0.3+s5 CASE n<=80000 s =(n-60000)*0.35+s6
a=thisform.text1.value b=thisform.text2.value c=thisform.text3.value
IF b>a d=a a=b b=d ENDIF IF c>a d=a a=c c=d ENDIF
IF c>b d=b b=c c=d ENDIF
bel2.caption=STR(a,4) bel3.caption=STR(b,4) bel4.caption=STR(c,4)
• 编写Command1的Click事件代码: if val(thisform.text2.value)=val(thisform.text1.tag) item=allt(thisform.text1.text)+thisform.text2.text+"√" k=val(thisform.list1.tag) thisform.list1.tag=str(k+1) else item=allt(thisform.text1.text)+thisform.text2.text+"╳" endif thisform.list1.additem(item,1) &&将题目和答案放入列表框中的第一项 x=vAL(thisform.list1.tag)/val(thisform.tag) p="正确率为:"+chr(13)+str(x*100,5,2)+"%" bel1.caption="共"+allt(thisform.tag)+"题,"+p thisform.activate() &&调用出题代码
方法二: – 首先在表单的load事件代码中声明一个全局变量a:
• Public a
– 设计文本框的 InteractiveChange 事件代码,使得 输入的字符存入表单的Tag属性(用来存储程序所 需的任何额外数据)中: • a=this.value – 编写“大写”按钮Command1的Click事件代码: • thisform.text1.value=upper(a) – 编写“小写”按钮Command2的Click事件代码: • thisform.text1.value=lower(a) – 编写“复原”按钮Command2的Click事件代码: • thisform.text1.value=a
40,30,30,30,30,30,30,30,30,30
各列的宽度
• 编写Command1的Click事件代码: Thisform.list1.clear Thisform.list1.addlistitem(“*”,1, 1) for k=1 to 9 Thisform.list1.addlistitem(str(k,3),1,k+1) endfor for n=1 to 9 Thisform.list1.addlistitem(str(n,3),n+1, 1) for k=1 to n Thisform.list1.addlistitem(str(k*n,3),n+1, k+1) endfor Endfor • 编写Command2的Click事件代码: release thisform
• 6 、小学生做加减法的算术练习程序。计算机连续 地随机给出两位数的加减法算术题,要求学生回答, 答对的打“√”,答错的打“╳”。将做过的题目 存放在列表框中备查,并随时给出答题的正确率。
• 分析:随机函数RAND()返回一个(0,1)之间的随 机小数,为了生成某个范围内的随机整数,可以使 用以下公式:Int(最大值-最小值+1)* RAND()+最小 值) • 其中最大值和最小值为指定范围中的最大、最小数。
this.text1.value=str(a,3)+"-"+str(b,3)+"=" this.text1.tag=str(a-b) &&将本题答案放入text1.tag中 endcase n=val(this.tag) this.tag=str(n+1) this.text2.setfocus this.text2.value=""
2、输入3个 不同的数,将他们从大到小排序。 • 分析: – 先将a与b比较,把较大者放入a中,小者放入b中;再将 a与c比较,把较大者放入a中,小者放入c中,此时a为 三者中的最大者;最后将b与c比较,把较大者放入b中, 小者放入c中,此时a、b、c已由大到小顺序排列; • 流程图如下:
输入a,b,c 如果b>a 如果c>a 如果c>b 输出a,b,c 真 交换a,b {给出三个数a,b,c}
• 编写Command2的Click事件代码: release thisform
5、输出99乘法表,格式如下图:
1、
• 利用双重循环分别处理行、列的输出。
对象
List1
属性
ColumnCount ColumnLines 10 .F. – 假
属性值
Hale Waihona Puke 说明列对象的数目 列间的分割线
ColumnWidths
3、设计个人纳税计算程序。“税法”规定,工资、 薪金所得,使用超额累进税率。以每月收入额减 去800元后的余额,为应纳税所得额。其税率表见 表5-3。
输入n
{输入当月收入}
n←n-800
S1=500*0.05 S2=2000*0.1+ s1 S3=5000*0.15+ S2 S4=20000*0.2+ S3 S5=40000*0.25+ S4 S6=60000*0.3+ S5 S7=80000*0.35+ S6 S8=100000*0.4+ S7 情形 n<=500 n<=2000 n<=5000 n<=20000 n<=40000 n<=60000 n<=80000 n<=100000 N>100000 s ←n*0.05 s ←(n-500)*0.1+s1 s ←(n-2000)*0.15+s2 s ←(n-5000)*0.2+s3 s ←(n-20000)*0.25+s4 s ←(n-40000)*0.3+s5 s ←(n-60000)*0.35+s6 s ←(n-80000)*0.4+s7 s ←(n-100000)*0.45+s8
相关文档
最新文档