第二次上机作业
- 格式:doc
- 大小:50.50 KB
- 文档页数:6
2017春季数学实验报告班级:计算机系61 姓名:赵森学号:**********(校内赛编号506)班级:计算机系61 姓名:冯丹妮学号:**********(校内赛编号327)班级:计算机系63 姓名:郝泽霖学号:**********第一次上机作业实验8:练习1:4.某棉纺厂的原棉需从仓库运送到各车间。
各车间原棉需求量、单位产品从各仓库运往各车间的运输费以及各仓库的库存容量如表8.5所列,问如何安排运输任务使得总运费最小?设仓库1运往车间1,2,3,的原棉量为x1,x2,x3, 仓库2运往车间1,2,3,的原棉量为x4,x5,x6, 仓库3运往车间1,2,3,的原棉量为x7,x8,x9。
2x1+x2+3x3<=502x4+2x5+4x6<=303x7+4x8+2x9<=10X1+x4+x7=40X2+x5+x8=15X3+x6+x9=35程序:c=[2,1,3,2,2,4,3,4,2];a(1,:)=[1,1,1,0,0,0,0,0,0];a(2,:)=[0,0,0,1,1,1,0,0,0];a(3,:)=[0,0,0,0,0,0,1,1,1];aeq(1,:)=[1,0,0,1,0,0,1,0,0];aeq(2,:)=[0,1,0,0,1,0,0,1,0];aeq(3,:)=[0,0,1,0,0,1,0,0,1];b=[50;30;10];beq=[40;15;35];vub=[];vlb=zeros(9,1);[x,fval]=linprog(c,a,b,aeq,beq,vlb,vub)结果:x =10.000015.000025.00000.0000 0.0000 0.0000 0.0000 10.0000 fval =190.00006.某厂要求每日8小时的产量不低于1800件,为了便于进行质量控制,计划聘请两种不同水平的检验员。
一级检验员的标准为25件/h ,正确率98%,计时工资4元/h;二级检验员的标准为15件/h ,正确率95%,计时工资3元/h ;检验员每检错一次,工厂要损失2元。
中国科教创新导刊I 中国科教创新导刊2008N O.28C hi na Ed uca t i o n I nno va t i o n Her a l d 理论前沿教育部部长周济在2004年全国优秀教师师德报告会上的讲话中指出“教育大计,教师为本”,“学高为师,德高为范”。
精确地概括了教师在教学活动中的地位和优秀教师应具备的基本素质。
众所周知,学校培养学生的主渠道是课堂,抓不住课堂,就抓不住教学质量。
而提高课堂教学质量的关键在教师。
教师道德品质、知识底蕴、语言才能、人格魅力、课堂教学组织能力等共同构成了教师课堂讲授能力的主要方面,共同决定着教学课堂质量的高低。
1教师的道德品质和知识底蕴是教学质量的保障教师的道德品质和知识底蕴对一所学校精神的形成和学校品牌价格的提升具有举重轻的作用。
一所学校的社会地位、社会影响,取决于有没有一批很有水平、很有社会影响力的教师。
国内外的著名学校无不具备一个共同的特点:即拥有一批具有崇高的敬业精神,高尚的职业道德,积极健康的个性品质和深厚专业知识功底的教师群体。
对学校来讲,“什么东西都可以失去,就是不能失去一流的教授”。
而教师对学校最直接的作用,就是通过课堂讲授将自己的知识传授给学生,用自己的人格品质影响学生。
因此,我国教育法明文规定学校教师必须“热爱教育事业,具有良好的思想品德,具备研究生或者大学本科毕业学历”,将教师的道德修养和专业知识水平作为取得教师资格的必备条件。
2教师的语言才能决定着教学质量的高低马克思曾经说过“语言是思想的直接现实”,高尔基也指出“语言是一切事实和思想的外衣”。
任何思想,只有当它找到合适的“外衣”,才能成为现实的思想,才能被人们理解和接受。
课堂语言的好坏,直接影响着课堂教学的效果,决定着学生的接受率。
所以,教师作为知识的传播者,对于所要阐发的思想、理论也必须为获得这种合适的“外衣”而努力。
具体地说,课堂教学在语言方面应做到准确、鲜明、生动、简洁、富有启发性。
C语言第二次作业1.某年如果能被4整除,但不能被100整除,或者能被400整除的年是闰年。
判断从键盘输入的年份是否为闰年。
一、实验目的:掌握if else选择结构二、实验容:#include<stdio.h>int main(){int x;printf("请输入年份:\n");scanf("%d",&x);if(x%4==0&&x%100!=0||x%400==0)printf("是闰年.\n");elseprintf("不是闰年.\n");return 0;}三:调试结果:2、某个自动加油站有‘a’,‘b’,‘c’三种汽油品种,单价分别为6.92,7.37,7.64(元/公升),也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠,请编程序针对用户输入加油量m,汽油品种y和服务类型z(‘f’—自动加,‘m’—自己加,‘e’—协助加),(注:‘f’—自动加无优惠),计算应付款pay。
(请用多分支选择switch语句)。
一、实验目的:掌握switch语句二、实验容:#include<stdio.h>#include<math.h>int main(){float p,q,m,pay;char y,z;printf("请输入汽油品种(y),服务类型(z),加油量(m)\n");scanf("%c,%c,%f",&y,&z,&m);switch(y){case'a':p=6.92;break;case'b':p=7.37;break;case'c':p=7.64;break;}switch(z){case'f':q=1;break;case'm':q=0.95;break;case'e':q=0.9;break;}pay=p*q*m;printf("pay=%.2f\n",pay);return 0;}三:调试结果:3、输入三角形三边,判断该三角形是什么三角形(等边,等腰,普通和直角)一、实验目的:掌握switch语句二、实验容:#include<stdio.h>int main(){int a,b,c;printf("请输入三角形的三边长:\n");scanf("%d,%d,%d",&a,&b,&c);if(a==b&&b==c)printf("此三角形是等边三角形");else if(a==b||b==c||a==c)printf("此三角形是等腰三角形");else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)printf("此三角形是直角三角形");elseprintf("此三角形是普通三角形");return 0;}三、调试结果4. 编写一个菜单程序,输入1~3以进入相应的选择项。
第二次上机作业准备&要求:1、 运行课件第三章(课本第四章)讲过的例子,掌握Matlab 的流程控制语句、函数及脚本文件的编程、调试方法。
2、 本次作业(4~12题)要求全部写M 文件;3、 题目要求未明确要求写脚本文件还是函数文件的,学生自己决定是写脚本文件还是函数文件。
只要能够实现要求。
4、 列出第二章课堂上出现过的所有函数,知道它们的作用并试着调用这些函数。
作业:1. 继续完成第一次上机实验未完成的作业。
2. 分析脚本M 文件及函数M 文件的区别。
(1)脚本文件没有输入参数,也不返回输出参数,而函数文件可以带输入参数,也可以返回输出参数。
(2)脚本文件对MATLAB 工作空间中的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数文件中定义的变量为局部变量,当函数文件执行完毕时。
这些变量被清除。
(3)脚本文件可以直接运行。
在MATLAB 命令行窗口输入脚本文件的名字,就会顺序执行脚本文件中的命令。
而函数文件不能直接运行,要以函数调用的方式来调用。
3. 已知⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=7613870451A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=023352138B ,求下列表达式的值,并注意第(2)(3)小题表达式的结果有何特点:(1)B A 6+ 、I B A +-2(其中I 为单位阵);>> A+6*Bans =47 23 -1012 37 26-15 73 7>> A^2-B+Ians =-18 -217 1722 533 10921 867 526(2)A*B、A.*B、B*A、B.*A;>> A*Bans =14 14 16-10 51 21125 328 180>> A.*Bans =-8 15 40 35 24-9 122 0>> B*Aans =-11 0 -157 228 533 -1 28>> B.*Aans =-8 15 40 35 24-9 122 0(3)A/B、B\A、A./B、B.\A;A/Bans =1.2234 -0.92552.9787-0.9468 2.3511 -0.95744.6170 3.8723 13.8936>> B\Aans =-0.5106 -8.6170 -1.12770.7340 17.5745 1.8085-0.8830 -21.2128 0.4043>> A./Bans =-0.1250 1.6667 4.00000 1.4000 2.6667-1.0000 30.5000 Inf>> B.\Aans =-0.1250 1.6667 4.00000 1.4000 2.6667-1.0000 30.5000 Inf(4)[A, B]、[A([1 3],:);B^2]。
桥梁博士第二次上机作业横向分布系数的计算组长:学院:年级专业:指导教师:组员:完成日期:桥梁博士第二次上机作业一、作业组成二、作业合作完成情况本次作业由3组组员共同完成,任务分配情况如下:张元松完成实例一(“杠杆法”求横向分布系数),并对计算过程进行截图。
郑宇完成实例二(“刚性横梁法”求横向分布系数),并对计算过程进行截图。
计时雨完成实例三(“刚接板梁法”求横向分布系数),并对计算过程进行截图。
孙皓完成实例四(实例四、“铰接板梁法”求横向分布系数),对计算过程进行截图,并进行本次实验报告的撰写任务。
三、上机作业内容1、任务分析与截面特性计算本次作业结合老师所给的双向四车道的高速公路分离式路基桥的设计图进行,首先对图纸进行分析,确定荷载横向分布系数计算所对应的各个截面;然后求出所用到截面的界面特性(抗弯惯性矩和抗扭惯性矩);最后用“桥梁博士”的横向分布计算功能求出各主梁的横向分布系数,为接下来的简支T 梁的配筋计算和结构安全性验算做好准备。
(1)通过CAD绘图的方式求出截面特性用CAD绘制出桥梁设计图中的跨中截面与支点截面如图1所示。
对两个截面分布使用“reg”命令→“massprop”命令,求出两个截面的截面特性如图2所示。
图1 CAD绘制的桥梁单元截面(a) CAD算出的跨中截面特性 (b) CAD算出的支点截面特性图2 CAD计算出的桥梁截面特性(2)通过“桥梁博士”计算出截面图形进行验算步骤一:打开桥博,点击“新建”出现对话框,如图3所示。
点击“桥梁博士截面设计文件”,出现图4界面。
图3 “新建”对话框图4 “桥梁博士截面设计文件”界面步骤二:跨中截面特性验算在出现的设计文件界面中点击“截面描述”→“图形输入”并选择T形截面,在界面中输入数据如图5所示。
选择“材料类型”为“中交新混凝土:C40混凝土”,点击“确定”。
选用规范为“中交04规范”。
在“当前任务标识”输入栏力输入“跨中截面截面特性计算”,点击“添加任务”按钮,将任务添加上。
第二章上机及作业题第二章上机题用三种存储结构(顺序表,链表,静态链表)求解josuphu问题!1:顺序表#include<stdio.h>#define max 100typedef struct{int data[max];int length;}stack,*pstack;pstack Creat() /*顺序表初始化*/{pstack p;p=(pstack)malloc(sizeof(stack));if(p)p->length=0;return p;}void Creatstack(pstack p) /*创建一个顺序表*/{int i,l,x;printf("please stack's length:\n");scanf("%d",&l);p->length=l;printf("please enter a stack:\n");for(i=0;i<l;i++){scanf("%d",&x);p->data[i]=x;}}Deletes(pstack p,int x) /*删除指定位置的元素*/{int i;for(i=x;i<=p->length;i++){p->data[i]=p->data[i+1];}p->length--;}int josephus(pstack p) /*约瑟夫循环*/{int s1,i,s,m,w;printf("please enter start adress:\n");scanf("%d",&s);printf("please enter how long to out eachother:\n");scanf("%d",&m);if(!p->length){printf("empty!\n");return 0;}s1=s-1;printf("please answer:\n");for(i=p->length;i>0;i--){s1=(s1+m-1)%i;w=p->data[s1];printf("%4d",w);Deletes(p,s1);}return 1;}int main() /*主函数*/ {pstack Q;Q=Creat();Creatstack(Q);josephus(Q);getch();}2:链表解决#include<stdio.h>typedef struct node /*定义一个链表结构体*/ {int data;struct node *next;}list,*List;void Putlist(List L) /*输入一个链表*/{int x,i,length;List s;L=NULL;printf("please enter the length:\n");scanf("%d",&length);printf("please enter the list:\n");for(i=0;i<length;i++){s=(List)malloc(sizeof(list));scanf("%d",&x);s->data=x;s->next=L;L=s;}s->next=L;}void Dislist(List L) /*输出链表*/{List p=L->next;printf("%d",L->data);while(p!=L){printf("%3d",p->data);p=p->next;}printf("\n");}int josephs(List L) /*约瑟夫循环的计算*/ {int s,m,count;List p,pre;printf("start in:\n");scanf("%d",&s);printf("how often:\n");scanf("%d",&m);if(!L){printf("the list is empty!\n");return 0;}p=L;for(count=1;count<s;count++){p=p->next;}printf("put the answer:\n");while(p!=p->next){for(count=1;count<m;count++) {pre=p;p=p->next;}printf("%2d",p->data);pre->next=p->next;free(p);p=pre->next;}printf(" %d",p->data);free(p);return 1;}void main(){int x,i,length;List L,s,r;s=L=(List)malloc(sizeof(list)); printf("please enter the length:\n"); scanf("%d",&length);printf("please enter the list:\n"); scanf("%d",&x);L->data=x;for(i=0;i<length-1;i++){r=(List)malloc(sizeof(list)); scanf("%d",&x);r->data=x;s->next=r;s=s->next;}s->next=L;josephs(L);getch();}3:静态链表#include<stdio.h>#define MAXSIZE 100struct node{int number;int next;}string[MAXSIZE];int josephus(void) /*约瑟夫循环*/ {int total;int out;int start;int i,j=1;int flag=0;int current,front;printf("The total number is:");scanf("%d",&total);printf("The out number is:");scanf("%d",&out);printf("The starting number is:");scanf("%d",&start);if(out==1) return total;for(i=0;i<total;i++){string[i].number=i+1;string[i].next=i+1;}string[i-1].next=0;front=total-1;current=0;for(i=1;i<start;i++){front=string[front].next;current =string[current].next;}while(flag<total){if(j%out==0){string[front].next=string[current].next;current=string[front].next;j=1;flag++;}else{j++;front=string[front].next;current =string[current].next;}}return(string[current].number);}void main(){int t;t=josephus();printf("The last one is %d",t);getch();}第二章作业:1.已知递增有序的两个单链表A,B分别存储了一个集合。
第二次上机作业
目的:
运行课本第四章及课堂上讲过的例子,掌握Matlab的流程控制语句、函数及脚本文件的编程、调试方法。
要求:1、本次作业要求全部写M文件;2题目要求未明确要求写脚本文件还是函数文件的,学生自己决定是写脚本文件还是函数文件。
只要能够实现要求。
作业:
1.分析脚本M文件及函数M文件的区别。
(1)M脚本文件名不必与函数名相同;(2)M函数文件调用时需要提供函数参数,而M脚本文件只需要提供文件名;(3)M脚本文件创建的每个变量都会保存到Matlab工作区,而M函数文件只有输出结果才保存到Matlab工作区中;(4)文件格式上的一些区别。
2.分别编写脚本文件,实现以下要求:
1)求[100,999]之间能被21整除的个数。
m=0;
for n=100:999
if n/21==round(n/21)
m=m+1;
k(m)=n;
else
end
end
k,m
2)用magic(6)产生一矩阵,用至少两种方法求解其所有元素的和。
(提示:1、for循环;2、sum函数)
A=magic(6)
B=sum(A)
sum(B)
q=0
for i=1:36
q=q+A(i);
end
q
3.编写函数文件,实现从键盘输入一个3位整数,将它反向输出。
如639,输出为936。
并调用该函数,
输入自己的学号后三位数,输出结果。
function f=xuehao(k)
k=input('请输入一个数字');
a=fix(k/100);
b=fix((k-a*100)/10);
c=k-a*100-b*10;
k=c*100+b*10+a
xuehao
请输入一个数字200
k =
2
4. 定义一个函数文件,求∑=n i m i
1,要求在函数文件中包含能够通过help 查询到的说明,说明里面必须有自己的名字学号。
然后调用该函数文件求
∑∑∑===++10
1501210011k k k k k k 的值。
function s=sfun(m,n)
%20111200xieyinbin
s=0;
for k=1:n
i=k
s=s+i^m
end qiuhe(1,100)+qiuhe(2,50)+qiuhe(-1,10)
ans =
4.7978e+004
5. 已知)
7.1cos(12
ln
)7.1sin(++++=x x x y π,当x 取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时, 1) 求各点的函数值;
2) 求这些数据的平均值;
function y=mao(x)
s=0,n=0;
for x=-3:0.1:3
y=(sin(x+1.7)*log((pi+x)/2))/(1+cos(x+1.7));
n=n+1;
s=y+s;
end
k=s/n
mao(-3)
s = 0
k = 0.1616
ans =-1.1359
6.求分段函数的值。
222603565231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩
, 且, 0且及, 其它
用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5时的值。
function y=fu(x)
if x<0&x~=3
y=x^2+x-6
elseif x<5&x>=0&x~=2&x~=3
y=x^2-5*x+6
else
y=x^2-x-1
end
y=fu(0)
y = 6
>> y=fu(-5)
y =14
y =14
>> y=fu(-3)
y = 0
y = 0
>> y=fu(1)
y = 2
y = 2
>> y=fu(2)
y = 1
y = 1
>> y=fu(2.5)
y = -0.2500
y = -0.2500
7、输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。
其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:分别用if 语句和switch 语句实现。
switch
m=input('请输入一个数字:')
m=fix(m/10);
switch m
case {9,10}
disp('A')
case 8
disp('B')
case 7
disp('C')
case 6
disp('D')
case {5,4,3,2,1,0}
disp('E')
end
if
m=input('请输入一个数字:') m=fix(m/10);
if m>=9
disp('A')
elseif m>=8&m<9
disp('B')
elseif m>=7&m<8
disp('C')
elseif m>=6&m<7
disp('D')
else
disp('E')
end
8、根据
2
2222
1111
...,
6123n
π
π
=++++求的近似值。
当n分别取100、1000、10000时,结果是多少?(要
求:分别用循环结构和向量运算来实现)clear
n=input('请输入n的值');
s=0;
for i=1:n
s=s+1/i^2;
end
y=sqrt(6*s)
请输入n的值1000
y = 3.1406
clear
n=input('请输入n的值');
s=0;
for i=1:n
s=s+1/i^2;
end
y=sqrt(6*s)
请输入n的值10000
y =3.1415
n=input('请输入n的值');
k=1:n;
p=sqrt(6*sum(1./k.^2))
请输入n的值100
p =3.1321
clear
n=input('请输入n的值');
k=1:n;
p=sqrt(6*sum(1./k.^2))
请输入n的值1000
p =3.1406
clear
n=input('请输入n的值');
k=1:n;
p=sqrt(6*sum(1./k.^2))
请输入n的值10000
p =3.1415
9、已知n=1时,f1=1;n=2时,f2=0;n=3时,f3=1;n>3时,f n=f n-1 -2f n-2+ f n—3;
求f1~ f100中,最大值、最小值以及各数之和。
f(1)=1;
f(2)=0;
f(3)=1;
for n=4:6
f(n)=f(n-1)-2*f(n-2)+f(n-3)
end
a=max(f)
b=min(f)
s=sum(f)
a = 4.3776e+011
b = -8.9941e+011
s = -7.4275e+011
10、某公司员工的工资计算方法如下:
1)工作时数超过120小时者,超过部分加发15%;
2)工作时数低于60小时者,扣发700元;
3)其余按每小时84元计发。
试编程按输入的工号和该号员工的工时数,计算应发工资。
input('请输入员工工号')
y=input('请输入员工工时数')
money=y*84+(y-120)*84*(1+0.15) elseif y<60
money=y*84-700
else
money=y*84
End
请输入员工工号x:1
ans =1
请输入员工工时数y=:130
y =130
money =11886
请输入员工工号x:2
Ans=2
请输入员工工时数y=:50
y=50
money=3500
请输入员工工号x:3
ans =3
请输入员工工时数y=:80
y=80
money=6720
>>。