Blog作业1

这篇博客记录了作者从基础到进阶的Java学习过程,涉及面向对象设计、日期处理、正则表达式应用等知识点。在解决实际问题中,作者遇到了关于输入验证、日期合法性判断和格式控制的挑战,并通过不断尝试和学习得以解决。作者意识到正则表达式等复杂概念需要更多时间去掌握,并表达了对未来学习的期待。
摘要由CSDN通过智能技术生成

1.前言
这三次题目集题量在逐渐减少,但是难度增加了很多。第一次题目集较为基础,让我学会了用java语言编写程序,知道了如何用eclipse调试代码以及debug。第二次题目集难度并没有增加很多,更多是关于逻辑和类间的调用。第三次题目集难度上升了很多,使用了构造函数封装类隐藏属性体现了面向对象设计的思想。有些题目还需要使用正则表达式进行校验,学会了正则表达式中一些基本方法的使用。
2.设计与分析
题目集1 7-8
用户输入三个数,系统自动判定三个数能否作为三角形的三天边构成三角形,然后对于不同的情况进行不同的输出。

classMain
+a:int
+b:int
+c:int
+judge()

题目较为简单,只是进行判断然后输出,但是我有一个测试点过不去并且一直没有找到原因。这次题目让我对java语言有了初步的认识。
题目集2 7-4
用户输入年月日,系统自动判定下一天的年月日并输出,需要注意的是由于闰年平年以及每个月的天数不尽相同,所以要注意日期的合法性。

classMain
+year:int
+month:int
+day:int
+isLeaper(int year):boolean//判断year是否为闰年
+checkInputValidity(int year,int month,int day):boolean//判断输入日期是否合法
+nextDate(int year,int month,int day)  //求输入日期的下一天

这次题目让我对不同方法间的联系有了一定的了解,学会了java中数组的运用。
题目集2 7-5
用户输入年月日并且输入一个n表示天数,系统自动判定输出前或后(取决于n的正负)n天的日期。

classMain
+year:int
+month:int
+day:int
+n:int
+isLeapYear(int year) :boolean//判断year是否为闰年
+checkInputValidity(int year,int month,int day):boolean//判断输入日期是否合法
+nextDate(int year,int month,int day,int n)//求输入日期的前n天

这次题目和上个题目差别不大,不过需要更多判断来保证日期的合法。
题目集3 7-2
题目要求还是求得下一天的日期,但是需要对类进行封装,方法不再能直接调用日期,这样做体现了面向对象的思想。
在这里插入图片描述
这次题目要使用构造函数,并且对属性进行了隐藏,调用需要用到get/set方法。
题目集3 7-3
这个题目太难,我没做出来。
3.踩坑心得
题目集1
题目较为简单并未遇到问题。
题目集2
7-1
题目要求字符长度为32为并且只能由0和1组成,由于在输入时不能直接控制长度,所以输入时加入flag标志,若由0和1以外的字符输入则直接跳出并且输入错误提示,而在输入结束以后再判断字符串长度是否为32位。我一开始将字符串长度直接定义为32位,导致用户只能输入32位,所以在一个测试点中过不去,修改以后测试点全部通过。
在这里插入图片描述 7-3
所有关于日期的判断都和闰年及平年以及每月的天数有关,一开始没有在意发现测试点都过不去,后来定义了两个数组,数组中的内容则代表平年和闰年每月的天数,这样在进行判断后可以直接使用相应数组进行判断。

int[] mon1=new int[]{0,31,29,31,30,31,30,31,31,30,31,30,31};
53
int[] mon2=new int[]{0,31,28,31,30,31,30,31,31,30,31,30,31};

题目集3
7-1
题目要求需要控制输出的格式,我一开始自然的用C中控制输出格式的方法发现不行,百度一下才发现java中对于格式的控制。

System.out.println("The Account'balance:"+String.format("%.2f", account.getBalance())+"\n"+"The Monthly interest:"+String.format("%.2f", account.getMonthlyInterest())+"\n"+"The Account'dateCreated:"+date);

7-2
定义一个类Date,包含三个私有属性年(year)、月(month)、日(day),均为整型数,其中:年份的合法取值范围为[1900,2000] ,月份合法取值范围为[1,12] ,日期合法取值范围为[1,31] 。要求必须实现类的封装性,这样的话我们只能定义set和get方法来对私有属性成员进行调用。

Date M = new Date();
M.setYear(in.nextInt());
M.setMonth(in.nextInt());
M.setDay(in.nextInt());
M.isLeapYear(M.getYear())        M.checklnputValidity();           M.getNextDate();

4.改进建议
暂无建议
5.总结
这三次题目使我学会了java需要最基本的代码书写。我了解了面向对象的设计思想,在设计代码的时候也会用到这种思想。但是这门课程的学习还处于初级阶段,还有很多需要我去学习,对于像正则表达式这种较为难的知识点我并没有很好的掌握,在今后的学习中对于较为困难的知识我应该投入更多时间去掌握。

吴恩达的L1W1作业2是关于反向传播和正则化的。在这个作业中,他提供了一个反向传播的实现示例,其中使用了六个方程式来构建向量化实现。这个实现可以帮助我们理解反向传播在深度学习中的应用。\[1\] 此外,作业中还介绍了正则化的概念。正则化是为了减小模型的过拟合而引入的一种技术。在损失函数中增加L1或L2正则项,可以通过调节参数α来控制损失函数和正则项的权重。\[2\] 除此之外,作业还包括了特征映射的示例代码。特征映射是将原始特征转化为更高维度的特征的过程。在示例代码中,通过对两个特征进行最多power次特征映射,将原始的二维特征转化为28维特征。\[3\] 总结来说,吴恩达的L1W1作业2主要涉及反向传播、正则化和特征映射的概念和实现。这些内容对于深度学习的理解和应用都非常重要。 #### 引用[.reference_title] - *1* [吴恩达深度学习L1W3](https://blog.csdn.net/weixin_47798560/article/details/117395790)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [2.吴恩达机器学习课程-作业2-逻辑回归](https://blog.csdn.net/wujing1_1/article/details/123070995)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值