实验6 函数的定义和调用1

实验6 函数的定义和调用1
实验6 函数的定义和调用1

实验六函数的定义和调用

一、实验实训目的及要求

1、掌握C语言函数的定义方法、函数的声明及函数的调用方法。

2、了解主调函数和被调函数之间的参数传递方式。

二、实验实训内容

1、写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。

2、写两个函数,分别求两个正数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。两个正数由键盘输入。

三、实验实训指导

1、程序清单:

mian()

{

int number;

printf(“请输入一个正整数:\n”);

scanf(“%d”,&number);

if (prime(number))

printf(“\n %d是素数.”,number);

else

printf(“\n %d不是素数.”,number);

}

int prime(int number) /*此函数用于判别素数*/

{

int flag=1,n;

for(n=2;n

if (number%n==0)

flag=0;

return(flag);

}

判断素数的算法,我们在以前学习循环的时候已经学过了,在这里只是把这个算法用函数的形式表示出来。这里我们要注意函数的定义、声明的方法和格式。

2、程序清单:

#include "stdio.h"

2

hcf(int u,int v)

{ int a,b,t,r;

if(u>v)

{ t=u; u=v; v=t; }

a=u; b=v;

while((r=b%a)!=0)

{ b=a; a=r; }

return(a);

}

lcd(int u,int v,int h)

{ return(u*v/h); }

main()

{

int u,v,h,l;

scanf("%d,%d",&u,&v);

h=hcf(u,v);

printf("H.C.F=%d\n",h);

l=lcd(u,v,h);

printf("L.C.D=%d\n",l);

}

这是一个十分典型的算法,同学们一定要认真分析、学习。

四、实训思考题

1编写函数,求1!+2!+…+n!的和。N的值有键盘输入。

实验指导书

实验6+过程_函数和程序...

实验6过程、函数和程序包 姓名:学号: 专业:班级: 同组人:无实验日期:2013/7/21 【实验目的与要求】 ?掌握过程的创建与调用 ?掌握PL/SQL函数的编写与调用 ?熟悉程序包的使用 【实验内容与步骤】 6.0.实验准备工作:PL/SQL程序文件的编辑与执行 1.使用文档编辑器编辑以下文件,并保存为aa.sql: 2.以scott身份登录,在SQ L Plus中执行@aa命令运行程序: 注:测试时,文件名请用全名(即包含路径,如:@c:\aa) 给出运行结果:

6.1.存储过程 1.最简单的存储过程编写与执行 (1)创建测试表 drop table Exam_Table; create table Exam_Table( e_id number(5), e_name varchar2(20), e_salary number(8,2) ); (2)创建存储过程 create or replace procedure insert_salary (v_id number,v_name varchar2,v_salary number) is begin insert into Exam_Table values (v_id,v_name,v_salary); commit; dbms_output.put_line('数据插入成功'); end; / (3) 执行(调用)存储过程 exec insert_salary(6,'g',2000); (4)查询执行结果

select * from Exam_Table; 给出执行的最后结果: 2.参数的使用:in/out/in out参数 阅读以下程序,理解不同类型参数使用的不同,运行程序,给出运行结果。 (1) 用两个参数:in ,out 传入一个姓名,输出:某某人你好: create or replace procedure mp(v_in varchar2,v_out out varchar2) is begin v_out:=v_in||'你好'; end; declare v_name varchar2(10); begin mp('scott',v_name); dbms_output.put_line(v_name); end;--输出:scott你好 给出运行结果:

实验一数据库定义实验

实验一数据库定义实验 一、实验目的 使用SQL Server Management Studio、T-SQL语句创建和管理数据库,学会使用SQL Server查询分析器接收 T-SQL语句和进行结果分析。使用T-SQL语句进行数据表的创建和删除,并对数据表和表中的数据进行有效有管理。 二、实验环境 实验室名称:11#208 软件环境:操作系统:windows 10;SQL 2008 硬件环境:安装内存(RAM):可用) 处理器:Intel(R) Core(TM) i5-5200U CPU @ 硬盘:250GB-SSD 500GB-HDD 三、实验内容 1.用SQL Server Management Studio创建、修改数据库 2.用T-SQL语句创建、修改数据库 3.用SQL Server Management Studio创建、修改数据表 4.用T-SQL语句创建、修改数据表

四、实验步骤及实验结果分析 (一)、创建、修改数据库 1.用SQL Server Management Studio创建步骤: (1)、单击“开始”菜单选择“所有程序”->Microsoft SQL Server 2008->SQL Server Management Studio (2)、单击“视图”->”对象资源管理器”->右击“数据库”->选择“新建 数据库”命令 (3)、在“数据库名称”文本框中输入新建数据库的名称,本例输入“JXGL” (4)、在“新建数据库”的对话框里设置“常规”、“选项”、“文件组” 2.用SQL Server Management Studio修改数据库步骤: (1)、在“对象资源管理器”窗口右击要修改大小的数据库,选择“属性”弹 出属性对话框 (2)、在属性对话框中的“常规”、“文件”、“文件组”、“选项”、“更改跟踪”、 “权限”、“扩展属性”、“镜像”、“事务日志传送”修改数据库的相关信息 3.用SQL Server Management Studio删除数据库 右击要删除的数据库,在弹出的菜单中选择删除命令在弹出的“删除对象” 的对话框中,单击“确定”按钮 4.用T-SQL语句创建数据库: (1)、打开SSMS窗口,并连接到服务器 (2)、依次选择“文件”->”新建”->“数据库引擎查询”命令或者单击标 准工具栏的“新建查询”按钮,创建一个查询输入窗口 (3)、在窗口中输入以下create database 语句:

实验1 数据定义

实验1、数据定义 1、实验目的 熟悉SQL的数据定义语言,能够熟练地使用SQL语句来创建和更改基本表,创建和取消索引。 2、实验内容 ●用SSMS创建数据库University_Mis ●使用CREATE语句创建基本表。 ●更改基本表的定义: 增加列,删除列,修改列的数据类型。 ●创建表的升、降序索引。 ●删除基本表的约束、基本表的索引或基本表。 3、实验步骤 (1)用SSMS创建数据库University_Mis 通过菜单[Microsoft SQL Server]→[启动SSMS]。 利用SSMS工具新建数据库University_Mis 数据库名称:University_Mis 数据库相关参数设置:采用系统默认设置 (2)在SSMS中用SQL语句创建关系数据库基本表: ?学生表Students(Sno,Sname, Semail,Scredit,Sroom);

?教师表Teachers(Tno,Tname,Temail,Tsalary); ?课程表Courses(Cno,Cname,Ccredit);

成绩表Reports(Sno,Tno,Cno, Score); 其中:Sno、Tno、Cno分别是表Students、表Teachers、表Courses的主键,具有唯一性约束,Scredit具有约束“大于等于0”;Reports中的Sno,Tno,Cno是外键,它们共同组成Reports的主键。 (3)更改表Students:增加属性Ssex(类型是CHAR,长度为2),取消Scredit “大于等于0”约束。把表Courses中的属性Cname的数据类型改成长度为30。

基于自定义函数的Function

基于自定义函数的Function-Based索引创建 发表日期:2008-2-9 新浪微博QQ空间QQ微博百度搜藏腾讯朋友QQ收藏百度空间人人网开心网 - 留言版上的第2330号问题是: 在oralce中给自建函数创建索引,结果不成功。source:Create Index IDX_T_SP_TWOTYPESTA T_0_f On T_SP_TWOTYPESTA T_0(f_dateadd(yearmonth,12,2)); err:the function is not deterministic. 我们看一下这是为什么? 随便一个测试可以再现这个问题,我门创建一个函数(本范例函数用于进行16进制向10进制转换): CREA TE OR REPLACE FUNCTION h2ten ( p_str IN V ARCHAR2, p_from_base IN NUMBER DEFAULT 16 ) RETURN NUMBER IS l_num NUMBER DEFAULT 0; l_hex V ARCHAR2 (16) DEFAULT '0123456789ABCDEF'; BEGIN FOR i IN 1 .. LENGTH (p_str) LOOP l_num := l_num * p_from_base + INSTR (l_hex, UPPER (SUBSTR (p_str, i, 1))) - 1; END LOOP; RETURN l_num; END h2ten; 此时创建索引,获得如下错误信息: SQL> create table t as select username,'a' hex from dba_users; Table created SQL> create index i_t on t (h2ten(hex)); create index i_t on t (h2ten(hex)) ORA-30553: The function is not deterministic

实验六 高层绘图操作答案

实验六 高层绘图操作 实验目的: 1. 掌握绘制二维图形的常用函数 2. 掌握绘制三维图形的常用函数 3. 掌握绘制图形的辅助操作 实验内容: 1. 1. 设x x x y cos 2^1sin 35.0????? ? ++=,在π 2~ 0=x 区间取101点,绘制函数曲 线。 x=0:pi/100:2*pi; y=(0.5+3*sin(x)./(1+x..^2)).*cos(x); plot(x,y); 2. 已知2 1x y = ,)2cos(2x y =,213y y y ?=,完成下列操作: (1) 在同一坐标系下用不同的颜色和线型绘制三条曲线。 (2) 以子图形式绘制三条曲线。 (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 (1).在同一坐标系下用不同的颜色和线型绘制三条曲线。 x=0:pi/1000:2*pi; y1=x.^2; y2=cos(2*x); y3=y1.*y2;

plot(x,y1,'r',x,y2,'b-.',x,y3,'k--'); (2). 以子图形式绘制三条曲线。 x=0:pi/10:2*pi; y1=x.^2; subplot(2,2,1);plot(x,y1,'r'); title('y1=x^2'); y2=cos(2*x); subplot(2,2,2);plot(x,y2,'b-.'); title('y2=cos(2*x)'); y3=y1.*y2; subplot(2,2,3);plot(x,y3,'k--'); title('y3=y1.*y2'); (3). 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。x=0:pi/10:2*pi; y1=x.^2; subplot(2,2,1);bar(x,y1,'r'); title('y1=x^2'); subplot(2,2,2);stairs(x,y1,'r'); title('y1=x^2'); subplot(2,2,3);stem(x,y1,'r'); title('y1=x^2'); subplot(2,2,4);fill(x,y1,'r');

数据定义实验报告

数据库原理与应用实验报告 实验1、数据定义 1.1实验目的 熟悉SQL的数据定义语言,能够熟练地使用SQL语句来创建和更改基本表,创建和取消索引。 1.2实验内容 1.2.1基本表的建立: a)建立一个“学生”表Student,它由学号xh、姓名xm、性别xb、年龄 nl、所在系xi五个属性组成,其中学号属性不能为空,并且其值是 唯一的。 b)建立一个“学生”表Student,它由学号xh、姓名xm、性别xb、年龄 nl、所在系xi五个属性组成,其中学号属性不能为空,并创建检查 约束(nl>0)。 c)建立一个“学生”表Student,它由学号xh、姓名xm、性别xb、年龄 nl、所在系xi五个属性组成,要求学号为主键,xb有默认的值为‘男’。 d)建立“课程kc”包括课程号kch,课程名称kcmc,先修课程xxkc,学 分xf,要求建立主键。 e)建立“成绩登记表cjdj”包括学号xh,程号kch,成绩,要求建立主键 及与student及kc表联接的外键。 1.2.2基本表的修改:

