函数课堂练习题和作业 | 学习笔记

简介: 简介:快速学习函数课堂练习题和作业

开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map :函数课堂练习题和作业】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9614


函数课堂练习题和作业

 

基本内容:

一、函数可以没有返回值案例,编写一个函数,从终端输入一个整数打印出对应的金子塔

二、编写一个函数,从终端输入一个整数(1一9),打印出对应的乘法表

三、编写函数,对给定的一个二维数组(3×3)转置

说明

在前面几节课讲 for 循环的时候,讲过两个案例。一个是用 for 循环打印金字塔,另一个是用 for 循环打印99乘法表。没有用函数,用的是面向过程的方式,现在要求用函数的方式实现。打印金字塔案例在第5章多重循环控制里讲到过,当时讲这个案例的时候没有用函数封装,而用的是原始的面向过程的方式,做开发的时候需要将这些功能封装到函数内部,需要打印金字塔或者乘法表的时候直接进行调用该函数。


一、函数可以没有返回值案例,编写一个函数,从终端输入一个整数打印出对应的金子塔

1、分析思路

将原来写的打印金字塔的案例,使用函数的方式进行封装,在需要打印时,直接调用即可。

2、操作方法

先把代码主体结构写出,引入包 fmt ,把代码主函数写出来,将打印金字塔的代码封装到函数中 func printPyramid(totalLevel int) 先定义层数,没有返回值。接收了一个 totalLevel ,调用 printPyramid 函数,就可以打印金字塔。先传一个9,打出的是空心金字塔。

image.png

如果不想打空心金字塔,把 if 和 else 注释掉,就变为实心金字塔了。要求是从终端输入一个整数打印出对应的金子塔,先定义一个变量 var n int,输入 fmt.Println ("请输入打印金字塔的层数"),必须要传入地址,地址传入之后才能够打印出外面的“n”。

3、代码如下:

package main

import (

"fmt"

)

//将打印金字塔的代码封装到函数中

