Chapter 3 C++程序设计初步(上篇)

目的:大概了解C++程序设计的知识

💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗

3.1基于过程的程序设计和算法

1.C++:既可以基于过程的程序设计(也称为“过程化的程序设计”),又可以用进行面向对象的程序设计

a:基于过程的程序设计:分成小部分,分别编写,然后组合

b:基于面向对象的程序设计:分析实体的特点,分层分类进行分类进行剖析,然后编程

2.基于过程的程序包括两个部分:数据的描述+操作描述

a:数据结构(data structure):在程序中指定数据的类型和数据的组织形式

     数据结构的类型:顺序结构、选择结构、循环结构

b:算法(algorithm):是处理问题的一系列步骤,算法必须具体指地指出在执行时的每一步应当怎样去做。

c:瑞士计算机科学家尼古拉斯·沃思:算法+数据结构=程序

3.算法概念及其分类

a:理解:为解决一个特定问题而采取的有限操作方法和步骤就是算法

b:算法分类:数值算法+非数值算法

      数值算法:求数值的解

      非数值算法:应用十分广泛,最常见为事务管理领域(比数值算法更常见,难度更大)

c:算法重要性:无论是基于过程的过程设计还是面向对象的程序设计,都离不开算法设计,例如,一个类里面既有对数据的描述,也有对操作的描述,数据操作的对象,操作的目的是对数据进行加工处理

4.算法的表示

a:自然语言:易理解,但易产生歧义,一般不用

b:流程图:形象直观,但是修改不方便,对比较大或麻烦的程序会使工作量增大

c:伪代码:介于自然语言和计算机语言之间的文字和符号描述算法,易理解,易修改,工作量也不大

d:用计算机语言描述算法:就是计算机程序了

💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗

3.2 C++的程序结构和C++语句

1.一个程序包含一个或多个程序单位,每个程序单位构成一个程序文件,每一个程序单位=预处理指令+全局声明+函数

a:预处理指令:例如#include或者#define

b:全局声明:在函数外对数据类型、函数以及变量的声明和定义

c:函数:包括函数首部和函数体,在函数体中可以包含声明语句和执行语句

#include <iostream>//预处理指令和库函数
using namespace std;//在函数外的全局声明
int m=3;//在函数外的全局声明,为全局变量
int main()//函数第一句话为函数首部
{
  int add=0,b=2;//函数内的声明,并初始化,局部变量
  add=b+m;//求和功能的执行语句
  cout<<add<<endl;//输出功能的执行语句
  return 0;//执行语句
}

补充:

a:全局变量的有效范围:从该行起到本程序单位结束

b:局部变量的有效范围:从该行起到函数结束

c:最小的独立单位是:语句(只有产生实际操作的才称为语句),一般用分号结束

2.语句的分类:声明语句+执行语句+空语句+复合语句

a:声明语句:C语言中不认为对变量的定义是语句,并且要在开头定义完所有变量,但C++认为是语句,并不用从开头就要定义完所有变量

b:空语句:只有一个分号,他什么都不做,但有时会用来作为被转向点,或循环语句中的循环体(循环体为空语句时,也表示什么都不做,for有时会遇到)

c:复合语句:用{}把一些语句括起来组成复合语句


#include <iostream>//预处理指令和库函数
using namespace std;//在函数外的全局声明
int m=3;//在函数外的全局声明,为全局变量
int main()//函数第一句话为函数首部
{
    int add=0,b=0;//函数内的声明,并初始化,局部变量
    cin>>b;
    if(b<0)
    {
        cout<<"error"<<endl;
    }
    else
    {
        add=b+m;//求和功能的执行语句
        cout<<add<<endl;//输出功能的执行语句
    }
    return 0;//执行语句
}


b:执行语句:控制语句+函数和流对象调用语句+表达式语句

(1)控制语句的定义:完成一定的控制功能

(2)9种控制语句

条件选择语句:if()……else……

循环语句:for()……   、while()……、do……while()

结束本次循环语句:continue

终止执行switch或循环语句(不能终止if语句):break

多分支选择语句:switch

转向语句:goto

从函数返回语句:return

注意⚠️:a:感兴趣的朋友可以写一个多重循环,看看continue,break,return的区别

               b:()表示里面是判断语句          ……表示内嵌语句

