Ruby选择结构实战

news2024/9/22 19:26:43

在这里插入图片描述

文章目录

  • 一、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日
=end

print "输入一个年份:"
input = gets.chomp
year = input.to_i

if year % 4 == 0 && year % 100 !=0 || year % 400 == 0
    puts "#{year}是闰年。"
else
    puts "#{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 == 0
    x1 = x2 = -b / (2 * a)
    # 输出部分
	puts "方程有两个相等实根"
	puts "x1 = #{x1}"
	puts "x2 = #{x2}"
else
	realPart = -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.coloradmin.cn/o/1536663.html

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

相关文章

多级页表查询

说明一下这个三级页表的查询,会需要上面的L2,L1,L0 如果在二级页表level就是2,PGSHIFT是12,那么就是往左移129*2位置,在&9bit就得到L2,其他以此类推 也表查询,首先有跟页表的地址pagetable,…

TCP协议——三次握手和四次挥手

文章目录 1. 示意图2. 三次握手3. 四次挥手4. 三次和四次问题4.1 为什么三次握手4.2 为什么四次挥手 5. 状态变化实验5.1 三次握手实验5.2 四次挥手实验 1. 示意图 Tips: 不管是握手还是挥手,发送的都是完整的TCP报头,这不过这些标记位被设置…

【惠友精术】腰椎间盘突出急性发作“要人命”!微创手术除病痛

腰椎间盘突出 急性发作真的很突然 很多患者都有相同的感受 腰腿疼痛难忍 突然就无法动弹 这两天医院来了一位腰椎间盘突出急性发作的阿姨,到院时由家人搀扶着,疼得根本直不起腰,不停吸冷气,情况十分严重。 “医生&#xff0c…

需求:JSON数据显示null值或者不显示null值

使用hutool的工具类 import cn.hutool.json.JSON; import cn.hutool.json.JSONConfig; import cn.hutool.json.JSONUtil;public class Main {public static void main(String[] args) {String sss "{\"1\":\"a\",\"2\":null}";// 不…

vue项目突然报错 error Insert `⏎·········` prettier/prettier

vs设置了保存时自动格式化代码,突然就报错: 解决方法,在.eslintrc.js最后添加一行:prettier/prettier: off, 然后重新运行

C++之constexpr和常量表达式

常量表达式 常量表达式(const expression)是指值不会改变并且在编译过程就能得到计算结果的表达式。 显然,字面值属于常量表达式,用常量表达式初始化的const对象也是常量表达式。 后面将会提到,C语言中有几种情况下是要用到常量表达式的。…

黑马现有java课程框架及其功能梳理

目录 高并发相关提高通信效率Netty作用:哪些框架使用它: ChannelChannelHandler 和 ChannelPipelineEventLoop 和 EventLoopGroup**涉及的名词解释:**NIOSocketNginx 高并发相关 主要用来解决IO密集型程序(大量文件读写&#xff…

AI+ 发展展望

引言 随着人工智能技术的不断进步,"AI"已经成为一个热门话题,它代表着人工智能与其他行业的深度融合。"AI"不仅仅是技术的进步,更是一场影响深远的社会变革。在这篇文章中,回望历史我们将探索历史经验&#…

高德地图——轨迹回放和电子围栏

功能点 地图的初始化显示电子围栏(先初始化在调接口显示电子围栏)显示定位显示轨迹轨迹回放 (回放速度无法控制是因为高德地图的版本问题,不要设置版本,使用默认的即可生效)获取当前城市及天气情况设置地图…

【机器学习300问】43、回归模型预测效果明明很好,为什么均方根误差很大?

一、案例描述 假设我们正在构建一个房地产价格预测模型,目标是预测某个城市各类住宅的售价。模型基于大量房屋的各种特征(如面积、地段、房龄、楼层等)进行训练。 回归模型在大部分情况下对于住宅价格预测非常精准,用户反…

Deep Graph Representation Learning and Optimization for Influence Maximization

Abstract 影响力最大化(IM)被表述为从社交网络中选择一组初始用户,以最大化受影响用户的预期数量。研究人员在设计各种传统方法方面取得了巨大进展,其理论设计和性能增益已接近极限。在过去的几年里,基于学习的IM方法的…

面试算法-81-旋转链表

题目 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3] 解 class Solution {public ListNode rotateRight(ListNode head, int …

语音神经科学—05. Human cortical encoding of pitch in tonal and non-tonal languages

Human cortical encoding of pitch in tonal and non-tonal languages(在音调语音和非音调语言中人类大脑皮层的音高编码) 专业术语 tonal language 音调语言 pitch 音高 lexical tone 词汇音调 anatomical properties 解刨学特性 temporal lobe 颞叶 s…

【蓝桥杯】第15届蓝桥杯青少组stema选拔赛C++中高级真题答案(20240310)

一、选择题 第 1 题 第 2 题 表达式1000/3的结果是( A )。 A.333 B.333.3 C.334 D.333.0 第 3 题 下列选项中,判断a等于1并且b等于1正确的表达式是( B )。 A.!((a!1)&&(b!1)) B.!((a!1)||(b!1)) C.!(a1)&&(b1) D.(a1)&&(b1) 【解析】 A…

论文笔记:Contrastive Multi-Modal Knowledge GraphRepresentation Learning

论文来源:IEEE Transactions on Knowledge and Data Engineering 2023 论文地址:Contrastive Multi-Modal Knowledge Graph Representation Learning | IEEE Journals & Magazine | IEEE Xplorehttps://ieeexplore.ieee.org/abstract/document/9942…

上海晋名室外暂存柜助力新技术皮革制品生产行业安全

本周上海晋名又有一台室外危化品暂存柜项目通过验收,此次项目主要用于新技术皮革制品生产行业油桶、化学品等物资的室外暂存安全。 用户单位创立于2004年,是一家从事新技术皮革制品加工、生产的外资企业。 上海晋名作为一家专注工业安全防护领域&#…

mysql索引(explain 执行计划)

关键词 执行计划 EXPLAIN 语句查看mysql 优化后的语句 show warnings;EXPLAIN 执行后,各列的含义 要点: select_type 如何查询 表type 如何查询 行key 如何使用 索引key_len 索引 使用多少rows 行 预计使用多少extra 表 的额外信息 1.id id列的编…

20240316-1-向量化搜索

向量化搜索 在高维空间内快速搜索最近邻(Approximate Nearest Neighbor)。召回中,Embedding向量的搜索。 FAISS、kd-tree、局部敏感哈希、【Amnoy、HNSW】 FAISS faiss是Facebook的AI团队开源的一套用于做聚类或者相似性搜索的软件库&…

【JSON2WEB】10 基于 Amis 做个登录页面login.html

【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSON2WEB前端框架搭建 【J…

linux系统----------MySQL索引浅探索

目录 一、数据库索引介绍 二、索引的作用 索引的副作用 (缺点) 三、创建索引的原则依据 四、索引的分类和创建 4.1普通索引 4.1.1直接创建索引 4.1.2修改表方式创建 4.1.3创建表的时候指定索引 4.2唯一索引 4.2.1直接创建唯一索引 4.2.2修改表方式创建 4.2.3创建表…