计算机基础与程序设计(2022-2023-1) 第八周学习总结
学期(2022-2023-1) 学号(20221407) 《计算机基础与程序设计》第八周学习总结
作业信息
这个作业属于哪个课程 | 班级的链接 |
---|---|
这个作业要求在哪里 | 2022-2023-1计算机基础与程序设计第八周作业 |
这个作业的目标 | 功能设计与面向对象设计 面向对象设计过程 面向对象语言三要素 汇编、编译、解释、执行 |
教材学习内容总结
- 《计算机科学概论》:这一章讲述了除自顶向下的另一种程序设计方法——面向对象的方法以及代码运行中的一个重要过程——翻译,以及高级程序设计语言和面向对象语言的功能性。扩展了我的视野。
- 《C语言程序设计》:这一张讲述了编程中的一些重要思想——分而治之,模块化程序设计。以及完成这些思想的重要工具自定义函数以及递归函数。
教材学习中的问题和解决过程
- 清空内存的方法都有哪些?原理是什么?
这个问题是在云班课上看到的,之前我也曾经有过这个问题但可惜没有深入探究,仅仅停留在了知道有,但不知道为什么。这是我学习上的问题。
我在CSDN上搜了很多资料,因为很多都只是说有这个东西,但没有说为什么有这个东西。
——1.fflush(stdin) :
/stdin就是标准输入 std即standard(标准),in即input(输入),合起来就是标准输入。 一般就是指键盘输入到缓冲区里的东西。/
fflush是一个函数
另有fflush(stdout)为清空输出区
——2.while(getchar()!='\n')
原理:相当于:
点击查看代码
char c
do
{
c = getchar();
putchar(c);
}while(c!='\n');
代码调试中的问题和解决过程
(这周敲代码出现了很多问题学到了很多)
1.
点击查看代码
#include<stdio.h>
#define N 10
void Transpose(int a[][N], int n);
void InputMatrix(int a[][N], int n);
void PrintMatrix(int a[][N], int n);
int main(void)
{
int a[N][N];
int n;
printf("Input n:\n");
scanf("%d",&n);
printf("Input %d*%d matrix:\n",n,n);
InputMatrix(a,n);
Transpose(a,n);
printf("The transposed matrix is:\n");
PrintMatrix(a,n);
return 0;
}
void InputMatrix(int a[][N], int n)
{
int i, j;
for(i = 0;i <= n-1;i++)
{
for(j = 0;j <= n-1;j++)
{
scanf(" %d",&a[i][j]);
}
}
}
void Transpose(int a[][N], int n)
{
int i, j;
int t;
for(i = 0;i <= n-1;i++)
{
for(j = 0;j <= n-1;j++)
{
t = a[i][j];
a[i][j] = a[j][i];
a[j][i] = t;
}
}
return a;
}
void PrintMatrix(int a[][N], int n)
{
int i, j;
for(i = 0;i <= n-1;i++)
{
for(j = 0;j <= n-1;j++)
{
if(j == n-1)
{
printf("%d",a[i][j]);
printf("\n");
}
else
printf("%d\t",a[i][j]);
}
}
}
这个代码的功能是输出一个方阵的转置方阵,我选择使用了for循环语句,但忽略了for会把另一边也转置一遍。导致虽然转置了,但转置多了……
解决:
这个代码是一道练习题上的,我当时看到题后直接上手敲代码用了好几个if语句,结果完全不能输出结果。后来,通过参考答案,才发现我的方法太过于繁琐了。只要倒过来想就变得非常容易了。
果然语法不是最难的,思想,算法才是。
这个问题是因为我做递归函数时,忘记了设置基本条件,导致递归不能停止。
上周考试错题总结
- Which level provides a view that deals with the underlying data structure used to manage the data?
A.
Implementation level实施水平
B.
Logical level
C.
Array level
D.
Linked level
E.
Application level
正确答案: A
你的作答: B
译:哪个级别提供了处理用于管理数据的基础数据结构的视图?
其他(感悟、思考等,可选)
- 我个人认为自己在学习上投入的时间是较多的,但不知道为什么还是做的不够好,可能是因为自己不够高效,不够认真,仅仅投入了时间。希望看到的老师,前辈,学长学姐能给一些建议。我自己下周也要努力,不能对付完成任务。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第......周 | 500/1000 | 3/7 | 22/60 | |
第八周 | 70/1300 | 3/9 | 30/90 |