20221418 《计算机基础与程序设计》第九周学习总结

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

作业信息

这个作业属于哪个课程 2022-2023-1-计算机基础与程序设计
这个作业要求在哪里 (2022-2023-1计算机基础与程序设计第九周作业)
这个作业的目标 自主学习《C语言程序设计》第八章,《计算机科学概论》第十、十一章
作业正文 https://www.cnblogs.com/7777xiaohu/p/16823311.html

教材学习内容总结





数组的定义和初始化
向函数传递数组
排序和查找数组

学习中的问题和解决过程

问题一:在页面交换技术中,如何确定被移出的页面
解决方案:查找资料
问题一答案:1.OPT算法(查找最长时间未被访问的页面)
2.FIFO算法(原理在于我们通常认为第一个载入的页面使用可能性最低)
3.LRU算法(最近,最久未被使用的页面)
4.CLOCK算法(将页面时钟化)
问题二:..究竟是什么意思
解决方法:询问老师
问题答案:点点相当于一个返回上级目录(父目录)的操作。
问题三:RFID是什么意思
解决方案:查阅资料
问题答案:这代指一种射频识别技术,实现在阅读器与标签之间非接触式的数据通信达到识别目标的目的

代码调试中的问题

问题:如何在键盘上打印一个边长为N(由用户输入的空心正六边形)
我的解法:二维数组

include <stdio.h>

int main()
{
int n, i, j;
printf("Enter length:");
scanf("%d", &n);
char arr[2 * n - 1][3 * n - 2];
for (i = 0; i < 2 * n - 1; i++)
{
for (j = 0; j < 3 * n - 2; j++)
{
arr[i][j] = ' ';
}
}
for (i = n; i <= 2 * n - 1; i++)
{
arr[0][i - 1] = '';
arr[2 * n - 2][i - 1] = '
';
}
for (i = 0, j = n; i < n; i++, j--)
{
arr[i][j - 1] = '';
}
for (i = 2 * n - 2, j = n; i >= n; i--, j--)
{
arr[i][j - 1] = '
';
}
for (i = 0, j = 2 * n - 1; i < n; i++, j++)
{
arr[i][j - 1] = '';
}
for (i = 2 * n - 2, j = 2 * n - 1; i >= n; i--, j++)
{
arr[i][j - 1] = '
';
}
for (i = 0; i < 2 * n - 1; i++)
{
for (j = 0; j < 3 * n - 2; j++)
{
printf("%c",arr[i][j]);
}
printf("\n");
}
return 0;
}
更优解法:循环

include <stdio.h>

int main()
{
int a,i,j,t;
scanf("%d",&a);
for(i=1;i<=2a-1;i++)
{
if(i1||i2
a-1)
{
for(j=0;j<a-1;j++)
printf(" ");
for(j=0;j<a;j++)
printf("");
}
else
{
if(i>1&&i<=a)
t = i;
else
t = 2
a-i;
for(j=0;j<a-t;j++)
printf(" ");
printf("");
for(j=0;j<a+2
(t-2);j++)
printf(" ");
printf("*");
}
printf("\n");
}
getchar();
return 0;
}
问题原因:没有找到规律进行循环

上周考试错题总结

Which of the following language paradigms allows the programmer to express algorithms derived from a top-down design?
A. Imperative (or procedural) B. Functional C. Logic D. Object-oriented
命令式范型是遵循自顶向下设计的,面向对象是属于命令式范型里的。
A Boolean expression may be an arithmetic expression followed by an integer.
正确答案: 错误
你的作答: 正确
布尔表达式不能由一个算术表达式和整数构成

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 2/2 20/20
第二周 200/200 2/4 18/38
第三周 101/301 3/7 22/60
第四周 200/501 3/10 30/90
第五周 200/701 3/13 20/110
第六周 200/901 5/18 20/130
第七周 200/1101 1/19 20/150
第八周 200/1301 2/21 20/170
第九周 200/1501 1/22 20/190
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

posted @ 2022-10-30 11:29  20221418曾庆林  阅读(41)  评论(0编辑  收藏  举报