文档-在POST方式下传递参数NSMutableURLRequest

文档-在POST方式下传递参数NSMutableURLRequest
文档-在POST方式下传递参数NSMutableURLRequest

NSMutableURLRequest,在POST方式下传递参数

iphone 2009-10-27 13:59:15 阅读592 评论0字号:大中小订阅

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

NSUserDefaults *defs = [NSUserDefaults standardUserDefaults]; NSLog(@"Load currentCookie:%@", cookie);

[request setValue:cookie forHTTPHeaderField:@"Cookie"];

[request setURL:[a objectAtIndex:0]];

[request setHTTPMethod:@"GET"];

NSData *returnData = [NSURLConnection

sendSynchronousRequest:request

returningResponse:nil error:nil];

[request release];

一、iPhone终端代码:

(同步请求)

NSString *post = nil;

post = [[NSString alloc]

initWithFormat:@"message=%@",@"hello,world."];

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];

[request setURL:[NSURL

URLWithString:@"http://192.168.10.220:18080/data/1.jsp"]];

[request setHTTPMethod:@"POST"];

[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

[request setHTTPBody:postData];

//[NSURLConnection connectionWithRequest:request delegate:self ];

//同步请求的的代码

//returnData就是返回得到的数据

NSData *returnData = [NSURLConnection sendSynchronousRequest:request

returningRequest:nil error:nil];

[post release];

二、web服务器端代码

<%

String message = request.getParameter("message");

System.out.println("message="+message);

out.println("message="+message);

%>

采用json 格式post 字符串

static NSString *urlString =

@"http://192.168.1.103/WebAccess/admin/tablesSync.aspx";

//static NSString *urlString = @"https://www.360docs.net/doc/f18208793.html,";

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlString]];

NSString *httpBodyString = @"a test string";

NSMutableArray *arrayData = [[NSMutableArray alloc] init];

NSMutableDictionary *dlist = [[NSMutableDictionary alloc] init];

[dlist setObject:@"tblArea" forKey:@"tableName"];

[dlist setObject:@"2009-10-24 11:20:00" forKey:@"lastChangeDate"]; [arrayData addObject:dlist];

//[request setHTTPBody:[httpBodyString

dataUsingEncoding:NSUTF8StringEncoding]];

//

//post = [[NSString alloc]

initWithFormat:@"message=%@",@"hello,world."];

httpBodyString = [arrayData JSONRepresentation];

NSData *postData = [httpBodyString

dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; [request setHTTPBody:postData];

[request setHTTPMethod:@"POST"];

//

NSURLResponse *reponse;

NSError *error = nil;

//

NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&reponse error:&error];

if (error) {

NSLog(@"Something wrong: %@",[error description]);

}else {

if (responseData) {

NSString *responseString = [[NSString alloc]

initWithData:responseData encoding:NSUTF8StringEncoding];

NSLog(@"get %@",responseString);

}

}

NSMutableDictionary *dgetData = [responseString JSONValue]; NSLog(@"dgetData: %@" , [dgetData description]);

[dlist release];

[arrayData release];

参数传递方式

引用在函数参数传递中的作用 传递参数有三种方法:1,传递对象本身。2,传递指向对象的指针。3,传递对象的引用。 (1)传值方式 ①传给被调用函数的是整型、长整型、浮点型或双精度型变量。被调用的函数得定义相应的变量为形参。 ②传给被调用函数的是结构变量。被调用函数得定义结构变量为形参。 ③传给被调用函数的是结构变量的成员。被调用函数得定义与该成员同类的变量为形参。 #include "stdio.h" ?#include ?main( ) ?{ ?void swap(int pt1,int pt2); ?int a,b; ?scanf("%d, %d", &a,&b); ?swap(a,b); ?printf("\n%d,%d\n",a,b); ?} ?void swap(int pt1,int pt2) ?{int p; p=pt1; pt1=pt2; pt2=p; } ?

#include "stdio.h" void swapint(); int a,b; void main() { a = 5, b = 10; swapint(); printf("%d\n%d\n",a,b); } void swapint() { int temp; temp=a; a=b; b=temp; } (2)传址方式 ①传给被调用函数的是变量的地址。被调用函数得定义指针变量为形参。 ②传给被调用函数的是数组的地址即数组名。被调用的函数得定义数组或指针变量为形参。 ③传给被调用函数的是函数的地址即函数名称。被调用函数得定义指向函

数的指针变量为形参。④传给被调用函数的是结构的地址。被调用函数得定义结构指针为形参。 #include "stdio.h" ?#include ?main( ) ?{ ?void swap(int *pt1,int *pt2); ?int a,b,*p1,*p2; ?scanf("%d, %d", &a,&b); ?p1=&a;p2=&b; ?swap(p1,p2); ?printf("\n%d,%d\n",a,b); ?} ?void swap(int *pt1,int *pt2) ?{int p; p=*pt1; *pt1=*pt2; *pt2=p; } #include "stdio.h" void swapint(int *a,int *b); void main() { int a = 5, b = 10;

C++中函数调用时的三种参数传递方式

