vb程序编写菱形图案

vb程序编写菱形图案,第1张

最通用的解决方案,可以选择打印任意多行的菱形

Private Sub Command1_Click()

Dim i As Integer, j As Integer, k As Integer

Do

k = InputBox("选择打印行数(必须为奇数)", , 9)

Loop While k Mod 2 = 0

Cls

For i = -k \ 2 To k \ 2

Print Tab(Abs(i) + 1);

For j = 1 To k - 2 Abs(i)

Print "";

Next j

Print

Next i

End Sub

Dim n%, st$ 'st为控制所显示字符或数字变量

n = InputBox("请输入数字菱形行数,必须为奇数", "数字菱形")

m = (n + 1) / 2

For i = 1 To m

    st = Chr(Asc(i))

   Print Tab(m + 1 - i); String(2  i - 1, st),

Next

For i = m + 1 To n

   st = Chr(Asc(i))

   Print Tab(i - m + 1); String(2  (n - i) + 1, st),

Next

n = InputBox("请输入字符行数,必须为奇数", "字符菱形")

m = (n + 1) / 2

For i = 1 To m

If i Mod 2 = 0 Then st = "B" Else: st = "A"

   Print Tab(m + 1 - i); String(2  i - 1, st),

Next

For i = m + 1 To n

    If i Mod 2 = 0 Then st = "B" Else: st = "A"

   Print Tab(i - m + 1); String(2  (n - i) + 1, st),

Next

你把原来输出的""改为" "(也就是printf的双引号里面加一空格)就行,另外,前导空格也变为两个就行

也就是说,把printf(" ");改为printf("  ");(这是一空格改两空格),把printf("");改为printf(" ");(也就是星号后面加空格)就行

附示例:

#include<stdioh>

void main()

{

int i,j,k;

for(i=1;i<=4;i++) //先打印上边的四行

{

for(j=1;j<=4-i;j++) //控制要打印的空格数量

printf(" ");

for(k=1;k<=2i-1;k++) //控制要打印的星号数

printf("");

printf("\n");

}

for(i=1;i<=3;i++)

{

for(j=1;j<=i;j++) //控制要打印的空格数

printf(" ");

for(k=1;k<=7-2i;k++) //控制要打印的星号数

printf("");

printf("\n");

}

}

扩展资料:

for循环

for循环结构是c语言中最具有特色的循环语句,使用最为灵活方便,它的一般形式为:

for(表达式1;表达式2;表达式3)循环体语句 。(其中;不能省略)

表达式

表达式1为初值表达式,用于在循环开始前为循环变量赋初值。

表达式2是循环控制逻辑表达式,它控制循环执行的条件,决定循环的次数。

表达式3为循环控制变量修改表达式,它使for循环趋向结束。

循环体语句是在循环控制条件成立的情况下被反复执行的语句。

但是在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。

先执行表达式2,然后执行循环结构,最后表达式3,一直这样循环下去。

for循环语句是c语言种功能最为强大的语句,甚至在一定程度上可以代替其他的循环语句。

do

do循环结构,do 1 while⑵;的执行顺序是1->2->1循环,2为循环条件。

while

while循环结构,while(1) 2; 的执行顺序是1->2->1循环,1为循环条件

以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。

参考资料:

C语言-百度百科

#include <stdioh>

int main(void){

 int i,j,k;

 //上半空心菱形 

 for(i=1;i<=10;i++){  //控制行数 10行 

  for(k=10;k>i;k--){  //第一行 9空格1   i=2  8空格 2 

   printf("  ");   

  }

  //当i=1时 由第25行代码输出 

  if(i == 1){}

  else{

      printf(" ");

  }

  //空心空格个数打印 0 2 4 6   16个 

  for(j=1;j<2i-2;j++){

   printf("  ");

  }  

  printf(" ");

  printf("\n");  

 }

 //下空心菱形 

 for(i=1;i<=9;i++){  //去掉最长行 只有9行 

     //空格增多 1 2 39 

  for(k=1;k<=i;k++){

         printf("  ");   

     }

     //最后一行号由代码43行执行 

     if(i == 9){}

     else{

            printf(" ");

     }

     //空心空格个数打印 15 13 1    注意空格是15开始 1结束 

  for(j=1;j<=17-2i;j++){  //i=9时候 打印0个空格 

   printf("  ");

  }  

  printf(" "); //打印每行后出现的 

  printf("\n"); //换行 

 }

 }

直接算出节点坐标就比较好编了。 ,我数学没学好要是我我就用G68坐标旋转了省了算坐标

G68 X0 Y0 R45

G00 X-29 Y29

Z2

G01 Z0 F100

G41 X-24 Y19 D01 F350

X19 ,R12

Y-19 ,R12

X-19 ,R12

Y19 ,R12

X-7

G03 X5 Y29 R12

G00 Z100

G40 X0 Y0

G69

正好前天晚上我写了一个,不过是用Java写的,相信你一定可以把它转换成其它语言。可以使用C++,把输出菱形的函数封装到Outputlingxing类中;也可以使用C语言,你把Outputlingxing类中的draw(int N)函数直接该写到main函数中即可。其实语言不是问题,你能看懂算法就行了!

import javautilScanner;

public class lingxing {

public static void main(String[] args) {

Systemoutprintln("菱形绘制程序");

Systemoutprintln("为了使绘制效果美观,请输入不小于3的奇数!");

Scanner theN=new Scanner(Systemin);

Outputlingxing xingxing=new Outputlingxing();

while(true)

{

Systemoutprint("请输入要绘制的菱形的行数(退出程序请输入0):");

int n=theNnextInt();

if(theN)

if(0==n) { Systemoutprintln("程序正常退出!");return;}

if(n<=2) { Systemoutprintln("你输入的数字太小!");continue;}

else xingxingdraw(n);

}

}

}

/ 类名:Outputlingxing

功能:输出一个由组成的菱形图案

说明:该类实现输出的是 draw(int N) 函数,形参N为需要绘制的菱形的行数

/

class Outputlingxing{

private int i, j, k; //i用来控制行,j用来控制号前的空白数,k用来控制号之间的空白数

private int m; //下半部分行数

private int n; //上半部分行数

public void draw(int N){

m=(N-1)/2;

n=m+1;

for (i = 1; i <= n; i++) {

for (j = 1; j <= n - i; j++) {

Systemoutprint(" ");

}//输出号前的空白

if(i==1)//如果是第一行,则直接输出一个号并换行

{

Systemoutprint("");

Systemoutprint("\n");

}else//否则

{

Systemoutprint(""); //输出该行第一个号

for(k=1;k<=2i-3;k++) //输出2i-3个空白

Systemoutprint(" ");

Systemoutprint(""); //输出该行最后一个号

Systemoutprint("\n"); //每一行末换行

}

}//输出上半部分号

for (i = 1; i <= m; i++) {

for (j = 1; j <= i; j++) {

Systemoutprint(" "); //输出号前的空白

}

if(i!=m) //如果不是最后一行

{

Systemoutprint(""); //输出该行第一个号

for(k=1;k<=(N-2-2i);k++) //输出N-2-2i个空白

Systemoutprint(" ");

Systemoutprint(""); //输出该行第二个号

}else //否则就是最后一行,那么就只输出一个号

Systemoutprint("");

Systemoutprint("\n"); //每一行末进行换行

}//输出下半部分号

}

}

以上就是关于vb程序编写菱形图案全部的内容,包括:vb程序编写菱形图案、VB编程,数字菱形以及字符菱形、我要用for循环编写c语言程序中的菱形,但是星号之间也要有空格怎么弄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9456241.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存