C语言01
从问题到C语言程序设计
1.1计算机的问题求解方法
程序设计面向的问题
什么问题可以用程序的方法解决?
打印九九乘法表
图形变换
文件压缩问题
.......
一切可计算的问题
如何解决?
确定问题可计算
建立问题的数学模型
设计算法和数据结构
选择合适的计算机语言编写程序
调试运行程序分析结果
关于计算
什么是计算
基于规则的符号集合的变换过程,有限的步骤
可计算和不可计算
可计算:输入与输出是明确的
不可计算:旅行家问题
理论上可计算的问题,实际上不一定有解
计算的复杂性
时间复杂度:受问题规模影响(如:梅森素数)
空间复杂度(不讨论)
关于算法
什么是算法
有穷规则的集合,规则规定了解决某一特定类型的问题的运算序列(是解决问题的有限步骤)
算法的特征
有穷性:有限步骤
确定性:含义确切
有效性:有效执行
有零个或多个输入
有一个或多个输出
算法描述方法:
自然语言
程序语言
流程图----->传统方法
N-S图------->结构化程序设计方法(待补充)
PAD图
伪代码------>随意但不严谨的方法
算法优化:
减少判断次数
无效输出减少
总结:
算法是解题步骤,设计取决于人的创造
实际问题需要首先分析----抽象----建模,才能设计算法
算法的5个特征,设计时必须满足
基于计算机的问题求解和数学方法有很大不同
算法需要用工程化的方法表达
算法有很大的优化空间
结构化程序设计方法
自顶向下,逐步求精
单入口单出口
什么是好程序
可读性好
效率高
写好一个程序
三个基本结构构成(顺序,选择,循环待补充)
不用GOTO语句(原则不用,适当使用)
良好的程序设计代码特点:
正确性----正确实现功能
易读性----易于阅读和理解,便于调试、修改和扩充
健壮性----算法对交互和环境的反应或处理能力
高效率----所需时空都小
良好的程序设计风格
源程序文档化
数据说明标准化
语句规范化
输入输出格式化
总结
过程:问题---->程序---->指令序列---->结果
从问题到程序---->抽象、建模+程序设计
抽象、建模=可计算+计算复杂性
程序设计=数据结构+算法+方法
算法=问题分析+算法表达+程序实现
程序实现=语言+环境
C语言01的更多相关文章
- c语言01次作业--分支,顺序结构
C语言--第01次作业 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本章学习让我体会良多.首先,不得不承认自己是一个非常马虎的人.常见的问题就是输出格式上常因为没有与题目要 ...
- C语言 01 形参实参
之前的都在印象笔记记录 continue 结束本轮循环体,进入下一次循环.break 直接结束整个while循环 形参:定时函数时函数名后面中的参数实参:调用函数时传入的具体数据基本数据类型作为形参, ...
- C语言-01基础语法
1) 总结常见文件的拓展名 .c 是C语言源文件,在编写代码的时候创建 .o 是目标文件,在编译成功的时候产生 .out 是可执行文件,在链接成功的时候产生 2) 总结 ...
- 重学C语言---01概述
1.什么是C语言 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.计算机语言是从第二次世界大战以后,经历了戏剧性的发展过程.从机器语言到汇编语言和高级语言.C语言是与硬件 ...
- C语言 · 01背包
最近老碰到DP问题,没整过,在网上有不少资料,转载此篇自:http://blog.csdn.net/libin56842/article/details/9338841 有N件物品和一个容量为V的背包 ...
- c语言-01背包问题
01背包问题 问题:有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使价值总和最大. 分析: 这是最基础的背包问题,特点是:每种物品仅有一件,可以选 ...
- OC语言-01类和对象
// cc 文件名.m -framework Foundation 编译链接 #import <Foundation/Foundation.h> //枚举性别 typedef enum{ ...
- 算法实现c语言--01
打印九九乘法表 #include<stdio.h> #include<stdlib.h> int main() { , j = ; ; i <= ; i++) { ; j ...
- Django之模板语言(三)------>自定义filter
1.自定义filter: 1.在app01下面新建一个templatetags的python package包. 如果没有app01的话,可以通过命令行在manage中进行创建:python mana ...
随机推荐
- 可以用命令行控制eclipse断点增加删除、远程调试创建与启动的插件
java # 创建断点(支持条件断点) curl -X PUT -H "Content-Type:application/json" --data '{"language ...
- 【算法•日更•第四十二期】离散傅里叶变换(DFT)
▎前言 小编相当的菜,这篇博客难度稍高,所以有些可能不会带有证明,博客中更多的是定义. 我们将要学到的东西: 复数 暴力多项式乘法 DFT 当然,小编之前就已经写过一篇博客了,主要讲的就是基础多项式, ...
- Android PopupWindow显示之后所在的Activity结束的时候出现短暂黑屏问题
在当前Activity弹出PopuoWindow后,点击取消弹窗,然后结束当前Activity时会出现短暂黑屏现象.这是由于设置背景透明度时候造成的. //设置添加屏幕的背景透明度 public vo ...
- 虚拟化技术之kvm虚拟机创建工具qemu-kvm
在前边的博客中我们介绍了如何创建kvm虚拟机,以及一些常用的工具的介绍和使用,今天我们来了解下kvm原始工具qemu-kvm:为什么说qemu-kvm是一个原始的工具呢,如果你用kvm虚拟机,心细的你 ...
- [转]camera教程
camera教程 Lens一般由几片透镜组成透镜结构,按材质可分为塑胶透镜(plastic)或玻璃透镜(glass),玻璃镜片比树脂镜片贵.塑胶透镜其实是树脂镜片,透光率和感光性等光学指标比不上镀膜镜 ...
- 区块链入门到实战(32)之Solidity – 代码注释
Solidity 支持c风格和c++风格的注释. //之后到行尾的文本,都被看作注释,编译器忽略此内容 /* 与 */ 之间的文本被看作注释, 编译器忽略此内容 示例 注释示例. function g ...
- Nginx反向代理的使用
一.Nginx的基本命令 nginx:启动 nginx nginx -t :测试配置文件是否有语法错误 nginx -s reopen:重启Nginx nginx -s reload:重新加载Ngin ...
- Asp.Net Core Swagger 接口分组(支持接口一对多暴露)
开始之前,先介绍下swagger常用方法. services.AddSwaggerGen //添加swagger中间件 c.SwaggerDoc //配置swagger文档,也就是右上角的下拉 ...
- 用aop去解决事物问题(tx)记录学习之aop1.2
上一个文章我们了解了什么事aop,以及aop的使用方法,主要是把自己想要加入的通知(advice)加入到我们的方法里, 比如上一章我们说的事把myadvice类中的before方法织入到userser ...
- PJSIP 机器人
摘要: 最近再研究PJSIP,有一个需求,再适当的时候,需要给远程客户端放音,比如:播放一段广告.或者一段音乐.需要采用API来实现. 正文: 最近想用PJSIP做一个机器人,想法比较简单就是获取客户 ...