文档库 最新最全的文档下载
当前位置:文档库 › C语言程序设计实验报告——实验2 数据类型、运算符和表达式

C语言程序设计实验报告——实验2 数据类型、运算符和表达式

C语言程序设计实验报告——实验2  数据类型、运算符和表达式
C语言程序设计实验报告——实验2  数据类型、运算符和表达式

凯里学院 C 语言程序设计 实验报告

××××× 专业×× 年级×× 班,学号×××××× 姓名××成绩 合作者 实验日期 年 月 日 指导教师 评阅日期 年 月 日

实验二 数据类型、运算符和表达式

一、实验目的:

(1)掌握C 语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。

(2)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。

(3)掌握C 语言的输入和输出函数的使用

(4)进一步熟悉C 程序的编辑、编译、连接和运行的过程,学会使用step by step 功能。 (5)认真阅读教材数据类型,算术运算符和表达式,赋值运算符和表达式部分内容。

二、实验内容:

(1)输人并运行下面的程序 #include void main() {

char c1,c2; c1='a'; c2='b';

printf("%c %c\n",c1,c2); }

(2)按习题3. 7的要求编程序并上机运行 该题的要求是:

要将“China ”译成密码,密码规律是:用原来字母后面的第4个字母代替原来的字母。 例如,字母“A ”后面第4个字母是“E ”,用“E ”代替“A ”。因此,“China ”应译为“Glmre" 。 请编一程序,用赋初值的方法使。cl ,c2,c3,c4,c5五个变量的值分别为‘C ’、‘h ’、‘i ’、‘n ’、‘a ’,经过运算,使cl ,c2,c3,c4,c5分别变为‘G ’、‘l ’、‘m ’、‘r ’、‘e ’,并输出。

三、实验步骤:

(1)输人并运行下面的程序 #include void main() {

char c1,c2; c1='a'; c2='b';

printf("%c %c\n",c1,c2); }

装订线

装订线

① 运行此程序。 程序结果为:

②在此基础上增加一个语句: printf("%d %d\n",c1,c2); 再运行,并分析结果。

③将第2行改为: int c1,c2;

再使之运行,并观察结果。

④再将第3行改为; cl=a;/*不用单撇号*/ c2=b;

再使之运行,分析其运行结果。

分析:编译通不过,会显示a 、b 未被定义。 ⑤再将第4,5行改为: cl="a";/*用双撇号*/ c2 ="b";

再使之运行,分析其运行结果。

分析:编译通不过,有语法上的错误。

⑥再将第4,5行改为:

c1 = 300;/*用大于255的整数*/ c2 = 400;

再使之运行,分析其运行结果。

分析:字符型变量为一个字节,且为无符号型,字符会输出ASCII 表中44和144所对应的字符,而要将其转换为数字,会进行符号位扩展,则会输出44和-112。

(2)输人并运行教材第3章习题3. 6给出的程序 #include main () {

char c1='a',c2='b',c3='c',c4='\101',c5='\116'; printf("a%c b%c\tc%c\tabc\n",c1,c2,c3); printf("\t\b%c %c\n",c4,c5); }

分析输出结果:(短线代表空格数)

装订线

装订线

aa-bb---cc------abc -------A-N

(3)输人并运行下面的程序 #include void main() { int a,b; unsigned c,d; long e,f; a=100; b=-100; e=50000; f=32767; c=a; d=b; printf("%d,%d\n",a,b); printf("%u,%u\n",a,b);

printf("%u,%u\n",c,d); c=a=e; d=b=f; printf("%d,%d\n",a,b); printf("%u,%u\n",c,d); }

请对照程序和运行结果分析:

①将一个负整数斌给一个无符号的变t ,会得到什么结果。画出它们在内存中的表 示形式。

符号位会变成数位位,数值的绝对值增大。 ②将一个大于32767的长整数斌给整型变t ,会得到什么结果。画出它们在内存中 的表示形式。

会出现从低位向高位截取16

位,且第16位为符号位。

③将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或

装订线

装订线

等于65535以及小于65535的情况)。画出它们在内存中的表示形式。

会出现从低位向高位截取16

位,且第16位为符号位。大于截取,等于为零,小于不变。

读者可以改变程序中各变的值,以便比较。例如:a = 65580, b=-40000. e = 65535,f=65580。 (4)输人习题3. 10 #include void main() {

int i,j,m,n; i=8; j=10; m=++i; n=j++;

printf("%d,%d,%d,%d\n",i,j,m,n); }

①运行程序,注意i,j,m,n 各变量的值。分别作以下改动并运行: ②将第6,7行改为: m=i++; n=++j; 再运行。

③将程序改为: #include void main() {

int i,j; i=8; j=10;

printf("%d,%d\n",i++,j++); }

④在③的基础上,将printf 语句改为: printf("%d,%d,%d,%d\n",i,j,++i,++j);