func printPyramid(totalLevel int){

// i表示层数

for i :=1; i <= totalLevel; i++ {

//在打印*前先打印空格

for k := 1; k <= totalLevel - i; k++ {

fmt.Print(”")

}

//j表示每层打印多少*

for j :=1; j = 2*i - 1;j++ {

fmt.Print("*")

}

fmt.Println()

}

}

func main() {

//调用printPyramid函数,就可以打印金字塔

//从终端输入一个整数打印出对应的金子塔

var n int

fmt.Println ("请输入打印金字塔的层数")

fmt.scanln ( &n ) 

printPyramid (9 )

}

输出结果如下图所示:

image.png


二、编写一个函数,从终端输入一个整数(1-9),打印出对应的乘法表

1、分析思路:

就是将原来写的调用九九乘法表的案例,使用函数的方式封装,在需要打印时直接调用即可

2、操作方法

新建一个文件夹 printmulti,新建一个文件 main.go ,引入包 fmt ,把代码主函数写出来。编写一个函数调用九九乘法表,接收一个整数 int ,不需要返回值,代码中 num 代表层数,形参改为 num。从终端输入一个整数表示要打印的乘法表对应的数,定义一个变量 num,fmt.Println(“请输入九九乘法表的对应数"),拿到 num 这个值,再继续调用,直接传值过去。

3、代码如下:

package main

import (

"fmt"

)

//编写一个函数调用九九乘法表

func printMulti(num int) {

//打印出九九乘法表

//i表示层数

for i :=1; i <= num; i++ {

for j :=1; j =i; j++ {

fmt.Printf("%v* %v = %v  \t",j, i, j* i)

}

fmt.Println()

}

}

func main() {

//从终端输入一个整数表示要打印的乘法表对应的数

var num int

fmt.Println(“请输入九九乘法表的对应数")

fmt.scanln(&num)

printMulti(num)

}

image.png

通过这个案例可以看到把功能封装到函数里调用更加的方便,在做程序开发的时候,如果能够把功能封装到函数中,尽量把它封装到函数中,这样有利于后面的调用,代码也看起来简洁。


三、编写函数,对给定的一个二维数组(3×3)进行转置,这个题讲数组的时候再完成。

image.png

转置就是将“123456789”经过转置变成“147258369”,把行和列进行一个对换。比如说2转置过后就放到4的位置,4和2交换位置。3和7交换就是行和列交换。中间159这条线是对称的,没有变化。因为这个题还没解讲数组,需要预习数组方面的内容才可以完成,这个题是一个课后练习课后作业。

相关文章
|
消息中间件 RocketMQ
RocketMQ 消费者监听日志不打印问题
RocketMQ 消费者监听日志不打印问题
472 0
RocketMQ 消费者监听日志不打印问题
|
JSON 移动开发 JavaScript
多款顶级好用的 Vue 表单设计器测评推荐,可拖拽生成表单
Vue 前端开发中,表单组件是排在前三的高频使用的组件,如何快速构建表单,节省力气,避免重复造轮子呢,选择一款适合自己的前端表单设计器就非常重要了。本文介绍 4 款顶级好用的 Vue 表单设计器,其中最后一款卡拉云,是新一代低代码开发工具,不仅能自动生成各类表单,还可以拖拽生成其他常见的前端组件,一行代码连接前后端数据,可快速接入数据库/api。它是表单设计器的超集,可直接生成属于你的后台管理工具,无敌好用。
4287 0
多款顶级好用的 Vue 表单设计器测评推荐,可拖拽生成表单
|
3月前
|
存储 人工智能 数据可视化
规则引擎在医疗实际中的解决方案有哪些?
Together规则引擎通过医疗保健功能集(HFS)实现医疗逻辑自动化,提升互操作性与临床决策效率。它支持可视化建模,集成临床路径与决策支持系统,助力医疗机构优化流程、降低成本,并确保遵循最佳实践与行业标准,适用于医疗管理、临床决策及产品开发等场景。
|
IDE Linux 开发工具
IntelliJ IDEA2022破解IDEA2022.2永久破解激活教程
IDEA 目前已经更新到最新的 2022.2.2 版本了,群里的小伙伴私聊问我,为啥之前 2021.3.1 的激活套路对新版本 2022.2.2 不管用了,是个什么情况? 很显然,IDEA 官方发现了这种破解路数,新版本加入了更严厉的反制破解。所以说,小伙伴们破解成功了以后,尽量不要升级 IDEA, 不然大概率又不行了。 好在z大又更新了新的补丁,针对最新版本,这边笔者亲测可行,仅以下文记录本人 IntelliJ IDEA 2022.2.2 版本的激活破解到 2099 年的全过程,步骤非常详细,跟着图文来就行~
65987 3
IntelliJ IDEA2022破解IDEA2022.2永久破解激活教程
|
存储 Android开发
android Jetpack—ViewModel使用方法和详细原理解析
android Jetpack—ViewModel使用方法和详细原理解析
1249 0
android Jetpack—ViewModel使用方法和详细原理解析
|
jenkins Java 关系型数据库
jenkins持续集成从0入门到实战【八】集成sonarqube代码检测
SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检 测。
615 1
jenkins持续集成从0入门到实战【八】集成sonarqube代码检测
|
存储 关系型数据库 MySQL
在centos7上利用docker部署wordpress博客
Docker简介 1.1 什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。 ​在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用 虚拟化技术种类很多,例如:软件虚拟化、
|
消息中间件 分布式计算 DataWorks
DataWorks数据集成-大数据上下云的核心枢纽 | 《一站式大数据开发治理DataWorks使用宝典》
数据集成是大数据平台上下云的核心枢纽,它的主要功能是把不同业务系统中的数据进行打通,实现数据自由离线或实时地流动,可以通过丰富的网络解决方案完成数据上下云。
3231 1
DataWorks数据集成-大数据上下云的核心枢纽 | 《一站式大数据开发治理DataWorks使用宝典》
|
SQL 数据可视化 Oracle
Navicat操作MySQL简易教程
日常使用 MySQL 的过程中,我们可能会经常使用可视化工具来连接 MySQL ,其中比较常用的就是 Navicat 了。平时也会遇到某些同学问, Navicat 怎么安装,如何使用等问题。本篇文章笔者将结合个人经验,分享下 Navicat 操作 MySQL 简易教程。
497 0
Navicat操作MySQL简易教程
|
消息中间件 SQL 搜索推荐
什么是用户画像——从零开始搭建实时用户画像(一)
什么是用户画像——从零开始搭建实时用户画像(一)
1780 0
什么是用户画像——从零开始搭建实时用户画像(一)