试验四函数文件
一、实验目的
1、理解函数文件的概念
2、掌握定义和调用MA TLAB函数的方法
二、实验内容及步骤
1、编写一个函数文件chengji.m,用于求两个矩阵的乘积和点乘,
然后在命令行窗口中调用该函数(提示:使用varargout函数)
要求:1)当两矩阵是尺寸相同的方阵时,返回它们的乘积和点乘。
2)当两矩阵不是尺寸相同的方阵时,则根据它们的尺寸,分别进行乘积或点乘
3)当两矩阵的尺寸不能满足乘积或点乘的要求时,则提示“这两个矩阵不能乘”
function varargout=chengji(A,B)
%chengji求两个矩阵的点乘和乘积值;
%A,B为矩阵
%代码行
[i,j]=size(A);
[m,n]=size(B);
if((m==i)&&(n==j)&&(i==j)) %AB尺寸相等且为方阵
disp('这两个矩阵的乘积和点乘分别为');
varargout{1}=A*B;
varargout{2}=A.*B;
elseif((j==m)&&(i~=j))
disp('这两个矩阵的乘积和点乘分别为');
varargout{1}=A*B;
varargout{2}=('这两个矩阵不能点乘');
elseif((i==m)&&(j==n)&&(i~=j)) % AB尺寸相等且不为方阵
disp('这两个矩阵的乘积和点乘分别为');
varargout{1}=('这两个矩阵不能相乘');
varargout{2}=A.*B;
else
str='这两个矩阵不能乘';
disp(str);
end
或者
function varargout=chengji(a,b)
%chengji用于求两个矩阵的乘积和点乘
%输入两个矩阵,若为尺寸相同两个方阵,返回它们的乘积和点乘
%[i,j]=chengji(a,b)
%若不是尺寸相同的方阵时,则根据它们的尺寸,分别进行乘积或点乘
%若尺寸不能满足乘积或点乘的要求时,则提示“这两个矩阵不能乘”
%若为尺寸相同两个方阵,返回它们的乘积和点乘
if(size(a)==size(b)&size(a,1)==size(b,2))
varargout{1}=a*b;
varargout{2}=a.*b;
%若不是尺寸相同的方阵,满足乘积或点乘的要求
elseif (size(a,2)==size(b,1))
varargout{1}=a*b;
elseif (size(a)==size(b))
varargout{1}=a.*b;
%若尺寸不能满足乘积或点乘的要求
else error('这两个矩阵不能乘')
end
>> A=[1 2; 3 4]; B=[5 6;7 8];
[i,j]=chengji(A,B)
i =
19 22
43 50
j =
5 12
21 32
>> A=[1 2 3 4];B=[5 6 7 8];chengji(A,B)
ans =
5 12 21 32
>> A=[1 2 ;3 4];B=[5 6 7 ;8 9 10];chengji(A,B) ans =
21 24 27
47 54 61
>> A=[1 2 ;3 4];B=[5 6 7 ;8 9 10]';chengji(A,B) ??? Error using ==> chengji
这两个矩阵不能乘
2、编写一个函数issushu.m用来判断从命令行窗口输
入的数是否素数,若是素数则返回1,不是素数则返回0。
function issushu
%issushu判断是否为素数
x=input('输入x值为:');
y=isprime(x);
disp(y)
end
或程序
function issushu
% issushu判断是否为素数
x=input('输入x值为:');
k=floor(sqrt(x));
for i=2:k
if(mod(x,i)==0)
t=0;
else
t=1;
end
end
disp(t)
3、编写一个阶乘函数jiecheng.m,然后在试验三的编程题“分别
使用for和while语句找出最小的n值,使得n!>10100,并求出n!”
程序中调用该函数。
jiecheng.m
function y=jiecheng(i)
%计算输入参数的阶乘
y=1;
for a=1:i
y=y*a;
end
for语句实现
clear all
for n=1:100;
if jiecheng(n)>10^100
break
end
end
n
fprintf('n!=');
fprintf('%d',jiecheng(n)); fprintf('>');
fprintf('%g/n',10^100)
while 语句实现
clear all
n=1;
while(jiecheng(n)<10^100) n=n+1;
end
n
fprintf('n!=');
fprintf('%d',jiecheng(n)); fprintf('>');
fprintf('%g\n',10^100)
上机实验十函数与程序结构 学号姓名 一.目的要求 1.掌握函数声明、定义和调用的基本方法 2.掌握用递归函数解决问题的方法。 3.掌握局部变量与全局变量的作用域区别 4.掌握数组作为函数参数的基本方法。 二.实验内容 【实验题1】 分析如下: Line 2中的变量k是_全局_变量;而Line 10中的k是__局部_变量。程序输出结果是k=1,k=1,k=1 。 如果将第10行改为“static int k=1;变量,程序输出结果是k=1,k=2,k=1 。 如果将第10行改为“k=1; ”,该k变量,程序输出结果是k=1,k=1,k=2 。 如果将第10行改为空语句“; ”后,,程序输出结果是k=1,k=2,k=3 。 【实验题2】程序填空:输入一个整数n (1≤n≤10),再输入n个整数,将它们按升序排列后输出。 程序分析_选择法: (1)由于n最大是10,需要定义一个长度为10的整型数组a; (2)整个排序只需要确定前n-1个元素(a[0] ~a[n-2]),最后一个元素a[n-1]无需另外处理; (3)在确定a[i](i=0,1,…,n-2)时,先将a[i]本身看成最小,即令k=i, 并将a[k]与后面的元素a[j](j=i+1, i+2, …, n-1)一一比较, 如果a[j]< a[k],则更新k的值:k =j。找出对应于下标i的最小元素a[k]后,交换a[i]与a[k]。(4)上述排序算法的代码:
运行程序,输入n: 5,输入5个整数:23 -9 14 0 -3,显示结果为: 如果是按从大到小的降序排列,语句行Line 13 应改为:if(a[k]> a[j] ) k=j; [思考题]程序填空: 将上述的程序用函数调用的方式去实现。定义一个sort()函数来实现数组的排序;在main()函数中调用sort()函数来实现数组的排序,并将结果输出。
实验八公式、序列及函数的使用 一、实验目的 1.熟练掌握序列填充及公式复制的方法; 2.掌握常用函数的功能及使用方法,并能用它们来解决一些实际问题。 二、实验内容与操作步骤 在Excel环境下完成以下各操作: (一)序列填充及公式的使用 1.在Excel中创建一个空白工作簿 2.利用Excel提供的数据填充功能,在Sheet1工作表中输入以下数据: ⑴在区域A1:A9中从上到下填入:2,4,6,8,10,12,14,16,18 ⑵在区域B1:B9中从上到下填入:1,2,4,8,16,32,64,128,256 ⑶在区域C1:C12中从上到下填入:JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC ⑷在区域D1:D7中从上到下填入:星期日,星期一,星期二,星期三,星期四,星期五,星期六 3.在Sheet2工作表中,利用公式计算二次函数ax2+bx+c的值,其中a=2,b=3,c=5,x从-3到4变化,每隔0.5取一个函数值。操作方法写出如下: 4.把工作簿以E81.XLS为文件名存入D:\EX8中。 (二)函数的使用 在Excel环境下打开D:\EX8\E82.XLS文件,依次完成以下各操作后按E83.XLS为文件名存入D:\EX8中。 1、统计函数的使用 ⑴单击“统计函数”工作表;
⑵在区域F3:G8中用“统计函数”计算出各分店的统计值。 操作方法是:先在F3单元及G3单元输入的计算公式,然后选定区域F3:G3后双击其填充柄。其中F3单元的公式为,G3单元的公式为。 ⑶在区域B9:E12用“统计函数”计算出各季度的统计值。 2、条件函数的使用 ⑴单击“条件函数”工作表。 ⑵计算出各学生的平均分; ⑶给定各学生的成绩等级,规则如下:平均分≥90为“A”,80≤平均分<90为“B,70≤平均分<80为“C”,60≤平均分<70为“D”,平均分<60为“E”。以此规则在区域F3:F62用IF函数确定各学生的等级。 ⑷用FREQUENCY函数在区域I2:I5中统计出平均分0~59,60~79,80~99,100各分数段的学生人数。 3、文本函数的使用 ⑴单击“文本函数”工作表; ⑵在区域A2:F32给出的数据清单中,编号的前3位为系别信息,101为数学系,102为物理系,103为化学系,据此在区域B3:B32用函数求出每位教师的系别。其中B3单元使用的公式为。 ⑶已知身份证号的第7至第10位数为出生年份,据此在区域F3:F32用函数求出每位教师的出生年份。其中F3单元使用的公式为。 4、日期函数的使用 ⑴单击“日期函数”工作表; ⑵在区域A2:F32给出的数据清单中,在区域E3:E32用日期函数求出每位职工的工龄。其中E3单元使用的公式为。 ⑶在区域F3:F32用日期函数求出每位职工的工作天数(即自参加工作以来已经过的总天数。其中F3单元使用的公式为。 5、财务函数的使用 使用 PMT 函数完成以下有关的操作: ⑴单击“财务函数”工作表; ⑵某企业向银行贷款5 万元,准备4年还清,假定当前年利率为 4 % ,在 B5 单元 计算每个月应向银行偿还贷款的数额,根据条件在 B2 : B4 补充所需内容。其中单元格B5 使用的公式为。 ⑶假定当前年利率为 5 %,为使 5 年后得到 10 万元的存款,在 D5 单元计算现在开
C语言程序设计实验教学(7) 【实验目的】函数是C程序的基本组成部分,学习函数的设计和调用是很重要的。实验目的是掌握函数的定义、变量的作用域和函数的调用。 【实验要求】实际应用程序通常是由多个函数构成的,要求将常见的功能模块用函数形式实现,并学会在主函数或其他函数中调用定义的函数。要学会函数声明。 【实验课时】6.0 【实验内容】 编写函数fun(n),n为三位自然数,判断n是否为水仙花数,是返回1,否返回0。编写main 函数,输入一个数num,调用fun(num)函数,并输出函数的返回值。 #include "stdio.h" int fun(int n) {int a,b,c; a=n%10; b=n/10%10; c=n/100; if(a*a*a+b*b*b+c*c*c==n) return(1); else return(0);} main() {int num; scanf("%d",&num); while(num<100||num>=1000) {printf("please enter the num again! (num>=100&&num<1000) \n"); scanf("%d",&num);} if(fun(num)==1) printf(" yes \n"); else printf(" no \n");} 编写函数ss(n), 判断n是否为素数,是返回1,否返回0。编写main函数,输入一个数num,调用ss(num)函数,并输出函数的返回值。 #include "stdio.h" int ss(int n) {int i; for(i=2;i
实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的容及其所指的对象的容 6.联系通过动态存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示、街道地址、城市和邮编等属性,change_name()改变对象的属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:char name[11]、编号char number[7]、性别char sex[3]、生日birthday、号char id[16]。其中“出生日期”定义为一个“日期”类嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配存生成动态数组。通过Debug观察指针的容及其所指的对象中的容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷 贝。 4.使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。 5.在employee.h文件中定义Employee类。Employee类具有、街道地址、城市和邮编等私
八年级数学一次函数的应用专题汇编 一.解答题(共12小题) 1.(?常德模拟)抗战救灾中,某县粮食局为了保证库存粮食的安全,决定将甲、乙两个仓 库的粮食全部转移到具有较强抗震功能的A、B两仓库,已知甲库有粮食80吨,乙库有粮食100吨,而A库的容量为110吨,B库的容量为70吨.从甲、乙两库到A、B两库的路程和运费如下表:(表中“元/吨?千米”表示每吨粮食运送1千米所需人民币) 路程(千米)运费(元/吨?千米) 甲库乙库甲库乙库 A库20 15 13 12 B库25 20 10 8 (1)若甲库运往A库粮食x吨,请写出将粮食运往A、B两库的总运费y(元)与x(吨)的函数关系式; (2)当甲、乙两库各运往A、B两库多少吨粮食时,总运费最省,最省的总运费是多少? 2.(?深圳模拟)某工厂生产一种合金薄板(其厚度忽略不计),这些薄板的形状均为正方形,边长(单位:cm)在5~50之间,每张薄板的成本价(单位:元)与它的面积(单位: cm 2 )成正比例,每张薄板的出厂价(单位:元)由基础价和浮动价两部分组成,其中基础 价与薄板的大小无关,是固定不变的,浮动价与薄板的边长成正比例,在营销过程中得到了表格中的数据. 薄板的边长(cm)20 30 出厂价(元/张)50 70 (1)求一张薄板的出厂价与边长之间满足的函数关系式; (2)40cm的薄板,获得的利润是26元(利润=出厂价﹣成本价). ①求一张薄板的利润与边长之间满足的函数关系式; ②当边长为多少时,出厂一张薄板获得的利润最大?最大利润是多少?
3.(?武昌区校级模拟)某商店购进A型和B型两种电脑进行销售,已知B型电脑比A型电脑的每台进价贵500元,若商店用3万元购进的A型电脑与用 4.5万元购进的B型电脑的数量相等.A型电脑每台的售价为1800元,B型电脑每台的售价为2400元. (1)求A、B两种型号的电脑每台的进价各是多少元? (2)该商店计划用不超过12.5万元购进两种型号的电脑共100台,且A型电脑的进货量不超过B型电脑的. ①该商店有哪几种进货方式? ②若该商店将购进的电脑全部售出,请你用所学的函数知识求出获得的最大利润. 4.(?深圳二模)在“五?一”期间,“佳佳”网店购进A、B两种品牌的服装进行销售,已知B 种品牌服装的进价比A种品牌服装的进价每件高20元,2件A种品牌服装与3件B种品牌服装进价共560元. (1)求购进A、B两种品牌服装的单价; (2)该网站拟以不超过1120元的总价购进这种两品牌服装共100件,并全部售出.其中A 种品牌服装的售价为150元/件,B种品牌服装的售价为200元/件,该网站为了获取最大利润,应分别购进A、B两种品牌服装各多少件?所获取的最大利润是多少?
实验6 函数 班级:学号: 姓名:日期: 一、实验目的 (1)掌握定义函数的方法; (2)掌握函数实参与形参的对应关系,以及“值传递”的方式; (3)掌握函数的嵌套调用和递归调用的方法; (4)掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法; (5)学习对多文件的程序编译和运行。 二、实验内容 1.阅读下面程序,写出程序运行结果,并且上机进行验证。 (1)a1.cpp 变量的虚实耦合,实现的是值传递,是单向传递 #include "stdio.h" int swap(int a,int b) { int c,s; c=a; a=b; b=c; s=a+b; return s; } void main() { int a,b,s; a=3;b=4; s=swap(a,b); printf("a=%d b=%d s=%d\n",a,b,s); } (2)a2.cpp
将十进制数26的各位数字相乘 #include "stdio.h" int fun(int num) { int k=1; do { k*=num %10; / num/=10; }while(num); return(k); } void main() { int n=26; printf("%d\n",fun(n)); } (3)a3.cpp 变量的作用域,当在函数内定义了与全局变量同名的局部变量时,全局变量被屏蔽#include "stdio.h" int a=3,b=5,c; void f(int b) { c=a+b; printf("%d %d %d\n",a,b,c); } void main() { int a=8; f(3); printf("%d %d %d\n",a,b,c); } (4)a4.cpp 递归,将十进制11转换为二进制 #include "stdio.h" void dtob(int n) { int i;
实验四 MATLAB 程序设计 1.实验目的 (1)熟练掌握MATLAB 的程序流程控制结构。 (2)掌握M 文件的结构,M 函数文件编写、使用。 (3)熟练掌握函数调用和参数传递。 2.实验仪器 (1)Matlab6.5应用软件安装版 一套 (3)PC 机 一台 3. 实验原理 依据MA TLAB 的编程的原理,编写M 函数文件,调用M 函数文件,完成曲线绘制。 4. 实验步骤 (1)利用for 、while 控制语句和sum 指令求和。 (2)使用MA TLAB 函数文件绘图。 (3)利用置换指令绘制脉冲响应曲线. (4)利用feval 指令实现指定的函数。 5. 实验报告内容(选做其中两题) (1)分别用for 和while 循环语句计算∑==630i i 2 K 的程序,再写出一种避免循环的计算程序。 (提示:可考虑利用MA TLAB 的sum (X,n )函数,实现沿数组X 的第n 维求和。)保存为M 文件. (2)将课本例4-8子函数编程及调用演示,三个子图上的圆和多边形绘制在同一坐标系中。并保存为M 文件。保存输出结果图。 (3)利用置换指令subs(X,new),例4-18中的脉冲响应在t=[0,18]的曲线。并保存为M 文件。保存输出结果图。 (4)试利用feval ()指令计算F(x)+F 2(x),其中F 可取‘sin ’、‘cos ’。(提示:先编写以个M 函数function y=trif(F,x)实现F(x)+F 2(x)的计算,在编写调用函数完成F 为‘sin ’、‘cos ’的计算),并保存为M 文件。(指定完成sin(pi/2)+sin(pi/2)^2; cos(pi/3)+cos(pi/3)^2)
一次函数的应用(提高) 【学习目标】 1. 能从实际问题的图象中获取所需信息; 2. 能够将实际问题转化为一次函数的问题并准确的列出一次函数的解析式; 3. 能利用一次函数的图象及其性质解决简单的实际问题; 4. 提高解决实际问题的能力.认识数学在现实生活中的意义,发展运用数学知识解决实际问题的能力. 【要点梳理】 【高清课堂:393616 一次函数的应用,知识要点】 要点一、数学建模的一般思路 数学建模的关键是将实际问题数学化,从而得到解决问题的最佳方案、最佳策略.在建模的过程中,为了既合乎实际问题又能求解,这就要求在诸多因素中抓住主要因素进行抽象化简,而这一过程恰是我们的分析、抽象、综合、表达能力的体现.函数建模最困难的环节是将实际情景通过数学转化为什么样的函数模型. 要点二、正确认识实际问题的应用 在实际生活问题中,如何应用函数知识解题,关键是建立函数模型,即列出符合题意的函数解析式,然后根据函数的性质综合方程(组)、不等式(组)及图象求解. 要点诠释:要注意结合实际,确定自变量的取值范围,这是应用中的难点,也是中考的热门考点. 要点三、选择最简方案问题 分析问题的实际背景中包含的变量及对应关系,结合一次函数的解析式及图象,通过比较函数值的大小等,寻求解决问题的最佳方案,体会函数作为一种数学模型在分析解决实际问题中的重要作用. 【典型例题】 类型一、简单的实际问题 1、(2016·四川攀枝花)某市为了鼓励居民节约用水,决定实行两级收费制度.若每月用水量不超过14吨(含14吨),则每吨按政府补贴优惠价m 元收费;若每月用水量超过14吨,则超过部分每吨按市场价n 元收费.小明家3月份用水20吨,交水费49元;4月份用水18吨,交水费42元. (1)求每吨水的政府补贴优惠价和市场价分别是多少? (2)设每月用水量为x 吨,应交水费为y 元,请写出y 与x 之间的函数关系式; (3)小明家5月份用水26吨,则他家应交水费多少元? 【思路点拨】先列方程组求m 和n ,再根据函数关系的变化进行分段,分别求出各段的函数解析式. 【答案与解析】 解:(1)设每吨水的政府补贴优惠价为m 元,市场调节价为n 元. 14(2014)4914(1814)42 m n m n +-=??+-=?,
Matlab 课后实验题答案 实验一 MATLAB 运算基础 1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 (1) 0 12 2sin851z e =+ (2) 221 ln(1)2z x x = ++,其中2120.45 5i x +??=??-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+= ++=-- (4) 22 42011 122123t t z t t t t t ?≤=-≤?-+≤ ,其中t =0:0.5:2.5 解: M 文件: z1=2*sin(85*pi/180)/(1+exp(2)) x=[2 1+2*i;-.45 5]; z2=1/2*log(x+sqrt(1+x^2)) a=-3.0:0.1:3.0; z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) t=0:0.5:2.5; z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1) 2. 已知:
1234413134787,2033657327A B --???? ????==???? ????-???? 求下列表达式的值: (1) A+6*B 和A-B+I (其中I 为单位矩阵) (2) A*B 和A.*B (3) A^3和A.^3 (4) A/B 及B\A (5) [A,B]和[A([1,3],:);B^2] 解: M 文件: A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7]; A+6.*B A-B+eye(3) A*B A.*B A^3 A.^3 A/B B\A [A,B] [A([1,3],:);B^2] 3. 设有矩阵A 和B 1234 53 166789101769,11 121314150 23416171819209 7021222324254 1311A B ???? ????-??? ?????==-??? ? ???????????? (1) 求它们的乘积C 。 (2) 将矩阵C 的右下角3×2子矩阵赋给D 。 (3) 查看MATLAB 工作空间的使用情况。 解:. 运算结果: E=(reshape(1:1:25,5,5))';F=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]; C= E*F H=C(3:5,2:3) C = 93 150 77
实验8 函数(一)实验目的: 1、理解自定义函数过程的定义与调用方法; 2、掌握自定义函数的定义与调用方法; 3、理解函数中的参数的作用; 实验内容: 1、编写一函数Fabonacci(n),其中参数n代表第n 次的迭代。While循环 def fib(n): if n==1 or n==2: return 1 a=1 b=1 i=2 while True: c=a+b a=b b=c i+=1 #第i次迭代,也就就是第i个数 if i==n: return c break def main(): n=input("Enter a number of generation:") print fib(n) main() 或者用for循环 def fib(n): a=1 b=1 c=0 if n==1 or n==2: return 1 else: for i in range(3,n+1): c=a+b a=b b=c return c def main(): n=input("enter n:") print fib(n) main() 2、编写一函数Prime(n),对于已知正整数n,判断该数就是否为素数,如果就是素数,返回True,否则返回 False。 def prime(n): if n<2: return False a=0 for i in range(1,n+1): if n%i==0: a+=1 if a>2: return False else: return True def main(): n=input("Enter a number:") print prime(n) main() Or: def prime(n): if n<2: return False if n==2: return True for i in range(2,n): if n%i==0: return False return True def main(): n=input("Enter a number:") print prime(n) main()
实验四 函数文件 1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。 函数文件: function [e,ln,s,c]=plural(x) e=exp(x); ln=log(x); s=sin(x); c=cos(x); End 命令文件: x=input('请输入一个复数:'); [e,ln,s,c]=plural(x); e ln s c 运行结果: 请输入一个复数:3+4i e = -13.1288 -15.2008i ln = 1.6094 + 0.9273i s = 3.8537 -27.0168i c = -27.0349 - 3.8512i 2.一物理系统可用下列方程组来表示: ? ?????????????=??????????????????????????----g g m m N N a a m m m m 2121212111001cos 000sin 00cos 0sin 0sin cos θθ θθ θθ 从键盘输入m 1、m 2和θ的值,求N a a 121、、和N 2的值。其中g 取9.8,输入 θ时以角度为单位。 函数文件: function [a1,a2,N1,N2]=physis(m1,m2,t) g=9.8; A=[m1*cos(t*pi/180),-m1,-sin(t*pi/180),0;... m1*sin(t*pi/180),0,cos(t*pi/180),0;... 0,m2,-sin(t*pi/180),0;... 0,0,-cos(t*pi/180),1]; B=[0;m1*g;0;m2*g];
八年级数学-一次函数的应用典型例题(一) 一次函数解析式的一般形式是y=kx+b(k≠0),利用这一关系式可以解决一些实际问题或几何题.现举例说明如下. 例1 某种储蓄的月利率是0.36%,今存入本金100元,求本息和(本金与利息的和)y(元)与所存月数x之间的函数关系式,并计算5个月后的本息和(1998年宁夏回族自治区中考题) 分析∵利息=本金×月利率×月数, ∴y=100+100×0.36%×x=100+0.36x. 当x=5时,y=100+0.36×5=101.8,即5个月后的本息和为101.8元. 例2 托运行李P千克(P为整数)的费用为C,已知托运第一个1千克需付2元,以后每增加1千克(不足1千克按1千克计)需增加费用5角,则计算托运行李费用C的公式是______,托运重量为28.4千克的行李需付______元.(1996年安徽省中考题) 分析由题意知C=2+0.5(P-1).(P为自然数) 根据题意,28.4千克应按29千克计算,则当P=29时,C=2+0.5(29-1)=16(元). 例3 如图,在直角梯形ABCD中,∠C=45°,上底AD=3,下底BC=5,P是CD上任意一点,若PC 用x表示,四边形ABPD的面积用y表示. (2)当四边形ABPD的面积是梯形ABCD面积的一半时,求点P的位置. 分析 (1)过D,P分别作DE⊥BC,PF⊥BC,垂足为E,F. ∵∠C=45°, ∴DE=EC=BC-AD=5-3=2. 在Rt△PFC中,PC=x, ∠C=45°,
(2)当四边形ABPD的面积是梯形面积一半时,则 例4 A市和B市分别有某种库存机器12台和6台,现决定支援C村10台,D村8台,已知从A 市调运一台机器到C村和D村的运费分别是400元和800元,从B市调运一台机器到C村和D 村的运费分别是300元和500元. (1)设B市运往C村机器x台,求总运费W关于x的函数关系式; (2)若要求总运费不超过9000元,共有几种调运方案? (3)求出总运费最低的调运方案,最低运费是多少元? 分析由已知条件填出下表: (1)依题意得函数式: W=300x+500(6-x)+400(10-x)+800[8-(6-x)] =200x+8600. ∴x=0,1,2,共有3种调运方案. (3)当x=0时,总运费最低,即从A市调10台给C村,调2台给D村,从B市调6台给D村,为总运费最低的调运方案,最低运费为8600元.
实验八函数 【目的与要求】 1.掌握C语言函数的定义方法、函数的声明及函数的调用方法。 2.了解主调函数和被调函数之间的参数传递方式。 【上机内容】 【一般示例】 【例1】将打印18个"*"组成星形线定义为一个返回值和形参列表都为空的函数,通过主函数调用它。 #include
#include
桂林理工大学博文管理学院信息科学系课程内实验(上机)报告 (2014 —2015 学年第二学期) 课程名称: 班级: 学号: 姓名: 成绩:
实验四使用输入、输出函数 一、实验内容: 1. 实验要求: 格式输入函数scanf( )、getchar( )和格式输出函数 printf( )、putchar( )的使用。 2.分析与设计: 输入函数中的普通字符需要原样输入,并注意分隔符的使用;输出函数中的格式控制符和输出项数要一一对应。 3.源代码: 程序1:为使得a=1,b=2,c=‘A’,d=5.5,在键盘上如何输入?并在该程序中添加printf语句将a,b,c,d四个变量输出出来, 文件名为sy41.c。 请将输入、输出结果复制的此处: 程序2:判断下面程序的运行结果, 文件名为sy42.c。 运行程序其结果为:
分析得到此结果的原因。 程序3:以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上输出。完成以下填空,并把程序调通,写出当输入为45,34.5,A<回车>时程序的运行结果, 文件名为sy43.c。 #include
4.编程题 (1)参见教材P82,习题1,文件名为sy45.c。 提示:1、使用公式计算p=(1+r)n,应用数学公式,请参考教材附录F——C 库函数中的数学函数,P385,pow函数的使用方法,即:p=(1+r,n)。 2、引用数学函数时,在程序开头要引用数学函数的头文件。 请将编写好的源程序及运行结果复制到此处: (2)参见教材P84,习题6,文件名为sy46.c。 请将编写好的源程序及运行结果复制到此处: 二、实验时间:(注:一个项目多次实验的时间全部写上) 2015-4-15 三、完成的主要工作
实验4 函数的应用 【实验目的】 1掌握函数声明、定义和调用的方法; 2了解函数调用的实参与形参的传递,以及参数默认值的设置。 3掌握重载函数的实现方法。 4理解递归和嵌套函数的概念、定义与调用。 【实验内容】 ⒈分别输入整数半径和实数半径,使用函数重载计算圆的面积。 #include ⒊编写程序,求)! (!!m n m n C m n -= #include 学生姓名:李亚军学号: 96 专业班级:卓越计科121班 1.实验目的 通过编写文件读写及上锁的程序,进一步熟悉 Linux 中文件 I/O 相关的应用开发,并 且熟练掌握 open()、read()、write()、fcntl()等函数的使用。 2.实验内容 在 Linux 中 FIFO 是一种进程之间的管道通信机制。Linux 支持完整的 FIFO通信机制。本实验内容,通过使用文件操作,仿真 FIFO(先进先出)结构以及生产者-消费者运行模型。本实验中需要打开两个虚拟终端,分别运行生产者程序(producer)和消费者程序(customer)。此时两个进程同时对同一个文件进行读写操作。因为这个文件是临界资源, 所以可以使用文件锁机制来保证两个进程对文件的访问都是原子操作。 先启动生产者进程,它负责创建仿真 FIFO 结构的文件(其实是一个普通文件)并投 入生产,就是按照给定的时间间隔,向 FIFO 文件写入自动生成的字符(在程序中用宏定 义选择使用数字还是使用英文字符),生产周期以及要生产的资源数通过参数传递给进程(默认生产周期为 1s,要生产的资源数为 10 个字符)。 后启动的消费者进程按照给定的数目进行消费,首先从文件中读取相应数目的字符 并在屏幕上显示,然后从文件中删除刚才消费过的数据。为了仿真 FIFO 结构,此时需要 使用两次复制来实现文件内容的偏移。每次消费的资源数通过参数传递给进程,默认值 为10 个字符。 3.实验步骤 (1)实验流程图本实验的两个程序的流程图如图: 开始开始 (producer)(customer) 消费资源 创建FIFO结构文件(打印字符) 否 消费够了吗 生产一个资源 是 上锁 上锁 将剩下的数据拷贝到 等待临时文件tmp中 一秒将“生产”的字符 写入到FIFO结构文件 用临时文件tmp覆盖 原数据文件,这样 模拟FIFO结构 解锁 解锁 生产完了吗 删除临时文件 实验十函数应用 一?实验目的 1.掌握函数的定义和调用; 2.理解形参和实参的使用和传值调用; 3.理解函数声明的使用; 4.掌握函数的嵌套调用; 5.了解函数的嵌套与递归调用,掌握递归函数的编写规律; 6.了解数组元素、数组名作函数参数。 二?实验学时数 2学时 三?实验步骤 (一)阅读程序 1.#include x=x-y; printf("%d,%d\n",x,y); 3.#include MATLAB实验报告 学院:光电学院 班级:073-1 姓名:刘颖 学号:200713503117 实验五 函数文件 1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。 程序设计: function [e ln s c]=num(x) e=exp(x) ln=log(x) s=sin(x) c=cos(x) end 运行结果: >> num(5i) e = 0.2837 - 0.9589i ln = 1.6094 + 1.5708i s = 0 +74.2032i c = 74.2099 ans = 0.2837 - 0.9589i 2.一物理系统可用下列方程组来表示: ??? ? ??? ???????= ?????? ??? ??? ???????????? ??----g g m m N N a a m m m m 2121212 111001cos 0 0sin 00cos 0 sin 0sin cos θ θθ θθθ 从键盘输入 m 1 、 m 2 和θ的值,求 N a a 121、、和 N 2 的值。其中g 取9.8,输入θ时以角度为单位。 程序设计: 函数文件in.m: function [a1,a2,N1,N2]=in(m1,m2,t) g=9.8; A=[m1*cos(t) -m1 -sin(t) 0;m1*sin(t) 0 cos(t) 0;0 m2 -sin(t) 0;0 0 -cos(t) 1]; C=[0;m1*g;0;m2*g]; B=inv(A)*C; a1=B(1); a2=B(2); N1=B(3); N2=B(4); end 调用in.m 的命令文件: >> m1=1;m2=2;t=30*pi/180; >> [a1,a2,N1,N2]=in(m1,m2,t) 运行结果: a1 = 6.5333 a2 = 1.8860 N1 = 7.5440 N2 = 26.1333 4.设 f(x)= 01 .01 1 .01 ) 3() 2(4 2 +++--x x , 编写一个MATLAB 函数文件fx.m ,使得调用f(x)时,x 可用矩阵代入,得出的f(x)为同阶矩阵。 程序设计: 函数文件fx.m: function A=fx(x) A=1./((x-2).^2+0.1)+1./(((x-3).^4)+0.01) end 调用fx.m 的命令文件: >> A=fx([1 2;2 3;4 3]) 运行结果: A = 0.9716 10.9901 10.9901 100.9091 1.2340 100.9091 5.已知y= ) 20()30() 40(f f f + (1)当f(n)=n+10ln(n 2+5)时,求y 的值。 淮海工学院计算机科学系实验报告书 课程名:《C语言程序设计A 》 题目:实验8 函数 ——递归函数 班级:软嵌151 学号:2015123349 姓名:陈正宁 1、实验内容或题目 (1)用递归编写n!的函数,并在main主函数中调用此函数。 (2)有n个大小不同的盘片从大到小放在A柱上,另有B和C两个空柱,要求将这n个盘片从A柱搬到C柱上,在搬动过程中,每次只能搬一个盘片,而且小的不能放在大的之下。编写hanio函数实现搬迁过程。 (3)编写一个程序,求解皇后问题:在n×n的方格棋盘上,放置n个皇后,要求每个皇后不同行、不同列、不同左右对角线。 2、实验目的与要求 (1)要求熟练掌握函数的定义和调用,熟悉函数返回值的使用。 (2)熟悉函数调用的方式和过程。 (3)重点掌握递归函数的使用。 (4)要求实验的第2题采用递归函数编写,盘片的数目在main主函数中输入。提示:函数的参数定义如hanio(n,A,C,B),表示将n个盘片从A柱通过C柱搬到B柱。 (5)要求实验的第3题采用递归函数编写皇后的个数n由用户输入,其值不能超过20;采用整数数组q[N]求解结果,因为每列只能放一个皇后,q[i]的值表示第i个皇后所在的行号,即该皇后放在(q[i],i)的位置上。求解皇后问题的递归模型如下:place(i,n):若i=n,则n个皇后放置完毕,输出解(输出q数组元素) place(k,n):在第k列找一个合适位置i,放置一个皇后(即q[k]=i);place(k+1,n);其中,place(k,n)表示前面的第1,…,k-1个皇后放置好后,现在用于放置k,…,n的皇后。 3、实验步骤与源程序 ⑴实验步骤 ⑵源代码 (1)、 #include实验4 文件操作
实验十函数应用答案
MATLAB实验五 函数文件
实验8 函数——递归函数