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 ...
随机推荐
- SQLserver 查询某个表的字段及字段属性
SELECT C.name as [字段名],T.name as [字段类型] ,convert(bit,C.IsNullable) as [可否为空] ,convert(bit,case when ...
- idea提升效率的插件
这篇文章用于记录idea插件.多分类记录确实可以提升效率. 1. FindBugs 虽说Idea本身提供的代码检查工具已经很强大了,但Idea提供的更多是规范性的检查,如果需要深入地检查异常,可以使用 ...
- ajax、反向ajax、jsonp详解
ajax详解 什么是ajax 其实ajax已经属于老技术了,现在几乎没人不会用了,在这里主要是把底层的东西给大家分享一下,以备应对装逼的面试官. ajax即“Asynchronous Javascri ...
- 手把手教你使用VUE+SpringMVC+Spring+Mybatis+Maven构建属于你自己的电商系统之vue后台前端框架搭建——猿实战01
猿实战是一个原创系列文章,通过实战的方式,采用前后端分离的技术结合SpringMVC Spring Mybatis,手把手教你撸一个完整的电商系统,跟着教程走下来,变身猿人找到工作不是 ...
- magento 1.9 with nginx frontend and REST API 404
location /api { rewrite ^/api/rest /api.php?type=rest last; rewrite ^/api/v2_soap /api.php?type=v2_s ...
- nova 云主机 evacuate 简单分析
原文链接:http://www.ishenping.com/ArtInfo/3318250.html #故障节点compute=down nova host-evacuate ostack245.bj ...
- 点击按钮出现时间javascrip代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- IdentityServer4中ResourceOwnerPassword模式获取accecc_token,并使用refresh_token刷新accecc_token
一.IS4服务端配置 1.配置Client new Client { ClientId = "xamarin", ClientSecrets = { new Secret(&quo ...
- vue再学习
day01 Vue 是什么? Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架 vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合 使用Vu ...
- Promise对象入门
简介 promise对象可以获取异步操作的消息,提供统一的API,各个异步操作都可以用同样的方法进行处理. promise对象不受外界影响,其有三种状态:pending(进行中).fulfilled( ...