a)在cjdj表中增加一列“任课教师rkjs”。 b)删除cj表中rkjs一列。 c)将student表的xm一列允许空值的属性更改成不允许为空,将列 xm的长度由char(8)改为char(10)。 d)增加cjdj表的列cj增加一个约束要求cj>0 and cj<=100。 e)建立一个临时表,再将其删除。 1.2.3索引的建立与删除(理解以下语句的含义并上机实践): a)create unique index stu_xh on student(xh) b)create index xh_kch on cj(xh asc,kch desc) c)drop index student.xh_kch 1.3实验结果 1.3.1基本表的建立 a)建立一个“学生”表Student,它由学号xh、姓名xm、性别xb、年龄nl、 所在系xi五个属性组成,其中学号属性不能为空,并且其值是唯一的。

数据库实验一 基本SQL2015

实验一Oracle数据库SQL 班级:姓名:学号: 任课教师:实验教师:上机时间: 【实验目的】 在给定的关系数据库管理系统Oracle环境下,通过实验学生能够: 1、Oracle环境的认识及熟悉,了解其对标准SQL的扩充。 2、掌握Oracle环境下数据定义包括数据库、基本表、视图、索引定义。 3、掌握Oracle环境下数据操纵包括数据插入、删除、修改。 4、掌握Oracle环境下数据查询及其各种变化。 【实验性质】 验证性实验 【实验学时】 4H 【实验内容】 设有一个SPJ关系型数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY) 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成; 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成; 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成; 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,QTY 表示某供应商供应某种零件给某工程项目的数量为QTY。 其中供应商表s增加一列sqty,记录每个供应商供应零件总数量。 今有若干数据如下:

