viple进阶3:打印不同形状的三角形

2023-11-09 04:08

本文主要是介绍viple进阶3:打印不同形状的三角形,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(1)题目:打印实心的三角形(正三角)

第一步:观察图形。首行是1颗星,其余的每一行都比上一行多1颗星;其次,每一行的星号数和行数值相等,第一行有1颗星,第二行有2颗星,以此类推,第n行有n颗星。

第二步:设计方案。根据进阶1的经验,可以先封装一个自定义活动printN,用来实现传入行数n,则打印n颗星。其次,主程序中编写循环,数出当前是第几行,将行数传给自定义活动即可。

第三步:实现。

首先实现自定义活动。需要传递行数,所以,首先进入自定义活动中创建形式参数。

紧接着编写逻辑,循环n遍,每一遍都拼接上一颗星,循环结束后,拼接出n颗星并打印。

紧接着先测试该自定义活动是否能准确运行,测试输入任意一个值(大于0的整数),查看打印出来的星号数是否等于输入的数。如果相等,则可以进行下一步。

其次实现Main程序:编写循环,对行数进行计数,从1开始数。

发现结果只打印了一颗星,也就是第二行没有打印出来。

查找问题:i=1,i<=5成立,进入自定义活动,然后打印后,就可以工作流出来,所以后续的程序都没有执行。

于是,把工作流连通,也就是下图标记为1的地方对应的连线(完整的自定义活动)。

再次运行查看测试结果。

将Main中的state.i<=5改为state.i<=10,再次测试观察结果。

程序完成,没有什么问题了。

当然,i也可以从0开始数,那么,第0行打印1颗星,第1行打印2颗星,以此类推,可以找到规律,第n行打印n+1颗星,传递参数的时候,就先计算出n+1再传递给自定义活动即可。

最后进行测试

(2)题目:viple打印实心三角形(倒三角)

 第一步:观察图形。一共有5行,第一行打印5颗星;第二行打印4颗星,以此类推,第n(最大取值为5)行打印的星号数是5-n。

第二步:设计方案: 根据进阶1的经验,可以先封装一个自定义活动printN,用来实现传入数据n,则打印n颗星。其次,主程序中编写循环,数出当前是第几行,通过计算出第i行需要打印5-i颗星,将计算结果直接传递给自定义活动即可。

第三步:实现。

自定义活动和上面的【完整的自定义活动】一样,这里直接给出

Main程序:根据设计方案,需要先计算出第i行要打印的星号数是5-i,再传入自定义活动。

还可以将5改为10,再测试打印效果:

还有一种比较便捷的打印方法:观察到低一行打印5颗星,那么,让i的值从5开始,

第二行打印4颗星,就让i的值-1,再传入自定义活动。

(3)题目:viple打印实心三角形(倒三角2)

观察图形,发现第0行打印5颗星,第1行打印4颗星,第4行打印1颗星,如果行数是i,则星号数是5-i

其次,第0行看不出空格,可能是0个,第1行有1个空格,第2行有2个,以此类推,第4行有4个空格,如果行数是i,则空格数等于i

最后,每一行都是先打印空格再打印星号数。

设计方案:设计自定义活动,并且需要两个形式参数,分别表示空格数和打印的星号数。

自定义活动中:

Main中,循环数出行数,再通过行数计算出该行应该有多少个空格,多少个星号,将这两个参数传入自定义活动即可

(4)题目:viple打印实心三角形(正三角)

观察图形找规律,第0行,有2个空格,1个星号

第1行,有1个空格,1个星号

第2行,有0个空格,3个星号

如果行数为i,则空格数时2-i,星号数是i+1

自定义活动

Main中:

这篇关于viple进阶3:打印不同形状的三角形的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/373912

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

MySQL进阶之路索引失效的11种情况详析

《MySQL进阶之路索引失效的11种情况详析》:本文主要介绍MySQL查询优化中的11种常见情况,包括索引的使用和优化策略,通过这些策略,开发者可以显著提升查询性能,需要的朋友可以参考下... 目录前言图示1. 使用不等式操作符(!=, <, >)2. 使用 OR 连接多个条件3. 对索引字段进行计算操作4

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

java中不同版本JSONObject区别小结

《java中不同版本JSONObject区别小结》本文主要介绍了java中不同版本JSONObject区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1. FastjsON2. Jackson3. Gson4. org.json6. 总结在Jav

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo