• C语言I博客作业11


    一.表格


    问题 答案
    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/10132
    我在这个课程的目标是 熟练的运用与掌握计算机系统和C语言知识
    这个作业在那个具体方面帮助我实现目标 函数定义及相关知识
    参考文献 《C语言程序设计》、《C Primer Plus》

    二.本周作业


    1. PTA实验作业(20分/题)

    从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分)

    1.1 题目名1

    1.1.1数据处理

    数据表达:先根据题目定义浮点型变量a,b,c表示一元二次方程的三个系数以及定义一元二次方程的两个根x1,x2和x。其中x1,x2都是浮点型变量。
    数据处理:(伪代码如下)
    定义浮点型变量a,b,c,x1,x2,x
    进入if语句嵌套循环分两种情况a是否为0
    if(a==0)      
    {
    	if(b!=0&&c!=0||b!=0&&c==0)    如果仅当b不为0时的情况
       
            if(x==-0)   考虑 如果x为-0时的情况
               printf("x = %g",-x);
            else            另x为0时的输出
               printf("x = %g", x);
        if(b==0&&c!=0)
        当c不为0时b为0时的方程的解的情况
            printf("无解
    ");
        if(b==0&&c==0) 
        当b,c都为0时解的情况
            printf("无穷多解
    ");    
        else
        另当a不为0时,判断根的判别式的情况
        if(b*b-4*a*c<0)
            printf("x1 = %.2g+%.2gi, x2 = %.2g-%.2gi",-b/(2*a),sqrt(-b*b+4*a*c)/(2*a),-b/(2*a),sqrt(-b*b+4*a*c)/(2*a));
        当判别式小于0时输出两个共轭虚根
        if(b*b - 4 * a*c > 0) 
            printf("x1 = %g, x2 = %g",x1,x2);
        当判别式大于0时输出两个不同的根
         另当判别式等于0时输出两个相同实根   
            printf("x1 = x2 = %g",x1,x2);
    输出结果
    程序结束
    

    **1.1.2实验代码截图 **

    1.1.3 造测试数据

    输入数据 输出数据 说明
    0 4.5 -3.6 x = 0.8 样例数据
    -0.2 0.04 -0.01 x1 = 0.1-0.2i, x2 = 0.1+0.2i 样例数据
    -3 1.2 -0.12 x1 = x2 = 0.2 样例数据
    -2 0.8 -0.06 x1 = 0.1, x2 = 0.3 样例数据
    0 0 0 无穷多解 样例数据
    0 0 3.6 无解 样例数据
    2 2 2 x1 = 0.5+0.87i, x2 = 0.5-0.87i 正常数据
    0 3 7 x = -2.33333 正常数据

    1.1.4 PTA提交列表及说明

    部分正确:一开始我的共轭虚根的那一种情况写错了,我的-b/(2*a),sqrt(-b*b+4*a*c)/(2*a),-b/(2*a),sqrt(-b*b+4*a*c)/(2*a));这里公式写错了。后经查找资料改正。
    部分正确:后来我提交发现一共有十个测试点,但是我只对了七个,有三个测试点不对。后仔细读题发现要考虑负零和小数点位数的问题,后来经过询问同学改正。
    答案正确:......
    

    1.2 题目2

    1.2.1数据处理

    数据表达:根据题目意思定义函数 int IsTheNumber ( const int N )
    数据处理:(伪代码如下)
    自定义函数
    定义变量  n,b
    int p[10]={0};   使用数组
    if(m*m==n){
    如果m的平方等于n,然后进入while语句循环
    while(n){
      b=n%10;   取余
      p[b]++;
      n/=10;
    for循环判断
    for(int i=0;i<=9;i++){
      if(p[i]>1)
      return 1;
    返回初始值 1
    输出结果
    程序结束
    

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    105 500 cnt = 6 样例数据
    99 405 cnt = 5 范围数据
    5 888 cnt = 8 正常数据
    77 88 cnt = 0 正常数据

    1.2.4 PTA提交列表及说明

    答案正确:........
    

    2.代码互评(5分)

    同学代码截图1

    自己代码截图1

    比较:
    1.同学代码是使用了 EPS 是在函数程序中事先说明的常量,默认的eps = 2^(-52),是控制迭代精度的,相当于微积分里面的无限小值,这是同学代码中我学到的新知识点,和我的代码显然不同。
    2.两份代码在本质和使用意义上是一样的,但是我感觉思考方向上是有些不同的。
    

    同学代码截图2

    自己代码截图2

    比较:
    1.同学代码使用了do-while语句,但是我感觉其实不必要。使用一个while语句就可以完成所指定的任务。
    2.这样相较而言,我感觉我的代码写起来就比较方便简洁。
    

    3.学习总结(15分)

    3.1 学习进度条


    周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第一周/9-19 这周花了大约三天 30 Hello world编程
    第二周/9-25 这周花了大约三天 50 华氏度与摄氏度
    第三周/10-9 这周花了大约三天 100 目前是常量,变量的应用以及分段函数中的 if-else 的使用 在PTA的使用中明明答案没有问题但就是显示各种问题,在写博客园时对表格以及格式的编辑总是l力不从心!
    第四周/10-15 这周花了大约两天 150 for语句循环体的使用 各种变量,语句的使用会混乱
    第五周/10-24 这周花了大约三天 140 阶乘的编程,自定义函数 参数的设定
    第六周/10-31 这周花了大约三天 200 多分支结构和else-if语句 字符型数据
    第七周/11-6 这周花了大约三天 210 switch语句 switch语句如何更好的与for语句、if-else语句连用
    第八周/11-13 这周花了大约两天 150 while语句和do-while语句 字符型具体表达
    第九周/11-21 这周花了大约三天 190 break语句和continue语句以及嵌套循环 continue语句的使用
    第十周/11-26 这周花了大约三天 160 嵌套循环和字符型使用 格式错误的真谛
    第十一周/12-06 这周花了大约三天 140 函数定义及相关知识 数组

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟(5分)

    3.3.1 学习内容总结

    3.3.2 学习体会

     1.在本周中学习了函数的知识,重点又讲解了变量的作用域与生存期以及按生存期可分为两种:即动态变量和静态变量。
     2.我在课堂上主要学习到了变量只能在其生存期内被引用,变量的作用域直接影响变量的生存期。作用域和生存期是从空间和时间的角度来体现变量的特征。还有局部变量和外部变量。
     3.在这次讲课中我学到了好多知识,其中全局变量还是尽量少使用全局变量且局部变量与全局变量同名极易导致我们犯逻辑错误。
     4.还有下周就要考试了,所以在写代码的方面上我还应该再加把劲!
  • 相关阅读:
    PL/SQL集合(一):记录类型(TYPE 类型名称 IS RECORD)
    PL/SQL编程基础(五):异常处理(EXCEPTION)
    PL/SQL编程基础(四):程序控制(IF,CASE,FOR,LOOP,WHILE LOOP,EXIT,CONTINUE)
    PL/SQL编程基础(三):数据类型划分
    PL/SQL编程基础(二):变量的声明、赋值、(赋值、连接、关系、逻辑)运算符
    PL/SQL编程基础(一):PL/SQL语法简介(匿名PL/SQL块)
    SQL Fundamentals || DCL(Data Control Language) || 角色ROLES
    SQL Fundamentals || DCL(Data Control Language) || 系统权限&对象权限管理(GRANT&REVOKE)
    SQL Fundamentals || DCL(Data Control Language) || 用户管理&Profile概要文件
    Oracle Schema Objects——PARTITION
  • 原文地址:https://www.cnblogs.com/wanghuaba/p/11992620.html
Copyright © 2020-2023  润新知