(3)函数和流对象调用语句:由一次函数调用加一个分号构成一个语句

(4)表达式语句:有一个表达式加一个分号组成,例如赋值表达式i=1

注意⚠️:“i=1”是表达式 “i=1;”是一个表达式语句,所以是语句的话千万别忘了分号

💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗

3.3赋值操作

1.是通过赋值运算符(=)所实现的,顺序是右边的值赋给左值

2.一定要区分开“==”与“=”的不同,特别是写if语句判断题条件时,一定要注意,极易错

💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗

3.4C++的输入与输出

1.输入与输出并不是C++语言的正式成分,其实无论是C语言还是C++都没有专门为输入输出提供语句结构,例如:C语言中是利用调用scanf函数和printf函数实现的,C++则是调用输入输出流库中的流对象实现输入(cin)输出(cout)的,是输入输出按照“流”的方式实现

2.C++:cout(输出流对象名)与“<<(流插入运算符)”搭配为输出语句
              cin(输出流对象名)与“>>(流提取运算符)”搭配为输入语句

注意⚠️:这就要求各位朋友写代码时要输入库函数写出来“#include<iostream>”

3.格式:

cout<<表达式/变量1<<表达式/变量2<<…<<表达式/变量n;

cin>>表达式/变量1>>表达式/变量2>>…>>表达式/变量n;

注意⚠️:各位朋友一定要清楚不是输入或输出一个就实现一个,而是会把它们暂时储存到缓冲区,然后识别到cout语句中的endl('\n')或缓冲区已满再来整体实现,并清楚缓冲区

这有些错的示范,请各位朋友规避掉这些错误❌

//错误示范❌❌❌❌❌❌❌❌❌❌❌❌
cout<<a,b,c;//不能一次性插入多项
cout<< Hi C++!<<endl;//想输出一个语句,但是没有你引号
cout<<"答案是:"<<endl;//整体是没错的,但是有时候想输出一个变量的答案时忘记输出是那个变量的值,应该是cout<<"答案是:"<<a<<endl;

//❌❌❌❌❌❌❌❌❌❌❌❌❌❌❌❌❌❌

4.cin语句会跳过空格字符,回车行字符,所以我们想解决不能跳过空格字符,回车行字符,要用getchar和putchar

5.当输出时想要一些特别的要求时,那我们就要用到标准输入输出流的控制符(图片来源于网络)

补充:a:基数可以理解为进制

           b:头文件一定要加iomanip 

double a=33.1415926
cout<<a;//默认精度为6,则输出33.1415
cout<<setprecision(3)<<a;//输出33.1
cout<<setprecision(6)<<a;//一共有六位,输出33.1415
cout<<setiosflags(ios::fixed)<<setprecision(7)<<a;//小数点后一定有7位,输出33.1415926
cout<<setiosflags(ios::scientific)<<a;//指数形式输出3.31415926e+01
cout<<setiosflags(ios::scientific)<<setprecision(4)<<a;//输出3.3141+e01
//指数形式(scientific)与固定(fixed)搭配时,setprecision(n)强调的是小数点后面全部位数个数
//只有setprecision(n)时,n强调的是所有的位数

6.putchar函数和getchar函数,不会跳过空格和回车符(与cin的区别)

a:putchar函数:字符输出函数,输出的是字符

格式:putchar(n);有参数,参数可以是表达式

b:getchar函数:字符输入函数,输入的是字符

格式:getchar();无参数

7.关系运算

a:关系运算符(图片来自网络)

补充:

a:这里面还少了“=”

b:“==”与“!=”的优先级是相等,但优先级都小于其他符号的优先级

c:优先级比较:赋值运算符<关系运算符<算数运算符

d:格式:表达式 运算符 表达式

8.逻辑运算

a.逻辑常量:只有两个false(假)和true(真)

编译系统会将false处理为0,true处理为1,所以输出是0或1,而不是字符串false或true

所以0为假,非0为真

b:逻辑变量:要用bool定义,也叫布尔变量

c:逻辑运算符(图片来自网络)

补充:

a:优先级:赋值运算符<&&和||<关系运算符<算数运算符<!(!非最高)

b:格式:表达式 逻辑运算符 表达式

共同学习,欢迎指正!

  • 28
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值