Ruby选择结构实战

在这里插入图片描述

文章目录

  • 一、Ruby选择结构实战概述
  • 二、Ruby选择结构实战案例
    • (一)闰年判断
      • 1、编写程序,实现功能
      • 2、程序的解释说明
      • 3、运行程序,查看结果
    • (二)求解一元二次方程
      • 1、编写程序,实现功能
      • 2、程序的解释说明
        • (1)输入部分
        • (2)处理部分
        • (3)输出部分
      • 3、运行程序,查看结果
  • 三、Ruby选择结构实战总结

一、Ruby选择结构实战概述

  • 程序编出来是用于判断决策的,因此在编程语言中,如何使用判断也就理所当然成为其核心思想,它影响我们用这门语言编码和思维的方式。Ruby的判断语句和其他大部分面向对象或过程式语言大同小异。
  • 当你使用if或unless时,既可选用块形式(ifcondition,statements,end),也可选用单行形式(statements if condition)。也许在某些人看来,if的单行形式令人作呕,但我却觉得,它仅仅用了一行代码,就清楚地表达了思想。

二、Ruby选择结构实战案例

(一)闰年判断

1、编写程序,实现功能

  • 编写程序 - JudgeLeapYear.rb
    在这里插入图片描述
=begin
功能:闰年判断
作者:华卫
日期:2024年3月22日
=endprint "输入一个年份:"
input = gets.chomp
year = input.to_iif year % 4 == 0 && year % 100 !=0 || year % 400 == 0puts "#{year}是闰年。"
elseputs "#{year}是平年。"
end

2、程序的解释说明

  • 这段 Ruby 程序实现了一个功能:判断输入的年份是否是闰年。

    1. 首先,通过 gets.chomp 方法获取用户输入的年份,并将其转换为整数类型,存储在变量 year 中。

    2. 然后,使用条件语句 if 进行判断。条件判断的逻辑:

      • 如果年份能被 4 整除,但不能被 100 整除,或者能被 400 整除,那么就是闰年。
      • 否则,就是平年。
    3. 最后,根据条件判断的结果,使用 puts 方法输出相应的信息,告诉用户输入的年份是闰年还是平年。

  • 值得注意的是,程序中使用了逻辑运算符 &&|| 来组合多个条件,其中 && 表示逻辑与(and),|| 表示逻辑或(or)。这样的逻辑组合确保了按照闰年的定义来正确判断年份。

3、运行程序,查看结果

  • 执行命令:ruby JudgeLeapYear.rb
    在这里插入图片描述

(二)求解一元二次方程

1、编写程序,实现功能

  • 编写程序 - SolveQuadraticEquation.rb
    在这里插入图片描述
=begin
功能:求解一元二次方程
作者:华卫
日期:2024年3月22日
=end# 输入部分
print "a = "
input = gets.chomp
a = input.to_f
print "b = "
input = gets.chomp
b = input.to_f
print "c = "
input = gets.chomp
c = input.to_f# 处理部分
delta = b**2 - 4 * a * c
if delta > 0 x1 = (-b + Math.sqrt(delta)) / (2 * a)x2 = (-b - Math.sqrt(delta)) / (2 * a)# 输出部分puts "方程有两个不等实根"puts "x1 = #{x1}"puts "x2 = #{x2}"
elsif delta == 0x1 = x2 = -b / (2 * a)# 输出部分puts "方程有两个相等实根"puts "x1 = #{x1}"puts "x2 = #{x2}"
elserealPart = -b / (2 * a) # 实部imageryPart = Math.sqrt(-delta) / (2 * a) # 虚部# 输出部分puts "方程有两个不等复根"puts "x1 = #{realPart} + #{imageryPart}i"puts "x2 = #{realPart} - #{imageryPart}i"	
end

2、程序的解释说明

  • 这段 Ruby 程序是一个用于求解一元二次方程的简单程序,它包含了输入、处理和输出三个部分,并根据方程根的类型输出不同的结果。
(1)输入部分
  • 程序首先提示用户输入方程的系数 abc,然后通过 gets.chomp 方法获取用户输入的字符串,并使用 to_f 方法将其转换为浮点数类型。