请根据以上内容完成下面题目,写出相应的SQL语句。(空位不够请自行续页) 1、创建表(定义s表:sno主码,sname非空、city缺省值为北京。定义p表:pno主码,pname非空、color只能取红、蓝、绿。定义j表:jno主码,jname非空。定义spj表:(sno,pno,jno)主码,参照sno、pno、jno外码,qty介于0—1000。) 2、插入数据 3、请用SQL语句完成下面题目的查询。 (1)求供应工程J1零件的供应商号码SNO: (2)求供应工程J1零件P1的供应商号码SNO: (3)求供应工程J1零件为红色的供应商号码SNO: (4)求没有使用天津供应商生产的红色零件的工程号JNO: 4、请用SQL语句完成下面题目的查询。 (1)找出所有供应商的姓名和所在城市。 (2)找出所有零件的名称、颜色、重量。 (3)找出使用供应商S1所供应零件的工程号码。

sql自定义函数

SQL Server 2005 自定义函数语汇小结 由于工作的需要,了解下SQL Server 2005 函数的写法,现在总结一下: 对于SQL Server 2005 数据库而言,函数与存储过程在语法方面是有很大的相同点, 最大的不同就是函数有返回值,直接使用returns ,而存储过程则使用output来声明输出变量 一、下面先说明下,如何创建函数 1、创建没有返回值与没有参数的函数 CREATE FUNCTION my_function() AS BEGIN DECLARE @variable varchar(255) --声明字符型变量 DECLARE @variable int --声明整形型变量 ...(do something) SET @variable = '12345' --对变量variable赋值 END 2、创建没有返回值有参数的函数 CREATE FUNCTION my_function(@user_Name varchar(128),@password int(6)) AS BEGIN DECLARE @variable_1 varchar(255) --声明字符型变量 ...(do something) SET @variable_1 = @user_Name + convert(varchar(255),@password) --将变量@user_Name与@password连接赋给@variable_1,其中convert()函数是将int型转为varchar型 END 3、创建有返回值与有参数的函数 CREATE FUNCTION my_function(@user_Name varchar(128),@password int(6)) returns varchar(255)--设置返回值,记住是returns 而不是return AS BEGIN DECLARE @result varchar(5) DECLARE @fagle varchar(5) SET @result = select https://www.360docs.net/doc/2816101889.html,er_Name from USERS as users where https://www.360docs.net/doc/2816101889.html,er_Name = @user_Name and users.password = @password IF @result = '' BEGIN SET @fagle = 'NO' END ELSE BEGIN SET @falge = 'YES' END return @result --返回结果 END 二、删除一个函数语法

