2022-2023-1 20221309《计算机基础与程序设计》第九周学习总结

作业信息

这个作业属于哪个课程

<班级的链接>

这个作业要求在哪里

<作业要求的链接>https://www.cnblogs.com/rocedu/p/9577842.html#WEEK09

这个作业的目标

学习《计算机科学概论》第10,11章和《C语言程序设计》第8章

作业正文

 https://www.cnblogs.com/Plame/p/16842110.html

教材学习内容总结

《计算机科学概论》第10,11章:了解操作系统在计算机中的作用,了解内存管理的多种方法,了解CPU调度算法的处理;

了解文件与目录系统的用途,可以识别文件类型,了解目录树,知道磁盘调度算法。如下:

 

 

 

 

 

 

 

 

C语言程序设计》第8章:了解数组类型,定义,初始化,明白可以向函数传导一维或二维数组,了解了排序,查找,最大值,最小值算法;

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

问题1:磁盘调度算法有点抽象,如何直观表示?

问题1解决方案:查找资料得,

1.先来先服务算法(FCFS)

算法思想:根据进程请求访问磁盘的先后顺序进行调度。

 

 

 

假设磁头的初始位置是100号磁道,有多个进程先后陆续地请求访问55、58、39、18、90、160、150、38、184号磁道。

按照先来先服务算法规则,按照请求到达的顺序,磁头需要一次移动到55、58、39、18、90、160、150、38、184号磁道。

2.最短寻找时间优先(SSTF)

算法思想:优先处理的磁道是与当前磁头最近的磁道。可以保证每次寻道时间最短,但是不能保证总的寻道时间最短。

假设磁头的初始位置是100号磁道,有多个进程先后陆续地请求访问55、58、39、18、90、160、150、38、184号磁道。

 

磁头总共移动了(100 -18)+ (184 -18) = 248个磁道。响应一个请求平均需要移动248 / 9 = 27.5个磁道(平均寻找长度)。

3.扫描算法(SCAN)

电梯算法(LOOK算法)。(扫到最大请求柱面)

假设某磁盘的磁道为0~200号,磁头的初始位置是100号磁道,且此时磁头正在往磁道号增大的方向移动,有多个进程先后陆续的访问55、58、39、18、90、160、150、38、184号磁道。

 

 

 

 

 

磁头共移动了(184 - 100)+ (184 -18) = 250个磁道。响应一个请求平均需要移动 250 / 9 = 27.5个磁道(平均寻找长度)。

原文链接:https://blog.csdn.net/qq_46138755/article/details/123866822

代码调试中的问题和解决过程

问题1怎样判断是否为整数?

问题1解决方案:查询资料得#include<stdio.h>

int main(void)

{

double num;

scanf("%f", &num);

if((int)num == num)

printf("%f是整数",num);

}

另有一种解法:double a;使用floor(a+0.5) == a来判断即可。floor(a)是对a向下取整,那么为什么要用a+0.5而不直接用floor(a)呢?

这是因为有时候使用 double 型变量存储整数时,会有损失部分精度,比如本来想存的是1,而实际上存的可能是 0.9999999 , 所以这样四舍五入一下,能有效避免存储精度上产生的问题。

#include<stdio.h>

#include<math.h>

int main()

{

    double a;

    scanf("%lf",&a);

    if(floor(a + 0.5) == a)

    {

        printf("%s","yes");

    }

    else

    {

        printf("%s","no");

    }

    return 0;

}

参考:https://blog.csdn.net/qq_32623363/article/details/85335489

 问题2:如何在调用函数返回字符串?

 问题2解决方案:结合后面的课本得,可以通过运用函数调用字符型数组,从而输出字符串。

 

 

 

上周考试错题总结

1.Pseudocode is an expression used as a condition in selection and repetition statements.

正确答案: 错误

你的作答: 正确

解析:伪代码是在选择和重复中用作条件的表达式——————伪代码只是一种表示算法的语言,所以伪代码不能说是用作条件的表达式,而是一种算法结构,用作条件的表达式是布尔表达式(用于测试出是true还是false),因此被用作条件,也叫断言。

 

 

暂无

其他

解决方案:

 

学习进度条

 

代码行数(新增/累计)

博客量(新增/累计)

学习时间(新增/累计)

重要成长

目标

3000行

20篇

200小时

 

第七周

100/600

1/19

15/90

 

第八周

100/700

1/20

15/105

 

第九周

100/800

 

15/120

 

posted @ 2022-10-30 20:07  221309张致远  阅读(91)  评论(0编辑  收藏  举报