(2)处理部分
  1. 计算判别式 delta = b**2 - 4 * a * c,用以确定方程的根的类型。
  2. 如果判别式 delta 大于 0,则方程有两个不等实根,使用求根公式计算实根 x1x2
  3. 如果判别式 delta 等于 0,则方程有两个相等实根,实根为 -b / (2 * a)
  4. 如果判别式 delta 小于 0,则方程有两个不等复根,使用复数的实部和虚部计算复根。
(3)输出部分
  • 根据方程的根的类型,分别输出不同的结果
    • 如果方程有两个不等实根,则输出两个实根 x1x2
    • 如果方程有两个相等实根,则输出相同的实根 x1x2
    • 如果方程有两个不等复根,则输出两个复根,使用形如 realPart + imageryParti 的形式表示。

3、运行程序,查看结果

  • 执行命令:ruby SolveQuadraticEquation.rb
    在这里插入图片描述

三、Ruby选择结构实战总结

  • 通过这两个Ruby编程实例,我深入理解了Ruby的选择结构。第一个实例是判断闰年的程序,它展示了如何使用if语句进行条件判断。第二个实例是求解一元二次方程的程序,它不仅包含了条件判断,还涉及到了复数的计算。这两个实例都体现了Ruby语言简洁明了的特点,使我对Ruby有了更深入的了解和实践。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/765249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux--Flappy_bird实现

目录 void handler(int sig): mian: void init_curses() int set_timer(int ms_t); 小鸟的操作: void show_pipe(): void create_list() void clear_pipe() void move_pipe(); test_bird.c完整代码: 代码实现: #includ…

STM32 CubeMX使用介绍(含FreeRTOS生成)

文章目录 前言1. 简介1.1 什么是STM32CubeMX1.2 为什么会有STM32CubeMX的出现1.3 STM32CubeMX常用功能有哪些?1.4 官方资料下载地址 2. 下载和安装STM32CubeMX2.1 下载软件2.2 软件安装 3. 使用方式3.1 说明3.2 不同选择器介绍3.3 构建新的项目3.1 选择单片机的型号…

题目:出列(蓝桥OJ 3223)

问题描述: 解题思路: 先使用暴力找到规律再解。 暴力做法:将数据放到一个动态数组中,下标就表示当前编号,符合题意的就放到覆盖该数组中,依次循环,直到只有一个元素停。 规律:小于该…

爬虫(七)

1.批量爬取知网数据 lxml:是 Python 的一个功能强大且易用的 XML 和 HTML 处理库。它提供了简单又轻巧的 API,使得解析、构建和操作 XML 和 HTML 文档变得非常方便。lxml 库通常用于处理 XML 和 HTML 文档,例如解析网页、处理配置文件等。openpyxl:是 Python 中用于操作 Ex…

uniapp自定义导航栏左中右内容和图标,以及点击事件

uniapp自定义导航栏左中右内容和图标&#xff0c;以及点击事件 效果&#xff1a; 页面&#xff1a; <view class"navigation-bar"><view class"navigation-bar-left" click"navigateBack"><u-icon name"arrow-left"…

【嵌入式开发 Linux 常用命令系列 4.3 -- git add 时单独排除某个目录或者文件】

文章目录 git add 时单独排除某个目录或者文件使用 .gitignore 文件使用命令行排除文件或目录 git add 时单独排除某个目录或者文件 在使用 git add 命令时&#xff0c;如果你想要排除特定的目录或文件&#xff0c;可以使用 .gitignore 文件或使用路径规范来指定不想添加的文件…

新的变速箱滚动轴承和齿轮故障数据

变速箱是传动系统中非常关键的一部分&#xff0c;它由齿轮、传动轴、轴承和壳体等组成。变速箱的主要功用包括&#xff1a;&#xff08;1&#xff09;能够改变传动比&#xff0c;按实际情况调整驱动轮转矩和转速&#xff0c;进而满足复杂的行车要求&#xff1b;&#xff08;2&a…

机器学习金融应用技术指南

1 范围 本文件提供了金融业开展机器学习应用涉及的体系框架、计算资源、数据资源、机器学习引擎、机 器学习服务、安全管理、内控管理等方面的建议。 本文件适用于开展机器学习金融应用的金融机构、技术服务商、第三方安全评估机构等。 2 规范性引用文件 下列文件中的内容通过…

新型储能是什么,储能系统解决方案现状及趋势详细说明

新型储能是指新兴的能够存储电能并在需要时释放的储能技术。其中主要包括光伏储能和商业储能。 光伏储能是指通过光伏电池将太阳能转化为电能&#xff0c;并将其存储起来以供后续使用。光伏储能系统一般由太阳能电池板、储能装置和逆变器组成。光伏储能可以将白天产生的电能存…