matlab 实验6 函数及其调用

数学实验练习六:函数 一、1)写一个 MATLAB 函数 piFun01.m 来计算下列级数: f(n) = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...) 其中 n 为函数的输入,代表上述级数的项数,级数和 f(n) 则是函数的输出。 解:function f=pifun01(n) f=0; for i=1:n f=f+4*(-1)^(i+1)/(2*i-1); end >> piFun01(100000) ans = 3.1416 2)使用 tic 和 toc 指令来测量 piFun01(100000) 的计算时间。如果你不知道如何使用这两个指令,请使用 help tic 及 help toc 来查出它们的用法。我的旧计算机是 Pentium 450MHz,所得的计算时间约为 2 秒。请说明你的计算机规格以及其计算时间。

解:function f=pifun01(n) tic f=0; for i=1:n f=f+4*(-1)^(i+1)/(2*i-1); end f=toc 二、写一个 MATLAB 的递归函数 fibo.m 来计算 Fibonacci 数列, 其定义如下: fibo(n+2) = fibo(n+1)+fibo(n) 此数列的启始条件如下: fibo(1) = 0, fibo(2) = 1. a) fibo(25) 的返回的值是多少? 解:function f=fibo(n) if n==1 f=0; elseif n==2

f=1; else f=fibo(n-1)+fibo(n-2); end >> clear >> fibo(25) ans = 46368 b)使用 tic 和 toc 指令来测量 fibo(25) 的计算时间。我的计 算机是 Pentium 2GHz,所得的计算时间约为 3.35 秒。请说明你的计算机规格以及其计算时间。 解: function f=fibo(n) tic if n==1 f=0; elseif n==2 f=1; else f=fibo(n-1)+fibo(n-2); end

