非鱼学院吧 关注:219贴子:628
  • 15回复贴,共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
          回复


            来自iPhone客户端6楼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
                          回复
                            学习学习
                               -- 怎么办 楼下那个变态一直
                            不粉我!!!
                               


                            IP属地:广东来自Android客户端14楼2015-02-13 00:19
                            回复

                                 -- 怎么办 楼下那个变态一直
                              不粉我!!!
                                 


                              IP属地:广东来自Android客户端15楼2015-02-14 01:37
                              回复