在C++中,参数传递的方式是“实虚结合”。 ?按值传递(pass by value) ?地址传递(pass by pointer) ?引用传递(pass by reference) 按值传递的过程为:首先计算出实参表达式的值,接着给对应的形参变量分配一个存储空间,该空间的大小等于该形参类型的,然后把以求出的实参表达式的值一一存入到形参变量分配的存储空间中,成为形参变量的初值,供被调用函数执行时使用。这种传递是把实参表达式的值传送给对应的形参变量,故称这种传递方式为“按值传递”。 使用这种方式,调用函数本省不对实参进行操作,也就是说,即使形参的值在函数中发生了变化,实参的值也完全不会受到影响,仍为调用前的值。 [cpp]view plaincopy 1./* 2. pass By value 3.*/ 4.#include https://www.360docs.net/doc/f18208793.html,ing namespace std; 6.void swap(int,int); 7.int main() 8.{ 9.int a = 3, b = 4; 10. cout << "a = " << a << ", b = " 11. << b << endl; 12. swap(a,b); 13. cout << "a = " << a << ", b = " 14. << b << endl; 15.return 0; 16.} 17.void swap(int x, int y) 18.{ 19.int t = x; 20. x = y; 21. y = t; 22.}

如果在函数定义时将形参说明成指针,对这样的函数进行调用时就需要指定地址值形式的实参。这时的参数传递方式就是地址传递方式。 地址传递与按值传递的不同在于,它把实参的存储地址传送给对应的形参,从而使得形参指针和实参指针指向同一个地址。因此,被调用函数中对形参指针所指向的地址中内容的任何改变都会影响到实参。 [cpp]view plaincopy 1.#include https://www.360docs.net/doc/f18208793.html,ing namespace std; 3.void swap(int*,int*); 4.int main() 5.{ 6.int a = 3, b = 4; 7. cout << "a = " << a << ", b = " 8. << b << endl; 9. swap(&a,&b); 10. cout << "a = " << a << ", b = " 11. << b << endl; 12. system("pause"); 13.return 0; 14.} 15.void swap(int *x,int *y) 16.{ 17.int t = *x; 18. *x = *y; 19. *y = t; 20.} 按值传递方式容易理解,但形参值的改变不能对实参产生影响。 地址传递方式虽然可以使得形参的改变对相应的实参有效,但如果在函数中反复利用指针进行间接访问,会使程序容易产生错误且难以阅读。

电力系统潮流计算

课程设计论文 基于MATLAB的电力系统潮流计算 学院:电气工程学院 专业:电气工程及其自动化 班级:电自班 学号: 姓名:

目录 摘要 (3) 一、问题重述 (3) 1.1题目原始资料 (3) . 1.1.1、系统图 (3) 1.1.2、发电厂资料 (4) 1.1.3、变电所资料 (4) 1.1.4、输电线路资料 (4) 1.2 课程设计基本内容 (4) 1.3课程设计要求 (5) 二、问题分析 (5) 2.1系统的等值电路 (5) 2.2 参数求取 (6) 2.3 计算方法 (7) 2.4 牛顿—拉夫逊法 (7) 三、问题求解 (10) 3.1 等值电路的计算 (10) 3.2 潮流计算及结果分析 (10) 3.2.1、初始条件下的潮流计算及分析 (10) 3.2.2、负荷按一定比例变化时的潮流计算及分析 (13) 3.2.3、轮流断开支路双回线中的一条时的潮流计算及分析 (21) 心得体会 (34) 参考文献 (35) 附录 (35)

摘要 本文运用MATLAB 软件进行潮流计算,对给定题目进行分析计算,再应用DDRTS 软件,构建系统图进行仿真,最终得到合理的系统潮流。 在电力系统的正常运行中,随着用电负荷的变化和系统运行方式的改变,网络中的损耗也将发生变化,系统运行中个节点出现电压的偏移是不可避免的。为了保证电力系统的稳定运行,要进行潮流调节。电力系统潮流计算是电力系统分析计算中最基本的内容,也是电力系统运行及设计中必不可少的工具。 根据系统给定的运行条件、网络接线及元件参数,通过潮流计算可以确定各母线电压的幅值及相角、各元件中流过的功率、整个系统的功率损耗等。对不同的负荷变化,分析潮流分布,并进行潮流的调节控制。 关键词 潮流计算 牛顿-拉夫逊法 MATLAB DDRTS 仿真 一、问题重述 1.1题目原始资料 .1.1.1、系统图 两个发电厂分别通过变压器和输电线路与四个变电所相连。 变电所1 变电所2 母线

C#中方法的参数有四种类型

C#中方法的参数有四种类型 1. 值参数(不加任何修饰符,是默认的类型) 2. 引用型参数(以ref 修饰符声明) 3. 输出参数(以out 修饰符声明) 4. 数组型参数(以params 修饰符声明) 1. 值传递: 值类型是方法默认的参数类型,采用的是值拷贝的方式。也就是说,如果使用的是值类型,则可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值。 使用值类型的例子如:(下面的Swap()未能实现交换的功能,因为控制传递回调用方时不保留更改的值) using System; class Test { static void Swap(int x, int y) { int temp = x; x = y; y = temp; } static void Main() { int i = 1, j = 2; Swap(i, j); Console.WriteLine("i = {0}, j = {1}", i, j); } } /* * 输出结果为: i=1, j=2 * 未能实现Swap()计划的功能 */ 2. 引用传递(ref类型) ref关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。 2.1. 若要使用ref 参数,则方法定义和调用方法都必须显式使用ref关键字。 2.2. 传递到ref 参数的参数必须最先初始化。这与out 不同,out 的参数在传递之前不需要显式初始化。 2.3. 如果一个方法采用ref 或out 参数,而另一个方法不采用这两类参数,则可以进行重载。