实验一:数据定义及更新语句练习

实验一:数据定义及更新语句练习 一、实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据 的更新。 二、实验内容: (一)用SQL语句建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(教材第二章习题5中的四个表),要求实现关系的三类完整性。 S(SNO,SNAME,STA TUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY) 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。 供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。(二)分别使用插入、删除、修改的方式更新基本表中的数据。 三、完成情况 create table s ( sno char(9)primary key, //主键约束 sname char(20)unique, //唯一值 status smallint, city char(20), ); create table p ( pno char(9)primary key, //主键约束 pname char(20), color char(9), weight smallint,

实验六、用窗函数法设计FIR滤波器分析解析

实验六 用窗函数法设计 FIR 滤波器 一、实验目的 (1) 掌握用窗函数法设计FIR 数字滤波器的原理和方法。 (2) 熟悉线性相位FIR 数字滤波器特性。 (3) 了解各种窗函数对滤波特性的影响。 二、实验原理 滤波器的理想频率响应函数为H d (e j ω ),则其对应的单位脉冲响应为: h d (n) = ?-π π ωωωπ d e e H n j j d )(21 窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼h d (n)。由于h d (n)往往是无 限长序列,且是非因果的,所以用窗函数。w(n)将h d (n)截断,并进行加权处理: h(n) = h d (n) w(n) h(n)就作为实际设计的FIR 数字滤波器的单位脉冲响应序列,其频率响应函数H(e j ω )为: H(e j ω ) = ∑-=-1 )(N n n j e n h ω 如果要求线性相位特性,则h (n )还必须满足: )1()(n N h n h --±= 可根据具体情况选择h(n)的长度及对称性。 用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N 的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。 三、实验步骤 1. 写出理想低通滤波器的传输函数和单位脉冲响应。 2. 写出用四种窗函数设计的滤波器的单位脉冲响应。 3. 用窗函数法设计一个线性相位FIR 低通滤波器,用理想低通滤波器作为逼近滤波器,截止频率ωc =π/4 rad ,选择窗函数的长度N =15,33两种情况。要求在两种窗口长度下,分别求出h(n),打印出相应的幅频特性和相频特性曲线,观察3dB 带宽和阻带衰减; 4 用其它窗函数(汉宁窗(升余弦窗)、哈明窗(改进的升余弦窗)、布莱克曼窗) 设计该滤波器,要求同1;比较四种窗函数对滤波器特性的影响。 四、实验用MATLAB 函数 可以调用MATLAB 工具箱函数fir1实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft 来计算滤波器的频率响应函数。

数据结构实验1

天津科技大学 2015—2016学年第2学期数据结构实验任务书 课程名称:数据结构实验学时: 2 实验题目:线性表的基本操作 实验环境: Visual C++ 实验目的: 1、掌握线性表的定义; 2、掌握线性表的基本操作,如建立、查找、插入和删除等。 实验内容: 定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表(二选一),使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息; (2) 逐个显示学生表中所有学生的相关信息; (3) 根据姓名进行查找,返回此学生的学号和成绩; (4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩); (5) 给定一个学生信息,插入到表中指定的位置; (6) 删除指定位置的学生记录; (7) 统计表中学生个数。 实验提示: 学生信息的定义: typedef struct { char no[8]; //8位学号 char name[20]; //姓名 int score; //成绩 }Student; 顺序表的定义 typedef struct { Student *elem; //指向数据元素的基地址 int length; //线性表的当前长度 }SqList; 链表的定义:

typedef struct LNode{ Student data; //数据域 struct LNode *next; //指针域 }LNode,*LinkList; 实验要求: (1) 程序要添加适当的注释,程序的书写要采用缩进格式。 (2) 程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应,如插入删除时指定的位置不对等等。 (3) 程序要做到界面友好,在程序运行时用户可以根据相应的提示信息进行操作。 (4) 根据实验报告模板详细书写实验报告,在实验报告中给出链表根据姓名进行查找的算法和插入算法的流程图。 (5) 以班为单位实验周周五上传源程序和实验报告。顺序表的源程序保存为SqList.cpp,链表的源程序保存为LinkList.cpp,实验报告命名为:实验报告1.doc。源程序和实验报告压缩为一个文件(如果定义了头文件则一起压缩),按以下方式命名:学号姓名.rar,如07081211薛力.rar。

实验六 函数

实验六 函数 一、实验目的 1.掌握自定义函数的一般结构及定义函数的方法。 2.掌握形参、实参、函数原型等重要概念。 3.掌握函数声明、函数调用的一般方法。 4. 了解函数的嵌套调用以及函数的递归调用的格式。 二、实验预习 1 .理解为什么要在程序中引入函数?函数的引入对程序的整体结构有什么样的影响? 2. 函数的定义格式,理解函数的类型说明符根据什么来确定? 3. 充分理解函数实参和形参的联系和区别,掌握单向值传递的意义。 4. 了解针对不同返回类型的函数返回值的应用,尤其是有无return 语句的区别。 5. 掌握函数调用与函数声明的格式,了解什么情况下需要进行函数声明?什么情况下不需要? 6. 了解函数嵌套调用和递归调用的原理及使用原则。 三、实验内容 (一)阅读并调试下列程序,根据要求给出程序结果。 1.求三角形面积函数。 ⑴ 编程分析 ① 设三角形边长为a 、b 、c ,面积area 的算法是s=(a+b+c)/2, area=))()((c s b s a s s --- ,其中 显然,要计算三角形面积,需要用到三个参数,面积函数的返回值的数据类型应为实型。 ② 尽管main()函数可以出现在程序的任何位置,但为了方便程序阅读,通常将主函数放在程序的开始位置,并在它之前集中进行自定义函数的原型声明。 ⑵ 参考程序 /* 定义和使用求三角形面积函数的程序 */ #include "math.h" #include "stdio.h" float area(float,float,float); /*函数的声明*/ void main() { float a,b,c; printf("请输入三角形的三个边长值:\n") scanf("%f,%f,%f",&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a&&a>0.0&&b>0.0&&c>0.0) printf("Area=%-7.2f\n",area(a,b,c)); /* 以下是计算任意三角形面积的函数 */ float area(float a,float b,float c) { float s,area_s; s=(a+b+c)/2.0;

数据库实验报告(一)

滨江学院 题目数据库实验报告(一) 学生姓名 学号 系部电子工程系 专业通信工程 指导教师林美华 二O一三年十二月十八日

实验一数据库的定义实验 本实验需要2学时。 一、实验目的 要求学生熟练掌握和使用SQL、SQL Server企业管理器创建数据库、表、索引和修改表结构,并学会使用SQL Server 查询分析器接收语句和进行结果分析。 二、实验内容 1 创建数据库和查看数据库属性。 2 创建表、确定表的主码和约束条件。为主码建索引。 3 查看和修改表结构。 4 熟悉SQL Server企业管理器和查询分析器工具的使用方法。 三、实验步骤 1 基本操作实验 (1) 使用企业管理器按教材中的内容建立图书读者数据库。 (2)在企业管理器中查看图书读者数据库的属性,并进行修改,使之符合要求。 (3)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为; 图书(书号,类别,,作者,书名,定价,作者). 读者(编号,,单位,性别,). 借阅(书号,读者编号,借阅日期) 要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。 (4)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。 2 提高操作实验 (一) 将教材中用SQL描述的建立学生--课程操作.在SQL Server企业管理器中实现。库中表结构为: 学生(学号,,年龄,性别,所在系). 课程(课程号,课程名,先行课). 选课(学号,课程号,成绩) 要求: 1)建库、建表和建立表间联系。, 2)选择合适的数据类型。 3)定义必要的索引、列级约束和表级约束. 四、实验方法 l创建数据库 (1)使用企业管理器创建数据库的步骤 1)从“开始”菜单中选择;“程序”“Microsoft SQL2000”“企业管理器”.

