首页 > 编程语言 >学期(如2024-2025-1) 20241406刘书含)《计算机基础与程序设计》第六周学习总结

学期(如2024-2025-1) 20241406刘书含)《计算机基础与程序设计》第六周学习总结

时间:2024-11-03 20:43:04浏览次数:3  
标签:返回 刘书含 函数 递归 2024 2025 while 返回值 流程图

教材学习内容总结
《计算机科学概论》第七章
计算机硬件基础:
计算机硬件是计算机系统的物质基础,包括中央处理器(CPU)、内存、存储设备、输入输出设备等。
中央处理器(CPU):
CPU是计算机的大脑
内存:
内存(RAM)是计算机的短期记忆,用于存储当前正在处理的数据和程序。
包括随机访问存储器(RAM)和只读存储器(ROM)。
内存的类型、速度和容量对计算机性能有直接影响。
存储设备:
Eg.硬盘驱动器(HDD)、固态驱动器(SSD)和光盘。
存储设备的读写速度、容量和可靠性是选择时的重要考虑因素。
主板和扩展卡:
主板是连接所有硬件组件的平台。
扩展卡如图形处理单元(GPU)、声卡、网络卡等增强计算机的功能。
掌握递归算法的原理:

  1. 递归概念
    递归算法是指一个函数在执行过程中,通过调用自身解决更小规模的相同问题。它通常将一个复杂的问题分解为较小的子问题,直到这些子问题的规模足够小,能够直接解决1.
  2. 递归的执行原理
    递归算法的执行可以通过以下几个步骤来理解2:
    基本情况(Base Case): 每个递归函数必须有至少一个基本情况,以避免无限递归。当满足基本情况时,函数将停止调用自身并返回结果。
    递归调用(Recursive Call): 在基本情况之外,函数需要调用自身,并在每次调用时使用较小规模的参数以解决子问题3.
    减少问题规模(Reduce Problem Size): 每次递归调用都会减少问题的规模,这是确保最終返回到基本情况并结束递归的关键部分4.
    合并结果(Merge Results): 一旦所有的子问题都得到解决,结果通常需要重新组合,以形成原问题的解
  3. 递归的优势与挑战
    优势:

代码简洁:递归通常比迭代更易于理解和实现,尤其是在解决结构复杂的问题(如树和图的遍历)时7.
直接反映问题的性质:许多自然问题如分治和组合问题具有递归性质,递归使得这些问题的解决方案更直观。

挑战:

性能问题:递归可能导致大量的函数调用,尤其在子问题重叠时,可能造成效率低下8.
栈溢出:深度递归可能导致栈溢出错误,特别是在处理大规模问题时,需要谨慎设计基本情况和递归调用

《C语言程序设计》第五六章
控制结构:
讨论了C语言中的三种基本控制结构:顺序结构、选择结构和循环结构。
顺序结构是按照代码的书写顺序执行。
选择结构包括if、else if、else和switch语句,用于根据不同条件执行不同代码块。
循环结构包括for、while和do-while循环,用于重复执行代码块。
重点:循环:一、for语句
用法:
语法形式为for(初始化表达式; 条件表达式; 更新表达式) {循环体}。
int find=0;(标志变量)

for(;!find;)
{
    printf("请输入正确的数字");
    scanf("%d%d",&a,&b);
    if(a>EPS&&b>EPS)
        find=1;

}

二、while语句
含义:
while语句用于在条件为真时重复执行一段代码。
语法形式while(初始化表达式; 条件表达式; ) 。

三、do-while语句(直到)
含义:
do-while语句与while语句类似,但它保证循环体至少执行一次。

函数
函数的声明与定义
在 C 语言中,函数在使用前一般需要声明,声明告知编译器函数的名称、返回类型和参数类型。定义则是函数的具体实现。
例如 int add(int a, int b); 是声明
函数调用
可以在主函数或其他函数中调用函数。如 main() 函数中可以通过 result = add(3, 5); 调用 add 函数,并获取返回值。函数参数传递
值传递:将实际参数的值复制给形式参数,函数内对形参的修改不影响实参,如基本数据类型作为参数时。
指针传递:传递变量的地址,可在函数内修改原变量的值,常用于数组、字符串等操作。
函数的返回值
函数可以返回一个值(除 void 类型函数外),返回值类型要与函数声明的类型一致。 return 语句用于结束函数执行并返回值。
函数的作用
代码复用:避免重复编写相似的代码,提高编程效率。
模块化编程:将程序分割成多个功能独立的模块,便于理解、调试和维护。

