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 ...
随机推荐
- 图论算法(二)最短路算法:Floyd算法!
最短路算法(一) 最短路算法有三种形态:Floyd算法,Shortset Path Fast Algorithm(SPFA)算法,Dijkstra算法. 我个人打算分三次把这三个算法介绍完. (毕竟写 ...
- 《Java从入门到失业》第一章:计算机基础知识(二):计算机组成及基本原理
1.2计算机组成及基本原理 1.2.1硬件组成 这里说的计算机主要指微型计算机,俗称电脑.一般我们见到的有台式机.笔记本等,另外智能手机.平板也算.有了一台计算机,我们就能做很多事情了,比如我在写这篇 ...
- 免费验证码接收网站&不停开小号方法
手机号注册:免费验证码接收网站 0.http://getfreesmsnumber.com/ 9个外国网站,访问后要快点点击链接,否则2秒会检测出adblocker 1.http://smsrecei ...
- java十进制二进制互转
1. 十进制转二进制 原理:给定的数循环除以2,直到商为0或者1为止.将每一步除的结果的余数记录下来,然后反过来就得到相应的二进制了. 比如8转二进制,第一次除以2等于4(余数0),第二次除以2等于2 ...
- gpio模拟i2c驱动
前段时间做项目,需要gpio模拟i2c通信,最后参考了一些资料,然后编写了一个程序.现在发出来,以免以后忘记,也为一些需要的朋友提供参考.不喜勿喷哈. /* 说明:该程序是基于atmel公司的sama ...
- dive:一款按层分析docker镜像的工具
原文链接:https://www.freebuf.com/sectool/191596.html 要分析Docker镜像,只需使用image tag/id/digest运行: dive <you ...
- python 计算文件md5值
md5是一种常见不可逆加密算法,使用简单,计算速度快,在很多场景下都会用到,比如:给用户上传的文件命名,数据库中保存的用户密码,下载文件后检验文件是否正确等.下面讲解在python中如何使用md5算法 ...
- iptables初步接触
0.iptables命令选项输入顺序:iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网 ...
- Ubuntu 20.04美化及QQ、微信安装
1.前言 电脑用了很多年了,安装的windows7,经常出现很卡的情况,于是今天索性重装了系统.既然重装系统,选择什么系统好呢,windows10系统的话,对于我这老旧本来说,可能真的是为难它了.刚好 ...
- jmeter http并发测试时报错
错误信息如下:jmeter Response code: Non HTTP response code: java.net.URISyntaxException 网上收了一大堆,都没法解决 我的用到了 ...