当前位置:文档之家› 程序设计基础实验报告

程序设计基础实验报告

《程序设计基础》实验报告专业班级:姓名:学号:实验一 面向过程的简单程序设计1.实验目的要求(1) 使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程,初步了解C++程序的特点。

(2) 掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运算符和表达式的使用。

(3) 掌握赋值语句的使用。

(4) 掌握数据的输入输出方法。

2.实验内容(1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。

<1> d c b a x -++ <2> 1111+++x x <3> sinX+cosX+tan -1X <4> e x+y +e x-y<5> log 10(1+21x +) <6> 22b a -+⎣⎦b a - (其中⎣⎦a 表示取不大于a 的最大整数)。

<1>#include <iostream>using namespace std;int main(){float x,a,b,c,d,e;cin>>x>>a>>b>>c>>d;e=x+(a+b)/(c-d);cout<<e<<endl;return 0;}<2>#include <iostream>#include<math.h>using namespace std;int main(){double x,y;cin>>x;y=sqrt(1+1/(x+1/(x+1)));cout<<y<<endl;return 0;}<3>#include<iostream>#include<math.h>using namespace std;int main(){double x,y;cin>>x;y=sin(x)+cos(x)+1/tan(x);cout<<y<<endl;return 0;}<4>#include<iostream>#include<math.h>using namespace std;int main(){double x,y,z;cin>>x>>y;z=exp(x+y)+exp(x-y);cout<<z<<endl;return 0;}<5>#include<iostream>#include<math.h>using namespace std;int main(){double x,y;cin>>x;y=log(1+sqrt(1+x*x));cout<<y<<endl;return 0;}<6>#include<iostream>#include<math.h>using namespace std;int main(){double a,b,c;int d;cin>>a>>b;c=fabs(a*a-b*b);d=int(a-b);if(a-b>=0||d==a-b)c+=d;elsec+=d-1;cout<<c<<endl;return 0;}(2)阅读下列程序,写出(由指定的输入)所产生的运行结果,并指出其功能。

<1>#include <iostream.h>void main(){char ch;cin >> ch ;ch = ( ch >= ’A’ && ch <= ’Z’ ) ? ( ch + 32 ) : ch ;ch = ( ch >= ’a’ && ch <= ’z’ ) ? ( ch – 32 ) : ch ;cout << ch << endl;}将大小写字母进行转换<2>#include <iostream.h>void main(){int m;float x;bool bi,br;cout << "\n int m=";cin >> m;bi = m > 1000;cout << "\n float x=";cin >> x;br = x <= 1e3;cout << bi << ',' << br << endl;}分别输入100 40,2000 3000,1000 1000,2000 300,100 4000 运行。

输出结果为:0 1,1 0,0 1,1 1,0 0程序用来判断m和n与1000的大小关系(3)编写程序实现下列问题的求解。

<1> 根据随机从键盘输入的圆半径值,求圆的周长和半径并输出。

#include<iostream>using namespace std;int main(){int r,l,s,pi=3.1415926;cout<<"Input a nmber:"<<endl;cin>>r;l=2*pi*r;s=pi*r*r;cout<<"圆的周长为:"<<l<<endl;cout<<"圆的面积为:"<<s<<endl;return 0;}实验二控制结构程序设计1.实验目的要求(1)理解基本的解题技巧,掌握用自顶向下、逐步求精的过程设计算法。

(2)熟练掌握if/else语句和switch语句的使用。

(3)熟练掌握while语句、do/while语句和for语句的使用以及区别。

(4)掌握break和continue程序控制语句的使用。

2.实验内容(2)编写程序实现下列问题的求解。

<1> 求解下面函数的值。

e x+y x<0,y<0z= ln(x+y) 1≤x+y 〈10log 10|x+y|+1 其它情况<1>#include<iostream>#include<cmath>using namespace std;int main(){double x,y,z;cin>>x>>y;if(x<0&&y<0) z=exp(x+y);else if(x+y>=1&&x+y<10) z=log(x+y);else z=log10(fabs(x+y)+1);cout<<z<<endl;return 0;}<2> 编程求解下列各计算式:1) S= ∑=1001i i =1+2+3+…+100(1)#include<iostream>using namespace std;int main(){int i=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<<sum<<endl;}2) S=∑=71!i i =1!+2!+…+7! (2)#include<iostream>using namespace std;int main(){int n,s=1,c=0;for(int i=1;i<=7;i++){ for(n=1;n<=i;n++){s*=n;}c+=s;s=1;}cout<<c<<endl;return 0;}3) S=1×2+3×4+5×6+…+39×40(3)#include<iostream>using namespace std;int main(){int s=0;for(int i=1;i<=39;i+=2)s=i*(i+1)+s;cout<<s<<endl;return 0;}<3> 打印下面图形。

11 3 11 3 5 3 11 3 5 7 5 3 11 3 5 7 9 7 5 3 1…………………1 3 …… 21 ……… 3 1#include<iostream>using namespace std;int main(){int n,i,j=25,k=1,a=1,b;for(i=1;i<=11;i++){for(n=1;n<=j;n++){cout<<" ";}b=k;while(a<k){cout<<a<<" ";a+=2;}a=1;while(b>1){cout<<b<<" ";b-=2;}cout<<a;for(n=1;n<=j;n++){cout<<" ";}j-=2;k+=2;cout<<endl;}return 0;}实验三数组1.实验目的要求(1)掌握一维数组和二维数组的定义、初始化赋值、元素引用的方法。

(2)初步了解数组名与地址的关系。

(3)掌握字符数组和字符串函数的使用。

(4)掌握与数组有关的算法(特别是排序和查找算法)。

2.实验内容(2)编写程序实现下列问题的求解。

<1> 编程产生下列数组,并输出。

⑴一维数组1) (1 4 9 16 25 36 49 64 81 100)2) (1 3 6 10 15 21 28 36 45 55)3) (1 2 3 5 8 13 21 34 55 89)<1>(1)#include<iostream>using namespace std;int main(){int a[10];for(int i=1;i<=10;i++){a[i-1]=i*i;cout<<a[i-1]<<" ";}cout<<endl;return 0;}(2)#include<iostream>using namespace std;int main(){int a[10],j=0;for(int i=1;i<=10;i++){j+=i;a[i-1]=j;cout<<a[i-1]<<" ";}cout<<endl;return 0;}(3)#include<iostream>using namespace std;int main(){int a[10],j=0;a[0]=1;a[1]=2;for(int i=3;i<=10;i++){a[i-1]=a[i-3]+a[i-2];}for(i=0;i<=9;i++)cout<<a[i]<<" ";cout<<endl;return 0;}<2>1)#include<iostream>using namespace std;int main(){int a[6][6],b=0;for(int i=0;i<6;i++){for(int j=0;j<6;j++){if(b>5){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;i<6;i++){for(int j=0;j<6;j++)cout<<a[i][j]<<" ";cout<<endl;}return 0;}2)#include<iostream>using namespace std;int main(){int a[100][100],b=0,n;cin>>n;for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(b>n-2){b=0;}else{b++;}a[i][j]=b;}b=i+1;}for(i=0;i<n;i++){for(int j=0;j<n;j++)cout<<a[i][j]<<" ";cout<<endl;}return 0;}<3> 编程求一组整数的最大公因子和最小公倍数。

相关主题