回文串实验报告

回文串实验报告
回文串实验报告

回文串实验报告

课程名称:数据结构

实验名称:单链表

学生姓名:杜克强

学生学号:201207092427

实验一回文串的基本操作及其应用

一、实验目的

1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际中灵活应用。

2、掌握栈和队列的特点,即后进先出和先进先出的原则。

3、掌握栈和队列的基本运算,如:入栈与出栈,入队与出队等运算在顺序

存储结构和链式存储结构上的实现。

二、实验内容和要求

[问题描述]

对于一个从键盘输入的字符串,判断其是否为回文。回文即正反序相同。如“abba”是回文,而“abab”不是回文。

[基本要求]

(1)数据从键盘读入;

(2)输出要判断的字符串;

(3)利用栈的基本操作对给定的字符串判断其是否是回文,若是则输出“Yes”,否则输出“No”。

[测试数据]

由学生任意指定。

三、实验步骤

1.需求分析

本演示程序用C语言编写,完成对一个字符串是否是回文字符串的判断

①输入一个任意的字符串;

②对输入的字符串进行判断是否为回文串;

③输出判断结果;

④测试数据:

A.依次输入“abccba”,“asddas”等数据;

B.输出判断结果“Yes”,“No”等

四、算法设计

1、算法思想:

把字符串中的字符逐个分别存储到队列和堆栈中,然后逐个出队和出栈并比较出队列的数据元素和退栈的数据元素是否相等,若相等则是会文,否则不是。

2、模块设计

(1)int Palindrome_Test()判断字符序列是否为回文串;

(2)Status main()主函数;

(3)Status CreatStack(SqStack &S)创建一个栈;

(4)Status Push(SqStack &S,SElemType e)入栈;

(5)Status Pop(SqStack &S ,SElemType &e)出栈;

(6)Status CreatQueue(LinkQueue &Q)创建一个队列;

(7)Status EnQueue(LinkQueue &Q,QElemType e)入队;

(8)Status DeQueue(LinkQueue &Q,QElemType &e)出队;

3、模块之间关系及其相互调用的图示

4、数据存储结构图

五、调试分析

一、实验结果

图2 实验结果

二、总结

通过做回文串实验让我同时用到了栈和队列两种结构,让我对这两种结构有了一个比较深入的了解和应用,对我以后的编程产生了比较深远的影响。

源程序(带注释)

//创建栈

Status CreatStack(SqStack &S){

S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));

if(!S.base)exit(OVERFLOW);

S.top=S.base;

S.stacksize=STACK_INIT_SIZE;

return OK;

}

//创建队列

tatus CreatQueue(LinkQueue &Q){

//建立一个空的链式栈

Q.front=Q.rear=(QNodePtr)malloc(sizeof(QNode));

if(!Q.front)exit(OVERFLOW);

Q.front->next=NULL;

return OK;

}

//入栈

Status Push(SqStack &S,SElemType e){

if(S.top-S.base>=S.stacksize){//栈满,追加存储空间

S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElem Type));

if(!S.base)exit (OVERFLOW);//存储空间分配失败

S.top=S.base+S.stacksize;

S.stacksize+=STACKINCREMENT;

}

*S.top++=e;

return OK;

}

//入队

Status EnQueue(LinkQueue &Q,QElemType e)

{

QNodePtr p;

p=(QNodePtr)malloc(sizeof(QNode));

if(!p)exit(OVERFLOW);

p->data=e;p->next=NULL;

Q.rear->next=p;

Q.rear=p;

return OK;

}

//出栈

Status Pop(SqStack &S ,SElemType &e){

if(S.top==S.base) return ERROR;

e=*--S.top;

return OK;

}

//出队

Status DeQueue(LinkQueue &Q,QElemType &e)

{

QNodePtr p;

if(Q.front==Q.rear) return ERROR;

p=Q.front->next; e=p->data;

Q.front->next=p->next;

if(Q.rear==p) Q.rear=Q.front;

free(p);

return OK;

}

//判断是否为回文串

int Palindrome_Test()//判别输入的字符串是否回文序列,是则返回1,否则返回0 {

SqStack S;

LinkQueue Q;

CreatStack(S);

CreatQueue(Q);

char c;

SElemType a,b;

while((c=getchar())!='@')

{

Push(S,c);EnQueue(Q,c); //同时使用栈和队列两种结构

}

while(S.top!=S.base)

{

Pop(S,a);DeQueue(Q,b);

if(a!=b) return ERROR;

}

return OK;

}

回文判断教学总结

实验报告 系部计算机系I班级I I学号I I姓名课程名称—数据结构I实验日期实验名称回文判断成绩 实验目的: 掌握栈的基本操作:入栈、出栈等在链式或顺序存储结构上的实现。 实验条件:PC机一台、VC++6.0编译环境 实验内容与算法思想: 内容: 输入一字符串判断其是否为回文。 算法思想: 1. 算法中主要用到的函数 ①void mai n() //主函数 ②int push_seqstack(Seqstack *s,char x) // 进栈 ③in t pop_seqstack(Seqstack *s) // 出栈 ④int gettop_seqstack(Seqstack *s) 〃取栈顶元素 ⑤int Ishuiwe n( char *s) 〃判断是否是回文 2. 函数之间的调用关系 函数之间的调用关系如图1所示:

图1函数之间的调用关系 运行结果: 运行程序输入一段字符串,运行不同的结果如图2、3所示: 图2 不是回文的判断结果 实验总结: 通过前两次的实验,使我对C语言和数据结构有许多认识。因此,这次实验 在做起来时多少有点思路,但是在实验室当中还是遇到了许多不会的问题,如回文的判断思路、以及函数的调用等等,不过这些问题在老师和同学的帮助下基本完成了这次实验。这次实验让我学到了很多知识,让我对原来所学的又重新复习了一遍,同时还学到了许多其他新知识。 附:源程序: #in clude #in clude #defi ne OK 1 #defi ne ERROR 0 #defi ne Maxsize 100 typedef struct { char elem[Maxsize]; int top; }Seqstack;

R语言判别分析实验报告

R语言判别分析实验报告 班级:应数1201 学号: 姓名:麦琼辉 时间:2014年11月28号 1 实验目的及要求 1)了解判别分析的目的和意义; 2)熟悉R语言中有关判别分析的算法基础。 2 实验设备(环境)及要求 个人计算机一台,装有R语言以及RStudio并且带有MASS包。 3 实验内容 企业财务状况的判别分析 4 实验主要步骤 1)数据管理:实验对21个破产的企业收集它们在前两年的财务数据,对25个 财务良好的企业也收集同一时期的数据。数据涉及四个变量:CF_TD(现金/总债务);NI_TA(净收入/总资产);CA_CL(流动资产/流动债务);CA_NS (流动资产/净销售额),一个分组变量:企业现状(1:非破产企业,2:破产企业)。 2)调入数据:对数据复制,然后在RStudio编辑器中执行如下命令。 case5=read.table(‘clipboard’,head=T) head(case5) 3)Fisher判别效果(等方差,线性判别lda):采用Bayes方式,即先验概率 为样本例数,相关的RStudio程序命令如下所示。 library(MASS) ld=lda(G~.,data=case5);ld #线性判别 ZId=predict(ld) addmargins(table(case5$G,ZId$class)) 4)Fisher判别效果(异方差,非线性判别--二次判别qda):再次采用Bayes 方式,相关的RStudio程序命令如下所示。

library(MASS) qd=qda(G~.,data=case5);qd #二次判别 Zqd=predict(qd) addmargins(table(case5$G ,Zqd$class)) 5 实验结果 表1 线性判别lda 效果 原分类 新分类 1 2 合计 1 24 1 25 2 3 18 21 合计 27 19 46 符合率 91.30% 由表1和表2可知,qda (二次判别---非线性判 别)的效果比lda (一次判别)要好。 6 实验小结 通过本次实验了解了判别分析的目的和意义,并熟悉R 语言中有关判别分析的算法基础。 表2 二次判别qda 效果 原分类 新分类 1 2 合计 1 24 1 25 2 2 19 21 合计 26 20 46 符合率 93.50%

十个经典数字游戏

数字黑洞6174 任意选一个四位数(数字不能全相同),把所有数字从大到小排列,再把所有数字从小到大排列,用前者减去后者得到一个新的数。重复对新得到的数进行上述操作,7 步以内必然会得到6174。 例如,选择四位数6767: 7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 = 8352 8532 - 2358 = 6174 7641 - 1467 = 6174 …… 6174 这个“黑洞”就叫做Kaprekar 常数。对于三位数,也有一个数字黑洞——495。 3x + 1 问题 从任意一个正整数开始,重复对其进行下面的操作:如果这个数是偶数,把它除以2 ;如果这个数是奇数,则把它扩大到原来的3 倍后再加1 。你会发现,序列最终总会变成4, 2, 1, 4, 2, 1, … 的循环。 例如,所选的数是67,根据上面的规则可以依次得到: 67, 202, 101, 304, 152, 76, 38, 19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, ... 数学家们试了很多数,没有一个能逃脱“421 陷阱”。但是,是否对于所有的数,序列最终总会变成4, 2, 1 循环呢? 这个问题可以说是一个“坑”——乍看之下,问题非常简单,突破口很多,于是数学家们纷纷往里面跳;殊不知进去容易出去难,不少数学家到死都没把这个问题搞出来。已经中招的数学家不计其数,这可以从3x + 1 问题的各种别名看出来:3x + 1 问题又叫Collatz 猜想、Syracuse 问题、Kakutani 问题、Hasse 算法、Ulam 问题等等。后来,由于命名争议太大,干脆让谁都不沾光,直接叫做3x + 1 问题算了。 直到现在,数学家们仍然没有证明,这个规律对于所有的数都成立。 特殊两位数乘法的速算 如果两个两位数的十位相同,个位数相加为10,那么你可以立即说出这两个数的乘积。如果这两个数分别写作AB 和AC,那么它们的乘积的前两位就是A 和A + 1 的乘积,后两位就是B 和C 的乘积。 比如,47 和43 的十位数相同,个位数之和为10,因而它们乘积的前两位就是4×(4 + 1)=20,后两位就是7×3=21。也就是说,47×43=2021。 类似地,61×69=4209,86×84=7224,35×35=1225,等等。

数据结构实验一 实验报告

班级::学号: 实验一线性表的基本操作 一、实验目的 1、掌握线性表的定义; 2、掌握线性表的基本操作,如建立、查找、插入和删除等。 二、实验容 定义一个包含学生信息(学号,,成绩)的顺序表和链表(二选一),使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息; (2) 逐个显示学生表中所有学生的相关信息; (3) 根据进行查找,返回此学生的学号和成绩; (4) 根据指定的位置可返回相应的学生信息(学号,,成绩); (5) 给定一个学生信息,插入到表中指定的位置; (6) 删除指定位置的学生记录; (7) 统计表中学生个数。 三、实验环境 Visual C++ 四、程序分析与实验结果 #include #include #include #include #define OK 1 #define ERROR 0 #define OVERFLOW -2

