1.序

(1)程序设计分两种:

1.结构化设计(面向过程)——分解算法为模块,将算法的步骤分解为模块。

2.面向对象程序设计——主要是“类”与“对象”。

(2)进制的转换

1.二进制转十进制

整数部分与小数部分分开计算,整数部分“除2取余”倒排序;小数部分“乘2取整”正排序,出现循环的进行截断,取循环部分。

2.二进制转八进制和十六进制

三位二进制转成一位十进制数为一位八进制,四位二进制转一位十六进制。

2.变量与常量

关键字:int、float、unsigned、double等

标识符:abc、Abc、_bc、abc123等

  标识符命名原则:

  (1)由数字、字母和下划线组成

  (2)不能以数字开头,区分大小写

  (3)标识符要有意义

2.1变量定义

数据类型 变量名1,变量名2,...,变量名n;

变量的写入:输入

cin>>ctemp;    //输入
ctemp = 36; //赋值
int x = 10,y; //初始化

变量的读出:

ftemp = ctemp * 1.8 + ;   //自动读取
cout<<ftemp; //输出

2.2常量

字面常量:实数、负数、整数,一般默认为十进制数,后缀形式有长整形L、无符号u、浮点型f等

符号常量:

#define PI 3.14

字符串常量:双引号括起来,如 “CHINA”

2.3常变量

const 数据类型 变量名=初始值;
const int x=;

不能修改,不能赋值,只能读取。

3.算术运算

3.1算术运算符:

加(+)、减(-)、乘(*)、除(/)

数据类型转换:

(1)强制转换

short()            //转成短整型
float() //结果:1.8 单精度,4字节
double(1.8) //双精度,8字节
short() //结果:-32767(溢出)
int(1.8) //结果:1 丢失小数位

(2)自动转换

char    short    int    long    float    double

低                      高

 /  =
5.0 / = 2.5

取余:%  10 % 6 = 4

自增/减:++、--

x++:先x,后+1

++x:先+1,后运算,例

int x = , y;
y = (x++) * ; //结果为20
y = (++x) * ; //结果为22

3.2位运算

位反运算符:~  按位取反,0转1,1转0

位与运算符:&  s & 0x2  结果为0000 0010时倒数第二位是1,结果为0000 0000时倒数第二位是0,用于检测倒数第二位的状态,0x2位掩码

位或运算符:|  一真即为真

位异或运算:^  非

左移运算符:<<  s<<2   左移两位,高2位移除,低2位补0

右移运算符:>>  低位移除,高位补符号位

3.3赋值运算

a = ;b =;c = ;        等价于       a = b = c = ;
y = x; x = x + ; 等价于 y = x++;
x = x + ; y = x; 等价于 y = ++x;

复合赋值运算符:

+=    -=    *=    /=    %=    |=    ^=    <<=    >>=
x += ; 等价于 x = x+;

4数据的输入与输出

C++中为输入/输出流,键盘(cin)、显示器(cout),C++要输入输出需要导入外部程序

#include <iostream>
using namespace std;

cin输入流,标准输入,可同时输入多个数据,用空格或Tab键隔开,cin>>x>>y;

cout输出流,称为标准输出,

int x=;
cout<<x; //
cout<<x<<x * x; //525,中间无间隔

5访问变量内存单元

直接访问:变量名

间接访问:引用和指针

引用:

引用类型 & 引用变量名 = 被引用变量名;
int x; int & xa = x;

int x; & xa = x;
int x,y, & xa = x;
例 int x = ,y = ;
int & xa = x;

指针:内存地址  取地址运算符:&   取变量内存地址的首地址。

& 变量名
int x = ;
cout <<&x; //输出变量x的地址,一个8位的十六进制数,4个字节

通过地址访问某个变量x,分3步:

(1)定义一个专门保存地址的变量(假设为P)称指针变量

(2)取出变量x的地址,赋给p

(3)通过指针变量p所保存的地址访问变量x的内存单元

注:指针的指向类型不能改变,整型(int)指针只能指向整型,指针变量也是一个变量,也有其内存单元。

定义指针变量

指向类型 *指针变量名;
int x, y;
int *p; //定义指针变量p,未指向任何变量
p = &x; //取x的地址赋给指针变量p,则p指向x int *p = &x;

指针运算符:*

* 指针变量名
*p
int x;
int *p = &x;
*p = ;
cout<<*p; //结果:10
cout<<p; //显示p中保存的地址即8位十六进制数

注:*p 相当于x的另一个名字或标签

void类型

