非鱼学院吧 关注:219贴子:628
  • 11回复贴,共1

按键精灵5级认证问答题答案

取消只看楼主收藏回复

问题:
读取.txt文件中的内容,并在每一行后追加对应的"第几行"
答案:
//读取文件
Text = Plugin.File.ReadFileEx("C:\ajjl.txt")
//分割内容
MyArray = Split(Text, "|")
//循环
For i = 0 To UBound(MyArray) - 1
每行文本 = MyArray(i) & "-第" & (i+1) & "行"
TracePrint 每行文本
Next


IP属地:江苏1楼2015-02-06 12:27回复
    问题:
    输出系统任务栏高度
    答案:
    Hwnd = Plugin.Window.Find("Shell_TrayWnd", 0)
    sRect = Plugin.Window.GetClientRect(Hwnd)
    dim MyArray
    MyArray = Split(sRect, "|")
    任务栏高 = Clng(MyArray(3))
    TracePrint 任务栏高


    IP属地:江苏2楼2015-02-06 12:29
    回复
      问题:
      将同一标题的所有窗口在桌面进行平铺,要求不得超出屏幕宽、高界限
      答案:
      //假设打开5个记事本
      num = 5
      For num
      Delay 1000
      RunApp "notepad.exe"
      Next
      HwndEx = Plugin.Window.Search("记事本")
      Hwnd = Split(HwndEx, "|")
      ScreenX = Plugin.Sys.GetScRX()
      ScreenY = Plugin.Sys.GetScRY()
      sRect = Plugin.Window.GetWindowRect(Hwnd(0))
      dim MyArray
      MyArray = Split(sRect, "|")
      x = MyArray(2) - MyArray(0)
      y = MyArray(3) - MyArray(1)
      sx = 0
      sy = 0
      i = 0
      While (ScreenY-sy >y) //纵向还有足够容量
      While (ScreenX - sx > x)//横向还有足够容量
      Delay 100
      Call Plugin.Window.Move(Hwnd(i),Cstr(sx),Cstr(sy))
      sx = sx + x
      i = i + 1
      If i > UBound(Hwnd)-1 Then
      ExitScript
      End If
      Wend
      sy = sy + y
      sx=0
      Wend


      IP属地:江苏3楼2015-02-06 12:40
      回复
        问题:
        输出100以内个位与十位相加等于10的数
        答案:
        num = ""
        For i = 0 To 99
        十位 = Int(i / 10)
        个位 = i Mod 10
        If (十位 + 个位) = 10 Then
        TracePrint i
        num = num & i & ","
        End If
        Next
        TracePrint num


        IP属地:江苏4楼2015-02-06 12:48
        回复
          问题:
          数组a(100),a(1)=1,a(2)=2,往后每一个元素的值是前两个元素值的和,写一个函数返回某个元素的值,例如a(50)的值
          答案:
          Messagebox f(50)
          Function f(x)
          Dim a(100)
          a(1) = 1
          a(2) = 2
          For i = 3 To 100
          a(i) = a(i - 1) + a(i - 2)
          Next
          f = a(x)
          End Function


          IP属地:江苏5楼2015-02-06 12:53
          回复
            问题:
            根据系统时间生成一个0~1之间的小数点数字,需要写出生成的过程
            答案:
            MsgBox 伪随机()
            Function 伪随机()
            时间 = Split(Time, ":")
            Randomize
            时 = Int(int(时间(0)) * Rnd + 1) / 24 * 100
            Randomize
            分 = Int(int(时间(1)) * Rnd + 1) / 60 * 10000
            Randomize
            秒 = Int(int(时间(2)) * Rnd + 1) / 60 * 1000000
            伪随机 = round((时 + 分 + 秒) / 100, 6)
            End Function


            IP属地:江苏7楼2015-02-06 14:38
            回复
              问题:
              遍历字符串"A1a2d5m8Qz",取出所有小写字母及数字,并按照与原来相反的顺序拼接成新的字符串,请写出代码
              答案:
              Dim Str, k, XiaoXie, 新字符串
              Str = "A1a2d5m8Qz"
              For k = 1 To Len(Str)
              XiaoXie = LCase(mid(Str, k, 1))
              If XiaoXie = mid(Str, k, 1) Then
              新字符串 = XiaoXie & 新字符串
              End If
              Next
              TracePrint 新字符串


              IP属地:江苏8楼2015-02-06 14:40
              回复
                问题:
                写一个脚本,要求:在画图工具中画一个渐变放大的圆形漩涡效果图。提示:cos函数与sin函数应用。
                答案:
                MoveTo 420, 280
                LeftDown 1
                Call 画漩涡(420, 280)
                LeftUp 1
                EndScript
                Function 画漩涡(起点X, 起点Y)
                Dim HX, HY, n
                n = 1
                While HX < 600
                MoveTo HX, HY : Delay 3
                HX = 起点X + cos(n) + n * sin(n)
                HY = 起点Y + sin(n) - n * cos(n)
                n = n + 0.1
                Wend
                End Function


                IP属地:江苏9楼2015-02-06 14:42
                回复
                  问题:
                  写一个脚本,要求:在画图工具中画一个渐变放大的多边形(大于4边)漩涡效果图。 提示:For循环的应用
                  答案:
                  Call 画多边漩涡(400, 200, 50, 7) //五边形
                  EndScript
                  Sub 画多边漩涡(x, y, r, n)
                  //x 圆心横坐标 y 圆心纵坐标
                  //r 半径 n 多边形的边数
                  Const PI = 3.1415926
                  Dim x1, y1 //起点坐标
                  dim x2, y2 //下一个点坐标
                  x1 = x
                  y1 = y - r
                  Dim t
                  t = PI
                  For i = 1 To 30
                  If i > 1 Then
                  MoveTo x1, y1
                  Delay 20
                  LeftUp 1
                  End If
                  MoveTo x1, y1
                  Delay 20
                  LeftDown 1
                  t = t - pi * 2 / n
                  x2 = x + int(r * sin(t))
                  y2 = y + int(r * cos(t))
                  //更新起点坐标
                  x1 = x2
                  y1 = y2
                  r = r + 2
                  Next
                  End Sub


                  IP属地:江苏10楼2015-02-06 14:44
                  回复
                    问题:
                    利用 ShowScrTXT 命令制作一个放大镜,效果类似抓抓工具的放大镜,可以放大显示鼠标指向的5*5区域的颜色.
                    答案:
                    Dim x, y, x1, x2, y1, y2, st_x, st_y
                    Dim scr_x1, scr_y1, scr_x2, scr_y2
                    MessageBox "【确定】后开始运行放大镜,【F12】键退出。"
                    While True
                    Call 放大镜()
                    Delay 10
                    Wend
                    //放大镜函数
                    Function 放大镜()
                    //放大镜的起点坐标
                    st_x = 0
                    st_y = 0
                    //获取鼠标的坐标
                    GetCursorPos x, y
                    //计算5*5区域范围
                    x1 = x - 2
                    x2 = x + 2
                    y1 = y - 2
                    y2 = y + 2
                    //获取并输出5*5区域内所有颜色
                    For a = x1 To x2
                    For b = y1 To y2
                    RtColor = Plugin.Color.GetPixelColor(a, b, 1)
                    //其中:4 - x2 + a = 5 - (x2 - a + 1),以下同理
                    scr_x1 = st_x + (4 - x2 + a) * 6
                    scr_y1 = st_y + (4 - y2 + b) * 6
                    scr_x2 = scr_x1 + 6
                    scr_y2 = scr_y1 + 6
                    Call Plugin.Msg.ShowScrTXT(scr_x1, scr_y1, scr_x2, scr_y2, "█", RtColor)
                    Next
                    Next
                    End Function


                    IP属地:江苏11楼2015-02-06 18:04
                    回复
                      问题:
                      写一个函数,已知一段坐标信息的字符串为:"260,270|290,260|310,230|320,200,10|300,150|280,150,10|270,130|250,130",计算得出离185,246坐标最近的一组坐标。提示:For循环与数组应用。
                      答案:
                      TracePrint 坐标最近判断("260,270|290,260|310,230|320,200|300,150|280,150|270,130|250,130", "185,246")
                      EndScript
                      Function 坐标最近判断(信息, 坐标)
                      Dim Arr, Str, StrX, StrY, Ping, a, b, c, i
                      //信息分离
                      Arr = Split(信息, "|")
                      //坐标分离
                      Str = Split(坐标, ",")
                      //提取坐标X与Y值
                      StrX = Clng(Str(0)) : StrY = Clng(Str(1))
                      //勾股定理计算每个坐标到指定坐标的平方值
                      For i = 0 To UBound(Arr)
                      If i = 0 Then
                      Ping = (Abs(Clng(Split(Arr(i), ",")(0)) - StrX)) ^ 2 + (Abs(Clng(Split(Arr(i), ",")(1)) - StrY)) ^ 2
                      Else
                      Ping = Ping & "/" & (Abs(Clng(Split(Arr(i), ",")(0)) - StrX)) ^ 2 + (Abs(Clng(Split(Arr(i), ",")(1)) - StrY)) ^ 2
                      End If
                      Next
                      TracePrint Ping
                      b = Split(Ping, "/") : a = 0 : c = b(0)
                      TracePrint c
                      For i = 1 To UBound(b)
                      TracePrint "b(" & i & ")=" & b(i)
                      If Clng(b(i)) < Clng(c) Then
                      c = b(i)
                      a = i
                      End If
                      Next
                      坐标最近判断 = Arr(a)
                      End Function


                      IP属地:江苏12楼2015-02-06 18:06
                      回复
                        问题:
                        随机生成一个1~100之间的整数,玩家可以通过函数InputBox命令输入数字来猜测那未知的随机数字,猜对则退出游戏,猜错则提示答案的范围(猜数游戏),请写出代码:
                        答案:
                        Dim 随机, 猜测, 下限, 上限, 次数
                        Randomize
                        随机 = Int(100 * Rnd + 1)
                        TracePrint "随机=" & 随机
                        下限 = 1 : 上限 = 100
                        猜测 = Cint(InputBox("请输入你的猜测", "猜数字游戏"))
                        For 次数 = 1 To 99 : Delay 100
                        If 猜测 < 随机 and 猜测 > 下限 Then : 下限 = 猜测
                        ElseIf 猜测 > 随机 and 猜测 < 上限 Then : 上限 = 猜测
                        ElseIf 猜测 = 随机 Then
                        MsgBox "总共" & 次数 & "次猜中了 八戒 看来今年你又要涨价了!", 64, "程序·提示"
                        Exit For
                        End If
                        猜测 = Cint(InputBox("答案范围为:" & 下限 & "~" & 上限, "程序·提示 还可再猜" & 100 - 次数 & "次 "))
                        Next
                        EndScript


                        IP属地:江苏13楼2015-02-06 18:07
                        回复