一.PTA实验作业
1.1换硬币
题目内容描述:将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
输入样例:
13
输出样例:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
1.1.1数据处理
数据表达:定义了count,total,a这三个变量,分别表示换法个数,硬币总数量,输入的货币值;数据类型是a为整型。
数据处理:使用了for循环语句以及if判断语句,构成了循环结构;也使用了分支结构,顺序结构。
输入变量x
for(a<---x/5;a>=1;a<--a-1)
{
for (b<--(x-5a) /2;b>=1;b<--b-1)
{
for(c<--x-5a-2b;c>=1;c<--c-1)
if(5a+2*b+c==x)
{输出结果
t<--t+1
}
end if
}
}
输出count
返回0
1.1.2 实验代码截图
1.1.3 造测试数据
|
|
|
输入数据 |
输出数据 |
说明 |
13 |
输出样例 |
样例 |
14 |
输出值 |
使用语句判断得出 |
15 |
输出值 |
使用语句判断得出 |
1.1.4 PTA提交列表及说明
编译错误:在输入代码的时候,for循环语句后面的括号后面加了“;”符号。
解决措施:但是其实是不用加的,将这个符号去掉就好了。
答案错误:在输入“i=a/5”这个环节的时候,错误的把5输入成了6,造成答案错误。
解决措施:后面改正之后就行了。
1.2找完数
题目内容描述:所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
输入格式:
输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。
输出格式:
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。
输入样例:
2 30
输出样例:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
1.2.1 数据处理
数据表达:使用了b,m,i,j,sum五个变量,num一个变量;m,b是整型。
数据处理:使用了for循环语句以及if判断语句,构成了循环结构以及使用了分支结构,顺序结构。
开始
定义变量a,b,i,j,s,l,m
输入 a,b
for i←a to b
do s←0
for j←1 to i
if i%j=0 then
s←s+j
end if
if s=i
输出 i=1
for k←2 to j
if i%k=0
输出 + k
end if
换行
m←m+1
end if
if m←0
输出None
结束
1.2.2 实验代码截图
1.2.3 造测试数据
|
|
|
输入数据 |
输出数据 |
说明 |
2 30 |
输出样例 |
样例 |
3 40 |
输出值 |
根据题意得出 |
4 50 |
输出值 |
根据题意得出 |
1.2.4 PTA提交列表及说明
编译错误:这次出现两个错误,检查之后,发现continue这个单词输入错误,然后就是将“j<i”输入成“j=<i”造成错误。
解决措施:修改单词continue然后去掉“=”就行了。
二.代码互评
代码比较1:
|
|
同学1的代码 |
我的代码 |
|
|
代码分析1:
很明显 地就可以看出来我们两个的代码是多么的不同,第一,我们定义的字母不同;第二,我们使用的结构也不同,他使用了一个float 定义k;但是,我们也有相同的地方,我们都是有使用for循环语句和if判断语句。
代码比较2:
|
|
同学2的代码 |
我的代码 |
|
|
代码分析2:
虽然我们的代码有很多地方是相同的,但是,我们其实还是有所差异,第一,我只定义了三个未知量,而该同学定义了六个,所以我的显得略简便;第二,我们中途的思路还是有点差异,我的是直接除五判断,而他的却要使用定义字母来判断;但是我们大致思路是差不多的。
三.学习总结
3.1 学习进度条
|
|
|
|
|
日期 |
这周所花时间 |
代码行 |
学到的知识简介 |
目前比较迷惑的问题 |
第一周(9.19-9.27) |
5个小时 |
25 |
代码的基本运用 |
什么都不是很了解 |
第二周(9.27-10.4) |
7个小时 |
17 |
Make down语法的基本用法 |
十分粗心,在很多地方出错误 |
第三周(10.4-10.11) |
6个小时 |
89 |
关系运算、if-else语句、格式化输入语句等了解 |
对一些语法还是不甚了解 |
第四周(10.11-10.18) |
9个小时 |
85 |
for循环语句的了解与运用 |
调试和改错一脸懵逼 |
第五周(10.18-10.25) |
6个小时 |
107 |
自定义函数和while函数的初步了解 |
while函数的使用 |
第六周(10.29-11.2) |
9个小时 |
129 |
各种运算符了解以及分支函数的运用 |
对分支函数类型有点混乱 |
第七周(11.5-11.7) |
5个小时 |
120 |
它能够让我学习到执行流程和参数列表 |
对这些流程有点困惑 |
第八周(11.12-11.14) |
6个小时 |
128 |
了解switch语句的用法和原理 |
对于函数运用有点不熟练 |
第九周(11.19-11.21) |
8个小时 |
89 |
了解了while和do while的用法和原理,break,continue的熟悉以及循环结构嵌套的使用,让我更加深刻的认识了他们 |
对于一些循环类型还不是很懂 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
本周我们主要学习了while语句和do while语句的用法以及原理,一开始说实话差不多什么都不是很懂,可能是跟老师的上课方式有关吧,然后既然老师都教不明白,于是我便求助于网络资源,于是我在自学的情况下,我成功地将一些自己之前不大懂的知识搞懂了一些,然后顺利完成了作业。透过这件事情,我想表达的是,尽管有的时候我们不是听的很懂,但是我们千万不要放弃,我们也可以试着找一下解决措施,找同学找老师等等。还有就是给老师提一个建议,尽量在课堂上将知识点讲的详细一点,照顾一下我们这些渣渣。