相关实例如下: using System; class Test { static void Swap(ref int x, ref int y) { int temp = x; x = y; y = temp; } static void Main() { int i = 1, j = 2; Swap(ref i, ref j); Console.WriteLine("i = {0}, j = {1}", i, j); } } /* * 引用类型实现了Swap()计划的功能: * 输出为: * i = 2, j =1 */ 3. 输出类型(out类型) out 关键字会导致参数通过引用来传递。这与ref 关键字类似。 与ref 的不同之处: 3.1. ref 要求变量必须在传递之前进行初始化,out 参数传递的变量不需要在传递之前进行初始化。 3.2. 尽管作为out 参数传递的变量不需要在传递之前进行初始化,但需要在调用方法初始化以便在方法返回之前赋值。 示例如下: using System; class Test { static void Swap(out int x, out int y) { //在这里进行了i和j的初始化

函数参数传递的原理

函数参数传递的原理 参数传递,是在程序运行过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程,方法有按值传递参数,按地址传递参数和按数组传递参数。 形参:指出现在Sub 和Function过程形参表中的变量名、数组名,该过程在被调用前,没有为它们分配内存,其作用是说明自变量的类型和形态以及在过程中的作用。形参可以是除定长字符串变量之外的合法变量名,也可以带括号的数组名。 实参:实参就是在调用Sub 和Function过程时,从主调过程传递给被调用过程的参数值。实参可以是变量名、数组名、常数或表达式。在过程调用传递参数时,形参与实参是按位置结合的,形参表和实参表中对应的变量名可以不必相同,但它们的数据类型、参数个数及位置必须一一对应。 等号、函数名称、括弧和参数,是函数的四个组成部分。 函数“=SUM(1,2,3)”,1、2和3就是SUM函数的参数,没有参数1、2、3,函数SUM 则无从求值。 函数“=VLOOKUP(2,A:C,3,)”,没有参数2、A:C和3,函数VLOOKUP如何在A:C 区域查找A列中是2那一行第3列的数值? 当然,也有不需要参数的函数,如“=PI()”、“=NOW()”、“TODAY()”等。 函数参数传递的原理C语言中参数的传递方式一般存在两种方式:一种是通过栈的形式传递,另一种是通过寄存器的方式传递的。这次,我们只是详细描述一下第一种参数传递方式,另外一种方式在这里不做详细介绍。 首先,我们看一下,下面一个简单的调用例程: int Add (int a,int b,int c) { return a+b+c; }

电力系统潮流计算课程设计

课程设计 电力系统潮流计算 学院:电气工程学院 班级: 学号: 姓名:

电力系统潮流计算课程设计任务书 一 .题目原始资料 1、系统图:两个发电厂分别通过变压器和输电线路与四个变电所相连。 2、发电厂资料: 母线1和2为发电厂高压母线,发电厂一总装机容量为( 300MW ),母线3为机压母线, 机压母线上装机容量为( 100MW ),最大负荷和最小负荷分别为40MW 和20MW ;发电厂二总装机容量为( 200MW )。 3、变电所资料: (一) 变电所1、2、3、4低压母线的电压等级分别为:10kV 10kV 35kV 35kV (二) 变电所的负荷分别为: (4)50MW 50MW 60MW 70MW (三)每个变电所的功率因数均为cos φ=0.85; (四)变电所3和变电所4分别配有两台容量为75MV A 的变压器,短路损耗414kW , 变电所1 变电所2 母线 电厂一 电厂二

短路电压(%)=16.7;变电所1和变电所2分别配有两台容量为63MV A 的变压器,短路损耗为245kW ,短路电压(%)=10.5; 4、输电线路资料: 发电厂和变电所之间的输电线路的电压等级及长度标于图中,单位长度的电阻为 Ω17.0,单位长度的电抗为Ω0.402,单位长度的电纳为S -610*2.78。 二、 课程设计基本内容: 1. 对给定的网络查找潮流计算所需的各元件等值参数,画出等值电路图。 2. 输入各支路数据,各节点数据利用给定的程序进行在变电所在某一负荷情况下的潮 流计算,并对计算结果进行分析。 3. 跟随变电所负荷按一定比例发生变化,进行潮流计算分析。 1) 4个变电所的负荷同时以2%的比例增大; 2) 4个变电所的负荷同时以2%的比例下降 3) 1和4号变电所的负荷同时以2%的比例下降,而2和3号变电所的负荷同时 以2%的比例上升; 4. 在不同的负荷情况下,分析潮流计算的结果,如果各母线电压不满足要求,进行电 压的调整。(变电所低压母线电压10KV 要求调整范围在9.5-10.5之间;电压35KV 要求调整范围在35-36之间) 5. 轮流断开环网一回线,分析潮流的分布。 6. 利用DDRTS 软件,进行绘制系统图进行上述各种情况潮流的分析,并进行结果的 比较。 7. 最终形成课程设计成品说明书。 三、课程设计成品基本要求: 1. 在读懂程序的基础上画出潮流计算基本流程图 2. 通过输入数据,进行潮流计算输出结果 3. 对不同的负荷变化,分析潮流分布,写出分析说明。 4. 对不同的负荷变化,进行潮流的调节控制,并说明调节控制的方法,并列表表示调 节控制的参数变化。 5. 打印利用DDRTS 进行潮流分析绘制的系统图,以及潮流分布图。

