计协教程(1): 编程入门与C语言基础

对编程的理解:

“让计算机去帮忙完成一些事情”。

白话讲就是“计算机,你先要干什么,然后干什么,或者再重复做一些什么……最后得到什么并输出来”这样

功能上更具体一些:“使得数据变换一种形态”

给定一些从现实问题中抽象出来的数据,计算机在你的教唆下对这些数据处理,得出你需要的数据。在这里插入图片描述

编程就像是魔法

将编程比作是魔法是很合理的。
发动魔法需要“素材”——也就是编程需要数据,
发动魔法需要画法阵或者是念咒,也就是处理这些数据的功能性语句,编出来的程序。

目前最最初始阶段,大家不用太注重数据,因为水平的原因对一个好的数据,所谓魔法发动的优质素材,大家是没那么多评判能力的,而且,作为优秀的魔法师,即使是劣质的素材,他们也能做到通过神奇的咒语(所谓各种滤波算法)使得素材变得优质。这些进阶的概念大家以后再接触即可。

但要记住,编程始终是面向数据的。

所以这里我们先从咒语,也就是那些功能性的语句学起。

什么是源代码

在这里插入图片描述

编写C/C++语言、或是Java,我们编写的内容叫做“源代码”,
它不是能被计算机直接执行的,而需要被编译后成为二进制的序列,这个序列能被计算机硬件识别并执行。
后者是计算机组成原理/数字电路之类的内容,
中间的是开发语言的大佬帮忙搞得,
两者都不用我们管。我们好好学写对应语言的源代码就行。
但是要知道这个由代码到执行程序转变的概念。

什么是语句块和main入口语句块

程序是由一个个语句块构成的,
当执行一个语句块时,如果没有出现错误,会从前往后把语句依次全部执行一次。

{
1. ...
2. ...
...
}

C语言中由{}扩起一个语句块,并且由main()这个函数作为程序入口。
意思就是当执行我们这个源代码构建出来的程序时, main()后面的{}是第一个执行的语句块。
至于这个语句块之后会再调用到其它的语句块就是另外的事情了。

main(){
}

在这里插入图片描述
编译时会报此warning,就是说这个main函数没有返回值,因此计算机在运行这个程序,调用这个main方法时结果怎么样,所以一般会用 return 0返回0,表示程序正常运行。

int main(){
	...
    return 0;
}

语句块的构成

语句块是由语句构成的,可以分为两种类型:数据处理和逻辑处理

数据处理

包括创建和赋值
C语言中,创建语句格式是这样的
在这里插入图片描述
修饰符入门可以暂不考虑,参考 http://c.biancheng.net/view/377.html
数据类型参考 https://www.runoob.com/cprogramming/c-data-types.html 中,主要为整数、浮点数类型,还有类型转化的用法也需要掌握,其它涉及指针的可以暂时不管。主要是它在语言之间没有通用性
自定义变量名参考 https://www.runoob.com/cprogramming/c-basic-syntax.html中的标识符那一节,详细讲了标识符的起名规则
初始化,C语言中基本类型初始化可以直接=号
分号表示语句的结束,很好记。

例子如这样,就创建出一个名叫a的变量,初始化存放为10.0
在这里插入图片描述
赋值语句
等号=是C语言中的赋值,等号左边是叫左值右边叫右值,左值必须是变量。
在这里插入图片描述
在学赋值时顺带学习表达式
用各种运算符和括号可以组成一个表达式,https://www.runoob.com/cprogramming/c-operators.html,
其中=也可以所谓表达式的一员来理解,其值为左值被赋值后的值
a=10的值和5+5这两个表达式都是有值的,为5。
因此往往会有
在这里插入图片描述
这样意义不明的写法,让考虑结果是什么。其实只要按照优先级慢慢分析即可。

逻辑处理

逻辑处理语句是根据那些有意义的数据,不断调用执行各种其它语句块的语句
很难统一的讲格式,大体可以分为两种:

  1. 基本逻辑跳转语句
    比如if(){}else{},还有for( ; ; ){}循环语句while(){}等,他们让我们很方便地进行语句块地互相调用
  2. 方法调用跳转语句
    也就是所谓函数,当在语句块中调用一个函数时就会去对应的语句块。
    常见的printf()函数,这个你也许看不到它语句块在哪里,其实就在咱们#Include<>的头文件里 面。所以你看有的程序会#include好几个头文件,就是因为里面用了很多很多别人写好的函数。当然以后你们也会为了让每个文件里面代码量少一点而分出很多别的文件,那他们要使用对方时就#include一下对方就可以。
    当然你可以直接自定义自己的函数。

后者通过一句话就可以直接跳转到另一个完整的语句块,非常适合模块化编程,要好好利用

下面学什么:

洛谷是一个很棒的题库网站,从入门到成为算法大神的题目都有
入门可以参考这个页面的列表学各个基本的语句,进行程序设计的学习 https://www.luogu.com.cn/training/list
面向百度编程,利用书本和网络教程:https://www.runoob.com/cprogramming/c-decision.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值