typedef int Status; // 定义函数返回值类型 typedef struct { char num[10]; // 学号 char name[20]; // double grade; // 成绩 }student; typedef student ElemType; typedef struct LNode { ElemType data; // 数据域 struct LNode *next; //指针域 }LNode,*LinkList; Status InitList(LinkList &L) // 构造空链表L { L=(struct LNode*)malloc(sizeof(struct LNode)); L->next=NULL; return OK;

回文判断实验二

回文判断实验二

洛阳理工学院实验报告 系别计算机系班级B13053 学号B13053235 姓名李登辉 2 课程名称数据结构实验日期2014.3.28 实验名称栈和队列的基本操作成绩 实验目的: 熟悉掌握栈和队列的特点,掌握与应用栈和队列的基本操作算法,训练和提高结构化程序设计能力及程序调试能力。 实验条件: 计算机一台,Visual C++6.0

实验内容: 1.问题描述 利用栈和队列判断字符串是否为回文。称正读与反读都相同的字符序列为“回文”序列。要求利用栈和队列的基本算法实现判断一个字符串是否为回文。栈和队列的存储结构不限。 2.数据结构类型定义 typedef struct { char elem[MAX]; int top; }SeqStack; 顺序栈 3.模块划分 void InitStack(SeqStack *S):栈初始化模块, int Push(SeqStack *S,char x,int cnt):入栈操作 int Pop(SeqStack * S,char * x):出栈操作 void InitQuene(SeqQuene *Q):队列初始化 int EnterQuene(SeqQuene *Q,char x,int cnt):入队操作 int DeleteQuene(SeqQuene *Q,char *x,int cnt):出队操作 void main():主函数 4.详细设计 #include #include #define MAX 50 #define FALSE 0 #define TURE 1//定义栈 typedef struct { char elem[MAX]; int top; }SeqStack; //定义循环队列 typedef struct { char element[MAX]; int front; int rear; }SeqQuene; //初始化栈

R语言判别分析实验报告

R语言判别分析实验报 告 GE GROUP system office room 【GEIHUA16H-GEIHUA GEIHUA8Q8-

R语言判别分析实验报告 班级:应数1201 学号: 姓名:麦琼辉 时间:2014年11月28号 1 实验目的及要求 1)了解判别分析的目的和意义; 2)熟悉R语言中有关判别分析的算法基础。 2 实验设备(环境)及要求 个人计算机一台,装有R语言以及RStudio并且带有MASS包。 3 实验内容 企业财务状况的判别分析 4 实验主要步骤 1)数据管理:实验对21个破产的企业收集它们在前两年的财务数据,对25个财 务良好的企业也收集同一时期的数据。数据涉及四个变量:CF_TD(现金/总债务);NI_TA(净收入/总资产);CA_CL(流动资产/流动债务);CA_NS(流动资产/净销售额),一个分组变量:企业现状(1:非破产企业,2:破产企业)。 2)调入数据:对数据复制,然后在RStudio编辑器中执行如下命令。

case5=read.table(‘clipboard’,head=T) head(case5) 3)Fisher判别效果(等方差,线性判别lda):采用Bayes方式,即先验概率为 样本例数,相关的RStudio程序命令如下所示。 library(MASS) ld=lda(G~.,data=case5);ld #线性判别 ZId=predict(ld) addmargins(table(case5$G,ZId$class)) 4)Fisher判别效果(异方差,非线性判别--二次判别qda):再次采用Bayes方 式,相关的RStudio程序命令如下所示。 library(MASS) qd=qda(G~.,data=case5);qd #二次判别 Zqd=predict(qd) addmargins(table(case5$G,Zqd$class)) 5 实验结果 表1 线性判别lda效果 原分类新分类

实验1实验报告

实验一词法分析 班级:计科12-3 学号:08123282 姓名:樊鑫 一.实验目的 1、学会针对DFA转换图实现相应的高级语言源程序。 2、深刻领会状态转换图的含义,逐步理解有限自动机。 3、掌握手工生成词法分析器的方法,了解词法分析器的内部工作原理。 二.实验内容 TINY计算机语言的编译程序的词法分析部分实现。 从左到右扫描每行该语言源程序的符号,拼成单词,换成统一的内部表示(token)送给语法分析程序。 为了简化程序的编写,有具体的要求如下: (1)数仅仅是整数。 (2)空白符仅仅是空格、回车符、制表符。 (3)代码是自由格式。 (4)注释应放在花括号之内,并且不允许嵌套 三.实验要求 要求实现编译器的以下功能: (1)按规则拼单词,并转换成二元式形式 (2)删除注释行 (3)删除空白符 (空格、回车符、制表符) (4)列表打印源程序,按照源程序的行打印,在每行的前面加上行号,并且打印出每行包含的记号的二元形式 (5)发现并定位错误 ,词法分析进行具体的要求: (1)记号的二元式形式中种类采用枚举方法定义;其中保留字和特殊字符是每个都一个种类,标示符自己是一类,数字是一类;单词的属性就是表示的字符串值。

