实验8 指针应用
成绩 专业班级 信息112学号201112030221姓名兰晓东报告日期
实验类型:●验证性实验 ○综合性实验 ○设计性实验 实验目的:
1熟悉定义指针变量的方法、使用指针变量的方法。
2学会使用指针变量作函数参数、用指针对字符串进行操作。
3学会使用指向函数的指针进行牛顿迭代法求解非线性方程组的解。 实验内容:
1.第六章习题第6题、第11题、第18题 2.用牛顿迭代法求解非线性方程组
设有非线性方程组
x2?2x?y?0.5?0x?4y?422?0
设初始值(x0,y0)?(2.0,0.25)误差小于0.001 实验原理
Pn?Pn?1?J(Pn?1)?1F(Pn?1)
实验步骤:(记录实验过程中的步骤)
1 要求上机实验前先编写出程序代码 2 编辑录入程序
3 调试程序并记录调试过程中出现的问题及修改程序的过程 4 经反复调试后,运行程序并验证程序运行是否正确。 5 记录运行时的输入和输出。
实验任务的程序运行运行界面及运行结果:
实验总结:
定义指针变量的方法: 使用指针变量的方法:
学会使用指针变量作函数参数: 用指针对字符串进行操作:
学会使用指向函数的指针进行牛顿迭代法求解非线性方程组的解。 第六题运行结果:
第十一题运行结果:
第十三题运行结果:
每个实验任务程序代码 第六题代码:
#include
int length(char *p) {int n; n=0;
while(*p!='\\0') {n++; p++; }
return(n); }
第十一题代码: #include
{void sort(char s[][6]); int i;
char str[10][6];
cout<<\ for(i=0;i<10;i++) cin>>str[i]; sort(str);
cout<<\ for(i=0;i<10;i++) cout< void sort(char s[][6]) {int i,j; char *p,temp[10]; p=temp; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(strcmp(s[j],s[j+1])>0) {strcpy(p,s[j]); strcpy(s[j],s[j+1]); strcpy(s[j+1],p); } } 第十三题代码: #include { float integral(float (*P)(float),float a,float b,int n); float fsin(float); float fcos(float); float fexp(float); float a1,a2,a3,b1,b2,b3,c,(*p)(float); int n=20; cout<<\ cin>>a1>>b1; cout<<\ cin>>a2>>b2; cout<<\ cin>>a3>>b3; p=fsin; c=integral(p,a1,b1,n); cout<<\ p=fcos; c=integral(p,a2,b2,n); cout<<\ p=fexp; c=integral(p,a3,b3,n); cout<<\ return 0; } float integral(float(*p)(float),float a,float b,int n) { int i; float x,h,s; h=(b-a)/n; x=a; s=0; for(i=1;i<=n;i++) {x=x+h;