⑤再将printf 语句改为:

printf("%d,%d,%d,%d\n",i,j,i++,j++);

装订线

装订线

⑥将程序改为: #include void main() {

int i,j,m=0,n=0; i=8; j=10; m+=i++; n-=--j;

printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);

}

四、实验心得(体会):

通过本次C 语言上机实验,我对计算机编程语言有了一定的体验。我对C 语言中各种数据类型及表达式的实用有了一定的了解。特别是关于自增自减运算符的使用加深了印象。对C 语言的学习,我将更加努力。

装订线

装订线

《计算方法》课内实验报告

《计算方法》实验报告 姓名: 班级: 学号: 实验日期: 2011年10月26日

一、实验题目: 数值积分 二、实验目的: 1.熟悉matlab 编写及运行数值计算程序的方法。 2.进一步理解数值积分的基础理论。 3.进一步掌握应用不同的数值积分方法求解给定的积分并给出数据结果及误差分析。 三、实验内容: 1.分别用复合梯形求积公式及复合辛普森求积公式计算积分xdx x ln 10 ? , 要求计算精度达到410-,给出计算结果并比较两种方法的计算节点数. 2.用龙贝格求积方法计算积分dx x x ?+3 021,使误差不超过510-. 3.用3=n 的高斯-勒让德公式计算积分?3 1 sin x e x ,给出计算结果. 4.用辛普森公式(取2==M N ) 计算二重积分.5 .00 5 .00 dydx e x y ? ? - 四、实验结果: 1.(1)复合梯形法: 将区间[a,b]划分为n 等份,分点n k n a b h kh a x k ,2,1,0,,=-=+=在每个区间[1,+k k x x ](k=0,1,2,···n-1)上采用梯形公式,则得 )()]()([2)()(1 11 1 f R x f x f h dx x f dx x f I n n k k k b a n k x x k k ++===∑?∑? -=+-=+ 故)]()(2)([21 1 b f x f a f h T n k k n ++=∑-=称为复合梯形公式 计算步长和划分的区间 Eps=1E-4 h1=sqrt(Eps/abs(-(1-0)/12*1/(2+1))) h1 =0.0600 N1=ceil(1/h1) N1 =17 用复合梯形需要计算17个结点。 复合梯形: function T=trap(f,a,b,n) h=(b-a)/n;

有理数抽象数据类型定义

ADT Rational { //起名要易懂 数据对象:D={e1,e2|e1,e2∈Z,e2≠0} //分母不为零 数据关系:R={|e1表示分子,e2表示分母} //说明不可丢 基本操作: InitRational (&Q,v1,v2) 初始条件:v2 ≠0 操作结果:构造有理数Q,其分子和分母分别为v1与v2。 DestroyRational(&Q) 初始条件:有理数Q存在 操作结果:有理数Q被撤销。 RationalPrint(Q) 初始条件:Q存在 操作结果:以分数形式输出有理数 RationalAdd (Q1,Q2,&sum)//Substract,Multiply等操作略 初始条件:有理数Q1与Q2存在 操作结果:用sum返回Q1与Q2的和 } ADT Rational //--采用动态分配的“顺序”存储结构-- typedef int ElemType; typedef ElemType * Rational;

Status InitRational(Rational &Q,ElemType v1, ElemType v2){ //构造有理数Q,分子分母分别为v1,v2,若v2=0则Q赋空,返回Error if(v2==0){Q=NULL;return ERROR;} /*return后括号可有可无*/ Q=(ElemType *)malloc(2*sizeof(ElemType)); //莫忘malloc.h if(!Q)exit(OVERFLOW);//分配存储空间失败, stdlib.h,注意!及适用场合用法Q[0]=v1;Q[1]=v2; /*之前的else可省略,若不省略最好加花括号*/ return(OK); } Status DestroyRational(Rational &Q) //销毁有理数Q { if(Q) { free(Q); Q=NULL; return OK; } } void OutputRational(Rational Q){ //以分数形式输出有理数Q if(!Q)printf(“the rational does not exist! \n‘); printf(“ %d/%d ”,Q[0],Q[1]); }

数据结构表达式求值实验报告

竭诚为您提供优质文档/双击可除数据结构表达式求值实验报告 篇一:数据结构实验二——算术表达式求值实验报告 《数据结构与数据库》 实验报告 实验题目算术表达式求值 学院:化学与材料科学学院 专业班级:09级材料科学与工程系pb0920603 姓学 邮名:李维谷号:pb09206285箱: liwg@https://www.wendangku.net/doc/605777478.html,指导教师:贾伯琪 实验时间:20XX年10月10日 一、需要分析 问题描述: 表达式计算是实现程序设计语言的基本问题之一,它的实现是栈的应用的一个典型例子。设计一个程序,演示通过将数学表达式字符串转化为后缀表达式,并通过后缀表达式结合栈的应用实现对算术表达式进行四则混合运算。

问题分析: 在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。 设置运算符栈(字符型)和运算数栈(浮点型)辅助分析算符优先关系。在读入表达式的字符序列的同时完成运算符和运算数的识别处理,然后进行运算数的数值转换在进行四则运算。 在运算之后输出正确运算结果,输入表达式后演示在求值中运算数栈内的栈顶数据变化过程,最后得到运算结果。 算法规定: 输入形式:一个(:数据结构表达式求值实验报告)算术表达式,由常量、变量、运算符和括号组成(以字符串形式输入)。为使实验更完善,允许操作数为实数,操作符为(、)、.(表示小数点)、+、-、*、/、^(表示乘方),用#表示结束。 输出形式:演示表达式运算的中间结果和整个表达式的最终结果,以浮点型输出。 程序功能:对实数内的加减乘除乘方运算能正确的运算出结果,并能正确对错误输入和无定义的运算报错,能连续测试多组数据。 测试数据:正确输入:12*(3.6/3+4^2-1)#

电力系统运行方式及潮流分析实验报告

电力系统运行方式及潮 流分析实验报告 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

电力系统第一次实验报告——电力系统运行方式及潮流分析实验

实验1 电力系统运行方式及潮流分析实验 一、实验目的 1、掌握电力系统主接线电路的建立方法 2、掌握辐射形网络的潮流计算方法; 3、比较计算机潮流计算与手算潮流的差异; 4、掌握不同运行方式下潮流分布的特点。 二、实验内容 1、辐射形网络的潮流计算; 2、不同运行方式下潮流分布的比较分析 三、实验方法和步骤 1.辐射形网络主接线系统的建立 输入参数(系统图如下): G1:300+j180MVA(平衡节点) 变压器B1:Sn=360MVA,变比=18/121,Uk%=%,Pk=230KW,P0=150KW,I0/In=1%; 变压器B2、B3:Sn=15MVA,变比=110/11 KV,Uk%=%,Pk=128KW, P0=,I0/In=%; 负荷F1:20+j15MVA;负荷F2:28+j10MVA; 线路L1、L2:长度:80km,电阻:Ω/km,电抗:Ω/km,电纳:×10-6S/km。 辐射形网络主接线图 (1)在DDRTS中绘出辐射形网络主接线图如下所示: (2)设置各项设备参数: G1:300+j180MVA(平衡节点) 变压器B1:Sn=360MVA,变比=18/121,Uk%=%,Pk=230KW,P0=150KW,I0/In=1%;

变压器B2、B3:Sn=15MVA,变比=110/11 KV,Uk%=%,Pk=128KW, P0=,I0/In=%; 负荷F1:20+j15MVA;负荷F2:28+j10MVA; 线路L1、L2:长度:80km,电阻:Ω/km,电抗:Ω/km,电纳:×10-6S/km。2.辐射形网络的潮流计算 (1)调节发电机输出电压,使母线A的电压为115KV,运行DDRTS进行系统潮流计算,在监控图页上观察计算结果 项目DDRTS潮流计算结果 变压器B2输入功率+ 变压器B2输出功率+ 变压器B3输入功率+ 变压器B3输出功率+ 线路L1输入功率+ 线路L1输出功率+ 线路L2输入功率+ 线路L2输出功率+ (2)手算潮流: (3)计算比较误差分析 通过比较可以看出,手算结果与计算机仿真结果相差不大。产生误差原因:手算时是已知首端电压、末端功率的潮流计算,计算过程中要将输电线路对地电容吸收的功率以及变压器励磁回路吸收的功率归算到运算负荷中,并且在每一轮的潮流计算中都用上一轮的电压或功率的值(第一轮电压用额定电压)。 3.不同运行方式下潮流比较分析 (1)实验网络结构图如上。由线路上的断路器切换以下实验运行方式: ①双回线运行(L1、L2均投入运行) ②单回线运行(L1投入运行,L2退出)将断路器断开 对上述两种运行方式分别运行潮流计算功能,将潮流计算结果填入下表:

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

严蔚敏版数据结构课后习题答案-完整版

第1章绪论 1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构是数据结构在计算机中的表示。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。 1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。 解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。抽象数据

类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。 1.3 设有数据结构(D,R),其中 {}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r = 试按图论中图的画法惯例画出其逻辑结构图。 解: 1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。 解: ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={} 基本操作: InitComplex(&C,re,im) 操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C)

数据结构实验二——算术表达式求值实验报告

《数据结构与数据库》 实验报告 实验题目 算术表达式求值 学院:化学与材料科学学院 专业班级:09级材料科学与工程系PB0920603 姓名:李维谷 学号:PB09206285 邮箱:liwg@https://www.wendangku.net/doc/605777478.html, 指导教师:贾伯琪 实验时间:2010年10月10日 一、需要分析 问题描述:

表达式计算是实现程序设计语言的基本问题之一,它的实现是栈的应用的一个典型例子。设计一个程序,演示通过将数学表达式字符串转化为后缀表达式,并通过后缀表达式结合栈的应用实现对算术表达式进行四则混合运算。 问题分析: 在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。 设置运算符栈(字符型)和运算数栈(浮点型)辅助分析算符优先关系。在读入表达式的字符序列的同时完成运算符和运算数的识别处理,然后进行运算数的数值转换在进行四则运算。 在运算之后输出正确运算结果,输入表达式后演示在求值中运算数栈内的栈顶数据变化过程,最后得到运算结果。 算法规定: 输入形式:一个算术表达式,由常量、变量、运算符和括号组成(以字符串形式输入)。为使实验更完善,允许操作数为实数,操作符为(、)、.(表示小数点)、+、-、*、/、^(表示乘方),用#表示结束。 输出形式:演示表达式运算的中间结果和整个表达式的最终结果,以浮点型输出。 程序功能:对实数内的加减乘除乘方运算能正确的运算出结果,并能正确对错误输入和无定义的运算报错,能连续测试多组数据。 测试数据:正确输入:12*(3.6/3+4^2-1)# 输出结果:194.4

武汉大学电力系统分析实验报告

电气工程学院 《电力系统分析综合实验》2017年度PSASP实验报告 学号: 姓名: 班级:

实验目的: 通过电力系统分析的课程学习,我们都对简单电力系统的正常和故障运行状态有了大致的了解。但电力系统结构较为复杂,对电力系统极性分析计算量大,如果手工计算,将花费 大量的时间和精力,且容易发生错误。而通过使用电力系统分析程序PSASP,我们能对电 力系统潮流以及故障状态进行快速、准确的分析和计算。在实验过程中,我们能够加深对电力系统分析的了解,并学会了如何使用计算机软件等工具进行电力系统分析计算,这对我们以后的学习和工作都是有帮助的。 潮流计算部分: 本次实验潮流计算部分包括使用牛顿法对常规运行方式下的潮流进行计算,以及应用PQ分解法规划运行方式下的潮流计算。在规划潮流运行方式下,增加STNC-230母线负荷的有功至1.5.p.u,无功保持不变,计算潮流。潮流计算中,需要添加母线并输入所有母线 的数据,然后再添加发电机、负荷、交流线、变压器、支路,输入这些元件的数据。对运行方案和潮流计算作业进行定义,就可以定义的潮流计算作业进行潮流计算。 因为软件存在安装存在问题,无法使用图形支持模式,故只能使用文本支持模式,所以 无法使用PSASP绘制网络拓扑结构图,实验报告中的网络拓扑结构图均使用Visio绘制, 请见谅。 常规潮流计算: 下图是常规模式下的网络拓扑结构图,并在各节点标注电压大小以及相位。 下图为利用复数功率形式表示的各支路功率(参考方向选择数据表格中各支路的i侧母

线至j侧),因为无法使用图形支持模式,故只能通过文本支持环境计算出个交流线功率,下图为计算结果。

c 计算器实验报告

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 6.0中建立一个MFC工程文件,名为 calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单 选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在calculatorDlg.h中添加math.h头文件,然后添加public成 员。 7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始 化和完善各控件的响应函数代码。 (3)程序清单:

●添加的public成员: double tempvalue; //存储中间变量 double result; //存储显示结果的值 int sort; //判断后面是何种运算:1.加法2.减法3. 乘法 4.除法 int append; //判断后面是否添加数字 ●成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = 0.0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0; result=0; sort=0; append=0; }

数据结构算术表达式求值实验报告

软件技术基础实验报告 实验名称:表达式计算器 系别:通信工程 年级: 班级: 学生学号: 学生姓名: 《数据结构》课程设计报告 题目简易计算表达式的演示 【题目要求】 要求:实现基本表达式计算的功能 输入:数学表达式,表达式由整数和“+”、“-”、“×”、“/”、“(”、“)”组成输出:表达式的值 基本操作:键入表达式,开始计算,计算过程和结果记录在文档中 难点:括号的处理、乘除的优先级高于加减

1.前言 在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。 算法输入:一个算术表达式,由常量、变量、运算符和括号组成(以字符串形式输入)。为简化,规定操作数只能为正整数,操作符为+、-*、/、=,用#表示结束。 算法输出:表达式运算结果。 算法要点:设置运算符栈和运算数栈辅助分析算符优先关系。在读入表达式的字符序列的同时,完成运算符和运算数的识别处理,以及相应运算。 2.概要设计 2.1 数据结构设计 任何一个表达式都是由操作符,运算符和界限符组成的。我们分别用顺序栈来寄存表达式的操作数和运算符。栈是限定于紧仅在表尾进行插入或删除操作的线性表。顺序栈的存储结构是利用一组连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top 指示栈顶元素在顺序栈中的位置,base 为栈底指针,在顺序栈中,它始终指向栈底,即top=base 可作为栈空的标记,每当插入新的栈顶元素时,指针top 增1,删除栈顶元素时,指针top 减1。 2.2 算法设计 为了实现算符优先算法。可以使用两个工作栈。一个称为OPTR ,用以寄存运算符,另一个称做OPND ,用以寄存操作数或运算结果。 1.首先置操作数栈为空栈,表达式起始符”#”为运算符栈的栈底元素; 2.依次读入表达式,若是操作符即进OPND 栈,若是运算符则和OPTR 栈的栈顶运算符比较优先权后作相应的操作,直至整个表达式求值完毕(即OPTR 栈的栈顶元素和当前读入的字符均为”#”)。 2.3 ADT 描述 ADT Stack{ 数据对象:D={ i a |i a ∈ElemSet,i=1,2,…,n, n ≧0} 数据对象:R1={< 1 ,-i i a a >| 1-i a ,D a i ∈,i=2,…,n}

电力系统分析潮流实验报告(优选.)

最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改 赠人玫瑰,手留余香。 南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:□验证□综合■设计□创新实验日期:实验成绩: 电力系统潮流计算实验 一、实验目的: 本实验通过对电力系统潮流计算的计算机程序的编制与调试,获得对复杂电力系统进行潮流计算的计算机程序,使系统潮流计算能够由计算机自行完成,即根据已知的电力网的数学模型(节点导纳矩阵)及各节点参数,由计算程序运行完成该电力系统的潮流计算。通过实验教学加深学生对复杂电力系统潮流计算计算方法的理解,学会运用电力系统的数学模型,掌握潮流计算的过程及其特点,熟悉各种常用应用软件,熟悉硬件设备的使用方法,加强编制调试计算机程序的能力,提高工程计算的能力,学习如何将理论知识和实际工程问题结合起来。 二、实验内容: 编制调试电力系统潮流计算的计算机程序。程序要求根据已知的电力网的数学模型(节点导纳矩阵)及各节点参数,完成该电力系统的潮流计算,要求计算出节点电压、功率等参数。 1、在各种潮流计算的算法中选择一种,按照计算方法编制程序。 2、将事先编制好的电力系统潮流计算的计算程序原代码由自备移动存储设备导入计算机。

3、在相应的编程环境下对程序进行组织调试。 4、应用计算例题验证程序的计算效果。 三、实验程序: function [e,f,p,q]=flow_out(g,b,kind,e,f) %计算潮流后efpq的终值 s=flow(g,b,kind,e,f); k=0; while max(abs(s))>10^-5 J=J_out(g,b,kind,e,f); J_ni=inv(J); dv=J_ni*s; l=length(dv)/2; for i=1:l e(i)=e(i)-dv(2*i-1); f(i)=f(i)-dv(2*i); end s=flow(g,b,kind,e,f); end l=length(e); for i=1:l s1=0; s2=0; for j=1:l s1=s1+g(i,j)*e(j)-b(i,j)*f(j); s2=s2+g(i,j)*f(j)+b(i,j)*e(j); end p(i)=e(i)*s1+f(i)*s2; q(i)=f(i)*s1-e(i)*s2;

计算方法实验报告格式

计算方法实验报告格式 小组名称: 组长姓名(班号): 小组成员姓名(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一个完整的实验,应包括数据准备、理论基础、实验内容及方法,最终对实验结果进行分析,以达到对理论知识的感性认识,进一步加深对相关算法的理解,数值实验以实验报告形式完成,实验报告格式如下: 一、实验名称 实验者可根据报告形式需要适当写出. 二、实验目的及要求 首先要求做实验者明确,为什么要做某个实验,实验目的是什么,做完该实验应达到什么结果,在实验过程中的注意事项,实验方法对结果的影响也可以以实验目的的形式列出. 三、算法描述(实验原理与基础理论) 数值实验本身就是为了加深对基础理论及方法的理解而设置的,所以要求将实验涉及到的理论基础,算法原理详尽列出. 四、实验内容 实验内容主要包括实验的实施方案、步骤、实验数据准备、实验的算法以及可能用到的仪器设备. 五、程序流程图 画出程序实现过程的流程图,以便更好的对程序执行的过程有清楚的认识,在程序调试过程中更容易发现问题. 六、实验结果 实验结果应包括实验的原始数据、中间结果及实验的最终结果,复杂的结果可以用表格

形式列出,较为简单的结果可以与实验结果分析合并出现. 七、实验结果分析 实验结果分析包括对对算法的理解与分析、改进与建议. 数值实验报告范例 为了更好地做好数值实验并写出规范的数值实验报告,下面给出一简单范例供读者参考. 数值实验报告 小组名称: 小组成员(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一、实验名称 误差传播与算法稳定性. 二、实验目的 1.理解数值计算稳定性的概念. 2.了解数值计算方法的必要性. 3.体会数值计算的收敛性与收敛速度. 三、实验内容 计算dx x x I n n ? += 1 10 ,1,2,,10n = . 四、算法描述 由 dx x x I n n ? += 1 10 ,知 dx x x I n n ?+=--101110,则

算术表达式语法检查实验报告

中南民族大学计算机科学学院本科课程设计 任务书 设计名称:算术表达式语法检查 指导教师:下达时间: 2015-5-8 学生姓名:学号: 专业: 一、课程设计的基本要求 根据所学知识,编写指定题目的C++语言程序,并规范地完成课程设计报告。通过课程设计,加深对《C++面向对象程序设计》课程所学知识的理解,熟练掌握和巩固C++语言的基本知识和语法规范,掌握C++语言的基础知识,理解面向对象系统的封装性、继承性和多态性;熟练使用C语言中的函数、数组、指针、链表和字符串等基本知识;掌握类的定义、标准String类和向量;理解掌握友元函数和重载操作符,动态数组;理解掌握继承和多态性;掌握模版的使用;能够进行程序调试过程中的异常处理;进一步掌握利用C++进行类的定义和操作方法;进一步掌握类的继承和派生方法;进一步理解虚函数和多态;综合利用上述知识,学习设计并编写面向对象的C++简单应用程序;培养解决复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。 学会编制结构清晰、风格良好、数据结构适当的C++语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。 具体要求如下: 1、采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。学生也可根据自己对题目的理解增加新的功能模块(视情况可另外加分)。 2、系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行。 3、程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。 4、编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等); 5、写出规范的课程设计报告,具体要求见相关说明文档。

潮流计算实验

电力系统分析实验报告 实验一:潮流计算的计算机算法 >> clear; n=10; nl=10; isb=1; pr=0.00001; B1=[120.03512+0.08306i0.13455i10; 230.0068+0.18375i0 1.023811; 140.05620+0.13289i0.05382i10; 450.00811+0.24549i0 1.023811; 160.05620+0.13289i0.05382i10; 460.04215+0.09967i0.04037i10; 670.0068+0.18375i0 1.023811; 680.02810+0.06645i0.10764i10; 8100.00811+0.24549i011; 890.03512+0.08306i0.13455i10] B2=[00 1.1 1.101; 001002; 00.343+0.21256i1002; 001002; 00.204+0.12638i1002; 001002; 00.306+0.18962i1002; 001002; 0.50 1.1 1.103; 00.343+0.21256i1002] Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);sida=zeros(1,n);S1=zeros(nl); for i=1:nl if B1(i,6)==0 p=B1(i,1);q=B1(i,2); else p=B1(i,2);q=B1(i,1); end Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5)); Y(q,p)=Y(p,q); Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2; Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;

四则运算表达式求值实验报告

HUNAN UNIVERSITY 课程实习报告 题目:四则运算表达式求值 学生姓名: 学生学号: 专业班级: 指导老师: 完成日期:

一、需求分析 四则运算表达式求值,将四则运算表达式用中缀表达式表示,然后转换为后缀表达式,并计算结果。 本程序要求利用二叉树后序遍历来实现表达式的转换,同时可以使用实验2的结果来求解后缀表达式的值。 在字符界面上输入一个中缀表达式,回车表示结束。如果该中缀表达式正确,那么在字符界面上输出其后缀表达式,其中后缀表达式中两相邻操作数之间利用空格隔开;如果不正确,在字符界面上输出表达式错误提示。 测试数据 输入: 21+23*(12-6) 输出: 21 23 12 6 -*+ 二、详细设计 输入和输出的格式 输入 本程序可以将输入的四则运算表达式(中缀表达式)转换为后缀表达式 输出 后缀表达式为://输出结果的位置 表达式的值为://输出结果的位置 三、调试分析 本次实验的难点主要是在建立二叉树的问题上。关于如何把中缀表达式存入二叉树中,我参考了网上的一些方法,成功实现了目标,但是却遇到了一个问题,那就是不能处理小数,甚至两位或两位以上的整数。因为如果采用字符数组来存储操作数,运算符合一位整数还可以处理,但对于两位数就就会出问题,最后我改进采用字符串数组来存储操作数,成功解决了问题。 另外在处理输入的非法表达式问题中,我也费了很大功夫,但总体问题不大。 四、测试结果 五、用户使用说明(可选) 1、运行程序时 提示输入四则运算表达式 本程序可以将中缀表达式转化为后缀表达式,并计算结果 请输入四则运算表达式: 输出 后缀表达式为: 表达式的值为: 程序源代码(c++) #include #include #include #include

电力系统潮流计算实验报告

1. 手算过程 已知: 节点1:PQ 节点, s(1)= -0.5000-j0.3500 节点2:PV 节点, p(2)=0.4000 v(2)=1.0500 节点3:平衡节点,U(3)=1.0000∠0.0000 网络的连接图: 0.0500+j0.2000 1 0.0500+j0.2000 2 3 1)计算节点导纳矩阵 由2000.00500.012j Z += ? 71.418.112j y -=; 2000.00500.013j Z += ? 71.418.113j y -=; ∴导纳矩阵中的各元素: 42.936.271.418.171.418.1131211j j j y y Y -=-+-=+=; 71.418.11212j y Y +-=-=; 71.418.11313j y Y +-=-=; =21Y 71.418.11212j y Y +-=-=; 71.418.12122j y Y -==; 002323j y Y +=-=; =31Y 71.418.11313j y Y +-=-=; =32Y 002323j y Y +=-=; 71.418.13133j y Y -==; ∴形成导纳矩阵B Y : ?? ?? ? ?????-++-+-+-+-+--=71.418.10071.418.10071.418.171.418.171.418.171.418.142.936.2j j j j j j j j j Y B 2)计算各PQ 、PV 节点功率的不平衡量,及PV 节点电压的不平衡量: 取:000.0000.1)0(1)0(1)0(1j jf e U +=+= 000.0000.1)0(2) 0(2)0(2j jf e U +=+= 节点3是平衡节点,保持000.0000.1333j jf e U +=+=为定值。 ()()[] ∑==++-=n j j j ij j ij i j ij j ij i i e B f G f f B e G e P 1 )0()0()0()0()0()0() 0(;

计算方法实验报告 拟合

南京信息工程大学实验(实习)报告 一、实验目的: 用最小二乘法将给定的十个点拟合成三次多项式。 二、实验步骤: 用matlab编制以函数为基的多项式最小二乘拟合程序,并用于对下列数据作三次多项式最小二乘拟合(取权函数wi=1) x -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 y -2.30 -1 -0.14 -0.25 0.61 1.03 1.75 2.75 4.42 6.94 给定直线方程为:y=1/4*x3+1/2*x2+x+1 三、实验结论: 最小二乘法:通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。 一般地。当测量数据的散布图无明显的规律时,习惯上取n次代数多项式。 程序运行结果为: a = 0.9731 1.1023 0.4862 0.2238 即拟合的三次方程为:y=0.9731+1.1023x+0.4862*x2+0.2238*x3

-2.5 -2-1.5-1-0.5 00.51 1.52 2.5 -4-20246 81012 x 轴 y 轴 拟合图 离散点 y=a(1)+a(2)*x+a(3)*x.2+a(4)*x.3 结论: 一般情况下,拟合函数使得所有的残差为零是不可能的。由图形可以看出最小二乘解决了残差的正负相互抵消的问题,使得拟合函数更加密合实验数据。 优点:曲线拟合是使拟合函数和一系列的离散点与观测值的偏差平方和达到最小。 缺点:由于计算方法简单,若要保证数据的精确度,需要大量的数据代入计算。

抽象数据类型线性表的定义

抽象数据类型线性表的定义如下: ADT List { 数据对象:D={ a i | a i∈ElemSet, i =1, 2, ……, n, n≥0} 数据关系:R1 = { < a i-1 , a i > | a i-1 , a i ∈D, i =2, ……, n } 基本操作: InitList (&L ) 操作结果:构造一个空的线性表L 。 DestoryList (&L) 初始条件:线性表L已存在。 操作结果:销毁线性表L。 ClearList (&L) 初始条件:线性表L已存在。 操作结果:将L重置为空表。 ListEmpty (L) 初始条件:线性表L已存在。 操作结果:若L 为空表,则返回TRUE,否则返回FALSE。 ListLength (L) 初始条件:线性表L已存在。 操作结果:返回L中数据元素个数。 GetElem ( L, i, &e ) 初始条件:线性表L已存在,1≤i≤ListLength(L)+1。

操作结果:用e返回L中第i个数据元素的值。 LocateElem ( L,e, compare() ) 初始条件:线性表L已存在,compare()是判定函数。 操作结果:返回L中第1个与e满足关系compare() 的数据元素的位序。若这样的数据元素不存在,则返 回值0。 PriorElem ( L, cur_e, &pre_e ) 初始条件:线性表L已存在。 操作结果:若cur_e是L的数据元素且不是第1个, 则用pre_e返回它的前驱,否则操作失败。 NextElem ( L, cur_e, &next_e ) 初始条件:线性表L已存在。 操作结果:若cur_e是L的数据元素且不是最后一个, 则用next_e返回它的后继,否则操作失败。 ListInsert ( &L, i, e ) 初始条件:线性表L已存在,1≤i≤ListLength(L)+1。 操作结果:在L中第i个位置之前插入新的数据元素e, L的长度加1。 ListDelete( &L, i, &e ) 初始条件:线性表L已存在且非空,1≤i≤ListLength(L)。 操作结果:删除L的第i个数据元素,并用e返回其值,

抽象数据类型的表示与实现(实验一)

实验一抽象数据类型的表示与实现 一.实验目的及要求 (1)熟悉类C语言的描述方法,学会将类C语言描述的算法转换为C源程序实现; (2)理解抽象数据类型的定义,编写完整的程序实现一个抽象数据类型(如三元组); (3)认真阅读和掌握本实验的参考程序,上机运行程序,保存和打印出程序的运行结果,并结合程序进行分析。 二.实验内容 (1)编程实现对一组从键盘输入的数据,计算它们的最大值、最小值等,并输出。 要求:将计算过程写成一个函数,并采用引用参数实现值的求解。 (2)编程实现抽象数据类型三元组的定义、存储和基本操作,并设计一个主菜单完成各个功能的调用。 三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)(1)编程实现对一组从键盘输入的数据,计算它们的最大值、最小值等,并输出。 要求:将计算过程写成一个函数,并采用引用参数实现值的求解。 程序代码部分: 头文件: #define N 10000 void comparason(double a[],int n,double &max,double &min); 主函数: #include"" #include"" int main()

{ int n; printf("请输入数据个数\n"); scanf("%d",&n); double a[N],max,min; int i; printf("请输入数据(空格隔开)\n"); for(i=0;i

表达式求值实验报告

淮海工学院计算机工程学院 课程设计报告 设计名称:数据结构课程设计 选题名称:表达式求值 姓名:学号: 专业班级: 系(院):计算机工程学院 设计时间: 设计地点:软件工程实验室、教室 指导教师评语: 成绩: 签名: 年月日

1.课程设计目的 1、训练学生灵活使用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。 2.课程设计任务和要求: 任务 根据教材《数据结构-C语言描述》(耿国华主编)和参考书《数据结构题集(C语言版)》(严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择使用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。 设计题目从任务书所列选题表中选取,每班每题不得超过2人。 学生自选课题 学生原则上可以结合个人爱好自选课题,要求课题有一定的深度和难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。学生自选课题需在18周前报课程设计指导教师批准方可生效。 要求: 1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备和否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。 3、程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释; 4、每位同学需提交可独立运行的程序; 5 、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算); 6、课程设计实践作为培养学生动手能力的一种手段,单独考核。 3.课程设计说明书

PQ分解法潮流计算实验

xxxx实验报告 学生姓名:学号:专业班级: 实验类型:□验证□综合■设计□创新实验日期:实验成绩: 一、实验项目名称 P-Q分解法潮流计算实验 二、实验目的与要求: 目的:电力系统分析的潮流计算是电力系统分析的一个重要的部分。通过对电力系统潮流分布的分析和计算,可进一步对系统运行的安全性,经济性进行分析、评估,提出改进措施。电力系统潮流的计算和分析是电力系统运行和规划工作的基础。 潮流计算是指对电力系统正常运行状况的分析和计算。通常需要已知系统参数和条件,给定一些初始条件,从而计算出系统运行的电压和功率等;潮流计算方法很多:高斯-塞德尔法、牛顿-拉夫逊法、P-Q分解法、直流潮流法,以及由高斯-塞德尔法、牛顿-拉夫逊法演变的各种潮流计算方法。 本实验采用P-Q分解法进行电力系统分析的潮流计算程序的编制与调试,获得电力系统中各节点电压,为进一步进行电力系统分析作准备。通过实验教学加深学生对电力系统潮流计算原理的理解和计算,初步学会运用计算机知识解决电力系统的问题,掌握潮流计算的过程及其特点。熟悉各种常用应用软件,熟悉硬件设备的使用方法,加强编制调试计算机程序的能力,提高工程计算的能力,学习如何将理论知识和实际工程问题结合起来。 要求:编制调试电力系统潮流计算的计算机程序。程序要求根据已知的电力网的数学模型(节点导纳矩阵)及各节点参数,完成该电力系统的潮流计算,要求计算出节点电压、功率等参数。 三、主要仪器设备及耗材 每组计算机1台、相关计算软件1套 四、实验内容: 1.理论分析: P-Q分解法是从改进和简化牛顿法潮流程序的基础上提出来的,它的基本思想是:把节点功率表示为电压向量的极坐标方程式,抓住主要矛盾,以有功功率误差作为修正电压向量角度的依据,以无功功率误差作为修正电压幅值的依据,把有功功率和无功功率迭代分开来进行。 牛顿法潮流程序的核心是求解修正方程式,当节点功率方程式采取极坐标系统时,

相关文档
相关文档 最新文档