SQLServer用户自定义函数详细介绍

SQL Server用户自定义函数 用户自定义函数不能用于执行一系列改变数据库状态的操作,但它可以像系统函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过EXECUTE 命令来执行。在 SQL Server 中根据函数返回值形式的不同将用户自定义函数分为三种类型: (1) 标量函数 标量函数返回一个确定类型的标量值,其返回值类型为除 TEXT 、 NTEXT 、IMAGE 、 CURSOR 、 TIMESTAMP 和 TABLE 类型外的其它数据类型。函数体语句定义 在 BEGIN-END 语句内。在 RETURNS 子句中定义返回值的数据类型,并且函数的最后一条语句必须为 Return 语句。创建标量函数的格式: Create Function 函数名(参数) Returns 返回值数据类型 [With {Encryption|Schemabinding}] [AS] BEGIN SQL 语句 ( 必须有 Return 子句 ) END 举例: ******************************************************************* CREATE FUNCTION dbo.Max ( @a int, @b int ) RETURNS int AS BEGIN DECLARE @max int IF @a>@b SET @max=@a ELSE SET @max=@b Return @max END *******************************************************************调用标量函数可以在 T-SQL 语句中允许使用标量表达式的任何位置调用返 回标量值(与标量表达式的数据类型相同)的任何函数。必须使用至少由两部分组成名称的函数来调用标量值函数,即架构名 . 对象名,如 dbo.Max(12,34) 。 (2) 内联表值函数 内联表值型函数以表的形式返回一个返回值,即它返回的是一个表。内联表 值型函数没有由 BEGIN-END 语句括起来的函数体。其返回的表是由一个位于RETURN 子句中的 SELECT 命令从数据库中筛选出来。内联表值型函数功能相当 于一个参数化的视图。

