首页 > 编程语言 >COMP9021编程原理

COMP9021编程原理

时间:2024-03-27 11:14:17浏览次数:37  
标签:py 转换 编程 我能 roman 原理 arabic COMP9021 python3

COMP9021编程原理2024年第1学期课业1价值13马克,第7周星期一上午10点到期
1.一般事项
1.1目标
本任务的目的是:
•培养解决问题的技能。
•以中型Python程序的形式设计和实现问题的解决方案。
•练习算术计算、测试、重复、列表和字符串的使用。
•使用程序编程。
1.2标记
该课业价值13分,大致分布如下:
“对不起,伙计,我没有得到你想要的!”得1.50分
3.50分表示“嘿,问我一些并非不可能的事情!”
“请转换”2.25分
2.50分表示“请使用
转换
3.25分表示“请最低限度地转换

13.00分您的程序将针对多个输入进行测试。对于每个测试,自动标记脚本将允许程序运行30秒。您的程序的输出应该与指示完全一致。
1.3截止日期和提交
您的程序将存储在名为roman_arabic.py的文件中。可以提交课业不止一次。截止日期和时间之前的最后一个版本将被标记(除非您提交较晚在这种情况下,将标记最后的最新版本)。课业1于2024年3月25日星期一上午10:00(悉尼时间)第7周到期请注意,自到期日起5天内,即任何2024年3月30日星期六上午10:00之后第7周的逾期提交将被丢弃。通过单击[标记]提交时,确保不要更改文件名roman_arabic.py按钮。您有责任检查您的提交是否正确使用Ed中的提交链接,否则你的分数将为零。
1.4关于剽窃政策的提醒
你被允许,甚至被鼓励,与其他人讨论解决任务的方法。这样的讨论必须从算法而非代码的角度进行。但您必须自己实施解决方案。当学生复制和修改他人的作品或在一个实施方案上密切合作。将受到严厉处罚。
2.说明
您将设计并实现一个程序,该程序提示用户输入以下内容:我能帮你什么?用户输入应为三种可能类型之一:
请转换***
请使用转换******
请最低限度地转换***
如果用户输入不是这种形式,则出现任意非空序列对于非空格符号,则程序应打印出:我没有得到你想要的,对不起,伙计!然后停下来。
2.1第一种输入
如果用户输入请转换
,则应为严格正可以转换为罗马数的整数(其表示不应以0开头)(因此最多等于3999),或有效的罗马数字;否则,程序应该打印输出:
嘿,问我一些并非不可能的事情!然后停下来。如果输入如预期,则程序应执行从阿拉伯语到罗马字母或从罗马字母到阿拉伯语,并以以下形式打印出结果:当然是的

2.2第二种输入
如果用户输入请使用转换,则第一个应为严格正整数(其表示不应以0开头)或的序列(小写或大写)字母,第二个应该是一个不同的序列(小写或大写)字母。此外
•第二个旨在表示一系列所谓的广义罗马符号。与序列相对应的古典罗马符号MDCXVI,其最右边的元素表示1,第二右边元件5、最右边的第三个元件10等。
•如果不是整数,则第一个
表示所谓的广义罗马数字,即可以解码的通用罗马符号序列使用所提供的通用罗马符号序列,类似于罗马符号表示数字。如果不是这样,或者无法将第一个从阿拉伯语转换为通用的罗马字母或从通用罗马字母到阿拉伯语,代 写COMP9021则程序应打印出来:嘿,问我一些并非不可能的事情!
然后停下来。4.如果输入如预期,并且可以执行转换,那么程序确实应该执行从阿拉伯语到通用罗马语或从通用罗马语到阿拉伯语的转换,并打印出结果如下:的