指针与参数传递

指针与参数传递 C语言规定所有参数均以“传值”的方式进行传递,被调函数获得的仅是实际参数的拷贝(这个拷贝值赋给形式参数)。因为这个特性, 函数可以放心使用这个拷贝值, 而不必担心修改了实际参数的值。 如果我们需要通过函数调用来改变程序中某些变量(本文只涉及自动型变量)的值, 通常有2个方法: 一是将函数的返回值赋给该变量;二是利用函数参数, 用该变量的地址(即指针)作为实际参数, 通过指针来间接访问该变量。本文讨论的是第二种方法。 程序1、2是在很多C教材中会见到的经典的例子,程序试图交换a、b 两个变量的值。 程序1 中的swap1 函数并不能交换实际参数a、b 的值。函数调用仅仅将a、b的值传递给了形式参数x、y。形参与实参占用的是不同的内存空间,swap1只是交换了形式参数x、y的值,对a、b 没有任何影响。 程序2中,函数swap2的两个形参是整型指针,函数调用时实际参数为a、b的地址,这两个地址将拷贝给形参x、y,这意味着x、y 是分别指向变量a、b的指针,对*x、*y的引用就是对a、b的引用,因此,函数swap2能成功交换主调函数中变量a、b的值。 很多初学者认为只要将参数改为指针就可以解决一切类似问题,其实不然。注意下面2个程序区别:

程序的意图是:在主函数中定义整型指针mp,通过调用fun 函数使mp指向malloc函数申请的能存储一个整型数据的空间,最后利用mp间接访问该空间,将整型数据1存入。 程序3是错误的,如图1所示,mp和形式参数fp都是指针变量,会分配到内存空间,mp定义了却没有初始化,它的存储内容是随机的(图中用“?”表示),调用fun函数仅仅将mp的值(即这个随机值)赋给fp, 但fp 的值立刻被malloc 函数修改为208(假设malloc 函数申请空间成功且对应内存首地址为208)。可见fun 函数并未对mp产生影响,mp仍然是随机值,它指向的是一块未知空间或者非法地址。若将程序在windows环境下的PC上运行, 通过指针mp对未知空间的间接访问操作(语句“ *mp=1”)会导致程序异常。 程序4 则能成功达到目的。注意,fun 函数的形参fp 不再是指向整型数据的指针而是指向整型指针的指针, 实际参数则是mp 的内存地址。从main函数第一句开始分析,如图2所示,mp被定义,为它分配空间(假设这个空间地址是100), 因未被初始化,这个空间的里的内容是随机的;接着,调用fun函数,fp分配到空间,生命期开始,通过参数值传递它的值为mp的地址100,fp就是指向mp的指针。fun函数调用后的结果如图3所示,malloc函数申请到的空间地址(假设为208)被赋给了*fp,即赋给了mp,mp的值变为208,此时mp就指向了能存储一个整型数据的空间。接下来 的语句“ *mp=1”则将整型数据1存入这个空间,如图4所示。

电力系统潮流计算

电力系统潮流计算 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

电力系统 课程设计题目: 电力系统潮流计算 院系名称:电气工程学院 专业班级:电气F1206班 学生姓名: 学号: 指导教师:张孝远 1 2 节点的分类 (5) 3 计算方法简介 (6) 牛顿—拉夫逊法原理 (6) 牛顿—拉夫逊法概要 (6) 牛顿法的框图及求解过程 (8) MATLAB简介 (9) 4 潮流分布计算 (10)

系统的一次接线图 (10) 参数计算 (10) 丰大及枯大下地潮流分布情况 (14) 该地区变压器的有功潮流分布数据 (15) 重、过载负荷元件统计表 (17) 5 设计心得 (17) 参考文献 (18) 附录:程序 (19) 原始资料 一、系统接线图见附件1。 二、系统中包含发电厂、变电站、及其间的联络线路。500kV变电站以外的系统以一个等值发电机代替。各元件的参数见附件2。 设计任务 1、手动画出该系统的电气一次接线图,建立实际网络和模拟网络之间的联系。 2、根据已有资料,先手算出各元件的参数,后再用Matlab表格核算出各元件的参数。 3、潮流计算 1)对两种不同运行方式进行潮流计算,注意110kV电网开环运行。 2)注意将电压调整到合理的范围 110kV母线电压控制在106kV~117kV之间; 220kV母线电压控制在220 kV~242kV之间。 附件一:

72 水电站2 水电站1 30 3x40 C 20+8 B 2x8 A 2x31.5 D 4x7.5 水电站5 E 2x10 90+120 H 12.5+31.5 F G 1x31.5 水电站3 24 L 2x150 火电厂 1x50 M 110kV线路220kV线路课程设计地理接线示意图 110kV变电站220kV变电站牵引站火电厂水电站500kV变电站

潮流计算简答题

潮流计算数学模型与数值方法 1. 什么是潮流计算?潮流计算的主要作用有哪些? 潮流计算,电力学名词,指在给定电力系统网络拓扑、元件参数和发电、负荷参量条件下,计算有功功率、无功功率及电压在电力网中的分布。 潮流计算是电力系统非常重要的分析计算,用以研究系统规划和运行中提出的各种问题。对规划中的电力系统,通过潮流计算可以检验所提出的电力系统规划方案能否满足各种运行方式的要求;对运行中的电力系统,通过潮流计算可以预知各种负荷变化和网络结构的改变会不会危及系统的安全,系统中所有母线的电压是否在允许的范围以内,系统中各种元件(线路、变压器等)是否会出现过负荷,以及可能出现过负荷时应事先采取哪些预防措施等。 2. 潮流计算有哪些待求量、已知量? (已知量:1、电力系统网络结构、参数 2、决定系统运行状态的边界条件 待求量:系统稳态运行状态 例如各母线上的电压(幅值及相角)、网络中的功率分布以及功率损耗等) 3. 潮流计算节点分成哪几类?分类根据是什么? (分成三类:PQ 节点、PV 节点和平衡节点,分类依据是给定变量的不同) 4. 教材牛顿-拉夫逊法及有功-无功分解法是基于何种电路方程?可否采用其它类型方程? 答:基于节点电压方程,还可以采用回路电流方程和割集电压方程等。但是后两者不常用。 5. 教材牛顿-拉夫逊法是基于节点阻抗方程、还是基于节点导纳方程进行迭代计算的?试阐述这两种方程的优点与缺点。 1.不能由等值电路直接求出 2.满秩矩阵内存量大 3.对角占优矩阵。。 节点导纳矩阵的特点:1.直观容易形成2.对称阵3.稀疏矩阵(零元素多):每一行的零元素个数=该节点直接连出的支路数。 6. 说出至少两种建立节点导纳矩阵的方法,阐述其中一种方法的原理与过程。 方法:1.根据自导纳和互导纳的定义直接求取2.运用一节点关联矩阵计算3.阻抗矩阵的逆矩阵 节点导纳矩阵的形成:1.对角线元素ii Y 的求解)1,,0(=≠==i j I i ii U i j U U I Y 【除i 外的其他节点接地,0=j U ,只在i 节点加单位电压值】解析ii Y 等于与i 节点直接相连的的所有支路导纳和2.互导纳),0,1(j k U U U I Y k j j i ij ≠===,ji ij Y Y =(无源网络导纳之间是对称的)解析:ij Y 等于j i ,节点之间直接相连的支路导纳的负值。 7. 潮流计算需要考虑哪些约束条件? 答: 为了保证系统的正常运行必须满足以下的约束条件:

第3章作业答案电力系统潮流计算(已修订)

第三章 电力系统的潮流计算 3-1 电力系统潮流计算就是对给定的系统运行条件确定系统的运行状态。系 统运行条件是指发电机组发出的有功功率和无功功率(或极端电压),负荷的有 功功率和无功功率等。运行状态是指系统中所有母线(或称节点)电压的幅值和 相位,所有线路的功率分布和功率损耗等。 3-2 电压降落是指元件首末端两点电压的相量差。 电压损耗是两点间电压绝对值之差。当两点电压之间的相角差不大时, 可以近似地认为电压损耗等于电压降落的纵分量。 电压偏移是指网络中某点的实际电压同网络该处的额定电压之差。电压 偏移可以用kV 表示,也可以用额定电压的百分数表示。 电压偏移= %100?-N N V V V 功率损耗包括电流通过元件的电阻和等值电抗时产生的功率损耗和电压 施加于元件的对地等值导纳时产生的损耗。 输电效率是是线路末端输出的有功功率2P 与线路首端输入的有功功率 1P 之比。 输电效率= %1001 2 ?P P 3-3 网络元件的电压降落可以表示为 ()? ? ? ? ? +=+=-2221V V I jX R V V δ? 式中,?2V ?和? 2V δ分别称为电压降落的纵分量和横分量。 从电压降落的公式可见,不论从元件的哪一端计算,电压降落的纵、横分量计算公式的结构都是一样的,元件两端的电压幅值差主要有电压降落的纵分量决定,电压的相角差则由横分量决定。在高压输电线路中,电抗要远远大于电阻,即R X ??,作为极端的情况,令0=R ,便得 V QX V /=?,V PX V /=δ 上式说明,在纯电抗元件中,电压降落的纵分量是因传送无功功率而产生的,而电压降落的横分量则是因为传送有功功率产生的。换句话说,元件两端存在电压幅值差是传送无功功率的条件,存在电压相角差则是传送有功功率的条件。 3-4 求解已知首端电压和末端功率潮流计算问题的思路是,将该问题转化成 已知同侧电压和功率的潮流计算问题。

函数调用参数传递类型(java)的用法介绍.

函数调用参数传递类型(java)的用法介绍. java方法中传值和传引用的问题是个基本问题,但是也有很多人一时弄不清。 (一)基本数据类型:传值,方法不会改变实参的值。 public class TestFun { public static void testInt(int i){ i=5; } public static void main(String[] args) { int a=0 ; TestFun.testInt(a); System.out.println("a="+a); } } 程序执行结果:a=0 。 (二)对象类型参数:传引用,方法体内改变形参引用,不会改变实参的引用,但有可能改变实参对象的属性值。 举两个例子: (1)方法体内改变形参引用,但不会改变实参引用,实参值不变。 public class TestFun2 { public static void testStr(String str){ str="hello";//型参指向字符串“hello” } public static void main(String[] args) { String s="1" ;

TestFun2.testStr(s); System.out.println("s="+s); //实参s引用没变,值也不变 } } 执行结果打印:s=1 (2)方法体内,通过引用改变了实际参数对象的内容,注意是“内容”,引用还是不变的。 import java.util.HashMap; import java.util.Map; public class TestFun3 { public static void testMap(Map map){ map.put("key2","value2");//通过引用,改变了实参的内容 } public static void main(String[] args) { Map map = new HashMap(); map.put("key1", "value1"); new TestFun3().testMap(map); System.out.println("map size:"+map.size()); //map内容变化了 } } 执行结果,打印:map size:2 。可见在方法testMap()内改变了实参的内容。 (3)第二个例子是拿map举例的,还有经常涉及的是 StringBuffer : public class TestFun4 {

PB窗口之间传递多参数的方法:

PB窗口之间传递多参数的方法: 在PowerBuilder中函数OpenWithParm,CloseWithReturn,OpenSheetWithParm,windowname.OpenUserObjectWithParm等都有一个在进行窗口操作(打开或者关闭)时存入Message消息对象的参数parameter或returnvalue。 消息对象Message有三个属性用于存储这些函数传递给窗口的数据(依赖于窗口操作时参数赋予的类型)。根据parameter / returnvalue参数数据类型的不同,该参数的值保存在Message对象的不同属性中。parameter / returnvalue参数的类型与使用的Message对象属性的对应关系如下表: 参数类型Message对象属性 Numeric(数值) Message.DoubleParm PowerObject(PB对象,包括用户自定义的结构数据类型) Message.PowerObjectParm String(字符串) Message.StringParm 应用程序根据OpenWithParm()等函数的parameter / returnvalue参数类型,从Message 消息对象的不同属性中提取该函数并传送给被打开窗口的值。 在PB中如果是传递一个参数,是很容易实现的。在调用脚本中,可以使用如下代码:openwithparm(w_wantparm,parmtotrans) 接着在打开窗口w_wantparm的open事件中键入: string ls_getparm ls_getparm=message.stringparm … 如果需要传递多个参数,可以使用如下两种方法: 方法一 定义结构变量:lstr_declaredstr,其中包含你想传递的各种参数: 变量名变量类型 ID Unsignedlong Name Character Email Character Homepage Character …… 在调用脚本中,使用如下代码: lstr_declaredstr lstr_parmtotrans lstr_parmtotrans.id=1 lstr_https://www.360docs.net/doc/f18208793.html,="panya" lstr_paramtotrans.email="panya@https://www.360docs.net/doc/f18208793.html," lstr_paramtotrans.homepage=" https://www.360docs.net/doc/f18208793.html,"; … openwithparm(w_wantparm,parmtotrans) 接下来在打开窗口w_wantparm的open事件中,获取结构信息: lstr_declaredstr lstr_getparm integer li_getid string ls_getname string ls_getemail string ls_gethomepage lstr_getparm = message.powerobjectparm li_getid = lstr_getparm.id ls_getname = lstr_https://www.360docs.net/doc/f18208793.html, ls_geemail = lstr_getparm.email ls_gethomepage = lstr_getparm.homepage … 其中,lstr_declaredstr为用户自定义结构数据类型,是值传送

总结Java方法(函数)传值和传引用的问题

总结Java方法(函数)传值和传引用的问题 java方法中传值和传引用的问题是个基本问题,但是也有很多人一时弄不清。 (一)基本数据类型:传值,方法不会改变实参的值。 public class TestFun { public static void testInt(int i){ i=5; } public static void main(String[] args) { int a=0 ; TestFun.testInt(a); System.out.println("a="+a); } } 程序执行结果:a=0 。 (二)对象类型参数:传引用,方法体内改变形参引用,不会改变实参的引用,但有可能改变实参对象的属性值。 举两个例子: (1)方法体内改变形参引用,但不会改变实参引用,实参值不变。 public class TestFun2 { public static void testStr(String str){ str="hello";//型参指向字符串“hello” } public static void main(String[] args) { String s="1" ;

TestFun2.testStr(s); System.out.println("s="+s); //实参s引用没变,值也不变 } } 执行结果打印:s=1 (2)方法体内,通过引用改变了实际参数对象的内容,注意是“内容”,引用还是不变的。 import java.util.HashMap; import java.util.Map; public class TestFun3 { public static void testMap(Map map){ map.put("key2","value2");//通过引用,改变了实参的内容 } public static void main(String[] args) { Map map = new HashMap(); map.put("key1", "value1"); new TestFun3().testMap(map); System.out.println("map size:"+map.size()); //map内容变化了 } } 执行结果,打印:map size:2 。可见在方法testMap()内改变了实参的内容。 (3)第二个例子是拿map举例的,还有经常涉及的是 StringBuffer : public class TestFun4 {

c语言值传递的3种形式

//全部摘自别的博客,以前对值传递很迷糊,看完豁然开朗,整理下,来百度文库赚点分。 一、三道考题 开讲之前,我先请你做三道题目。(嘿嘿,得先把你的头脑搞昏才行……唉呀,谁扔我鸡蛋?) 考题一,程序代码如下: void Exchg1(int x, int y) { inttmp; tmp = x; x = y; y = tmp; printf("x = %d, y = %d\n", x, y); } main() { int a = 4,b = 6; Exchg1(a, b); printf("a = %d, b = %d\n", a, b); return(0); } 输出的结果为: x = ____, y=____. a = ____, b=____. 问下划线的部分应是什么,请完成。 考题二,程序代码如下: void Exchg2(int *px, int *py) { inttmp = *px; *px = *py; *py = tmp; printf("*px = %d, *py = %d.\n", *px, *py); } main() { int a = 4; int b = 6; Exchg2(&a, &b);

printf("a = %d, b = %d.\n", a, b); return(0); } 输出的结果为为: *px=____, *py=____. a=____, b=____. 问下划线的部分应是什么,请完成。 考题三,程序代码如下: void Exchg3(int&x, int&y) { inttmp = x; x = y; y = tmp; printf("x = %d,y = %d\n", x, y); } main() { int a = 4; int b = 6; Exchg3(a, b); printf("a = %d, b = %d\n", a, b); return(0); } 输出的结果为: x=____, y=____. a=____, b=____. 问下划线的部分应是什么,请完成。你不在机子上试,能作出来吗?你对你写出的答案有多大的把握?正确的答案,想知道吗?(呵呵,让我慢慢地告诉你吧!) 好,废话少说,继续我们的探索之旅了。 我们都知道:C语言中函数参数的传递有:值传递、地址传递、引用传递这三种形式。题一为值传递,题二为地址传递,题三为引用传递。不过,正是这几种参数传递的形式,曾把我给搞得晕头转向。我相信也有很多人与我有同感吧? 下面请让我逐个地谈谈这三种传递形式。 二、函数参数传递方式之一:值传递 (1)值传递的一个错误认识 先看考题一中Exchg1函数的定义: void Exchg1(int x, int y) /* 定义中的x,y变量被称为Exchg1函数的形式参数*/ {

电力系统分析潮流计算

题 目: 电力系统分析潮流计算 初始条件:系统如图所示 T1、T2 SFL1-16000/110 (121±2×2.5%)/6.3 T3 SFL1-8000/110(110±5%)/6.3 T4 2×SFL1-16000/110(110±2×2.5%)/10.5 导线 LGJ-150 要求完成的主要任务: 1、计算参数,画等值电路; 2、进行网络潮流计算; 3、不满足供电要求,进行调压计算。 时间安排: 熟悉设计任务 5.27 收集相关资料 5.28 选定设计原理 5.29 计算分析及结果分析 5.30 --6.6 撰写设计报告 6.7 指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日

目录简述 2 1设计任务及要求分析 3 2潮流计算过程 4 2.1计算参数并作出等值电路 4 2.1.1输电线路的等值参数计算 4 2.1.2变压器的等值参数计算 4 2.1.3等值电路 6 3功率分布计算 7 4调压计算 10 5心得体会 11 参考文献 12 本科生课程设计成绩评定表 13

简述 潮流计算是电力系统最基本最常用的计算。根据系统给定的运行条件,网络接线及元件参数,通过潮流计算可以确定各母线的电压(幅值和相角),各支路流过的功率,整个系统的功率损耗。潮流计算是实现电力系统安全经济发供电的必要手段和重要工作环节。因此,潮流计算在电力系统的规划计算,生产运行,调度管理及科学计算中都有着广泛的应用。 本次课程设计要求将系统中的元件转换为等值参数,并绘制出相应的等值电路,然后依据等值电路图计算网络中的功率分布、功率损耗和未知的节点电压。 最后还需进行检验,如不满足供电要求,还应进行调压计算。 关键词:潮流计算;等值电路;功率损耗;节点电压;调压

C语言函数参数传递(非常重要)

一、三道考题 开讲之前,我先请你做三道题目。(嘿嘿,得先把你的头脑搞昏才行……唉呀,谁扔我鸡蛋?) 考题一,程序代码如下: void Exchg1(int x, int y) { int tmp; tmp = x; x = y; y = tmp; printf("x = %d, y = %d\n", x, y); } main() { int a = 4,b = 6; Exchg1(a, b); printf("a = %d, b = %d\n", a, b); return(0); } 输出的结果为: x = ____, y=____. a = ____, b=____. 问下划线的部分应是什么,请完成。 考题二,程序代码如下: void Exchg2(int *px, int *py) { int tmp = *px; *px = *py; *py = tmp; printf("*px = %d, *py = %d.\n", *px, *py); } main() { int a = 4; int b = 6; Exchg2(&a, &b); printf("a = %d, b = %d.\n", a, b); return(0); } 输出的结果为为: *px=____, *py=____.

a=____, b=____. 问下划线的部分应是什么,请完成。 考题三,程序代码如下: void Exchg3(int &x, int &y) { int tmp = x; x = y; y = tmp; printf("x = %d,y = %d\n", x, y); } main() { int a = 4; int b = 6; Exchg3(a, b); printf("a = %d, b = %d\n", a, b); return(0); } 输出的结果为: x=____, y=____. a=____, b=____. 问下划线的部分应是什么,请完成。你不在机子上试,能作出来吗?你对你写出的答案有多大的把握?正确的答案,想知道吗?(呵呵,让我慢慢地告诉你吧!) 好,废话少说,继续我们的探索之旅了。 我们都知道:C语言中函数参数的传递有:值传递、地址传递、引用传递这三种形式。题一为值传递,题二为地址传递,题三为引用传递。不过,正是这几种参数传递的形式,曾把我给搞得晕头转向。我相信也有很多人与我有同感吧? 下面请让我逐个地谈谈这三种传递形式。 二、函数参数传递方式之一:值传递 (1)值传递的一个错误认识 先看考题一中Exchg1函数的定义: void Exchg1(int x, int y) /* 定义中的x,y变量被称为Exchg1函数的形式参数*/ { int tmp; tmp = x; x = y; y = tmp; printf("x = %d, y = %d.\n", x, y); }

C语言中参数传递

二.参数传递 函数的形参的初始化和变量的初始化一样,如果形参具有非引用类型,则复制实参的值,如果形参为引用类型,则它是实参的别名。 1.非引用实参 普通的非引用类型的函数通过复制对应的实参实现初始化。当用实参副本初始化形参时,函数并没有调用所传递的实参本身,因此不会修改实参的值。 注解:非引用形参表示对应实参的局部副本,对这类行参的修改仅仅改变了局部副本的值,一旦函数执行结束,这些局部变量的值也就没有了。 a. 指针形参 指针形参与其他非引用类型的行参一样,如果将新指针赋给行参,主调函数使用的实参指针的值没有改变。事实上被复制的指针只影响对指针的赋值。指针形参是const类型还是非const类型,将影响函数调用所使用的实参。 b. const行参 在调用函数时,如果该函数使用非引用的非const形参,则既给该函数传递const实参也可传递非const的实参(因为改变形参不影响const的实参,所以const实参不会被改变)。如果将形参定义为非引用的const类型,则在函数中,不可以改变实参的局部副本,由于实参是以副本的形式传递,因此传递给函数形参既可是const也可是非const对象。 注意:尽管函数的形参是const,但是编译器却将该行参声明视为普通的int型。 void fcn(const int i); void fcn(int i); 为了兼顾C语言,认为这两种定义并不区别。 c. 复制实参的局限性 不适合复制实参的情况包括: 当需要在函数中修改实参的值时 当需要以大型对象作为实参传递时,对实际的应用而言,复制对象所付出的时间和存储空间代价往往很大。 但没有办法实习对象的复制时 对于以上几种情况,有效的办法是将形参定义为引用或指针。 2.引用实参 与所有引用一样,引用形参直接关联到其所绑定的对象,而并非这些对象的副本。定义引

深入了解C语言(函数的参数传递和函数使用参数的方法)

深入了解C语言(函数的参数传递和函数使用参数的方法) C语言生成的代码在执行效率上比其它高级语言都高.现在让我们来看看C语言生成的代码具体是什么样子的.当你看完本文对于C语言的了解一定会更深一步了. 本文通过一个个实际案例程序来讲解C语言. 研究案例一 工具: Turboc C v2.0,Debug,MASM v5.0,NASM 实例C程序: /* example1.c */ char ch; int e_main() { e_putchar(ch); } 目标内容:C语言调用函数的方法与细节 我们使用的C编译器是16位的Turboc C v2.0,它生成的是16位的代码,比较简单,方便我们来研究.同时我们也需要用到DOS下的DEBUG来进行反汇编.由于我们很多案例中的程序并不是完整的C程序,所以Turboc下的Tlink并不能为我们生成目标程序,所以我将使用MASM 中的link.exe,同时里面的https://www.360docs.net/doc/f18208793.html,也可以为我们把exe文件转换成bin文件. 这个程序没有main函数,我们用e_main来代替main函数.这样我们能避开C语言对main函数进行一系列处理的代码.同样,我们也用e_putchar()来代替我们平常使用的putchar().这里"e"的意思就是"example". 没有了main函数,我们的C程序就没有了入口,所以在开始编译这段C代码之前,我还得写几行简单的汇编代码,通过它来作为我们程序的入口. ; C程序的入口start.asm [BITS 16] [global start] [extern _e_main] start: call _e_main 按照C语言的习惯,所以C总的名词都要自动在前面加一个"_"下划线.所以,我们在C中的e_main函数,如果要在汇编中调用,就变成了_e_main函数.这段汇编代码只有一句:call _e_main,就是调用我们在C中的e_main函数

相关文档
最新文档