(2)词法分析的具体功能实现是一个函数GetToken(),每次调用都对剩余的字符串分析得到一个单词或记号识别其种类,收集该记号的符号串属性,当识别一个 单词完毕,采用返回值的形式返回符号的种类,同时采用程序变量的形式提供 当前识别出记号的属性值。这样配合语法分析程序的分析需要的记号及其属性, 生成一个语法树。 (3)标示符和保留字的词法构成相同,为了更好的实现,把语言的保留字建立一个表格存储,这样可以把保留字的识别放在标示符之后,用识别出的标示符对比 该表格,如果存在该表格中则是保留字,否则是一般标示符。 四.实验程序 #include #include #include #include #include using namespace std; enum WordType {WRONG, NUMBER, BIAOSHI, IF, THEN, ELSE, END, REPEAT, UNTIL, //9 READ, WRITE, PLUS, SUBTRACT, MULTIPLY, DIVIDEY, EQUAL, LESSTHAN, COLON,//18 ASSIGNMENT, LINE_FEED, SPACE, TAB, BRACKET_L, BRACKET_R}; //24 enum CharType {ALPHABET, OTHER}; enum WrongType {ZERO, ALP_NUM, NUM_ALP, UNLEAGL_S, NO_MA TCH, UNKNOW}; char *Words [] = {"wrong", "number", "biaoshi", "if", "then", "else", "end", "repeat", "until", //9 "read", "write", "+", "-", "*", "/", "=", "<", ":",//18 ":=", "\n", " ", " ", "{", "}"}; //24 typedef struct { char *str; int wordtype; }Two; char ArrayChar[100], cbuffer; int i=-1, numline = 1, wordtype; string LineChar; Two T; ifstream fp("source.txt",ios::in); int main () { void HandleAlphabet(); void HandleNumber (); void HandleOther (); if (!fp) cout<<"文件打开错误!"<

回文串实验报告

回文串实验报告 课程名称:数据结构 实验名称:单链表 学生姓名:杜克强 学生学号: 201207092427

实验一回文串的基本操作及其应用 一、实验目的 1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际中灵活应用。 2、掌握栈和队列的特点,即后进先出和先进先出的原则。 3、掌握栈和队列的基本运算,如:入栈与出栈,入队与出队等运算在顺序 存储结构和链式存储结构上的实现。 二、实验内容和要求 [问题描述] 对于一个从键盘输入的字符串,判断其是否为回文。回文即正反序相同。如“abba”是回文,而“abab”不是回文。 [基本要求] (1)数据从键盘读入; (2)输出要判断的字符串; (3)利用栈的基本操作对给定的字符串判断其是否是回文,若是则输出“Yes”,否则输出“No”。 [测试数据] 由学生任意指定。 三、实验步骤 1.需求分析 本演示程序用C语言编写,完成对一个字符串是否是回文字符串的判断 ①输入一个任意的字符串; ②对输入的字符串进行判断是否为回文串;

③输出判断结果; ④测试数据: A.依次输入“abccba”,“asddas”等数据; B.输出判断结果“Yes”,“No”等 四、算法设计 1、算法思想: 把字符串中的字符逐个分别存储到队列和堆栈中,然后逐个出队和出栈并比较出队列的数据元素和退栈的数据元素是否相等,若相等则是会文,否则不是。 2、模块设计 (1)int Palindrome_Test()判断字符序列是否为回文串; (2)Status main()主函数; (3)Status CreatStack(SqStack &S)创建一个栈; (4)Status Push(SqStack &S,SElemType e)入栈; (5)Status Pop(SqStack &S ,SElemType &e)出栈; (6)Status CreatQueue(LinkQueue &Q)创建一个队列; (7)Status EnQueue(LinkQueue &Q,QElemType e)入队; (8)Status DeQueue(LinkQueue &Q,QElemType &e)出队;

R语言判别分析实验报告

R语言判别分析实验报告 The latest revision on November 22, 2020

R语言判别分析实验报告 班级:应数1201 学号: 姓名:麦琼辉 时间:2014年11月28号 1实验目的及要求 1)了解判别分析的目的和意义; 2)熟悉R语言中有关判别分析的算法基础。 2实验设备(环境)及要求 个人计算机一台,装有R语言以及RStudio并且带有MASS包。 3实验内容 企业财务状况的判别分析 4实验主要步骤 1)数据管理:实验对21个破产的企业收集它们在前两年的财务数据,对25 个财务良好的企业也收集同一时期的数据。数据涉及四个变量:CF_TD(现金/总债务);NI_TA(净收入/总资产);CA_CL(流动资产/流动债务); CA_NS(流动资产/净销售额),一个分组变量:企业现状(1:非破产企业,2:破产企业)。 2)调入数据:对数据复制,然后在RStudio编辑器中执行如下命令。 case5=read.table(‘clipboard’,head=T) head(case5) 3)Fisher判别效果(等方差,线性判别lda):采用Bayes方式,即先验概 率为样本例数,相关的RStudio程序命令如下所示。 library(MASS) ld=lda(G~.,data=case5);ld#线性判别 ZId=predict(ld) addmargins(table(case5$G,ZId$class)) 4)Fisher判别效果(异方差,非线性判别--二次判别qda):再次采用

Bayes 方式,相关的RStudio 程序命令如下所示。 library(MASS) qd=qda(G~.,data=case5);qd#二次判别 Zqd=predict(qd) addmargins(table(case5$G,Zqd$class)) 5实验结果 表1线性判别lda 效果 原分类 新分类 12合计 1 24 1 25 2 3 18 21 合计 27 19 46 符合率 91.30% 由表1和表 2可知,qda (二次判别---非线 性判别)的效果比lda (一次判别)要好。 6实验小结 通过本次实验了解了判别分析的目的和意义,并熟悉R 语 言中有关判别分析的算法基础。 表2二次判别qda 效果 原分类 新分类 12合计 1 24 1 25 2 2 19 21 合计 26 20 46 符合率 93.50%

