zoukankan      html  css  js  c++  java
  • C语言I博客作业10

    这个作业属于哪个课程 C语言程序设计I
    这个作业要求在哪里 C语言I-2019秋作业10
    我在这个课程的目标是 熟练使用程序语言并且能够写一个小游戏的程序
    这个作业在那个具体方面帮助我实现目标 能够根据实际情况,选择合适的算法、合理的循环结构,熟练的编写程序。
    参考文献 百度百科

    一、PTA实验作业

    1、

    题目 编程打印空心字符菱形

    本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形。所谓“空心菱形”是指:每行由两端为字母、中间为空格的字符串构成,每行的字符串中心对齐;上半部分相邻两行字符串长度差2,且字母从给定的起始字母逐一递增;下半部分与上半部分对称。

    输入格式:

    输入在一行中给出起始字母(范围为英文大写字母A-G)和菱形的高度(为不超过10的奇数)。
    

    输出格式:

    输出空心字符菱形。
    

    输入样例:

    B  5
    

    输出样例:

      B
     C C
    D   D
     C C
      B
    

    数据处理

    数据表达: 获取所需输出菱形的行数。
    数据处理: 使用了for循环以及绝对值函数:abs()
    伪代码:

    • 使用for循环,实现循环变量i在数值上的对称
    • 利用i的周期变换(先递减,后递增),显式的输出空格
    • 并利用char类型可使用ASCII改变字符的特点,让输入的character加上周期变换的改变型i值——'length / 2 - abs(i)',改变字符的值
    • 使用if语句判断,在菱形的首位不进行运算,再其他的位置继续执行操作
    • 输出形似1 3 5 7 9规律的空格,可用通项公式2n-1实现
    • 继续输出字符,可沿用之前的办法

    代码截图

    造测试数据

    输入数据 输出数据 说明
    B 5 如图所示

    PTA提交列表及说明


    在其他的编译软件上试过许多次了,然后运行成功后在Pta上面提交,一次就过了。
    出现的错误:
    由于大量的利用循环变量i的周期性特点,故而在数值,ASCII值的计算,空格的数量上出现了一些问题。但是都无伤大雅,经过调试即可改正。

    2、

    题目 输出三角形字符阵列

    本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。

    输入格式:

    输入在一行中给出一个正整数n(1≤n<7)。
    

    输出格式:

    输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。
    

    输入样例:

    4
    

    输出样例:

    A B C D 
    E F G 
    H I 
    J 
    

    数据处理

    数据表达: 直角三角形的简单输出
    数据处理: 利用ASCII值的加减,改变输出的字符
    伪代码:

    • 使用双for循环,达到直角三角形的输出格式
    • 默认输出的第一个字符为A
    • 定义一个ASCII值的加和变量,每输出一个字符,加和变量+1,以此来实现下次输出字符的改变

    代码截图

    造测试数据

    输入数据 输出数据 说明
    4 如图所示

    PTA提交列表及说明

    出现的错误:部分正确

    因为没有注意到自己大括号的范围,所以出现了上图所示的错误。经过仔细检查之后,更正错误再提交,答案正确。

    二、代码互评

    同学代码

    我的代码

    • 使用了大量本可以抛弃的变量,如一下代码:
    i1 = i;
    while (i1)
    {
    	i1 /= 10;
    	a++;
    }
    ……
    a = 0;
    

    完全没必要每次清零重新判断位数,只需在递增之后a*=10操作即可,并且ab的所处理的对象是一致的,这也是前文"使用了大量本可以抛弃的变量"的体现

    • 另外也可以不使用函数返回i * j的值,这实在是没有必要,函数是用来解决重复复杂操作,使主函数简介的工具。在如此前提下,简洁的代码更为出色
    • 最后还有命名方面的问题,作为一名已经学*了将*两个月的程序员,应该有合适的变量名,之前听大佬说过:“优秀的命名规范也是程序员能力的体现”。我深以为然,也慢慢在学*,具体可以参考《代码整洁之道》

    3.学*总结

    3.1学*进度条

    周/日期 周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第3周/10月6~16 3天 181行 if-else语句,递归,分段函数的计算 对这些还不是很熟练,对这些符号的使用跟空格的使用不是很清楚
    第4周/10月10~17 2天 181行 for循环语句与逻辑符 循环语句使用不够熟练,数学循环问题也有很多不明白的事情,不知道先后
    第5周/10月18~24 10h 148行 基本程序语言与生成乘方表与阶乘表 基本程序语言了解的都差不多了,有些不是特别熟练还是需要加强练*的,生成乘方表跟阶乘表这方面的内容还有很多不懂的,觉得完成作业很费力气,要查阅各种资料,可能跟我数学理解能力不强也有关系吧。
    第6周/10月25~31 22h 371行 多分支结构、字符型数据类型和逻辑运算符。顺便研究了几个心形的代码,觉得挺有趣。 就是有时候总是会丢三落四,然后也比较迷惑一些运算符使用方法,分之这一块还是不够熟练。
    第7周/11月1~7 25h 211行 熟悉多分支结构switch语句的使用、字符型数据类型和逻辑运算符。 迷惑的真的太多太多了,但是百度大法真不错,虽然没有白嫖别人的答案解释香,但是还是很有用,一学就让我停不下来的那种。对数学研究的还是不够好,所以做很多题目转不过弯来,要努力克服。
    第8周/11月8~14 22h 241行 熟悉使用while和do-while结构解决问题。 上课听的不太明白,课后也有查找资料,但是还是有很多不懂的,然后最*在做学*总结,想把自己不懂的都整理出来然后弄懂。
    第9周/11月15~21 26h 500行 熟悉break、continue的使用,熟悉使用循环的嵌套解决问题 想知道为什么会出现运行时错误
    第10周/11月22~28 33h 533行 能够根据实际情况,选择合适的算法、合理的循环结构,熟练的编写程序。 感谢每一个帮我解答问题的人,也很感谢听我抱怨的人,如果没有你们我估计都不能坚持这么久。

    3.2累计代码行和博客字数

    3.3学*内容总结和感悟

    3.3.1 学*内容总结



    3.3.2 学*体会

    1,从最开始做题无从下手到现在能误打误撞写对几个题目了,这个过程的确是挺难的但是也真的是快乐的。
    2,希望自己以后多几分耐心吧,不要再毛毛躁躁的了,细心一点有耐心一点。有疑问的时候虚心请教,比如问朋友问老师问同学。
    3,感觉自己的自学能力还是太弱了,然后对许多知识点的掌握也不够深,感觉自己菜炸了。
    4,突然发现自己身边挺多人对自己挺好的,会耐心回答我的疑问,会认真评论我的作业,希望在未来的道路上他们能够一直都在,然后一起进步。也希望自己不要辜负这么多人的期望,加油。

  • 相关阅读:
    About try...expect...else
    About from __future__ import absolute_import
    How to 安装apache和配置自定义目录, run CGI or py
    Caffe
    About os.environ
    TensorFlow
    Keras
    SQL自定义函数,把sql中小数点后的多于0去掉
    .net杂记 (调用EXE 获取路径 target VB DIV C# Split 页面之间传递值 更改session时间 EXCEL操作 控制电子邮件Mail input记录值的窍门)
    orcle分析函数
  • 原文地址:https://www.cnblogs.com/wenwener/p/11941504.html
Copyright © 2011-2022 走看看