1——从IOP思想开始
文章目录
- 1 原则1——遵循 IPO思想
- 2 原则2——友好的UI
- 3 理解为什么要这么写输入和输出语句
1 原则1——遵循 IPO思想
IPO,即:Input - Process - Outpu
一个再简单的问题,都需要先分析它的输入、处理和输出。
输入方式: 键盘输入、文件输入、扫描仪输入…
处理: 那就是具体问题具体分析,就是我们说的算法罗
输出:显示器输出、文件输出、文本输出、图形输出…
既然是写给C语言的初学者,那么,我们就从最简单的键盘输入、显示器输出着手。
2 原则2——友好的UI
即:输入和输出语句前后,要有必要的输入输出提醒语句。
3 理解为什么要这么写输入和输出语句
先看下面的程序:
#include <stdio.h> //standard input output head头文件
int main()
{printf("100 - 5 = 95\n");return 0;
}
说明: printf引号下面,就是要输出的内容
好处:我们写第一个程序就可以运行了,printf语句用起来很简单;
坏处: 95不是机器算的,是我们自己算的。
如果换成987*54 ,我们还得去找个计算器或者打个草稿。
改进一下:
#include <stdio.h> //standard input output head头文件
int main()
{printf("987 * 54 = %d\n",987*54); //格式控制符 return 0;
}
说明: printf引号下面的内容,基本都是原样输出的,你写了啥,就输出啥。
格式控制符:按照我指定的格式,去解析输出列表里的值并输出。
——所以,要输出变量/表达式的值,用格式控制符。
缺点:目前这个程序的坏处:只能算987*54
改进2:
#include <stdio.h> //standard input output head头文件
int main()
{int a,b;a = 987; //引入变量b = 54;printf("%d * %d = %d\n",a,b,a*b); return 0;
}
说明:于是我们引入了变量,也就是说,用变量来表示你要计算的数。
坏处:要从98754 换成 78945, 需要程序员去改上面这个程序。
改进3:
#include <stdio.h> //standard input output head头文件
int main()
{int a,b;scanf("%d",&a); //从键盘输入变量的值scanf("%d",&b);printf("%d * %d = %d\n",a,b,a*b); //计算并输出O return 0;
}
说明:运行这个程序,可以从键盘动态输入a和b的值,那么a和b的值就可以由用户决定了。
坏处:不懂程序的人,一运行程序就是个黑屏幕,不知道要干啥。
改进4:
#include <stdio.h> //standard input output head头文件
int main()
{int a,b;printf("input a:\n"); //提示输入变量的语句scanf("%d",&a); //输入Iprintf("input b:\n");scanf("%d",&b);printf("%d * %d = %d\n",a,b,a*b); //计算并输出O return 0;
}
说明:给输入语句增加了提示语句,便于和运行这个程序的用户进行交互。因此,输入和输出尽量应考虑友好的UI(User Interface)。
坏处:友好的UI是方便使用程序的用户,但良好的程序设计风格,是方便和你搭档的程序员,能看懂你的程序,写程序的人应遵循:
1)尽量让每句代码的功能单一;
2)按IPO组织程序;
3)变量名尽量做到见名知意;
4)尽可能给你的程序写注释。
改进5:
#include <stdio.h> //standard input output head头文件
int main()
{int a,b,mul;printf("input a:\n"); //提示输入变量的语句scanf("%d",&a); //I:输入printf("input b:\n");scanf("%d",&b);mul = a*b; //P:处理printf("%d * %d = %d\n",a,b,mul); /O:输出return 0;
}
小结: 输入输出语句的使用简单,但是语法多。而很多初学者的关注点都放到了语法上。 但是,学习程序,我想更多地是去理解,程序为什么这么写。然后再写程序的过程中,去熟悉语法。
1——从IOP思想开始相关推荐
- 【JAVAEE框架】浅谈 Spring 框架的两大核心思想 AOP 与 IOP
哈喽~大家好呀,这篇来看看Spring 框架的两大核心思想.
- Unity-面向接口编程(IOP)
Unity框架一个比较重要的一个技术:面向接口编程 接口原理:首先接口在表面上是由几个没有主体代码的方法定义组成的集合体,有唯一的名称,可以被类或其他接口所实现(或者也可以说继承).接口是一组规则的集 ...
- 面向过程(POP)、面向对象(OOP)、面向接口(IOP)、面向切面(AOP)
面向过程POP 是一种以过程为中心的编程思想.这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个 ...
- POP、OOP、IOP、AOP
面向过程(POP):典型的是C/C++的结构体,结构体里只有变量,没有处理变量的方法,需要专门编写处理变量的方法. 面向对象(OOP):ArrayList list=new ArrayList();坏 ...
- 如何在 IOP 期刊上发表论文
如何在 IOP 期刊上发表论文 (英文稿由 Natasha Leeper 撰稿,吕铭方 编译.完稿) 准备发表你的研究 在著名的审稿期刊上发表你的研究是你工作的一个重要组成部分,它将保证你的事业发展, ...
- 算法设计思想(5)— 递归法
1. 递归概念 递归 Recursion是指在函数的定义中使用函数自身的方法,直观上来看,就是某个函数自己调用自己. 递归有两层含义: 递归问题必须可以分解为若干个规模较小.与原问题形式相同的子问 ...
- 卷积神经网络之卷积计算、作用与思想 深度学习
博客:blog.shinelee.me | 博客园 | CSDN 卷积运算与相关运算 在计算机视觉领域,卷积核.滤波器通常为较小尺寸的矩阵,比如3×33×3.从这个角度看,多层卷积是在进行逐层映射,整 ...
- 分治算法的设计思想(二分检索、二分归并排序)
分治策略思想: 将原问题划分或者归结为规模较小的子问题. 递归或迭代求解每一个问题. 将子问题的解综合得到原问题的解. 性质: 子问题与原问题具有相同的性质. 子问题的求解彼此独立. 划分时子问题的规 ...
- AI框架精要:设计思想
AI框架精要:设计思想 本文主要介绍飞桨paddle平台的底层设计思想,可以帮助用户理解飞桨paddle框架的运作过程,以便于在实际业务需求中,更好的完成模型代码编写与调试及飞桨paddle框架的二次 ...
最新文章
- 中国电子信息工程科技发展十四大趋势(2021)
- IOS网址解析-demo
- vim 语法高亮显示
- CPU亲和性的使用与机制--含Xen中VCPU和PCPU的綁定方法
- 《Linux内核设计与实现》读书笔记(三)- Linux的进程
- OS_CORE.C(7)
- java中filereader读取文件_java – 如何使用FileReader逐行读取
- PCB中英对照一、 综合词汇
- 如何查询硬盘序列号,百度的答案全是错的
- px4源码----位置估算(position_estimator_inav_params.h)
- Bugku CTF 每日一题 想蹭网先解开密码
- 关于嵌入式软件系统测试策略和方案设计详解
- 软件构造第一次实验感想总结
- 学习记录-FDD大规模MIMO系统的稀疏信道估计技术研究
- 计算机高级筛选操作步骤,【EXCLE表格中根据特定的条件进行高级筛选】计算机excel高级筛选步骤...
- #51CTO学院四周年#一路前行,一路陪伴
- 语音识别(ASR)论文优选:端到端ASR综述Recent Advances in End-to-End Automatic Speech Recognition
- 【养生之道】男人养生的秘诀
- Go:sqrt平方根计算(附完整源码)
- 用php实现加减乘除计算器,利用php怎么编写一个加减乘除计算器
热门文章
- AS3 加解密的隐藏常用方式分析
- 如何给表格中的关键字加中括号,双引号?
- 给我一个西门子plc采集大数据存储与分析方案
- linux的nslookup命令,Linux nslookup命令
- ES6 语法糖(一)
- CentOS7安装部署Slurm集群详细步骤及常见的问题.
- eclipse的使用简介
- 万能遥控程序c语言,单片机解码万能红外遥控器的C51程序
- Do Deep Neural Networks Learn Facial Action Units When Doing Expression Recognition?阅读笔记
- CAN通信标准帧和扩展帧介绍