zoukankan      html  css  js  c++  java
  • 第二次作业。。。

    1.本章学习总结(2分)

    1.1 思维导图

    1.2 本章学习体会及代码量学习体会

    1.2.1 学习体会

    本周学习了循环结构,除了for循环以外还有while循环和do-while循环,比起分支结构,本周学习的难度明显加大了,需要理出一个明确的思路才好下笔写代码。程序中很多问题都不能通过直接看出来了,需要借助调试工具或者是在程序中添加输出语句来进行程序的查错。有时候还会遇到一些一时半会难以调试出的问题,这时就需要借助书本或者网络知识,结合阅读代码理清逻辑,才能写出正确的代码。

    1.2.2 代码累计

    2.PTA总分(2分)

    2.1截图PTA中循环结构2次题目集的排名得分


    2.2 我的总分:

    290

    3.PTA实验作业(6分)

    3.1 PTA题目1

    模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。

    3.1.1 算法分析

    • 定义整型变量num存放输入的数字,定义字符型变量ch存放输入的字符。
    • 输入一行四则运算算式,以=号结尾。
    • if i=0 do sum=num
    • else do switch(oldch)
      case'+':sum=sum+num;break;
      case'-':sum=sum-num;break;
      case'':sum=sumnum;break;
      case'/': if num!=0 do sum=sum/num
      else do flag=1并输出"ERROR"
      break; //条件都不满足则退出循环//
    • if ch'+'或ch'-'或ch'*'或ch'/' do oldch=ch //延长变量ch的存时间//
      else if ch!='=' do flag=1并输出"ERROR" ;break; //满足else if中的条件则退出整个循环//
    • 循环一次i自增1,当ch='=' do 退出循环
    • if flag==0 do 输出sum的值

    3.1.2 代码截图

    3.1.3 测试数据

    3.1.4 PTA提交列表及说明

    • 开始时将一整串算式都当做字符型数据来处理,结果不但需要添加字符型数据与整型数据之间转换步骤,而且还容易弄混变量,调试改错也变得很复杂,最后尝试将数字和符号分开用不同的数据类型进行定义,发现这样较好。
    • 还有输出ERROR时没有考虑后续步骤,导致ERROR输出后还输出了num,后来引入了flag变量,解决了这一问题。

    3.2 PTA题目2
    以顾客对餐饮服务打分为例,输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个正整数n(1≤n≤20),表示有n个学生被邀请来给自助餐厅的食品和服务质量打分,分数划分为1~5这5个等级(1表示最低分,5表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。

    3.2.1 算法分析

    • 定义三个整型变量repeat,n,num
    • 输入repeat
    • for i=1 to repeat do
    • 定义五个变量num1,num2,num3,num4,num5用于统计各个等级的人数,并将它们初始化为0
    • 输入n
    • for j=1 to n do
      switch(num) //借助循环统计各个等级的人数//
      case 1:num1++;break;
      case 2:num2++;break;
      case 3:num3++;break;
      case 4:num4++;break;
      case 5:num5++;break;
    • 输出"1:"
      for k=0 to num1 do
      输出"*"
      该循环结束后输出\n
    • 按照1-5顺序重复以上操作5次,输出统计直方图

    3.2.2 代码

    3.2.3 测试数据

    3.2.4 PTA提交列表及说明

    1.开始时打算先输出1:2:3:4:5:五行,然后在输出,但后来发现程序不能向上输入,于是明白需要先统计每个等级的人数,然后再进行循环输出

    3.3 PTA题目3
    你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it's算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.不计算在内。
    3.3.1 算法分析

    • 定义一个整型变量num,一个字符型变量ch
    • do 输入ch
    • if ch' ' do
      while to ch
      ' ' do 输入下一个ch
      if i>=1 do
      if ch=='.' do 输出num
      else 输出num后带一个空格
    • num=0;
    • if ch!=' ' do num++ i++
    • while ch!='.'
    • if num!=1 do 输出num-1

    3.3.2 代码

    3.3.3 测试数据

    3.3.4 PTA提交列表及说明

    这道题是失败最多的题目,尝试了很多次,一直在开头结尾多空格的那一个测试点卡住,找不到错误的点在哪里,因为空格无法显示,所以调试也没有调试出什么毛病,于是后来想到老师上课讲的方法,把空格替换成*,终于发现了问题,运用了一个小分支解决了它。

    4.代码互评
    从同学中找一篇优秀代码,和自己写的代码比较下,说明下自己和同学代码区别,各自优势是什么?

    4.1 代码截图
    同学代码截图。

    自己的代码截图

    4.2 二者的不同
    1.她的代码比我的代码行数少得多,看上去较为简便和清晰,可读性更高。
    2.我觉得必要的注释(如不常见变量名的解释和一些较为复杂的运算步骤)应该要有,这一点我也并不是做的很好,希望我们可以一起努力。
    3.她并没有运用到嵌套循环的句式,而是采用了将所有可能性一一列举,然后再进行筛选的方式,无疑这样的方式运算量较大,我觉得单从运算量多少的角度来说我的代码更胜一筹。
    4.我的代码还是较为累赘,比如循环中两个printf其实可以并成一行输出,这方面我需要改进,在较少计算量的基础上追求代码的简洁。

  • 相关阅读:
    ecos之widget
    一个php小白找工作的历程
    php知识点总结(待续)
    2
    php笔试题1
    兄弟连面试宝典php
    第二十一章 消费者选择理论
    第二十章 收入不平等与贫困
    第十九章 收入与歧视
    第十八章 生产要素市场
  • 原文地址:https://www.cnblogs.com/lkjhgfdsa/p/9867821.html
Copyright © 2011-2022 走看看