2.3第三类输入
如果用户输入请至少转换,那么应该是一个序列(小写或大写)字母。该程序将尝试将视为一个通用的罗马人关于某种通用罗马符号序列的数字。如果这是不可能的,则程序应打印出:嘿,问我一些并非不可能的事情!然后停下来。否则程序应该找到可以从转换的最小整数,被视为某种通用的罗马数字,转换为阿拉伯语,并输出形式的信息当然它正在使用5.
3.样本输出(或测试用例)
以下是一些测试以及预期输出。程序的输出应该准确如图所示:
$python3 roman_arabic.py
我能帮你什么?请完成我的任务。。。
我没有得到你想要的,对不起,伙计!
$python3 roman_arabic.py
我能帮你什么?请转换35
我没有得到你想要的,对不起,伙计!
$python3 roman_arabic.py
我能帮你什么?请转换035
嘿,问我一些并非不可能的事情!
$python3 roman_arabic.py
我能帮你什么?请转换4000
嘿,问我一些并非不可能的事情!
$python3 roman_arabic.py
我能帮你什么?请转换IIII
嘿,问我一些并非不可能的事情!
$python3 roman_arabic.py
我能帮你什么?请转换IXI
嘿,问我一些并非不可能的事情!
$python3 roman_arabic.py
我能帮你什么?请转换35
当然是XXXV
$python3 roman_arabic.py
我能帮你什么?请转换1982
当然是MCMLXXXII
$python3 roman_arabic.py
我能帮你什么?请转换3007
当然它是MMMVII
$python3 roman_arabic.py
我能帮你什么?请转换MCMLXXXII
当然现在是1982年
$python3 roman_arabic.py
我能帮你什么?请转换MMMVII
当然是3007
$python3 roman_arabic.py
我能帮你什么?请使用ABC转换123
我没有得到你想要的,对不起,伙计!
$python3 roman_arabic.py
我能帮你什么?请转换123 ussing ABC
我没有得到你想要的,对不起,伙计!
$python3 roman_arabic.py
我能帮你什么?请使用VI转换XXXVI
嘿,问我一些并非不可能的事情!
$python3 roman_arabic.py
我能帮你什么?请使用IVX转换XXXVI
嘿,问我一些并非不可能的事情!
$python3 roman_arabic.py
我能帮你什么?请使用XWVI转换XXXVI
嘿,问我一些并非不可能的事情!
$python3 roman_arabic.py
我能帮你什么?请使用II转换I
嘿,问我一些并非不可能的事情!
$python3 roman_arabic.py
我能帮你什么?请转换_使用_
嘿,问我一些并非不可能的事情!
$python3 roman_arabic.py
我能帮你什么?请使用XVI转换XXXVI
当然是36
$python3 roman_arabic.py
我能帮你什么?请使用XABVI转换XXXVI
当然是306
$python3 roman_arabic.py
我能帮你什么?请使用fFeEdDcCbBaA转换EeDEBBaA
当然是49036
$python3 roman_arabic.py
我能帮你什么?请使用fFeEdDcCbBaA转换49036
当然是EeDEBBAA
$python3 roman_arabic.py
我能帮你什么?请使用转换89999999999
AaBbCcDdEeFfGgHhIiJjKkLl
当然这是Aaaabacbdcedfegfhgihjikjlk
$python3 roman_arabic.py
我能帮你什么?请使用转换EFGHIJKLMNOPQRST
AbBcCdDeEfFgGhHiIjJkKlLmNoOpPqQrRstT
当然是1111111111111111
$python3 roman_arabic.py
我能帮你什么?请使用LAQMPVXYZIRSGN转换1900604
当然太棒了
$python3 roman_arabic.py
我能帮你什么?请转换最低限度使用E
我没有得到你想要的,对不起,伙计!
$python3 roman_arabic.py
我能帮你什么?请转换bao dong minimally
我没有得到你想要的,对不起,伙计!
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换0I
嘿,问我一些并非不可能的事情!
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换ABAA
嘿,问我一些并非不可能的事情!

