九九乘法表,右上三角与右下三角的问题

cdlxgy 2013-10-25 05:16:54
用VB2010以上的版本:
写出下面两种排版格式的九九乘法表:
1.右上三角型的:
1x1=1 1x2=2 1x3=2 1x4=4 1x5=5 1x6=6 1x7=6 1x8=6 1x9=9
2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18
3x3=9 3x4=12 ............................................................................................
.....................................

9x9=81


2.右下三角型的:
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
......
1x9=9 2x9=18 ...... ......................................................................................................... 9x9=81

请问要怎么写代码?
...全文
2082 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdlxgy 2013-10-29
  • 打赏
  • 举报
回复 1
做为一个新手来说,虽然主要还是要靠自己努力来提高,但如果有你们这些前辈们指点一二会让我们学到很多书本上可能学不到的有用的东西。
  • 打赏
  • 举报
回复
反过来说,其实一切“原则”都是可变的。 如果有些人原本有些懒惰,后来通过努力“就差一点”就懂了,此时我们也是可以帮一把的。
  • 打赏
  • 举报
回复
引用 8 楼 gengchenhui 的回复:
呵呵,sp还不如多说说如何去设计,一些设计的思想,这种题目,应该自己花点时间都能做出来的吧???
这个东西是课堂练习。 我写的程序,基本上注重“成文自明”。因此如果程序非常简单,还要我一定要写注释才能看懂,我就会觉得读这种注释的人自身有很大问题了。我觉得“只在需要解释的时候才解释”,其它时候你应该自己去做一些理解,这样写程序才真的比较高效率。
  • 打赏
  • 举报
回复
呵呵,请把上面两个程序中的两条语句放到if...end if判断中。(虽然写在外边也没有任何打印错误)
gengchenhui 2013-10-26
  • 打赏
  • 举报
回复
呵呵,sp还不如多说说如何去设计,一些设计的思想,这种题目,应该自己花点时间都能做出来的吧???
  • 打赏
  • 举报
回复
对于WinForm,可以这样写
Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        打印乘法表(方向.右上, 0)
        打印乘法表(方向.右下, 200)
    End Sub

    Sub 打印乘法表(mode As 方向, top As Integer)
        For i = 1 To 9
            For j = 1 To 9
                Dim lbl = New Label
                lbl.Width = 60
                lbl.Height = 18
                If (mode = 方向.右上 And i <= j) Or (mode = 方向.右下 And (10 - i) <= j) Then
                    lbl.Text = String.Format("{0}x{1}={2}", i, j, i * j)
                    lbl.Location = New Point((j - 1) * 60, top + (i - 1) * 18)
                End If
                Me.Controls.Add(lbl)
            Next
        Next

    End Sub

    Enum 方向
        右上
        右下
    End Enum

End Class
  • 打赏
  • 举报
回复
右下?我打印的是左下。 给你写一个wpf的,对于winform也是一样,只不过把控件名字换一下而已。
Class MainWindow

    Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
        打印乘法表(方向.右上, 0)
        打印乘法表(方向.右下, 200)
    End Sub

    Sub 打印乘法表(mode As 方向, top As Integer)
        For i = 1 To 9
            For j = 1 To 9
                Dim lbl = New TextBlock
                If (mode = 方向.右上 And i <= j) Or (mode = 方向.右下 And (10 - i) <= j) Then
                    lbl.Text = String.Format("{0}x{1}={2}", i, j, i * j)
                    Canvas.SetTop(lbl, top + (i - 1) * 18)
                    Canvas.SetLeft(lbl, (j - 1) * 60)
                End If
                Me.canvasContainer.Children.Add(lbl)
            Next
        Next

    End Sub

    Enum 方向
        右上
        右下
    End Enum
End Class
如果“看不懂”这很遗憾。这是课堂练习,必须在学习时解决的小问题,工作中任何一个问题都要求你的能力远大于此。
cdlxgy 2013-10-26
  • 打赏
  • 举报
回复
sp1234 的方法虽然看不太懂,但是很谢谢你的解答。
  • 打赏
  • 举报
回复
Module Module1

    Sub Main()
        打印乘法表(方向.右上, 0)
        打印乘法表(方向.右下, 12)
        Console.ReadKey()
    End Sub

    Sub 打印乘法表(mode As 方向, top As Integer)
        For i As Integer = 1 To 9
            For j As Integer = 1 To 9
                If (mode = 方向.右上 And j >= i) Or (mode = 方向.右下 And j <= i) Then
                    Console.SetCursorPosition((j - 1) * 8, top + i - 1)
                    Console.Write("{0}x{1}={2}", i, j, i * j)
                End If
            Next
        Next
    End Sub

    Enum 方向
        右上
        右下
    End Enum

End Module
cdlxgy 2013-10-26
  • 打赏
  • 举报
回复
自己瞎捉摸着写成下面这个样子,不知道有没有更好的写法?
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim i, j, ji, spaces, kongge As Short
Dim huiche As String
kongge = 0
huiche = Chr(13) + Chr(10)
Label2.Text = ""
For i = 1 To 9
For j = i To 9
ji = i * j
spaces = IIf(ji >= 10, 2, 3)
Label2.Text = Label2.Text & CStr(i) & "×" & CStr(j) & "=" & CStr(ji) & Space(spaces)
kongge = i * 5 + i * 4
Next

Label2.Text = Label2.Text & huiche & Space(kongge)
Next
End Sub
cdlxgy 2013-10-26
  • 打赏
  • 举报
回复
版主你这么一说,估计后面就没人答了呀。是想自己写,但是对于菜鸟来说有人能详细指点一下不是更好么。
threenewbee 2013-10-25
  • 打赏
  • 举报
回复
作业自己做,给点提示 你可以用 VbTab 制表符去对齐,另一个有用的函数是 string.PadLeft,它可以用空白自动补齐文本的左边,实现右对齐。

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