实验六 自定义函数

实验六自定义函数 实验目的:熟悉Matlab自定义函数的定义和调用方法 实验内容: 2. 编写程序,在主程序中提示用户输入一组数字,编写子程序文件 find_div2.m找出能被2整除的数字,find_max_min.m找出输入数字中的最大值和最小值之和,find_averag求出输入数字的平均值,sort_number对数字进行排序,在主程序中调用子程序并且把上述结果输出。例如输入的数字为1,2,3,4,5,要求输出格式为:输入数字中能被2整除的数为:2,4 输入数字中最大值与最小值之和为:5+1=6 输入数字的平均值为:3 输入数字从大到小排序为:5,4 3,2,1 主程序: clear,clc s=input('请输入一组数字:','s'); x=str2num(s); find_div2(x); find_max_min(x); find_averag(x); sort_number(x);

子程序: function find_div2(x) b=length(x); for i=1:b A(i)=x(i); end c=find(rem(A,2)==0); A=A(c); disp(['输入数字中能被2整除的数为:',num2str(A)]) 子程序: function find_max_min(x) a=max(x); b=min(x); c=a+b; disp(['输入数字中最大值与最小值之和为:',num2str(a),'+',num2str(b),'=',num2str(c) 子程序: function find_averag(x) a=mean(x); disp(['输入数字的平均值为: ',num2str(a)]) 子程序: f unction sort_number(x) a=sort(x); b=fliplr(a); disp(['输入数字从大到小排序为:',num2str(b)])

实验1 数据库定义

实验1 数据库定义 实验目的 1、掌握SQL数据定义功能:数据库定义、表的定义、索引定义。实验内容 1、创建spj数据库 CREATE DATABASE SPJ; CREATE TABLE S( SNO CHAR(6) PRIMARY KEY, SNAME VARCHAR(20) NOT NULL, STATUS VARCHAR(50), CITY VARCHAR(50) ); CREATE TABLE P( PNO CHAR(6) PRIMARY KEY, PNAME VARCHAR(20) NOT NULL, COLOR VARCHAR(2), WEIGHT NUMERIC(9,2) CHECK(WEIGHT>0 AND WEIGHT<=100) ); (3) 工程项目表J

JNO CHAR(6) PRIMARY KEY, JNAME VARCHAR(20) NOT NULL, CITY VARCHAR(50) ); SNO CHAR(6) NOT NULL, PNO CHAR(6) NOT NULL, JNO CHAR(6) NOT NULL, QTY SMALLINT DEFAULT 100 ); 2、创建school数据库 CREATE DATABASE SCHOOL; CREATE TABLE Student( SNO CHAR(7) PRIMARY KEY, SNAME CHAR(10) NOT NULL, SSEX CHAR(2) CHECK(SSEX=’男’ OR SSEX=’女’ ), SAGE SMALLINT CHECK(SAGE>’15’ AND SAGE<’45’), SDEPT VCGHAR(20) DEFAULT '计算机系' );