神奇的数学3

70953 神奇的数学数字黑洞 6174 任意选一个四位数(数字不能全相同),把所有数字从大到小排列,再把所有数字从小到大排列,用前者减去后者得到一个新的数。重复对新得到的数进行上述操作,7步以内必然会得到 6174。 例如,选择四位数 6767: 7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 = 8352 8532 - 2358 = 6174 7641 - 1467 = 6174 …… 6174 这个“黑洞”就叫做 Kaprekar 常数。对于三位数,也有一个数字黑洞——495。 3x + 1 问题 从任意一个正整数开始,重复对其进行下面的操作:如果这个数是偶数,把它除以 2 ;如果这个数是奇数,则把它扩大到原来的 3 倍后再加1 。你会发现,序列最终总会变成 4, 2, 1, 4, 2, 1, …的循环。 例如,所选的数是 67,根据上面的规则可以依次得到: 67, 202, 101, 304, 152, 76, 38, 19, 58, 29, 88, 44, 22, 11, 34, 17,

52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, ... 数学家们试了很多数,没有一个能逃脱“421 陷阱”。但是,是否对于所有的数,序列最终总会变成 4, 2, 1 循环呢? 70953 神奇的数学这个问题可以说是一个“坑”——乍看之下,问题非常简单,突破口很多,于是数学家们纷纷往里面跳;殊不知进去容易出去难,不少数学家到死都没把这个问题搞出来。已经中招的数学家不计其数,这可以从3x + 1 问题的各种别名看出来: 3x + 1 问题又叫Collatz 猜想、 Syracuse 问题、 Kakutani 问题、 Hasse 算法、Ulam 问题等等。后来,由于命名争议太大,干脆让谁都不沾光,直接叫做 3x + 1 问题算了。 直到现在,数学家们仍然没有证明,这个规律对于所有的数都成立。特殊两位数乘法的速算 如果两个两位数的十位相同,个位数相加为 10,那么你可以立即说出这两个数的乘积。如果这两个数分别写作 AB 和 AC,那么它们的乘积的前两位就是 A 和 A + 1 的乘积,后两位就是 B 和 C 的乘积。 比如,47 和 43 的十位数相同,个位数之和为 10,因而它们乘积的前两位就是 4×(4 + 1)=20,后两位就是7×3=21。也就是说,47×43=2021。 类似地,61×69=4209,86×84=7224,35×35=1225,等等。 这个速算方法背后的原因是,(10 x + y) (10 x + (10 - y)) = 100

实验1实验报告-

实验1 Windows编程基础实验报告 一、实验目的和要求 (1)创建一个Win32应用程序Ex_SDK,在程序中构造一个编辑框控件和一个按钮。 (2)编辑框用于输入一元二次方程的系数,当单击“计算”按钮,获取方程系数得的根通过TextOut显示在窗口客户区中。 二、实验环境 操作系统:Windows 2000 编译器:Visual C++ 6.0的开发环境 三、实验准备和说明 (1)具备知识:简单的SDK编程基础。 (2)准备本次上机所需要的程序。 (3)创建本次实验工作文件夹“…\Visual C++程序\实验\实验1” 四、实验内容和步骤 1.启动Visual C++ 6.0 打开计算机,启动Visual C++ 6.0系统。 2.创建工程并添加代码 ①选择“文件”→“新建”菜单命令,打开应用程序向导,显示出“新建”对话框。单击“工程”标签,从列表框中选中Win32 Application(Win32 应用程序)项。在工程名称框中输入Win32应用程序项目名称Ex_SDK。单击浏览按钮...将工程定位到文件夹“…\Visual C++ 6.0程序\实验\实验1”。 ②单击“确定”按钮继续。在向导第一步对话框中,选中An empty project(一个空的工程)项。单击“完成”按钮,系统将显示AppWizard(应用程序向导)的创建信息,单击“确定”按钮,系统将自动创建此应用程序。 ③再次选择“文件”→“新建”菜单命令,显示出“新建”对话框。单击“文件”标签,在左边的列表框中选择C++ Source File项,在右边的“文件”下的编辑框中输入Ex_SDK.cpp,单击“确定”按钮。 ④在打开的文档窗口中输入下面的代码: #include #include #include // 求一元二次方程的根,函数返回根的个数 int GetRoot(float a, float b, float c, double *root) { double delta, deltasqrt; delta = b*b - 4.0 * a * c; if (delta<0.0) return 0; // 无根 deltasqrt = sqrt(delta);

数据结构实验二(栈和队列)

