11 2022 档案
摘要:    
阅读全文
摘要:
阅读全文
摘要:
阅读全文
摘要:折半查找快速是因为每次只查一半,另一半不管 把一个任务拆成两个部分只完成其中一部分,是一个很有效的办法 当元素多了,运算、时间消耗等会比较复杂 数组前一半让它有序,后一半让它有序,然后合并,从而成为完全有序的一个数组,达到任务的要求。前一半排序,后一半排序,也是一个数组排序的过程,这是一个非常典型的
阅读全文
摘要:        
阅读全文
摘要:         
阅读全文
摘要:手中的牌有序会让查找更快,怎样使手中牌有序?
阅读全文
摘要:选左边/右边都与线性查找差别不大,选中间最好
阅读全文
摘要:   
阅读全文
摘要:线性查找 上亿规模太慢了,需要更快查找方式 如果手里牌有顺序,更快查找,假设有顺序怎么找
阅读全文
摘要:怎么表达每张扑克牌? int、char(0-255)、double适用 bool不适用 扫一眼牌就找到了————枚举思想
阅读全文
摘要:数学知识运用对解决问题还是非常重要的 计算机常见问题————查找问题
阅读全文
摘要:问题规模逐渐增大,求素数效率其实不高 提高效率 古希腊筛法 最关键点是何为筛子 引入数组 枚举2-100这99个变量 引入变量——数组
阅读全文
摘要:数组 一组的数、一组的变量 变量能干什么,数组中的每一个值都可以进行对应的操作
阅读全文
摘要:什么是函数 一个具有特定功能的、相对独立的模块,能够被多次使用 函数设计的要素 功能——函数的定义 模块——函数的声明 使用——函数的调用 bool isPrime(int); 有一个函数,名叫isPrime,有一个(int)的输入,输出为bool类型 函数声明后,就可以进行调用了 #include
阅读全文
摘要:思考一 for循环n规模为10的5次方,输出变慢 变慢 有没有更快的方法呢
阅读全文
摘要:问题 为了让小朋友熟悉倍数概念,让小朋友去插花,第一个小朋友向大于2且是2的倍数的花瓶插花,向大于3且是3的倍数的花瓶插花,以此类推...,最后哪些花瓶没被插花呢? 插花过程 第一个小朋友,给2的倍数的花瓶插上花 第二个小朋友,给3的倍数的花瓶插上花 第三个小朋友,给4的倍数的花瓶插上花 ... 没
阅读全文
摘要:循环语句 for while do while 运算符优先级 适当用括号明确优先级 变量作用域 尽量避免变量作用域污染,在对应范围定义变量
阅读全文
摘要:字符本质上是整数 char范围0-255,数值连续排列。 判断一个字母是否小写 ch >='a'且 ch <= 'z' ch = ‘2’变成对应数值2 ‘2’-‘0’=2 ASCII码表 leetcode
阅读全文
摘要:枚举思想 特别重要的算法思想 很重要,朴素、有效 是计算机的基础的智能的表现 在有限解空间里找 问题不一样,枚举的代价可能很大 目前计算机不具备推导能力,未来或许有可能? 无序的变有序:编号或者放在有序的格子里,也要可计算 生活中例子,邮政编码,街道号,房间号 人类从来都在追求,无序变有序 计算机能
阅读全文
摘要:算法是一系列对特定问题求解的特定指令 算法并不高大上、不神秘 生活中的算法 做事情很明确的步骤,先做什么再做什么。在什么条件下做什么 计算机只会做你告诉它怎么做的事情,我们不知道,计算机更加不知道了 算法是有限的、明确的、每一个步骤是可实现的,能解决问题的。 经典算法,掌握后能解决很多问题了 不同算
阅读全文
摘要:顺序、分支、循环能解决所有(复杂、简单)算法问题 循环是重复的升级版 循环体现了编程的人对规律性把握是否到位 计算机使得人力、思维得到衍生
阅读全文
摘要:风格 "{"和“}”之间的每一行的左侧多空了4个空格,表示语句的层次关系 格式 运算符前后有空格,看上去更为美观
阅读全文
摘要:变量地址(内存单元地址)是什么类型 存“变量地址”的变量————指针 代码实现 #include <iostream> using namespace std; int main() { int n = 1; float f = 1.0; double d = 2.0; char c = '*';
阅读全文
摘要:变量存储在哪里 变量内存单元地址 代码实现 #include <iostream> using namespace std; int main() { int n; float f; double d = 1.23; // 0.0 char c = '*'; cout << "address of
阅读全文
摘要:思考 变量为何要指定类型 不同类型,差别是什么 变量类型用途 告诉计算机如何操作数据 即:类型“暗示”了运算的操作办法。不同类型的数值,它们参与运算的“操作规则”是不同的。 字符串类型,“加法操作”为将两个串拼接起来。与数的加法天壤之别! 指针类型的加减运算,更是遵循一种截然不同的运算规则! 类型作
阅读全文
摘要:变量自定义后未赋值 // 变量自定义后未赋值 #include <iostream> using namespace std; int main() { int num; cout << num << endl; return 0; } 运算结果为 如果变量自定义后没有赋值, 则变量内存单元中的值是
阅读全文
摘要:变量的基本概念 什么是变量* 程序中经过操作其值可以改变的量称为变量 变量命名规范* 变量在使用前必须加以声明 每一个变量要有一个与其它变量不相同的合法的名字 第一个字符必须是字母或下划线,其后的字符只能是字母、数字和下划线 不得与C/C++语言系统所保留的关键字相同 考虑实际含义,以提高程序的易读
阅读全文
摘要:代码实现* #include <iostream> using namespace std; int main() { float apple_price = 3.5; // 苹果单价 float banana_price = 4.2; // 香蕉单价 float apple_weight = 0.
阅读全文
摘要:电子秤需求分析 看得见 显示屏 按键(不同功能,不同水果) 称量模块(测量并记录质量) 看不见,需要分析得出* 存储模块(存储水果价格) 计算模块(加法、乘法) 任务分析 总价 = 水果1质量 * 价格1 + 水果2质量 * 价格2 + 水果3质量 * 价格3 + ... “超级计算器”思考 其缺陷
阅读全文
摘要:只有6个嫌疑人,用了6层循环,如果有更多嫌疑人呢? 不写多重循环怎么办呢?我们应该是有办法的 每个嫌疑人指定一个二进制的位 把所有人是不是参与作案的情况拼在一起,拼成 六位二进制数 怎么根据循环变量的值得到每一位嫌疑人是否作案的信息 怎么让程序得到一个数二进位的每一位值? 位运算 在数的二进制表示意
阅读全文
摘要:用if-else语句,如果有400人,程序得多长? 循环语句 让计算机循环执行一些代码指令 /* 谁是做好事的人呢?三个人说的是真话,一个人是假话 A:不是我 good_man != 'A' B:是C good_man == 'C' C:是D good_man == 'D' D:他胡说 good_m
阅读全文
摘要:作案/未作案,6个人的排列组合有2的6次方种可能。 用数值“编号”,来表示是否参与作案, 计算思维的运用 把事物进行有序的编号,利用编号来进行计算 0 没有参与作案,1 参与作案 for语句进行枚举 嵌套循环或多重循环 枚举所有作案/不作案的可能
阅读全文
摘要:*问题 A、B至少有一人作案 A、E、F三人中至少有两人参与作案 A、D不可能是同案犯 *B、C或同时作案,或与本案无关 C、D中有且仅有一人作案 *如果D没有参与作案,则E也不可能参与作案 A没参与作案 A == 0 或 A != 1 B参与作案 B == 1 A和B都参与作案 A == 1 并且
阅读全文
摘要:计算机只能做数学运算? 逻辑推理问题 找做好事的人,三个人说的是真话,一个人说的是假话。 A:不是我 B:是C C:是D D:他胡说 解答 假设法,假设A是做好事的人,那么ABC为假话,D为真话。与假设矛盾,做好事的人不是A 如何让计算机解决这个问题呢 首先计算机要能够表示A、B、C、D几个不同的人
阅读全文
摘要:怎么通过计算机检查同学中,有三个人说了真话呢? “计算器”的功能 可以对结果进行累加 当关系表达式为true时才进行累加 累加操作只有在满足一定条件后才执行,这样的指令需有特殊的程序语言语句来表达: 条件语句if if-else 怎么统计有三个人说了真话? 枚举思想 一个个假设问题可能的答案,一个个
阅读全文
摘要:变量 对应内存空间 对概念的符号化表示 数据类型 告诉计算机数据占多大内存 怎么解读该0101数据 遇到0101怎么运算/操作 编程能力 看计算思维的功力 写程序过程就是挖掘问题的规律,怎么挖掘规律?先找到问题的变量就是挖掘规律的切入点 设了变量,背后深刻道理:把握事物规律,掌握事物因果关系 程序员
阅读全文
摘要:思考与讨论 变量有何用途 什么时候需要它 如何使用变量 如何给变量命名 变量要能清楚表示它存储数据的含义 变量体现的计算思维 以符号形式表达数学公式,完成一般性求解 保存输入的数据,用于后续计算 保存/记录中间结果,供后续语句使用 关于赋值运算符 = a = b + c 等号 “ = ”是一个运算符
阅读全文
摘要:代码实现 #include <iostream> using namespace std; int main() { int n = 1; float f = 1.0; double d = 2.0; char c = '*'; int* pn = &n; float* pf = &f; doubl
阅读全文
摘要:变量地址(内存单元地址)的加减操作 代码实现 #include <iostream> using namespace std; int main() { int n1 = 12, n2 = 87; char c1 = '9', c2 = 'B'; cout << "n1:value = " << n
阅读全文
摘要:数据在计算机中是如何表示的呢? 猜数游戏 你心里默想一个小于50的数 接着,我问你在以下的6张卡片中 哪几张卡片里有你想的那个数? 之后,我不费吹灰之力就能猜出这个数 现在试一试 6张卡片 你默想的数在哪张卡片上? 算法的代码实现 #include <iostream> using namespac
阅读全文
摘要:课上未讲的函数,如何表达? 已知函数组合来解决实际问题 网上查 C++参考 C++ reference SDK(软件开发工具包) 主函数与“cmath”文件函数区别 定义函数 相当于自己造螺丝刀给别人用 调用函数
阅读全文
摘要:为什么有如此多的计算机语言* 自然语言有汉语、英语等是因为文化差异 人们发现跟计算机沟通,不适合于表达这一类问题,就会尝试开发新的计算机语言 各种语言的优势 根据功能* 为数学领域而设计 Mathematica 绘制功能,很快画出美妙函数图像 网站设计 PHP 很难用C语言完成网站开发 根据操作系统
阅读全文
摘要:重思路* 尝试按老师思路去思考问题,解决问题 勤动手* 体验计算思维,尔后解决问题过程运用自如 码代码 调试程序。错误是宝贵经验。资深程序员更多指,遇到错误很快想到怎么解决。 敢提问* 多阅读* 源码 经典参考书
阅读全文
摘要:教学目标、理念* 培养计算思维,语言、语法次之 激发学术志趣 引领计算人生 信息、互联网时代,计算思维是必备素质。推开信息大门,走进去 问题* 能写程序解决问题,但学生不知道为什么这样写能解决问题 生活中东西、事情换个角度看,蕴含深刻道理,如扑克牌理牌(排序) 思维本来就有,不够提炼、总结,未形成理
阅读全文
摘要:程序基本框架 类似写信模板 #include <iostream> // 包含库函数 using namespace std; // 命名空间 // 主函数 int main() { return 0; } 包含库函数 以符号“#”开头的行,称为预编译行 “#include ”这条命令是让文件“io
阅读全文
摘要:π用近似值表达:3.14159 sourceforge下载devcpp* 开源代码库sourceforge下载IDE:devcpp 步骤一 步骤二
阅读全文
摘要:问题描述 古时候解决方案 算盘计算 现代解决方案 计算器 程序如何计算呢? 程序基本框架* 意义类似于介绍信/请假条模板 什么是编译* 将源代码文件转换为计算机可识别的指令序列 xx.cpp源代码文件编译为xx.exe文件(windows可识别的可执行文件) 代码实现 // 买菜问题 // calc
阅读全文
摘要:用计算思维解决实际问题,需尽量发挥计算机特长 计算机有哪些特长? 怎么发挥其特长呢? 需先了解计算机原理 图灵机* 理论上计算机,追溯到1936年图灵机(纯数学模型、抽象) 组成 无限长纸带 可移动读头 状态寄存器 一张转换表 进一步将该模型实现,后人提出了冯诺依曼体系结构,沿用至今 计算机原理:冯
阅读全文
摘要:不同规则下考虑同一个问题,思路会发生一定的变化,或简单或复杂。 什么是计算思维* 用计算机解决问题需用不同的思维方式 周以真教授给出的“计算思维”定义 “计算思维”解题特点* 满足计算机程序执行的规则约束 发挥计算机特长
阅读全文
摘要:什么是程序 管理学的程序定义 为进行某项活动或过程所规定的途径 生活中的程序 开学典礼的程序,第一项、第二项 打太极拳的步骤 什么是计算机程序* 为得到某种结果,通过计算机语言表达的指令序列 什么是语言 表情符号 肢体语言 自然语言 汉语、英语 什么是计算机语言 用于跟计算机沟通 计算机语言分类 表
阅读全文