★☆☆☆☆☆☆☆☆☆☆☆★
 ★☆☆☆☆☆☆☆☆☆★
  ★☆☆☆☆☆☆☆★
   ★☆☆☆☆☆★
    ★☆☆☆★
     ★☆★
      ☆
     ☆★☆
    ☆★★★☆
   ☆★★★★★☆
  ☆★★★★★★★☆
 ☆★★★★★★★★★☆
☆★★★★★★★★★★★☆
要求①循环不能超过两个
  ②判断语句不能超过一个
  ③语言不限

解决方案 »

  1.   

    呵呵, 动下脑, 也没啥大不了.楼主如果是在 "考" 咱们的话, 烦请楼主先贴出代码,我立马跟上,我用了两个For...Next 一个If
      

  2.   

    哈哈,真不愧是VB吧吧主啊,一个字"牛",其实我说技术性难题只是想引起大家的关注,
    我并没有学过这样的算法,当时自己做出来了,我只是想试试看有多少人是像我这样想的?
    那么你的答案是什么呢?
    for i=1 to 7
    for j=i to 7
      if i=j then
         @i,j say "★"
        @i,14-j say "★"
         @14-i,j say "☆"
         @14-i,14-j say "☆"
       else
         @i,j say "☆"
        @i,14-j say "☆"
         @14-i,j say "★"
         @14-i,14-j say "★"
       end if
    endfor
    endfor
      

  3.   

    哈哈哈, 我晕啊...........在VB版块你给我用DOS下的Fox 来玩, 你牛!!!! FoxBase(Dbase) 是我在DOS下最拿手的语言,80年代就在用啦,哈哈,怀念..Dim i%, ZF%, Starno%, aa$
    Private Sub Form_Activate()
       Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
       Starno = 13
       Command1_Click
    End SubPrivate Sub Command1_Click()
       Me.Cls
       Call star
    End SubSub star()
       ZF = 1
       For i = Starno To 3 Step -2
          Call Drawstar
       Next i
       Print Space(Starno - i) & "☆"
       ZF = 2
       For i = 3 To Starno Step 2
          Call Drawstar
       Next i
    End SubSub Drawstar()
       aa = IIf(ZF = 1, "★" & String(i - 2, "☆") & "★", "☆" & String(i - 2, "★") & "☆")
       Print Space(Starno - i) & aa
    End Sub
      

  4.   

    呵呵,我说了语言不限啊,语言有什么关系呢,最重要的是程序设计思想不是吗
    其实说真的我觉得你的程序设计思路并不好(不要骂我啊,我只是就你这个程序而言)
    FoxBase+(我学的第二门语言)我也很拿手啊,我之所以发到VB版块是因为现在用的是VB.net罢了
    你用的IIf(ZF = 1, "★" & String(i - 2, "☆") & "★", "☆" & String(i - 2, "★") & "☆")我觉得并不灵活,而且缺乏创新,我知道很多人第一想到的就是有判断,把图形分成上下两半部份,而我却是把图形分成四部份的!
    我只是想试试看有多少人是用的我这种设计思想而已
    谢谢你的参与!感谢
      

  5.   

    上面那位仁兄,你说不用for,if也能打出来,不知道你有什么高招???
      

  6.   

    你们在干什么?这才是vb的精髓所在,哈哈
    Private Sub Form_Load()
        Me.AutoRedraw = True
        Print Space(Starno - i) & "★☆☆☆☆☆☆☆☆☆☆☆★ "
        Print Space(Starno - i) & "  ★☆☆☆☆☆☆☆☆☆★ "
        Print Space(Starno - i) & "    ★☆☆☆☆☆☆☆★"
        Print Space(Starno - i) & "      ★☆☆☆☆☆★"
        Print Space(Starno - i) & "        ★☆☆☆★"
        Print Space(Starno - i) & "          ★☆★"
        Print Space(Starno - i) & "            ☆"
        Print Space(Starno - i) & "          ☆★☆"
        Print Space(Starno - i) & "        ☆★★★☆"
        Print Space(Starno - i) & "      ☆★★★★★☆"
        Print Space(Starno - i) & "    ☆★★★★★★★☆"
        Print Space(Starno - i) & "  ☆★★★★★★★★★☆"
        Print Space(Starno - i) & "☆★★★★★★★★★★★☆"
    End Sub开个玩笑,不要鄙视我~~~~~:)
      

  7.   

    刚刚那个是拿楼上的修改的
    Space(Starno - i)  这句忘记删除了~~哈哈应该这样  Private Sub Form_Load()
        Me.AutoRedraw = True
        Print "★☆☆☆☆☆☆☆☆☆☆☆★ "
        Print "  ★☆☆☆☆☆☆☆☆☆★ "
        Print "    ★☆☆☆☆☆☆☆★"
        Print "      ★☆☆☆☆☆★"
        Print "        ★☆☆☆★"
        Print "          ★☆★"
        Print "            ☆"
        Print "          ☆★☆"
        Print "        ☆★★★☆"
        Print "      ☆★★★★★☆"
        Print "    ☆★★★★★★★☆"
        Print "  ☆★★★★★★★★★☆"
        Print "☆★★★★★★★★★★★☆"
    End Sub
      

  8.   

    呵呵....骂你倒是不会, 只是觉得..............我说过了, 是要动点脑, 上面代码并没多在意也并没多花心思, 既然楼主有心,我就委屈一下,多死几个脑细胞,我把你的 If 都省掉啦, 有规则性的一一对调星号不就好啦,要If干啥 ?? 甚至于两个For也可以只用一个就够啦,懒得写了.Dim i%, Starno%, Tmpstr$()
    Private Sub Form_Click()
       Starno = 13
       ReDim Preserve Tmpstr$(Starno)
       Me.Cls
       For i = Starno To 3 Step -2
          Print Space(Starno - i) & "★" & String(i - 2, "☆") & "★"
          Tmpstr(i) = "☆" & String(i - 2, "★") & "☆"
       Next i
       Print Space(Starno - i) & "☆"
       For i = 3 To Starno Step 2
          Print Space(Starno - i) & Tmpstr(i)
       Next i
    End Sub
      

  9.   

    下次你再出题时的条件改为只准使用一个For 不准使用任何判断,哈哈.............
      

  10.   

    一个堆砌出来的结果,一个循环就可以:
    Private Sub Command2_Click()
    Debug.Print "============================="
    Dim a As Boolean
    Dim middle As Boolean
    For i = -6 To 6
    a = Abs((6 + i) \ 7)
    middle = i Mod 7
    sspace = 12 - Abs(i) * 2
    fwstar = String(Abs(a) * Abs(middle), "☆")
    fbstar = String(Abs((Not a)) * Abs(middle), "★")
    wstar = String(Abs((Not a)) * Abs(middle) * (Abs(i) * 2 - 1), "☆")
    mstar = String(Abs(Not middle), "☆")
    bstar = String(Abs(a) * Abs(middle) * (Abs(i) * 2 - 1), "★")
    total = Space(sspace) + fwstar + fbstar + wstar + mstar + bstar + fwstar + fbstar + Space(sspace)
    Debug.Print total
    Next
    End Sub
      

  11.   

    拜托啦,你把那个图形这么打出来
     Private Sub Form_Load() 
        Me.AutoRedraw = True 
        Print "★☆☆☆☆☆☆☆☆☆☆☆★ " 
        Print "  ★☆☆☆☆☆☆☆☆☆★ " 
        Print "    ★☆☆☆☆☆☆☆★" 
        Print "      ★☆☆☆☆☆★" 
        Print "        ★☆☆☆★" 
        Print "          ★☆★" 
        Print "            ☆" 
        Print "          ☆★☆" 
        Print "        ☆★★★☆" 
        Print "      ☆★★★★★☆" 
        Print "    ☆★★★★★★★☆" 
        Print "  ☆★★★★★★★★★☆" 
        Print "☆★★★★★★★★★★★☆" 
    End Sub
    我不知道这这个有什么区别????
    至于你说只用一个循环我倒是想到了!!
    哈哈
      

  12.   

    楼主是说我的方法吗?在我看来,是有点分别的,例如说,我的方法如果真的要缩减语句,理论上是可以缩减剩3句的(虽然变量的用法并不规范):
    For i = -6 To 6 
    Debug.Print (这里是一大堆计算式,就是不用我上面的各个变量而直接在这一句里算出来,) 
    Next 
    不知直接打印的方法能否做到?
      

  13.   

    可以想象你的难以置信,因为我估计你也没细看我的代码,但既然事实摆在眼前,又何必去问比尔家的?你在随便什么地方试试这三句代码看看是做什么的:
    For i = -6 To 6
    Debug.Print Space((12 - Abs(i) * 2)) + String(Abs(CBool(Abs((6 + i) \ 7))) * Abs(CBool(i Mod 7)), "☆") + String(Abs((Not CBool(Abs((6 + i) \ 7)))) * Abs(CBool(i Mod 7)), "★") + String(Abs((Not CBool(Abs((6 + i) \ 7)))) * Abs(CBool(i Mod 7)) * (Abs(i) * 2 - 1), "☆") + String(Abs(Not CBool(i Mod 7)), "☆") + String(Abs(CBool(Abs((6 + i) \ 7))) * Abs(CBool(i Mod 7)) * (Abs(i) * 2 - 1), "★") + String(Abs(CBool(Abs((6 + i) \ 7))) * Abs(CBool(i Mod 7)), "☆") + String(Abs((Not CBool(Abs((6 + i) \ 7)))) * Abs(CBool(i Mod 7)), "★") + Space((12 - Abs(i) * 2))
    Next
      

  14.   

    呵呵..... 本人的一行, 挑战 比尔家的 半行能行吗? 我看干脆用相机拍一张贴上吧, 半行代码都不用写....
    Print "★" & String(11, "☆") & "★" & Chr(10) & Space(2) & "★" & String(9, "☆") & "★" & Chr(10) & Space(4) & "★" & String(7, "☆") & "★" & Chr(10) & Space(6) & "★" & String(5, "☆") & "★" & Chr(10) & Space(8) & "★" & String(3, "☆") & "★" & Chr(10) & Space(10) & "★" & "☆" & "★" & Chr(10) & Space(12) & "☆" & Chr(10) & Space(10) & "☆" & "★" & "☆" & Chr(10) & Space(8) & "☆" & String(3, "★") & "☆" & Chr(10) & Space(6) & "☆" & String(5, "★") & "☆" & Chr(10) & Space(4) & "☆" & String(7, "★") & "☆" & Chr(10) & Space(2) & "☆" & String(9, "★") & "☆" & Chr(10) & "☆" & String(11, "★") & "☆"
      

  15.   

    怎么现在年轻人写程序都这么出没无常,真是让人佩服啊
    Print "★" & String(11, "☆") & "★" & Chr(10) & Space(2) & "★" & String(9, "☆") & "★" & Chr(10) & Space(4) & "★" & String(7, "☆") & "★" & Chr(10) & Space(6) & "★" & String(5, "☆") & "★" & Chr(10) & Space(8) & "★" & String(3, "☆") & "★" & Chr(10) & Space(10) & "★" & "☆" & "★" & Chr(10) & Space(12) & "☆" & Chr(10) & Space(10) & "☆" & "★" & "☆" & Chr(10) & Space(8) & "☆" & String(3, "★") & "☆" & Chr(10) & Space(6) & "☆" & String(5, "★") & "☆" & Chr(10) & Space(4) & "☆" & String(7, "★") & "☆" & Chr(10) & Space(2) & "☆" & String(9, "★") & "☆" & Chr(10) & "☆" & String(11, "★") & "☆" 
    这个叫程序????
    哈哈,开个玩笑了`````````
      

  16.   

    呵呵.... 听说VB入门第一课的初级代码是 Msgbox "Hello" 哈哈, 这个不能说它不是代码吧 ?
      

  17.   

    cbm666啊,人这样的高手也说这样的话,真是借长了初学者的威风哦
    至于28楼那位兄弟,我上面已经把代码和思路贴出来了啊,自己看嘛
      

  18.   

    据我所知,这是用C++写Win32/GUI程序的第一个示例。 ^_^#include <windows.h>
    int WINAPI WinMain( HINSTANCE hinstance,
    HINSTANCE hprevinstance,
    LPSTR lpcmdline,
    int ncmdshow)
    {
    MessageBox(NULL, "Hello! Word.", "Message", 64);
    }
      

  19.   

    #include<stdio.h>  
    main()  
    {  
     printf("Hello world!\n");  
    }   
    哈哈.......比你的简单些吧.
      

  20.   

    回楼上:  你的是 DOS 命令行下运行的!
      你没注意到我说的Win32/GUI吧,这是有区别的哟!
      

  21.   

      我的那个C++代码,编译后运行时,会在桌面的任务栏上出现的,并且,你不点那个“确定”按钮(或按回车),程序是不会结束的。
      你31楼的那个代码是简单,谁都知道。可是运行是‘瞬间’就结束的、不会与人“交互”的、不会作为一个单独的任务出现的。  要想简单,也可以这样:
    #include <windows.h>
    int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
        MessageBox(NULL, "Hello! Word.", "Message", 64);
    }
      已经够少了吧 ^_^
      

  22.   


    可能好玩吧! ^_^不过“没有半行代码”如何理解呀?别就象一个脑筋急转弯一样“一个人从闹市上走过,却没看到半个人。是怎么回事?”
    (仔细一看,确实没有半行代码!..........只有N多N多的“整行代码” ^_^)
    (“没有模块”??? 难道VB6中还有一些“鲜为人知的秘密”?)
      

  23.   

    难道VB6中还有一些“鲜为人知的秘密”?答对了......就只要在VB6上端菜单点几个键输入几个字(非代码区), 一个带背景音乐的动画就跑出来啦...^_^明天再贴出方法, 让你好好找看看.....^_^
      

  24.   

    哈哈满足一下你吧.这个是我从百度VB吧另一位吧主 Deane.King 那偷来的, 他也会乐于共享滴....VB6.0的一个彩蛋  
     1)启动VB6.0;  
      2)单击“视图”菜单,从其中的“工具栏”子菜单中选择“自定义”对话框,选择其中的“命令”选项;  
      3)在左边的“类别”选项框中找到“帮助”并单击它;  
      4)从右边的“命令”选择框中找到“关于Microsoft Visual Basic…”,按住鼠标左键将它拖到“工具条”上(也可以拖到一个菜单中);  
      5)用鼠标右键单击该按钮,在弹出的菜单中找到“命名”,它的后边跟着一个文字框,其中有“关于Microsoft Visual Basic(&A)…”这个按钮的名字,将它改为“Show VB Credits”;  
      6)关闭“自定义”对话框。 这时,“Show VB Credits”就成了工具条上的一个按钮或某菜单中的一个条目;  
      7)用鼠标左键单击它,会弹出一个叫做“Microsoft Visual Basic”的窗口,在飘动的微软式的蓝天白云下,红、蓝、橙、黄四个立方体色块在不停地变化组合,而自下而上的滚动字幕所显示的就是VB6.0工作组的成员名单  
     
     
      

  25.   

    哈哈,照你们这么说微软的EXCEL还能玩游戏呢,不是更神!!
      

  26.   

    这个以前听说过,好象是要 Excel 2000 的,据说是个赛车游戏。如何操作记不清楚了。
      

  27.   

    1.开启Excel之后随便开一新文档,将它『另存成Web画面 』,按下发布后再将“添加交互对象”打勾,将档 案储存为car.htm(文件名可自取)。 
    2.在IE中开启car.htm,你应该会看到电子表格出现在网页中央 
    3.在这个工作表中,先用PageDown键移动工作表的矩形光标直至第2000行,注意只能用PageDown键,用鼠 标选中该行,然后用Tab键横向向右移动光标直至WC列,也是只能用键操作,到此,所有的准备工作已经 完毕,该是调出游戏的时候了。 
    4.同时按住Shift+Crtl+Alt 然后点选左上方的 Office logo 。 
    5.开始玩了 
    6.玩法提示: 玩游戏的时候,被你控制的是那一辆浅蓝色的汽车,操作的主要是四个箭头按键。作用是: 左右箭头可以控制汽车的方向:向上箭头可以加速, 向下的箭头减速;如果汽车运行到了夜间,可用H键 打开车灯,空格键子弹打前后的车
      

  28.   

    各位大大,,,小弟刚刚接触VB的,,基础的教程刚刚看完,现在在练习一些的的东东,,
    今天碰到一个也是关于打印图的,,我把代码复制过来
    Private Sub Command1_Click()
        Print Space(60);
        For i = 1 To 8
            Print Space(1); "*";
        Next i
        Print
        For i = 1 To 4
            Print Space(61); "*";
            Print Space(13); "*"
         Next
        Print Space(60);
        For i = 1 To 8
            Print Space(1); "*";
        Next i
        Print
            
    End Sub
    唯一没有搞懂的的就是,,第二排的空格数为什么比第一排多一个呢?  希望高手不要笑哈,,,,就是没有搞懂的
      QQ353825952
      

  29.   

    看楼主出的题目,,小弟狠下试一试,,,下面是我的代码,,用了4个for,,没有用if,,,(估计对If还是不熟,,没有想到怎么用))
    Private Sub Command2_Click()
    Dim p As Integer
    p = 60
    For n = 6 To 1 Step -1
              Print Space(p - n * 3 - 2);
              Print "★";
        For i = 2 * n - 1 To 1 Step -1
              Print " ☆";
        Next
              Print Space(1); "★"
    Next
              Print Space(p - 2); "☆"
        
    For n = 1 To 6
              Print Space(p - n * 3 - 3);
              Print " ☆";
        For i = 2 * n - 1 To 1 Step -1
              Print " ★";
        Next
              Print Space(1); "☆"
    Next
    End Sub
    代码可能有些反锁了,,,,希望高手给我改改哈,,,,谢了先
      

  30.   

    18楼的我试了一下,,可以打印的  
    我把  debug给注释掉了,,,
    (其实只注视了一句,,另一句给成了  print total,,
    结果还真的可以啊