教材学习中的问题与解决过程
一.画流程图(课堂知识的遗漏)
AI回答:
一、理解程序逻辑
在开始绘制流程图之前,首先需要对程序的逻辑进行深入理解。这包括:
确认输入与输出:明确程序所需的输入数据和预期输出结果。这有助于决定流程图的开始和结束点。
分析控制流程:识别程序中的各种控制结构,比如顺序结构、选择结构(if-else、switch语句)和循环结构(for、while语句)1。
识别功能模块:理解程序中的各个功能模块及其关系,以便在流程图中准确表现它们之间的交互2。
二、应用标准流程图符号
使用标准符号绘制流程图是确保图示整洁和易于理解的关键。常用的流程图符号有:
椭圆形:表示流程的开始和结束。
平行四边形:表示输入和输出。
矩形:表示处理过程或操作。
菱形:表示条件判断。
箭头:表示数据流向或流程的方向4。
三、绘制流程图的具体步骤
绘图的基本步骤通常包括:
确定起点和终点:绘制流程图时,首先确定程序的起始点和结束点。
标记输入和输出:使用平行四边形表示程序的输入和输出操作。
标记处理过程:使用矩形便于处理逻辑的步骤,如计算和赋值。
标记决策点:使用菱形表示条件判断的节点,比如何时进行循环或进行分支判断。
确保流程逻辑顺畅:用箭头连接各个步骤,确保从开始到结束逻辑流畅5。
四、验证和修改流程图
绘制完成后,确保仔细检查流程图的逻辑,验证每个步骤是否符合程序的逻辑结构,并在必要时进行修改:
二.如何正确的使用返回函数
AI
返回值的类型:每个函数在定义时都有指定的返回类型,常见的包括int、float、char等。如果返回类型为void,则函数在结尾可以简单使用return来结束函数,而不返回任何值
返回指针:
C语言允许函数返回指针类型的数据。返回指针需要格外小心,以确保指向有效内存,避免悬挂指针或内存泄漏。这通常用于动态内存分配的情况。
处理多个返回值:
尽管一个函数只能返回一个值,但可以通过参数传递或使用结构体来处理多个返回值。(1.通过指针传递;2.返回结构体)
注意
确保每条路径都有返回值:对于非void类型的函数,所有可能的执行路径都应返回一个值。缺失返回语句可能导致未定义行为6。

main函数的返回值:main函数的返回类型必须是int,通常使用return 0;结束,表示程序正常终止。不同的返回值可以用来指示错误状态7。

避免悬空指针:确保返回的指针指向有效的内存,避免返回指向局部变量的指针,这样在函数结束后局部变量会被销毁

标签:返回,刘书含,函数,递归,2024,2025,while,返回值,流程图
From: https://www.cnblogs.com/lsh-456654/p/18523924

相关文章

  • ACR2024官方预告_互动式规划以探索跨学科团队的多样化需求
    InteractiveProgrammingtoExploreDiverseNeedsofInterdisciplinaryTeam互动式规划以探索跨学科团队的多样化需求November1,2024 2024年11月1日Newadvancementsandprovenapproachesacrossthepracticeofrheumatologywillbeattheforefro......
  • 2024-2025-1 20241318《计算机基础与程序设计》第六周学习总结
    这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK06这个作业的目标<Polya如何解决问题简单类型与组合类型复合数据结构查找与排序算法算法复杂度......
  • 2024.11.3 test
    BP6563[SBCOI2020]一直在你身旁,\(n\le10^5\),\(c_i\le9\)。考虑利用\(c_i\le9\)的性质,那么最后答案很小。我们原本是计算每个区间的答案,同时区间答案具有单调性,那么考虑把答案放进状态里即可。即维护\(f_{l,ans}\)表示花费\(ans\)的代价能确定的最远的\(r\)。C请......