第六周学习总结 2022-2023-1 20221407 姚博茗

第六周学习总结

作业信息

班级 2022-2023-1-计算机基础与程序设计
作业要求 第六周作业
这个作业的目标 第六周作业
作业正文 见下

教材内容总结

  • 《C语言程序设计》:这一章学习了选择控制结构有if-else switch 以及条件判断语句;
  • 《计算机科学概论》:这一章更详细地讲述了使用伪代码描述一些程序中较为常见类似循环,选择这样的语句。同时又介绍了计算机排序,检索,递归的重要思想。最后又总结了一下之前提到过的各种计算思想。

教材学习中的问题和解决过程

注:这周主要在实践自己写程序刷题,书看的少了点……

  • 二分检索只能检索数字吗?书中的用的是字符呀?
    ——二分检索一般都应用数组进行的。
  • 快速排序是如何移动的?不同的移动方法是否都叫快速排序法?
    ——这个问题我先在书中看到了一种方法,及先选定第一个数,然后再在后面的第一个数和最后一个数放置一个标志。先挪动后面的直到找到一个比Pivot小的数,左边的标识随后向右移动直到找到比pivot大的数并将两者交换位置。
    不同方法可能有所不同但核心应该是一样的,所谓不同也只是细微不同(如两头交换法,填坑法)
  • 自底向上与自顶向下有什么区别?
    ——我在CSDN上查了一下区别
    某日小明上数学课,他的老师给了很多个不同的直角三角板让小明用尺子去量三角板的三个边,并将长度记录下来。两个小时过去,小明完成任务,把数据拿给老师。老师给他说,还有一个任务就是观察三条边之间的数量关系。又是两个小时,聪明的小明连蹦带跳走进了办公室,说:“老师,我找到了,三条边之中有两条,它们的平方和约等于另外一条的平方。”老师拍拍小明的头,“你今天学会了一个定理,勾股定理。它就是说直角三角形有两边平方和等于第三边的平方和”。
    另一个故事,某日老师告诉小明“今天要教你一个定理,勾股定理。”小明说,“什么是勾股定理呢?”“勾股定理是说,直角三角形中有两条边的平方和等于第三边的平方。”然后老师给了一大堆直角三角板给小明,让他去验证。两个小时后,小明告诉老师定理是正确的.

第一个故事说的是自底向上的设计分析方法,第二个故事说的是自顶而下的设计分析方法。
——引用

  • 什么是堆栈?
    ——CSDN
    栈是一种一种线性表,是一个存储区域。

  • 什么是缓存?
    ——百度知道
    缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。缓存的设置是所有现代计算机系统发挥高性能的重要因素之一。
    缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。L1 Cache(一级缓存)是CPU第一层高速缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般L1缓存的容量通常在32—256KB。L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速率与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,普通台式机CPU的L2缓存一般为128KB到2MB或者更高,笔记本、服务器和工作站上用CPU的L2高速缓存最高可达1MB-3MB。由于高速缓存的速度越高价格也越贵,故有的计算机系统中设置了两级或多级高速缓存。紧靠CPU的一级高速缓存的速度最高,而容量最小,二级高速缓存的容量稍大,速度也稍低。
    缓存只是内存中少部分数据的复制品,所以CPU到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时CPU还是会到内存中去找数据,这样系统的速率就慢下来了,不过CPU会把这些数据复制到缓存中去,以便下一次不要再到内存中去取。随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,又不频繁了,所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据是被访问最频繁的。
    ——百度知道

  • 用数组名直接做实参时可以改变实参的值吗?
    ——查找资料后我知道应该是可以的。这里应用了指针。

代码调试中出现的问题

点击查看代码
#include <stdio.h>
int main(void)
{
    int a, b, k, i = 0;
    int di[50];
    printf("Inuput your dec number,new base\n");
    scanf("%d,%d",&a,&b);
    do
    {
        i = 0;
        di[i] = a%b;
        i++;
        a = a/b;
        break;
    }
    while(a/b != 0);
    k = i;
    while(k <= i&&k >0)
    {
        printf("%d",di[k]);
        k--;
        break;
    }
    return 0;

}
这段代码是用来进制转换的,但有两个逻辑错误 解决:我通过调试发现了这些错误,算是第一次成功应用了调试领会到了调试的重要作用。

上周考试错题总结

1.Which of the following is part of a Pep/9 program instruction?
A.
Accumulator累加器
B.
Simulator模拟器
C.
Program counter程序计数器
D.
Specifier助记码
E.
Register
正确答案: D
你的作答: E
program instruction-程序指令
2.Each machine language instruction performs a single complex task, such as sorting a list of numbers.
正确答案: 错误
你的作答: 正确
a single意味一条不是简单……
3. A test case is a document that specifies how a program is to be tested.
正确答案: 错误
你的作答: 正确
测试用例就是测试人员测试软件时的一组数据,这组数据可以是专门设计出来测试软件相应功能的,也有可能是从用户处得来的实际的一组数据,一般包含:测试环境、操作步骤、测试数据、预期结果、优先级等
看书要看明白呀……

其他(感悟、思考等)

这一周我自己写了一点代码比平时多,本以为只要有了构思敲代码会像抄书那样简单,可惜那再我才发现实践的重要。本来以为正确的东西只有实践后才会用才知道真伪。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第六周 140/1300 2/9 30/90 实践能力增强
posted @ 2022-10-08 11:19  北寒带  阅读(31)  评论(0编辑  收藏  举报