DEV C++基础教程之函数
DEVC++教程 第六章函数 第22课:函数㈠ 前面我们曾经学习了程序设计中的三种基本控制结构(顺序、分支、循环)。用它们可以组成任何程序。但在应用中,还经常用到子程序结构。 通常,在程序设计中,我们会发现一些程序段在程序的不同地方反复出现,此时可以将这些程序段作为相对独立的整体,用一个标识符给它起一个名字,凡是程序中出现该程序段的地方,只要简单地写上其标识符即可。这样的程序段,我们称之为子程序。 子程序的使用不仅缩短了程序,节省了内存空间及减少了程序的编译时间,而且有利于结构化程序设计。因为一个复杂的问题总可将其分解成若干个子问题来解决,如果子问题依然很复杂,还可以将它继续分解,直到每个子问题都是一个具有独立任务的模块。这样编制的程序结构清晰,逻辑关系明确,无论是编写、阅读、调试还是修改,都会带来极大的好处。 在一个程序中可以只有主程序而没有子程序(本章以前都是如此),但不能没有主程序,也就是说不能单独执行子程序。 在此之前,我们曾经介绍并使用了C++提供的各种标准函数,如abs(),sqrt()等等,这些系统提供的函数为我们编写程序提供了很大的方便。比如:求sin(1)+ sin(2)+...+sin(100)的值。但这些函数只是常用的基本函数,编程时经常需要自定义一些函数。 一、函数的概念 函数是一种对应关系的描述,即确定了函数自变量到函数值之间的对应关系。与函数相关的概念如下。 ⑴自变量:函数计算时使用的数据,自变量的取值范围称为函数的定义域。在程序设计中,函数的自变量称为参数,定义域由参数的类型决定。 ⑵函数值:函数的计算结果,它的取值范围称为值域。在程序设计中函数值称为函数返回值,返回值的类型称为函数类型。 ⑶表达式:数学中函数的计算过程由表达式来说明,在程序设计中,一个
STM8L051低功耗模式实现说明文档
STM8L051低功耗模式测试文档 STM8L051的五种低功耗模式wait ,low power run mode,low power wait mode,Ative-Halt mode,Halt mode。 1、WAIT mode 在等待模式,CPU的时钟是停止的,被选择的外设继续运行。W AIT mode 分为两种方式:WFE,WFI。WFE是等待事件发生,才从等待模式中唤醒。WFI是等待中断发生,才从等待模式中唤醒。 2、low power run mode 在低功耗运行模式下,CPU和被选择的外设在工作,程序执行在LSI或者LSE下,从RAM 中执行程序,Flash和EEPROM都要停止运行。电压被配置成Ultra Low Power模式。进入此模式可以通过软件配置,退出此模式可以软件配置或者是复位。 3、low power wait mode 这种模式进入是在low power run mode下,执行wfe。在此模式下CPU时钟会被停止,其他的外设运行情况和low power run mode类似。在此模式下可以被内部或外部事件、中断和复位唤醒。当被事件唤醒后,系统恢复到low power run mode。 4、Active-Halt mode 在此模式下,除了RTC外,CPU和其他外设的时钟被停止。系统唤醒是通过RTC中断、外部中断或是复位。 5、Halt mode 在此模式下,CPU和外设的时钟都被停止。系统唤醒是通过外部中断或复位。关闭内部的参考电压可以进一步降低功耗。通过配置ULP位和FWU位,也可以6us的快速唤醒,不用等待内部的参考电压启动。 一、各个低功耗模式的代码实现 1、WAIT mode 等待模式分为两种:WFI和WFE。 1.1 WFI mode 当执行“wfi”语句时,系统就进入WFI模式,当中断发生时,CPU被从WFI模式唤醒,执行中断服务程序和继续向下执行程序。 通过置位CFG_GCR的AL位,使主程序服务完中断服务程序后,重新返回到WFI 模式。 程序如下: void Mcuwfi() { PWR_UltraLowPowerCmd(ENABLE); //开启电源的低功耗模式 CLK_HSEConfig(CLK_HSE_OFF); //关闭HSE时钟(16MHz) #ifdef USE_LSE CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSE);
math 函数大全
一、运算符及特殊符号 Line1; 执行Line,不显示结果 Line1,line2 顺次执行Line1,2,并显示结果?name 关于系统变量name的信息 ??name 关于系统变量name的全部信息 !command 执行Dos命令 n! N的阶乘 !!filename 显示文件内容 < Expr>> filename 打开文件写 Expr>>>filename 打开文件从文件末写 () 结合率 [] 函数 {} 一个表 <*Math Fun*> 在c语言中使用math的函数(*Note*) 程序的注释 #n 第n个参数 ## 所有参数 rule& 把rule作用于后面的式子 % 前一次的输出 %% 倒数第二次的输出
%n 第n个输出 var::note 变量var的注释 "Astring " 字符串 Context ` 上下文 a+b 加 a-b 减 a*b或a b 乘 a/b 除 a^b 乘方 base^^num 以base为进位的数 lhs&&rhs 且 lhs||rhs 或 !lha 非 ++,-- 自加1,自减1 +=,-=,*=,/= 同C语言 >,<,>=,<=,==,!= 逻辑判断(同c) lhs=rhs 立即赋值 lhs:=rhs 建立动态赋值 lhs:>rhs 建立替换规则 lhs->rhs 建立替换规则 expr//funname 相当于filename[expr] expr/.rule 将规则rule应用于expr expr//.rule 将规则rule不断应用于expr知道不变为止
param_ 名为param的一个任意表达式(形式变量) param__ 名为param的任意多个任意表达式(形式变量) ————————————————————————————————————— 二、系统常数 Pi 3.1415....的无限精度数值 E 2.17828...的无限精度数值 Catalan 0.915966..卡塔兰常数 EulerGamma 0.5772....高斯常数 GoldenRatio 1.61803...黄金分割数 Degree Pi/180角度弧度换算 I 复数单位 Infinity 无穷大 -Infinity 负无穷大 ComplexInfinity 复无穷大 Indeterminate 不定式 ————————————————————————————————————— 三、代数计算 Expand[expr] 展开表达式 Factor[expr] 展开表达式 Simplify[expr] 化简表达式
C++标准库中函数对应的头文件
C++ 标准库中函数所对应的头文件 名字头文件 ========================================== abort accumulate allocator auto_ptr back_inserter bad_alloc bad_cast bind2nd bitset boolalpha cerr cin copy count count_if cout dec deque endl ends equal_range exception fill fill_n find find_end
find_first_of fixed flush for_each front_inserter internal ios_base isalpha islower ispunct isspace istream istream_iterator istringstream isupper left less_equal list logic_error lower_bound make_pair map
math中函数以及其他一些库函数
函数以及其他一些库函数 函数名称: abs 函数原型: int abs(int x); 函数功能: 求整数x的绝对值 函数返回: 计算结果 参数说明: 所属文件: <>,<> 使用范例: #include <> #include <> int main() { int number=-1234; printf("number: %d absolute value: %d",number,abs(number)); return 0; } @函数名称: fabs 函数原型: double fabs(double x); 函数功能: 求x的绝对值. 函数返回: 计算结果 参数说明: 所属文件: <> 使用范例: #include <> #include <> int main() { float number=; printf("number: %f absolute value: %f",number,fabs(number)); return 0; } @函数名称: cabs 函数原型: double cabs(struct complex znum) 函数功能: 求复数的绝对值 函数返回: 复数的绝对值 参数说明: zuum为用结构struct complex表示的复数,定义如下:struct complex{ double m; double n; }
所属文件: <> #include <> #include <> int main() { struct complex z; double val; =; =; val=cabs(z); printf("The absolute value of %.2lfi %.2lfj is %.2lf",,,val); return 0; } @函数名称: ceil 函数原型: double ceil(double num) 函数功能: 得到不小于num的最小整数 函数返回: 用双精度表示的最小整数 参数说明: num-实数 所属文件: <> #include <> #include <> int main() { double number=; double down,up; down=floor(number); up=ceil(number); printf("original number %",number); printf("number rounded down %",down); printf("number rounded up %",up); return 0; } @函数名称: sin 函数原型: double sin(double x); 函数功能: 计算sinx的值.正弦函数 函数返回: 计算结果 参数说明: 单位为弧度 所属文件: <> 使用范例:
math库函数中文对照表
cmath是c++语言中的库函数,其中的c表示函数是来自c标准库的函数,math为数学常用库函数。cmath 库函数列表: using ::abs; //绝对值 using ::acos; //反余弦 using ::acosf; //反余弦 using ::acosl; //反余弦 using ::asin; //反正弦 using ::asinf; //反正弦 using ::asinl; //反正弦 using ::atan; //反正切 using ::atan2; //y/x的反正切 using ::atan2f; //y/x的反正切 using ::atan2l; //y/x的反正切 using ::atanf; //反正切 using ::atanl; //反正切 using ::ceil; //上取整 using ::ceilf; //上取整 using ::ceill; //上取整 using ::cos; //余弦 using ::cosf; //余弦 using ::cosh; //双曲余弦 using ::coshf; //双曲余弦 using ::coshl; //双曲余弦 using ::cosl; //余弦 using ::exp; //指数值 using ::expf; //指数值 using ::expl; //指数值 using ::fabs; //绝对值 using ::fabsf; //绝对值 using ::fabsl; //绝对值 using ::floor; //下取整 using ::floorf; //下取整 using ::floorl; //下取整 using ::fmod; //求余 using ::fmodf; //求余 using ::fmodl; //求余 using ::frexp; //返回value=x*2n中x的值,n存贮在eptr中 using ::frexpf; //返回value=x*2n中x的值,n存贮在eptr中
C++标准库和std命名空间
c++标准库及命名空间std 1、命名空间std C++标准中引入命名空间的概念,是为了解决不同模块或者函数库中相同标识符冲突的问题。有了命名空间的概念,标识符就被限制在特定的范围(函数)内,不会引起命名冲突。最典型的例子就是std命名空间,C++标准库中所有标识符都包含在该命名空间中。 如果确信在程序中引用某个或者某些程序库不会引起命名冲突(即库中的标识符不会在程序中代表其他函数名称),那么可以通过using操作符来简化对程序库中标识符(通常时函数)的使用,例如:using namespace std;那么就可以不用在标识符在前缀std::来使用C++标准库库中的函数了。 和是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此,当使用时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用的时候,该头文件没有定义全局命名空间,必须使用namespacestd;这样才能正确使用cout。、 C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择: 1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下: std::cout << std::hex<< 3.4<< std::endl; 2、使用using关键字。 using std::cout; using std::endl; 以上程序可以写成 cout << std::hex<< 3.4<< endl; 3、最方便的就是使用using namespace std; 例如: #include #include #include
C++基础知识
ACM入门进阶 程序设计语言是学习数据结构的一个重要组成部分,任何算法只有通过程序设计语言实现之后才能真正解决问题。C++语言凭借其高度的灵活性和强大的功能在大学生竞赛中被非常广泛地使用,在中学生竞赛中的使用也越来越广泛。本文旨在给初学者一个窗口,通过例题了解什么是ACM,希望能够对刚入门的读者有所帮助(题目是英文的,不用担心,很简单得英文,不懂可以查金山词霸~~) ACM一般要求在一定的时间内,理解并分析题意,设计符合给定时间和空间复杂度要求的算法,并在计算机上使用一定的程序设计语言正确地实现算法。由于整个竞赛存在时间限制(特别是ACM/ICPC类竞赛,在解决问题数目相等的情况下以做题累计时间的多少来决定名次),因此所使用的程序设计语言能否正确、快速地实现算法对竞赛的成绩影响颇大。一般信息学竞赛比较常用的程序设计语言有以下几种:BASIC、Pascal、C/C++、Java,它们 在目前的ACM竞赛中,C++和C语言使用较为广泛。但是C++语言凭借其本身所具有的高度的灵活性,以及它所带的库的强大功能,被越来越多的选手所使用。 本文几乎所有内容都是例子,详细的见一些相关的参考书。
一C++基础知识 1.1 "Hello, world!" C++对于大小写是敏感的。 首先,让我们通过一个非常简单的C++程序,来初步地了解C++语言。 #include using namespace std;// 注意如果不使用.h将要增加本行 int main() { cout << "Hello, world!" << endl; return 0; } ///:~ 这个程序的作用就是在屏幕上输出“Hello, world!”的字样。 以“#”开始的内容被称为预处理指令,这一行的作用是把一个叫做iostream的头文件包含到我们的程序中来。C++默认是不包含任何头文件的。另外,C语言中的头文件都是以.h 结尾的,而标准的C++提倡使用没有扩展名的头文件。 第四行让我们可以在程序中直接使用std名字空间内的标识符。std名字空间包含了所有标准C++提供的类和函数,为了简便起见,一般总在包含头文件的预处理命令后写上这一行。如果是C语言的话,程序将变成: #include int main() { printf(“%s\n”,"Hello, world!"); return 0; } ///:~ 1.2 类型
C++math库函数
/* #include int abs( int num ); double fabs( double arg ); long labs( long num ); 函数返回num的绝对值 #include double acos( double arg ); 函数返回arg的反余弦值,arg的值应该在-1到1之间 #include double asin( double arg ); 函数返回arg的反正弦值,arg的值应该在-1到1之间 #include double atan( double arg ); 函数返回arg的反正切值 #include double atan2( double y, double x ); 函数返回y/x的反正切值,并且它可以通过x,y的符号判断 (x,y)所表示的象限,其返回的也是对应象限的角度值 #include double ceil( double num ); double floor( double arg ); ceil函数返回不小于num的最小整数,如num = 6.04, 则返回7.0 floor函数返回不大于num的最大的数,如num = 6.04, 则返回6.0 #include double cos( double arg ); double sin( double arg ); double tan( double arg ); 函数分别返回arg的余弦,正弦,正切值,arg都是用弧度表示 #include double cosh( double arg ); double sinh( double arg ); double tanh( double arg ); 函数分别返回arg的双曲余弦,双曲正弦,双曲正切,arg都是用弧度表示的 #include double fmod( double x, double y );
C++常用标准库函数
C++常用库函数 1、常用数学函数 头文件#include
2、常用字符串处理函数 头文件#include 或者#include
3、其他常用函数 头文件#include 或者#include
4、实现键盘和文件输入/输出的成员函数 头文件#include 或者#include
C++的头文件! #include //字符处理 #include //定义错误码 #include //浮点数处理 #include //文件输入/输出 #include //参数化输入/输出 #include //数据流输入/输出 #include //定义各种数据类型最值常量#include //定义本地化函数 #include //定义数学函数 #include //定义输入/输出函数 #include //定义杂项函数及内存分配函数
#include //字符串处理 #include //基于数组的输入/输出#include //定义关于时间的函数 #include //宽字符处理及输入/输出#include //宽字符分类 标准C++ (同上的不再注释) #include //STL 通用算法 #include //STL 位集容器 #include #include