Java练习题目3:输入一个学生的5门课成绩及对应的学分,计算该同学的加权平均分(WeightedAverageScore3)

每日小语 我们没有意识到惯用语言的结构有多大的力量。可以说&#xff0c;它通过语义反应机制奴役我们。 ——阿尔弗雷德科日布斯基 思考 输入5门课成绩&#xff0c;学分&#xff0c;加权平均分公式 [&#xff08;课程A成绩*课程A学分&#xff09;&#xff08;课程成绩B*课程…

Learn OpenGL 19 几何着色器

几何着色器 在顶点和片段着色器之间有一个可选的几何着色器(Geometry Shader)&#xff0c;几何着色器的输入是一个图元&#xff08;如点或三角形&#xff09;的一组顶点。几何着色器可以在顶点发送到下一着色器阶段之前对它们随意变换。然而&#xff0c;几何着色器最有趣的地方…

动态路由协议——OSPF

目录 一.OSPF来源 二.OSPF术语 1.area id——区域的划分 2.cost——路径开销值 3.route id 4.LSDB表 5.邻居表 6.OSPF路由表 三.OSPF工作过程 1.交互hello报文建立邻居关系 2.选举主从 3.交互LSDB摘要信息 4.LSR,LSU,LSACK同步LSDB表项 5.各自计算路由 四.OSPF交…

maven手动上传的第三方包 打包项目报错 Could not find xxx in central 解决办法

背景: 在Maven私服手动上传了第三方的jar包, 只有jar包, 没有pom文件, 项目在ide中可以正常编译启动,但打包报错无法找到jar包 解决办法: 上传jar包的时候, 点击生成pom. 则打包的时候不会报错

pyrealsense2获取保存点云

一、第一种实现代码 Python import sys import cv2 import pyrealsense2 as rs import numpy as np import keyboard import open3d as o3d import osif __name__ "__main__":output_folder output_data/os.makedirs(output_folder, exist_okTrue)pipeline rs.p…

三级数据库技术知识点(详解!!!)

1、从功能角度数据库应用系统可以划分为表示层、业务逻辑层、数据访问层、数据持久层四个层次&#xff0c;其中负责向表示层直接传送数据的是业务逻辑层。 【解析】表示层负责所有与用户交互的功能;业务逻辑层负责根据业务逻辑需要将表示层获取的数据进行组织后&#xff0c;传…

阅读MySQL知识4

一、MySQL数据库主从同步延迟产生的原因 MySQL的主从复制都是单线程的操作&#xff0c;主库对所有DDL和DML产生的日志写进binlog&#xff0c;由于binlog是顺序写&#xff0c;所以效率很高。 Slave的SQL Thread线程将主库的DDL和DML操作事件在slave中重放。DML和DDL的IO操作…

SpringBoot如何替换启动图标

SpringBoot项目在启动时会出现一个默认的启动图案 . ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | _ | _| | _ \/ _ | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) ) |____| .__|_| |_|_| |_\__, | / / / /|_||___//_/_/_/::…

软件架构和基于架构的软件开发方法知识总结

一、软件架构定义 软件架构为软件系统提供了一个结构、行为和属性的高级抽象 软件架构是一种表达&#xff0c;使软件工程师能够&#xff1a; &#xff08;1&#xff09;分析设计在满足所规定的需求方面的有效性 &#xff08;2&#xff09;在设计变更相对容易的阶段&#xff0c;…

题目:异或森林(蓝桥OJ 3400)

问题描述&#xff1a; 解题思路&#xff1a; 一个数也可以看作是一段区间&#xff0c;当该区间的异或和为完全平方数时则符合题意。 我们需要注意枚举的完全平方的上限。 异或前缀和减小时间复杂度。 题解&#xff1a; #include <bits/stdc.h> using namespace std; usi…

vi\vim编辑器详解

vi\vim编辑器介绍 vi\vim是visual interface的简称, 是Linux中最经典的文本编辑器 同图形化界面中的 文本编辑器一样&#xff0c;vi是命令行下对文本文件进行编辑的绝佳选择。 vim 是 vi 的加强版本&#xff0c;兼容 vi 的所有指令&#xff0c;不仅能编辑文本&#xff0c;而…