第二次作业我没注意看群通告,看到都3月8号,开始着手想用c#试着写写,才发现一些问题。
a.鞠老的要求中必须原数据需要csv文件,csv文件不是太了解,网上简单查阅了一下------csv意思是逗号分隔值,CSV文件是个纯文本文件,每一行表示一张图片的许多属性。你在收一套图集时,只要能找到它的CSV文件,用专用的软件校验后。我感觉和ASCII码形式比较像,都是录入然后约定一个规范,编写统一编号。是不是这样?然后在产生伪随机数方面又有问题了
开始我就觉得就直接用rand函数些出来就行了
b.通过观察,产生了多个相同的数据,题目虽然没有要求,如果我们要求产生不相同的数呢? 我为了简便,想如果控住产生伪随机数的范围,由上个数据单元控制,不是就可以产出不同的伪随机数呢?
但是如你所见,这样产生的数据不会重复,但是违反了产生伪随机的原则,于是我又矛盾了。想用条件判断语句,又觉得写得太长,有没有其他的方法,想听听。
后面就是生成的csv文件的导入问题,导入过来是字符,而并不是代表数值,就剩下转换问题和导入问题,我没有c#书,才去图书馆借,大概看了下,应该5天左右能掌握大概的语法吧。他的导入和转换的类库暂时不太了解。
抛开这个c#语法问题,就第一个问题
第一版本程序Prog1:
1.给定一个数组,实现数组元素求和;具体要求:实现对一维数组(a[100])的所有元素相加运算。
数据准备:a)数组长度:100;b)数组数据来源:实验数据A列:1~100,CSV 格式则填充 前100个数据
直接一个for循环就可以算出来吧,应该没什么难度。
第二版本程序Prog2:
+ 改写成一个函数(函数名称为ArraySum),能实现任意长度数组所有元素求和;
+ 数据准备:a)数组长度:任意; b)数组数据来源:实验数据A列.
这个算法就只需要强调判断素组的起始位置和length的就可以了,只要不产生溢出,一个循环体也可以解决
第三版本程序Prog3:
+ 将Prog2改写成能从文件中读取数据,实现任意长度数组,指定范围内元素相加。
+ 数据准备:a)数组长度:任意; b)数组数据来源:从文件中读取(A列). c)指定范围: (bottom, top)
这个题目感觉和上面问题就多了个指定范围内元素相加,添加一个条件判断语句,应该问题不大。如果把问题改成sum输出的范围就有趣了
如果用两个值相加,设置两个循环体就可以了。
for(int i=0;i<array.length;i++)
{
for(int j=0;j<array.length;j++)
{
if(arry[i]+arry[j]==“预期值”)
{
//
}
}
},
可以写出对应的元素,如果是三个就可以设置三个循环体,但是这样的效率不高,想了一下学过的其他高点效率的算法。 然后将这些用个switch语句写出个相加范围,然后case出2个数相加和3个数,,,,,
然后呢可以进行要求的扩展,这个是不是老师锻炼我们的软件开发生成思想。
具体代码还在思考中ing,觉得用c++学过的语言写有点low,想试着用c#写 估计3月14能基本把想的一些问题解决,然后出具体代码。 希望老师能谅解晚交的作业