实验6函数习题及答案

实验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;

实验四SQL语言数据定义语言DDL(精)

实验四 SQL 语言数据定义语言 DDL 一、实验目的 SQL(Structured Query Language 语言是关系数据库的标准语言。是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询, SQL 语言是一个通用的、功能极强的关系数据库语言。 本次实验了解 SQL 语言中 DDL 语言的 CREATE 、 DROP 、 ALTER 对表、索引、视图的操作,掌握在 Navicat for MySQL 中用 DDL 语言进行对表、索引、视图的增加、删除和改动。掌握使用 SQL 语句增加或删除约束, 加深对完整性概念的理解, 达到灵活应用的目的。掌握使用 SQL 语句定义和删除同义词。 二、实验要求 1、实验前:预习实验内容,学习相关知识。 2、实验中:按照实验内容要求进行实验,实验时注意每种 SQL 语句的基本命令及各个关键字的含义,做好实验记录。 3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。 4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。 5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实验前交实验报告。 三、实验的重点与难点 1、重点: (1用 SQL 语句定义表结构(创建、修改和删除。

(2用 SQL 语句定义索引(创建、删除。 (3用 SQL 语句定义视图(创建、删除。 (4用 SQL 语句定义同义词(创建、删除。 2、难点: 完整性约束的定义、增加及删除。 同义词的定义与删除。 四、仪器设备及用具 硬件:投影仪、每位同学分配已连接校园网 PC 机一台。 软件:本机已安装 MySQL 5.5数据库平台。 五、教学过程 (一实验预习 (1熟悉 SQL 中的 CREATE 、 DROP 、 ALTER 语句的格式及所用的关键字含义及用法。 (2掌握完整性约束定义、增加和删除的一般用法。 (3掌握同义词定义、删除的一般用法。 (二实验原理 在 Navicat for MySQL 中使用 CREATE 命令完成对表、索引、视图、同义词的创建,使用 DROP 命令完成对表、索引、视图、同义词的删除,使用 ALTER 命令对表结构进行修改及完整性约束的增加、删除。 (三实验内容

函数与用户自定义函数.doc

函数 在Transact - SQL语言中,函数被用来执行一些特殊的运算以支持SQL Server的标准命令。 (1 )?行集函数:行集函数可以在transact?SQL语句中当作表引用。 (2).聚合函数:用于一组值执行计算并返回一个单一的值。 (3 ).标量函数:用于对传递给它的一个或者多个参数值进行处理和计算,并返回一个单一的值. (一)、标量函数的分类 1 ?配置函数:返回当前的配置信息 2 ?游标函数:返回有关游标的信息 3 ?日期和时间函数:用于对日期和时间类型的输入值进行操作,返回一个了子符串,数字或日期和时间值 4 ?数学函数:用于对作为函数参数提供的输入值执行操作,返冋一个数字值 5 ?元数据函数:返回有关数据库和对象和信息 6 ?字符串函数:对字符串输入值执行操作,并返回一个字中或数字值 7 ?系统函数:执行系统操作 8 ?系统统计函数:返回系统的统计信息 9 ?文本和图像函数:对于文本或图像输入值或列执行操作,返冋有关这些值的信息。 (二)、具体讲解: 1 ?系统函数 用于返回有关SQL Server系统,用户,数据库和数据库对彖的信息。系统函数可以让用户在得到信息后,使用条件语句,根据返回的信息进行不同的操作。与其它函数- 样,可以在select语句的select和where子句经及表达式中使用系统函数。 例:返回taihang数据库的yuan表中的第二列的名称。 use taihang select col_name ( object_id ( * yuan *),2) 注:col_name为系统函数,object_id :返回对彖的id。 2 ?日期和时间类型 日期和时间函数用于对日期和时间数据进行各种不同的处理和运算,并返回一个字符串,数字值或日期和时间值。 dateadd ( datepart , number ,date) dated iff ( datepart ,date1 ,date2) datename ( datepart ,date) datepart ( datepart ,date) day (date) getdate () month (date) year (date) 例1:从getdate函数返回的日期中提取月份数 select datepart ( month , getdate ()) as * month number * 注:datepart为系统函数 例2:从03/12/ 1998中返回月份、天数和年份数

相关文档
最新文档