eNet学院俱乐部


 
标题: flash 算法题目测试(本帖长期有效)
  本主题由 xjcc 于 2008-9-16 09:39 解除置顶 
xjcc
版主
Rank: 7Rank: 7Rank: 7Rank: 7



版主勋章  
UID 2978649
精华 0
积分 165
帖子 58
威望 409
积分 165
阅读权限 100
注册 2008-5-7
状态 离线
发表于 2008-5-7 21:02  资料 文集 短消息 
flash 算法题目测试(本帖长期有效)

我将出一些题目考考大家,题目难度将逐渐增大,塞有兴趣,请在后面跟帖,回答好的,可有加分奖励,当然(斑竹除外)
希望大家踊跃参加,写的不好,错了都没关系,只要参加了,都会有加分奖励。

每个星期将出一道新题,公布上个星期题目的答案。

第一题

数组处理:编写函数,删除数组中某个元素,并返回原数组,如原数组[1,2,3,4,5],删除值为4的元素,则数组变为[1,2,3,5]

function deleteElementFromArray(array:Array, element):Array
{
    ......
    return array;
}

第二题

给定一个字符串,去掉首尾两端的空格。

function trim(value:String):String
{
    ......
    return value;
}

第三题

编写函数随机生成一组小于某个值的不同的数

function randomOrder(total:Number, max:Number):Array
{
        var returnArray:Array = new Array();
        if (total<=max)
        {
                ...
        }
        return returnArray;
}

第四题

编写函数画一个圆

function drawCircle(x:Number, y:Number, radius:Number):Void
{
        ....
}

[ 本帖最后由 xjcc 于 2008-7-11 08:30 编辑 ]
顶部
[广告] 注意:下载附件需要消耗积分
xjcc
版主
Rank: 7Rank: 7Rank: 7Rank: 7



版主勋章  
UID 2978649
精华 0
积分 165
帖子 58
威望 409
积分 165
阅读权限 100
注册 2008-5-7
状态 离线
发表于 2008-5-13 12:54  资料 文集 短消息 
第一题答案

function deleteElement(array,element)
{
        var iLength = array.length;//数组长度
        /**
         *循环从0到最大长度检测数组中的元素是否与给定参数相等
         *若相等,则退出循环
         */
        for (var i=0; i<iLength;i++)
        {
                if (array[i] == element)
                {
                        break;
                }
        }
        /**
         *根据i最后的值判断数组中是否有该元素
         *如果有则从第i个元素开始,将第i+1个元素的值赋值给第i个元素
         *然后再删除最后一个元素
         */
        if (i<iLength)
        {
                while (i<iLength-1)
                {
                        array[i]=array[i+1];
                        i++;
                }
                array.pop();//删除最后一个元素
        }
        return array;
}
//例子
var temp:Array = [1,2,3,4,5];
trace(deleteElement(temp,4));
/*
  *输出: 1,2,3,5
  */

[ 本帖最后由 xjcc 于 2008-5-13 19:28 编辑 ]
顶部
[广告] 注意:下载附件需要消耗积分
xjcc
版主
Rank: 7Rank: 7Rank: 7Rank: 7



版主勋章  
UID 2978649
精华 0
积分 165
帖子 58
威望 409
积分 165
阅读权限 100
注册 2008-5-7
状态 离线
发表于 2008-5-20 13:25  资料 文集 短消息 
第二题答案

function trim(value:String)
{
        var flag:Number = value.length-1;
        while(value.charAt(flag) == " ")
        {
                flag--;
        }
        value = value.substr(0,++flag);
        flag = 0;
        while(value.charAt(flag) == " ")
        {
                flag++;
        }
        return value.substr(flag);
}
//例子
trace(trim("  this is a test   "));//输出"this is a test"

[ 本帖最后由 xjcc 于 2008-5-20 13:28 编辑 ]
顶部
[广告] 论坛使用帮助(如何发附件)
xjcc
版主
Rank: 7Rank: 7Rank: 7Rank: 7



版主勋章  
UID 2978649
精华 0
积分 165
帖子 58
威望 409
积分 165
阅读权限 100
注册 2008-5-7
状态 离线
发表于 2008-5-27 18:31  资料 文集 短消息 
第三题答案

function randomOrder(total:Number, max:Number):Array
{
        var returnArray:Array = new Array();
        if (total <= max)
        {
                var pass:Boolean;
                returnArray.push(random(max));
                while (returnArray.length < total)
                {
                        pass = false;
                        while (!pass)
                        {
                                pass = true;
                                var temp:Number = random(max);
                                for (var all in returnArray)
                                {
                                        (returnArray[all] == temp) && (pass = false);
                                }
                        }
                        pass && (returnArray.push(temp));
                }
        }
        return returnArray;
}
//例子
trace(randomOrder(5, 5))//输出:3,2,1,0,4

顶部
xjcc
版主
Rank: 7Rank: 7Rank: 7Rank: 7



版主勋章  
UID 2978649
精华 0
积分 165
帖子 58
威望 409
积分 165
阅读权限 100
注册 2008-5-7
状态 离线
发表于 2008-7-11 08:31  资料 文集 短消息 
第四题答案

function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void
{
    mc.moveTo(x+r, y);
    mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.cos(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
    mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
    mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.cos(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
    mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
    mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.cos(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
    mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
    mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.cos(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
    mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
}

顶部
net02136
列兵
Rank: 2Rank: 2



UID 3106316
精华 0
积分 154
帖子 53
威望 842
积分 154
阅读权限 20
注册 2008-7-31
状态 离线
发表于 2008-8-1 08:41  资料 短消息  QQ
这个太难了吧,看都有点看不懂
   有简单的吗?
顶部
billypc
版主
Rank: 7Rank: 7Rank: 7Rank: 7



UID 3127392
精华 0
积分 57
帖子 36
威望 691
积分 57
阅读权限 100
注册 2008-8-13
状态 离线
发表于 2008-8-13 15:24  资料 主页 文集 短消息  QQ
以上题目,有的在as3里有现成的函数可以直接解决,不需要算法




欢迎加入百度HI群,群号:1051316 (专门讨论flash,谢绝聊天)
顶部
tangqiang110
平民
Rank: 1



UID 3146222
精华 0
积分 13
帖子 12
威望 77
积分 13
阅读权限 10
注册 2008-8-26
状态 离线
发表于 2008-8-26 11:29  资料 短消息  QQ
能不能搞简单点啊,
我是新手啊,
看都看不懂啊,
顶部
 


当前时区 GMT+8, 现在时间是 2008-10-13 07:47


Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.066410 second(s), 16 queries , Gzip enabled

清除 Cookies - 联系我们 - 硅谷动力网络学院 - Archiver - WAP