2024-2025-1 学号20241315《计算机基础与程序设计》第六周学习总结

作业信息

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK06
这个作业的目标 Polya如何解决问题 简单类型与组合类型 复合数据结构 查找与排序算法 算法复杂度 递归 代码安全
作业正文 https://www.cnblogs.com/tanzitian11/p/18522441

教材学习内容总结

问题求解和算法设计

一、问题分析
明确问题:
理解问题的背景、目标和约束条件。
确定问题的输入和输出要求。
问题建模:
将实际问题转化为计算机可处理的形式,例如建立数学模型、流程图或状态机。
确定问题的抽象层次,以便更好地进行分析和求解。
二、算法设计
算法概念:
算法是解决特定问题的一组明确步骤。
了解算法的时间复杂度和空间复杂度,以评估算法的效率。(分治法)
三、计算机问题求解过程:
可分为4个阶段:1. 分析和说明阶段。
2.算法开发阶段。
3.实现阶段。
4.维护阶段。
四、方法总结
1.分析问题。
2.列出主要任务
3.编写其余模块
4.根据需要进行重组和改写
五、有简单变量的算法
1、带有选择的算法
if语句:

最基本的选择结构,根据给定的条件判断是否执行特定的代码块。
例如:if (condition) { // 条件为真时执行的代码 }。

if-else语句:
在if语句的基础上,增加了else分支,用于在条件不成立时执行另一段代码。
例如:if (condition) { // 条件为真时执行的代码 }
else { // 条件为假时执行的代码 }。

if-else if-else语句:
可以进行多个条件的判断,根据不同的条件执行不同的代码块。
例如:if (condition1) { // 条件1为真时执行的代码 }
else if (condition2) { // 条件2为真时执行的代码 }
else { // 所有条件都不成立时执行的代码 }。

2、计数控制循环

计数变量:在计数控制循环中,通常会使用一个计数变量来记录循环执行的次数。这个变量在循环开始前被初始化,然后在每次循环迭代中进行更新,直到满足特定的条件为止。
循环条件:循环条件通常基于计数变量来确定。当计数变量达到特定的值时,循环条件变为假,循环退出。
循环体:循环体是在每次循环迭代中执行的代码块。它可以包含任何合法的编程语言语句,用于实现特定的任务。

3、事件循环控制

事件:事件是指程序中发生的特定情况或动作,例如用户输入、定时器触发、网络数据到达等。事件可以由外部因素触发,也可以由程序内部的状态变化引起。
事件处理程序:事件处理程序是一段代码,用于响应特定的事件。当事件发生时,事件处理程序会被调用,执行相应的操作。
事件循环:事件循环是一个不断运行的循环,用于检测和处理事件。它会等待事件的发生,然后调用相应的事件处理程序来处理事件。

六、复杂变量
1.数组
一、数组的定义和特点
定义:数组是由相同类型的元素组成的有序集合,这些元素在内存中连续存储。
特点:
1、固定大小:在创建数组时,需要指定数组的大小,一旦确定,不能更改。
2、随机访问:可以通过索引快速访问数组中的任意元素,时间复杂度为 O (1)。
3、存储相同类型元素:数组中的元素必须是相同类型的,这有助于提高内存的使用效率和数据的一致性。

七、搜索算法
1、顺序搜索
定义:
顺序搜索是一种在数据集中逐个检查元素,直到找到目标元素或遍历完整个数据集的搜索方法。它不要求数据集是有序的,可以应用于任何类型的数据集。

特点:从数据集的第一个元素开始,依次检查每个元素。
将当前检查的元素与目标元素进行比较。
如果当前元素与目标元素相等,则搜索成功,返回当前元素的位置或相关信息。

2、二分检索
一、基本概念
定义:
二分检索的基本思想是将待查找的区间不断地分成两半,根据中间元素与目标元素的大小关系来确定下一步在哪个子区间中继续查找,重复这个过程直到找到目标元素或者确定目标元素不存在。
二、算法步骤
确定查找区间:首先确定待查找元素所在的区间,通常是整个有序数组。
计算中间位置:计算当前查找区间的中间位置,可以通过起始位置和结束位置的索引相加除以 2 得到。
比较中间元素与目标元素:
1、将中间位置的元素与目标元素进行比较。
2、如果中间元素等于目标元素,则查找成功,返回中间元素的索引。
3、如果中间元素大于目标元素,则说明目标元素在中间元素的左侧子区间,更新查找区间为左侧子区间。
4、如果中间元素小于目标元素,则说明目标元素在中间元素的右侧子区间,更新查找区间为右侧子区间。
重复步骤 2 和 3,直到找到目标元素或者查找区间为空(起始位置大于结束位置),此时说明目标元素不存在,返回特定的标识。

八、排序
1、选择排序
基本概念:
选择排序的基本思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余未排序的元素中继续寻找最小(或最大)元素,放到已排序序列的末尾。如此重复,直到全部元素均排序完毕。

2、冒泡排序
基本概念:
冒泡排序的基本思想是通过重复地遍历要排序的数列,每次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。这样一趟遍历之后,最大(或最小)的元素就会 “浮” 到数列的顶端。重复这个过程,直到整个数列有序。

3、插入排序
基本概念:
插入排序的基本思想是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。

九、递归算法
概念:在某种程序上调用自己。(算法调用它本身的能力)

1、子程序语句
定义和作用
定义:
子程序是一段可重复使用的代码块,它接受输入参数(可以没有),执行特定的任务,并可能返回一个结果(也可以没有)。
作用:
提高代码的可维护性:将复杂的任务分解为较小的、可管理的子程序,使得代码更易于理解和修改。

C语言程序设计

1、分支控制

在 C 语言中,选择控制结构用于根据不同的条件执行不同的代码块。主要有以下两种选择控制结构:
一、if 语句
基本形式:
if (condition) {
// 当 condition 为真时执行的代码
}
其中 condition 是一个表达式,其结果为真(非零值)或假(零值)。如果 condition 为真,则执行花括号内的代码块。

多分支形式:
if (condition1) {
// 当 condition1 为真时执行的代码
} else if (condition2) {
// 当 condition2 为真时执行的代码
} else {
// 当所有条件都为假时执行的代码
}
可以根据多个条件依次进行判断,选择执行不同的代码块。

二、switch 语句
基本形式:

switch (expression) {
case value1:
// 当 expression 的值等于 value1 时执行的代码
break;
case value2:
// 当 expression 的值等于 value2 时执行的代码
break;
// 可以有多个 case 分支
default:
// 当 expression 的值与所有 case 都不匹配时执行的代码
}
expression 是一个表达式,其值会与各个 case 后面的 value 进行比较。如果匹配,则执行相应 case 后的代码,直到遇到 break 语句跳出 switch 结构。如果没有匹配的 case,则执行 default 分支的代码(如果有 default 的话)。
一些注意事项:
1、在 if 语句中,条件表达式可以是任何返回值为整数类型的表达式,通常使用关系运算符(如 <、>、== 等)和逻辑运算符(如 &&、||、! 等)来构建复杂的条件。
2、switch 语句中的 expression 必须是整数类型(包括 char 类型,因为在 C 语言中 char 通常被视为小整数类型)或者枚举类型。
3、在 switch 语句中,每个 case 后面的 value 必须是常量表达式,不能是变量或运行时计算的值。
4、如果在 case 分支中没有 break 语句,程序会继续执行下一个 case 分支的代码,直到遇到 break 或者 switch 结构结束。
5、if 语句和 switch 语句可以嵌套使用,以实现更复杂的选择逻辑。
选择控制结构在 C 语言中非常重要,可以根据不同的情况执行不同的代码,使程序更加灵活和智能。

2、逻辑表达式
逻辑运算符:C 语言中有三个主要的逻辑运算符:&&(逻辑与)、||(逻辑或)、!(逻辑非)。
&&(逻辑与):当且仅当两个操作数都为真时,结果为真。
例如:a && b,如果 a 和 b 都为非零值(表示真),则整个表达式结果为真;如果其中任何一个为零(表示假),则结果为假。
||(逻辑或):只要两个操作数中有一个为真,结果就为真。例如:a || b,如果 a 或 b 中有一个为非零值,则整个表达式结果为真;只有当 a 和 b 都为零时,结果才为假。
!(逻辑非):用于对一个表达式取反。如果表达式为真,则 ! 操作后的结果为假;如果表达式为假,则结果为真。例如:!a,如果 a 为非零值,则 !a 为零;如果 a 为零,则 !a 为非零值。
逻辑表达式的求值:
对于 && 运算符,当第一个操作数为假时,整个表达式已经确定为假,不会再对第二个操作数进行求值。这被称为 “短路求值”。例如:a && b,如果 a 为假,那么无论 b 的值是什么,整个表达式都为假,所以不会对 b 进行求值。
对于 || 运算符,当第一个操作数为真时,整个表达式已经确定为真,不会再对第二个操作数进行求值。例如:a || b,如果 a 为真,那么无论 b 的值是什么,整个表达式都为真,所以不会对 b 进行求值。

基于AI的学习







学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第五周 200/200 1/2 20/20
第六周 300/500 1/4 18/38
第七周 500/1000 0/7 22/60
第八周 800/1300 0/9 30/90

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/826136.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Foods

生物活性化合物是食物中天然存在的物质,除了基本营养外,还能提供额外的健康益处。这些化合物具有特定的功能特性,对人类健康有直接影响。了解生物活性化合物发挥作用的潜在机制对于其在预防和治疗各种疾病方面的潜在应用至关重要。本期特刊的目的是整理原创研究文章和评论,…

第一周学习总结:计算机发展史及liunx系统安装

# 计算机发展相关历史 1.第一代(1946-1957年):电子管计算机 电子管计算机(1946-1957)这一阶段计算机的主要特征是采用电子管元件作基本器件,用光屏管或汞延时 电路作 存储器,输入与输出主要采用 穿孔卡片或纸带,体积大、耗电量大、速度慢、存储容量小、可靠性差、维护困…

【java开发】FileWriter

原创 大常运维FileWriter(文件字符输出流): 作用:以内存为基准,把内存中的数据以字符的形式写出到文件中去。构造函数和方法:代码:package cn.chang.d1_char_stream;import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Write…

蓝桥算法

1.https://www.lanqiao.cn/problems/19954/learning/?contest_id=214 这道题用快速幂直接秒,而快速幂就是求一个数的次方很大的时候,我们可以把指数分解为二进制的形式,再有a的b*c次方等于a的b次方乘以a的c次方,在用一个数存储一下即可。代码如下: def qui(x, y): res = 1…

2280: 【例27.2】 最小n值 循环代码块不熟练

include <bits/stdc++.h> using namespace std; int main( ) { int n=2, m; cin >> m; double sum=1; while (sum<m) { sum+=1*1.0/n; n++; } cout << n-1; return 0; } 错误点: int n=1, m; 错误点2:while (sum>=m),错误点三 没设置 n++; 反思:1…

web安全作业(SQL注入2)

web安全作业之SQL注入2 需要掌握的知识POST提交与Get提交方法的区别 Mysql POST注入(POST Union注入、POST报错注入、POST盲注、POST报头注入) Mysql注入文件上传 堆叠注入 二次注入 http协议请求报文 理解PHP中定义的以下预定义变量:$_REQUEST (获取GET/POST/COOKIE) COO…

2024-2025-1 20241412 《计算机基础与程序设计》第六周学习总结

学期(如2024-2025-5) 学号(如:20241404) 《计算机基础与程序设计》第5周学习总结 作业信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13276这个作…

[论文阅读] VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION

写在前面 原文:https://arxiv.org/pdf/1409.1556 参考:https://www.cnblogs.com/lijiuliang/p/15133276.html 关键字:卷积网络、卷积网络深度、图像识别 阅读理由:卷积神经网络深度与算法优良性能之间的关系是什么,如何评估的,结果如何,有哪些思考 前置知识:CNN(也是我…

strlen函数的模拟实现

首先我们先新建项目,并新建源文件 然后先调用sring.h里的strlen函数看看该函数的效果 可以看到strlen的结果为字符串"abc"的长度 我们又知道对于字符串"abc"实际上在字符串尾部会存在\0,即字符串arr实际上是"abc\0" 那么先定义自定义函数my_st…

2024-2025-1(20241321)《计算机基础与程序设计》第六周学习总结

这个作业属于哪个课程 <班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标 <了解并学习AI功能,回顾一周课程心得>作业正文 ... 本博客链接https://www.cnblo…

Java学习十七—反射机制:解锁代码的无限可能

Java 反射(Reflection)是Java 的特征之一,它允许程序在运行时动态地访问和操作类的信息,包括类的属性、方法和构造函数。Java学习十七—反射机制:解锁代码的无限可能 一、关于反射 1.1 简介 Java 反射(Reflection)是Java 的特征之一,它允许程序在运行时动态地访问和操作类的…

行人闯红灯自动监测系统

行人闯红灯自动监测系统利用现场已有的监控摄像头,当路口有行人通过时,行人闯红灯自动监测系统设备自动监测识别是人体。一旦识别到人行横道区域有行人通行,系统就会自动判定并发出警告。同时,系统还能够识别红绿灯的状态,如果红灯亮起,系统就会通过声光联合告警,提醒行…