int x = ;
double y = 10.5;
void *p;
cout<<*((int*)p); //显示:10,需要强制转换为int p = &y;
cout<<*((double*)p; //显示:10.5,转为double

指向常变量的指针

const int x = ;
const int * p;
p = &x;
cout<< *p; //正确
*p = //错误

定义指针类型的常变量

int x =, y = ;
int *const p = &x; //初始化,以后不能修改

C++数值计算的更多相关文章

  1. Linux 中的数值计算和符号计算

    不知道经常需要做科学计算的朋友们有没有这样的好奇:在 Linux 系统下使用什么工具呢?说到科学计算,首先想到的肯定是 Matlab,如果再说到符号计算,那就非 Mathematica 不可了.可惜, ...

  2. 复化梯形求积分——用Python进行数值计算

    用程序来求积分的方法有很多,这篇文章主要是有关牛顿-科特斯公式. 学过插值算法的同学最容易想到的就是用插值函数代替被积分函数来求积分,但实际上在大部分场景下这是行不通的. 插值函数一般是一个不超过n次 ...

  3. HDU 4465 数值计算,避免溢出

    数学,数值计算,求期望 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4465题目描述:有两个盒子,每个中有n个糖果,(n<10^5)每次任选一 ...

  4. JS(截取字符串,显示当前系统时间yyyy-MM-dd,从文本框得到的数值计算)

    截取字符串: var str = "1234567890"; var a = str.substring(0,8);    //==str.substring(8)---结果:12 ...

  5. Net数值计算MathNet.Numerics类库

    一.Net自带的数值计算:System.Numerics 1.大整数BitInteger 方法:除数和余数.最大公约数 2.复数Complex 属性:实部.虚部.量值.相位 方法:共轭.倒数 二.Ma ...

  6. js数值计算

    js在小数数值计算时会出现误差,比如0.19+15.02=15.20999999999999,出现此问题的原因,百度上有,为了避免误差产生可以这样做:(0.19*100+15.02*100)/100.

  7. C#环境下的数值计算库:MathNet

    下面用一个简单的例子来说明MathNet的使用方法: 1. 进入MathNet官网找到数值计算库Math.NET Iridium(Numerics)并下载: 2. 将下载的文件解压缩,在目录下的Bin ...

  8. python与数值计算环境搭建

    数值计算的编程的软件很多种,也见过一些编程绘图软件的对比. 利用Python进行数值计算,需要用到numpy(矩阵) ,scipy(公式符号), matplotlib(绘图)这些工具包. 1.Linu ...

  9. python数值计算模块NumPy scipy安装

    NumPy为Python提供了快速的多维数组处理的能力,而SciPy则在NumPy基础上添加了众多的科学计算所需的各种工具包,有了这两个库,Python就有几乎和Matlab一样的处理数据和计算的能力 ...

  10. 使用Intel编译器获得一致的浮点数值计算结果

    使用Intel编译器获得一致的浮点数值计算结果大多数十进制的浮点数, 用二进制表示时不是完全一致的; 与此同时, 大多数与浮点数值相关的计算结果, 存在着固有的不确定性.通常, 编写浮点计算应用软件希 ...

随机推荐

  1. angular 全局常用指令

    1.全局支持 enter快捷键触发事件 // 全局指令 app.directive('ngEnter', ['$window',"$timeout", ($window,$time ...

  2. UPC 2019年第二阶段我要变强个人训练赛第六场

    传送门 A.上学路线 题目描述 小D从家到学校的道路结构是这样的:由n条东西走向和m条南北走向的道路构成了一个n*m的网格,每条道路都是单向通行的(只能从北向南,从西向东走). 已知小D的家在网格的左 ...

  3. P1088 上台阶

    题目描述 楼梯有 \(n(1 \le n \le 50)\) 阶台阶,上楼时可以一步上 \(1\) 阶,也可以一步上 \(2\) 阶,也可以一步上 \(3\) 阶,编程计算共有多少种不同的走法. 输入 ...

  4. js实现bind

    Function.prototype.bind=function(ctx,...lastArgs){ let self=this return (...laterArgs)=>self.appl ...

  5. 拒绝FileNotFoundException!总结了这几个读取jar包外配置文件的知识点

    前言 相信很多人遇到过这个问题:本地运行的好好的程序,怎么部署到线上就报找不到配置呢? 初识getResource 案例一 FieldMapConfig.class.getResource(" ...

  6. 013 CephFS文件系统

    一.Ceph文件系统简介 CephFS提供兼容POSIX的文件系统,将其数据和与那数据作为对象那个存储在Ceph中 CephFS依靠MDS节点来协调RADOS集群的访问 元数据服务器 MDS管理元数据 ...

  7. 【他山之石】jenkins忘记初始化密码解决办法

    没有太好的方式,网上有的是这样子的,找到 /var/lib/jenkins/users/username/config.xml, 修改为一个已知的 hash 值 #jbcrypt:$2a$10$Dda ...

  8. Spring Boot (5) 整合 RabbitMQ

    一.前言 RabbitMQ是实现了AMQP(高级消息队列协议)的开源消息中间件,RabbitMQ服务器是用Erlang(面向并发的编程语言)编写的. RabbitMQ官网下载地址:https://ww ...

  9. $cometoj\#4\ D\ $求和 不是$dp$

    \(Des\) \(Sol\) \(upd:\)以下两段是错误做法,但我不想删掉\(.jpg\) -----------------------以下是错误部分--------------------- ...

  10. 1081 检查密码 (15分)C语言

    本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能.该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母.数字和小数点 .,还必须既有字母也有数字. 输入格式: 输入第一行 ...