实验二栈和队列的基本操作及其应用 一、实验目的 1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际中灵活应用。 2、掌握栈和队列的特点,即后进先出和先进先出的原则。 3、掌握栈和队列的基本运算,如:入栈与出栈,入队与出队等运算在顺序 存储结构和链式存储结构上的实现。 二、实验内容 本次实验提供4个题目,每个题目都标有难度系数,*越多难度越大,学生 可以根据自己的情况任选一个! 题目一:回文判断(*) [问题描述] 对于一个从键盘输入的字符串,判断其是否为回文。回文即正反序相同。如 “abba”是回文,而“abab”不是回文。 [基本要求] (1)数据从键盘读入; (2)输出要判断的字符串; (3)利用栈的基本操作对给定的字符串判断其是否是回文,若是则输出 “Yes”,否则输出“No”。 [测试数据] 由学生任意指定。 题目二:顺序栈和循环队列基本操作(*) [基本要求] 1、实现栈的基本操作 六项基本操作的机制是:初始化栈:init_stack(S);判断栈空:stack_empty(S);取栈顶元素:stack_top(S,x);入栈:push_stack(S,x);出栈:pop_stack(S);判断栈满:stack_full(S) 2、实现队列的基本操作 六项基本操作的机制是:初始化队列:init_queue(Q);判断队列是否为空:queue_empty(Q);取队头元素:queue_front(Q,x);入队:enqueue(Q,x);出队:outqueue(Q,x);判断队列是否为满:queue_full(Q) [测试数据]

由学生任意指定。 题目三:商品货架管理(**) [问题描述] 商店货架以栈的方式摆放商品。生产日期越近的越靠近栈底,出货时从栈顶取货。一天营业结束,如果货架不满,则需上货。入货直接将商品摆放到货架上,则会使生产日期越近的商品越靠近栈顶。这样就需要倒货架,使生产日期越近的越靠近栈底。 [基本要求] 设计一个算法,保证每一次上货后始终保持生产日期越近的商品越靠近栈底。 [实现提示] 可以用一个队列和一个临时栈作为周转。 [测试数据] 由学生任意指定。 三、实验前的准备工作 1、掌握栈的逻辑结构和存储结构。 2、熟练掌握栈的出栈、入栈等操作。 3、掌握队列的逻辑结构和存储结构。 4、熟练掌握队列的出队、入队等操作 四、实验报告要求 1、实验报告要按照实验报告格式规范书写。 *2、写出算法设计思路。 3、实验上要写出多批测试数据的运行结果。 4、结合运行结果,对程序进行分析。 题目四:Rails(ACM训练题) Description There is a famous railway station in PopPush City. Country there is incredibly hilly. The station was built in last century. Unfortunately, funds were extremely limited that time. It was possible to establish only a surface track. Moreover, it turned out that the

判别分析实验报告spss

一、实验目的及要求: 1、目的 用SPSS软件实现判别分析及其应用。 2、内容及要求 用SPSS对实验数据利用Fisher判别法和贝叶斯判别法,建立判别函数并判定宿州、广安等13个地级市分别属于哪个管理水平类型。 二、仪器用具: 三、实验方法与步骤: 准备工作:把实验所用数据从Word文档复制到Excel,并进一步导入到SPSS 数据文件中,同时,由于只有当被解释变量是属性变量而解释变量是度量变量时,判别分析才适用,所以将城市管理的7个效率指数变量的变量类型改为“数值(N)”,度量标准改为“度量(S)”,以备接下来的分析。 四、实验结果与数据处理: 表1 组均值的均等性的检验 Wilks 的 Lambda F df1df2Sig. 综合效率标准指数.582264.000 经济效率标准指数.406264.000 结构效率标准指数.954264.218 社会效率标准指数.796264.001 人员效率标准指数.342264.000 发展效率标准指数.308264.000 环境效率标准指数.913264.054 表1是对各组均值是否相等的检验,由该表可以看出,在的显著性水平上我们不能拒绝结构效率标准指数和环境效率标准指数在三组的均值相等的假设,即认为

除了结构效率标准指数和环境效率标准指数外,其余五个标准指数在三组的均值是有显著差异的。 表2 对数行列式 group秩对数行列式 16 26 36 汇聚的组内6 打印的行列式的秩和自然对数是组协方差矩阵的秩和自然对数。 表3 检验结果 箱的 M F近似。 df142 df2 Sig..000 对相等总体协方差矩阵的零假设进行检验。 以上是对各组协方差矩阵是否相等的Box’M检验,表2反映协方差矩阵的秩和行列式的对数值。由行列式的值可以看出,协方差矩阵不是病态矩阵。表3是对各总体协方差阵是否相等的统计检验,由F值及其显著水平,在的显著性水平下拒绝原假设,认为各总体协方差阵不相等。 1)Fisher判别法: 图一

吉林省通化市数学高考理数二模考试试卷

吉林省通化市数学高考理数二模考试试卷 姓名:________ 班级:________ 成绩:________ 一、选择题 (共12题;共24分) 1. (2分)已知集合,集合,则 A . B . C . D . 2. (2分)(2018·河南模拟) 若复数(是虚数单位),则() A . B . C . D . 3. (2分) (2016高二上·吉林期中) 设向量 =(﹣1,1,2), =(2,1,3),则向量,的夹角的余弦值为() A . B . C . D . 4. (2分)直线与圆相交于A、B两点,则弦AB的长等于 A .

C . D . 1 5. (2分) (2019高二上·南充期中) 下图是一个边长为4的正方形二维码,为了测算图中黑色部分的面积,在正方形区域内随机投掷400个点,其中落入黑色部分的有225个点,据此可估计黑色部分的面积为() A . 8 B . 9 C . 10 D . 12 6. (2分) 8名学生和2位老师站成一排合影,2位老师不相邻的排法种数为() A . B . C . D . 7. (2分)(2020·芜湖模拟) 已知棱长为2的正方体中,E为DC中点,F在线段 上运动,则三棱锥的外接球的表面积最小值为() A . B .