10
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换ABCD EFA
嘿,问我一些并非不可能的事情!
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换MDCCL3XXXVII
当然它是1787年使用MDCXVI
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换MDCCLXXXXIX
当然使用MDCLX_I是1789
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换MMMVII
当然使用MVI是37
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换VI
当然使用IV是4
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换ABCADDEFGF
当然使用BA_C_DEF_G为49269
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换ABCCDED
当然使用ABC_D_E是1719
4.提示
4.1解释以下第三种输入的示例(请至少转换):
$python3 roman_arabic.py我能帮你什么?请最低限度地转换ABCADDEFGF当然使用BA_C_DEF_G为49269
首先,记住以下两条重要的罗马数字规则:1.一个罗马符号重复三次,但不超过三次。然而符号V(5),L(50)和D(500)从不重复。2.罗马符号V(5)、L(50)和D(500)从不写在符号的左边彼此相邻),我们不能将A赋值为500(500不能从中减去数字假设我们给A赋值1000,那么B可以是5000或10000。B不能是5000,因为意味着C只能是500。此外,B不能是10000,因为这意味着C应该是5000或500(两者都是无效分配)。让我们尝试将10000分配给A(因为它是重复的,所以不能分配5000)。B可以是任意一个50000或100000。如果B是50000,则C可以是5000、1000或500。C不能是5000或500(因为它们是从任何数字中减去的)。C可以是1000。因此,我们在这里能得出的最小值是A为10000,B为50000,以及1000对于C,ABCA=50000-10000+10000-1000=49000。因此,使用BA_C_DEF_G(未分配值5、500和5000),总数变为49269。
4.2关于第三种输入的更多示例(请至少转换
):
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换AZERTY当然使用ZAREYT是444
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换XXXVVVIII
当然使用X_V_I是333
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换AhZhJ
当然使用Ah_Z_J为691
$python3 roman_arabic.py
我能帮你什么?请最低限度地转换BCBC
嘿,问我一些并非不可能的事情!

标签:py,转换,编程,我能,roman,原理,arabic,COMP9021,python3
From: https://www.cnblogs.com/simplesky/p/18098485

相关文章

  • 浏览器工作原理与实践--渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的
    在上篇文章中,我们介绍了渲染流水线中的DOM生成、样式计算和布局三个阶段,那今天我们接着讲解渲染流水线后面的阶段。这里还是先简单回顾下上节前三个阶段的主要内容:在HTML页面内容被提交给渲染引擎之后,渲染引擎首先将HTML解析为浏览器可以理解的DOM;然后根据CSS样式表,计算出DOM......
  • 浏览器工作原理与实践--渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的
    在上一篇文章中我们介绍了导航相关的流程,那导航被提交后又会怎么样呢?就进入了渲染阶段。这个阶段很重要,了解其相关流程能让你“看透”页面是如何工作的,有了这些知识,你可以解决一系列相关的问题,比如能熟练使用开发者工具,因为能够理解开发者工具里面大部分项目的含义,能优化页面卡......
  • Shell脚本编程基础
    Shell的作用——命令解释器Bash是一个用于GNU操作系统的shell,也就是命令解释器,这个名字是Borune-AgainSHell的缩写.重定向重定向输入<从指定的文件读取数据,而不是从键盘输入 重定向输出>将输出结果保存到指定的文件(覆盖原有内容)>>将输出结果追加到指定的文件 标准错误......
  • Spark 编程
     1、数据准备people.json{"id":1,"name":"张三","age":38}{"id":2,"name":"李四","age":30}{"id":3,"name":"王五","age":28......
  • Python-VBA编程500例-020-02(入门级)
    第k个组合(ThekthCombination)的问题在实际应用中具有广泛的用途,它涉及从n个不同元素中选出k个元素的所有可能组合。这种组合的概念在许多领域都有重要的应用,常见的一些具体应用有:1、彩票与赌博:在某些彩票或赌博游戏中,参与者需要选择特定数量的号码或符号。这些号码或符号的......
  • laravel 容器的底层原理&聚簇索引和非聚簇索引的区别&面试心得
    1.laravel容器的底层原理Laravel容器的实现原理是基于PHP的反射机制和依赖注入(DependencyInjection)的思想。在Laravel中,容器(Container)是一个用于解决类之间依赖关系的工具。它负责实例化对象,并处理对象之间的依赖关系。容器的实现原理主要包括以下几个步骤:注册绑定:通过容器......
  • 【蓝桥杯选拔赛真题48】C++九进制回文数 第十四届蓝桥杯青少年创意编程大赛 算法思维
    目录C++九进制回文数一、题目要求1、编程实现2、输入输出二、算法分析三、程序编写四、程序说明五、运行结果六、考点分析七、推荐资料C++九进制回文数第十四届蓝桥杯青少年创意编程大赛C++选拔赛真题一、题目要求1、编程实现提示信息:回文数:反向排列与原......
  • Spring Cloud的原理涉及多个组件和概念
    核心部分的详细解释服务注册与发现:这是SpringCloud的核心功能之一。通过使用Eureka、Consul或Zookeeper等服务注册中心,服务提供者将自己的信息注册到注册中心,服务消费者通过注册中心查询可用的服务列表。服务消费者在需要调用其他服务时,通过注册中心找到相应的服务地址并进行......
  • FDS编程练习 · 其一
    日常练手用,熟悉一下几种结构的代码实现。1.通过给定中序遍历和后序遍历的数列重建二叉树#include<stdio.h>#include<stdlib.h>typedefstructNode*Tree;structNode{ intdata; Treeleft,right;};/*定义树*/TreebuildTree(intinorder[],intpostorder[]......
  • 水牛社五大赚钱栏目概览:轻松了解项目核心与赚钱原理
    很多新用户首次访问水牛社官网时,可能会感到有些迷茫。由于软件介绍相对较长,部分朋友可能缺乏耐心细读。然而,若您真心希望在网络上找到赚钱的机会,深入了解我们的发展历程将大有裨益。简而言之,本文旨在快速带您领略软件的运作模式。您会发现,水牛社赚钱门槛极低,无论新手还是老手都......