D . 8. (2分)执行如图所示的程序框图,则输出的a的值为() (注:“a=2”,即为“a2”或为“a:=2”.) A . 2 B . C . D . -3 9. (2分)(2017·榆林模拟) 函数y=sinx(3sinx+4cosx)(x∈R)的最大值为M,最小正周期为T,则有序数对(M,T)为() A . (5,π) B . (4,π) C . (﹣1,2π) D . (4,2π) 10. (2分)设Sn是等差数列{an}的前n项和,若,则()

实验1实验报告格式

实验1实验报告格式 《计算机图形学》实验1实验报告 实验题目:用户坐标、视图坐标、Java awt坐标概念的建立和应用 实验内容:掌握用户坐标、视图坐标、Java awt坐标概念,掌握三类坐标的转换算法。编写自己的算法函数,并形成Java语言程序包。编写程序调用验证之。 参考程序:有两个示范程序MyTest.java和MyLineDrawApplet.java 基本概念: 用户坐标:是独立于设备的逻辑坐标,可以是用户用来定义设计对象的各种坐标。 应用程序使用该坐标系:所有传给Java 2D渲染过程的坐标都是指用户坐标。例如下面程序中的默认用户坐标的范围是X轴从-1到1,Y轴也是凑够-1到1。 视图坐标:是设备相关的坐标,随目标渲染设备不同而不同。下面程序中定义的视图坐标的缺省值为(0,0)和(1,1)。 Java awt坐标:使用java.awt时使用的坐标,即窗口显示图像时的边界坐标。 填充:这个过程可以抽象的理解为以已知的线为中心,向周围扩展像素,然后对这些像素所在的方块进行着色。 将用户坐标转换为视图坐标实际上是将独立于设备的逻辑坐标转换为设备相关的坐标,将视图坐标转化为A WT坐标就是将视图坐标按照显示窗口的大小进行缩放。 算法设计:(详细叙述自己设计程序的功能、算法及实现) 程序的功能: 可以根据传入的用户坐标进行视图坐标、A WT坐标之间的转换,其反向转换同理也可以实现,即将转换的方法逆过去即可。此外,程序还可以进行图形的绘画和填充,比如矩形、椭圆、多边形等。 算法及其实现函数: 用户坐标到视图坐标的转换:对于相应的用户坐标应用数学中的平移与放缩,就可以得到视图坐标。具体方法如下:在用户坐标系下,设矩形窗口的左下角坐标为(Ux1,Uyb), 右上角为(Uxr,Uyt),视图坐标系下的两个点坐标分别为(Vx1,V yb)和(Vxr,V yt), 则视图坐标的表达式为:(Xu,Y u)是已知的用户坐标,(Xv ,Y v)是要求的视图坐标Xv=aXu+b Y v=cY u+d 其中:a=(Vxr-Vxl)/(Uxr-Uxl) b=Vxl-aUxl c=(V yt-V yb)/(Uyt-Uyb) d=V yb-cUyb //将用户坐标的点转换到视图坐标 public double view_x(double x) { double s=(x-user_i_x)/(user_a_x- user_i_x); double t=view_i_x[currentV iew]+s* //坐标的平移及压缩 (view_a_x[currentView]-view_i_x[currentV iew]); return t; } public double view_y(double y) { double s=(y-user_i_y)/(user_a_y-user_i_y); double t=view_i_y[currentV iew]+s* //坐标的平移及压缩 (view_a_y[currentView]-view_i_y[currentV iew]); return t; } 视图坐标到A WT坐标的转换:由于视图坐标在0到1之间,因此将显示窗口的宽和高

用循环语句打印一个乘法表判断回文数(逆序排列后得到数和原数相同)

福建农林大学实验报告 实验一 Java开发环境 一、实验目的: 1、掌握分支、循环语句的使用。 二、实验内容: 1、用循环语句打印一个99乘法表。 2、判断回文数(逆序排列后得到的数和原数相同)。 三、实验要求: 1、打印的乘法表应该呈现阶梯状。 2、给定一个1-99999之间的整型数,程序可以判断它的位数,并判断是否是回文数。 3、实验报告给出完整代码。 四、算法描述及实验步骤 先定义两个变量i和j然后初始化值为1,由于题目的条件,所以i<+9而j<=I,然后经过输出语句System.out.print (j+"*"+i+"="+i*j+" ");可将i和j值进行相乘,最后用输出语句改变下格式就可以了。 五、调试过程及实验结果 1 算出来的并没有按照表格输出 改System.out.println (" "); 中println后的ln就可以改变换行了, 2

六、总结 通过第一小题的练习,让我加强了对for循环语句和输出函数的使用。 经过第二小题的练习,我懂得了什么是回文数,并且用.reverse(),反转字符串来反转,然后将反转后的数字和之前的数字进行比较。 七、附录(代码): 9*9乘法表: class Test{ public static void main (String[] args) { for(int i=1;i<=9;i++) { for(int j=1;j<=i;j++) { System.out.print (j+"*"+i+"="+i*j+" "); } System.out.println (" "); } } } 判断回文数: class Test { public static void main(String[] args) { String str = "1234554321"; boolean huiwenshu = new StringBuilder(str).reverse().toString().equals(str); System.out.println (str); System.out.println(huiwenshu); } }

多元统计分析实验报告判别分析

页眉 2015——2016学年第一学期 实验报告 课程名称:多元统计分析 实验项目:判别分析 设计性□验证性□实验类别:综合性□√专业班级:

姓名:学号: 实验地点:统计与金融创新实验室(新60801) 实验时间: 指导教师:曹老师成绩: 数学与统计学院实验中心制页脚 一、实验目的统计《spss 让学生掌握判别分析的基本步骤和分析方法;学习 的内容,掌握一般判别分析与逐分析从入门到精通》P307-P320步判别分析方法。 二、实验内容,掌》应用《胃病患者的测量数据》和《表征企业类型的数据.sav、1统计分析从spss握一般判别分析与逐步判别分析方法。数据来源于《章的数据。入门到精通数据文件》第12的数据进行分析,数据见文件《何晓群多元统计2、参考教材例4-2 》中的例4-2new。)分析(数据三、实验方案(程序设计说明) 四、程序运行结果1. (1) 分析案例处理摘要未加权案例N 百分比 93.3 14 有效 6.7 缺失或越界组代码1 .0 至少一个缺失判别变量0 .0

排除的缺失或越界组代码还有至少0 一个缺失判别变量6.7 合计1 100.0 15 合计 组统计量 1 N(列表状态)类别均值标准差有效的未加权的已加权的5.000 188.60 57.138 5 铜蓝蛋白5.000 16.502 5 150.40 蓝色反应胃癌患者5.000 5.933 5 尿吲哚乙酸13.80 5.000 13.323 5 中性琉化物20.00 4.000 47.500 4 铜蓝蛋白156.25 4.000 118.75 14.104 4 蓝色反应萎缩性胃炎4.000 1.732 4 尿吲哚乙酸7.50 4.000 8.386 4 中性琉化物14.50 5.000 33.801 5 铜蓝蛋白151.00 5.000 13.012 5 蓝色反应121.40 其他胃病5.000 1.871 5 尿吲哚乙酸5.00 5.000 5 中性琉化物8.00 7.314 14.000 14 铜蓝蛋白165.93 46.787 14.000 14 蓝色反应131.00 20.203 合计14.000 14 8.86 5.318 尿吲哚乙酸14.000 10.726 14

第五届安庆市初中数学青年教师解题大赛试题

第五届安庆市初中数学青年教师解题大赛试题 (2019年元月4日下年1:30-3.30) 一、选择题(每题6分。共30分) 1.已知:37a b x ==,112a b +=,则x 的值为( A ) B.21 C. D.441 【解析】解:由37a b x ==知x >0,并且可得:3ab b x =,7ab a x =,两式相乘得21ab a b x += 由112a b +=得a +b=2ab,所以221ab ab x = ,所以221,x x ==,故选A. 2.从1,2,3,...99, 100这100个自热数中选出若干个数,使得以这若干个数中的任点三个数(互不相等)为长度的线段都不能构成三角形,则选出的自然数的个数最多为( C ) A.8 B.9 C. 10 D.11 【解析】解:由极端原理易知:1,2,3,5,8,13,21,34,55,89是选出自然数个数最多的选择方案,故最多10个选C. 3. 为了计算sin18°的值。小明同学构造了如图所示的儿何图形,其中△ABC 为顶角为36的等机三角形,AH ,BD 为内角平分线,根据此图,可求出Sin18°的值为( B ) C. 【解析】解:由黄金分割点与黄金数知: BH=1122BC AD AB ==, 所以Sin18° =4 .故选B. 4.盒子里有36个红球和白球,甲,乙,丙各拿了其中的12个(都含有红球与白球)。己知甲拿的红球数是乙的白球数的2信。乙拿的红球数是丙的白球数的2倍,又知红球的总数是奇数,则盒于里白球的个数一汽有( A ) A.15个 B.13个 C.11个 D.9个

【解析】解:设丙拿x 个白球,各人拿球情况如表格 则红球总数36-3x ,白球总数3x. 因为红球总数是奇数,故x 是奇数. 由题意得24-404120{x x ->>,解得4<x <6 故x=5,所以白球共15个选A. 5.已如抛物线经过A(-1,0).B(5, 0),C (0,5-2 )三点,点M 在x 轴上,点N 在抛物线上,以A 、 C 、 M 、 N 为顶点的四边形是平行四边形,则点M 的坐标不可能是( D ) A.(3,0) B.(-5,0) C. () D.(,0) 【解析】解:待定系数法求得函数关系式为y=215222 x x --,对称轴2x = 当AM//CN 时,AM=CN=4,点M 横坐标为-14±,当AC//MN 时,作ND ⊥AB, 则△ACO ≌△MND,ND=OC=52,DM=AO=1,当y=52时,215222x x --=52 解得2 x = 则点M 的横坐标=+13x = D. 二、填空题(每题6分,共24分) 6.回文数是指从左到右读与从右到左都一样的正整数, 如33,525, 1551,90109显然2位同义数具有9个:11,2,33...99,3位数否的回文数共有90个,101,111, 121,... 191.202 ...999, 则所有数字之和为19的5位回文数(如71317)有 35 个. 【解析】解:设5位回文数是abcba ,由题意得:2a+2b+c=19,则c 必定是奇数, C=1时,a+b=9共9个,C=3时,a+b=8共8个,C=,5时,a+b=7共7个 C=7时,a+b=6共6个,C=9时,a+b=5共5个,所以一共35个. 7.如图所示,长方形ABCD 是由四个等腰直角三角形和一个正方想EFGH 拼成,若长方形ABCD 的面积为120平分厘米,朝王方形FGH 的面积等于 10 平方厘米. 【解析】解:设EF=a,则CG=2a ,BF=3a,BC=,AB=,所以· =120,得a 2 =10

相关文档
最新文档