最新更新最新专题

您的位置:首页 > ppt下载 > PPT课件 > 数学课件PPT > C++程序设计基础PPT

C++程序设计基础PPT下载

素材大小:
1003.50 KB
素材授权:
免费下载
素材格式:
.ppt
素材上传:
ppt
上传时间:
2017-06-16
素材编号:
66953
素材类别:
数学课件PPT

素材预览

C++程序设计基础PPT C++程序设计基础PPT

这是一个关于C++程序设计基础PPT,这节课主要是了解函数性质( Function Character ) 指针参数 ( Pointer Parameters ) 栈机制 ( Stack Mechanism ) 函数指针 ( Function Pointers ) main参数 ( The main’s Parameters ) 递归函数 ( Recursive Functions ) 函数重载 ( Function Overload ) 。函数(function)表示每个输入值对应唯一输出值的一种对应关系。这种关系使一个集合里的每一个元素对应到另一个(可能相同的)集合里的唯一元素。函数f中对应输入值的输出值x的标准符号为f(x)。包含某个函数所有的输入值的集合被称作这个函数的定义域,包含所有的输出值的集合被称作值域。若先定义映射的概念,可以简单定义函数为,定义在非空数集之间的映射称为函数,欢迎点击下载C++程序设计基础PPT哦。

C++程序设计基础PPT是由红软PPT免费下载网推荐的一款数学课件PPT类型的PowerPoint.

C++程序设计教程(第二版)wDw红软基地
第五章 函数机制 wDw红软基地
Chapter 5  Function Mechanism wDw红软基地
第五章内容wDw红软基地
函数wDw红软基地
   C++的函数是完成既定任务的功能(过程)体,它涵盖了数学函数和一般过程.所以基于过程编程本质上就是基于函数编程wDw红软基地
函数机制wDw红软基地
   一是指程序运行过程中对函数调用的数据管理和处理过程wDw红软基地
   二是指编程中函数的使用规范.它包括函数参数的属性和传递规则,函数返回类型的匹配与审查,函数名字的识别原则,函数体效率的选择,函数体中数据的访问权限等wDw红软基地
练习:采用函数调用方式,输出下列欢迎界面。wDw红软基地
练习:用函数调用的方式求解两个数的差。wDw红软基地
void main() {wDw红软基地
int max(int x,int y) ;wDw红软基地
int  a,b,c;wDw红软基地
cin<>>a>>b;wDw红软基地
 c=max(a,b);     //a,b为实参wDw红软基地
 cout<<"The max is “<<c;wDw红软基地
}wDw红软基地
int max(int x,int y)  //x,y 为形参wDw红软基地
{int z;wDw红软基地
  if (x>y) z=x;wDw红软基地
  else z=y;wDw红软基地
  return(z);wDw红软基地
}wDw红软基地
形参与实参、函数名与返回值之间的关系:wDw红软基地
说明:wDw红软基地
(1)形参在函数被调用前不占内存; 函数调用时为形参分配内存;调用结束,释放内存。wDw红软基地
(2)实参可以是常量、变量或表达式,但必须有确定的值。 wDw红软基地
(3)在被定义的函数中,必须指定形参的类型                                      wDw红软基地
(4)形参与实参类型一致,个数相同 wDw红软基地
(5)实参对形参进行单向“值传递” ,不能把形参的值反向地传送给实参。形参与实参占用不同的内存单元.wDw红软基地
建议:wDw红软基地
1)定义函数时都要指定函数类型。wDw红软基地
2)定义函数时指定的函数类型与return 返回值的类型一致。wDw红软基地
3)对于不带回值的函数,用void 定义为空类型,此时函数体内不能出现return语句。wDw红软基地
在以下情况下可省去在主调函数中对被调函数声明。wDw红软基地
1) 函数定义出现在函数调用之前wDw红软基地
1.   函数性质 ( Function Character )wDw红软基地
函数:对输入参数负责,埋头做自己的事,最终返回结果wDw红软基地
函数组织:通过在函数中进行函数调用来扩展运行的规模,层层叠叠的函数构成树结构wDw红软基地
做法:将若干个函数组织成文件,又将若干个文件构成程序的办法来进行编程分工wDw红软基地
跨越数学函数的C++函数,有四种形态wDw红软基地
返回类型  func ( 参数列表 ) ;wDw红软基地
返回类型  func ( ) ;wDw红软基地
void  func ( 参数列表 ) ;wDw红软基地
void  func ( ) ;wDw红软基地
黑盒原则:函数使用者应关注性能,而少去左右实现细节wDw红软基地
int  cost ( int  n, int  m ) {wDw红软基地
   return n*10;   // 运输n次m斤wDw红软基地
}wDw红软基地
int  cost ( int  n,  int  m ) {wDw红软基地
   return m*10;   // 运输m次n斤wDw红软基地
}wDw红软基地
//  选择下一个最好的wDw红软基地
int  cost ( int  n,  int  m ) {wDw红软基地
   return (n>m? m:n)*10;   // 保证运输次数最少wDw红软基地
}wDw红软基地
参数传递:形参是对实参的克隆,克隆必须遵守类型匹配规则wDw红软基地
void f(Type a); //a为形参wDw红软基地
void g(){wDw红软基地
  Type x;wDw红软基地
  f(x);         //x为实参wDw红软基地
}wDw红软基地
2.   指针参数 ( Pointer Parameters )wDw红软基地
传递指针:指针参数也是值传递的,指针值的真正用途是进行数据间访,以达到操作数据块(大小由之)的目的。wDw红软基地
传递引用:引用参数本质上也是值传递的,它表现为名字传递,即以形参的名字来代替实参名字.如果实参不是实体名而是表达式,那么其表达式所对应的临时实体取名为形参,并要求其为常量引用wDw红软基地
意义:指针和引用参数的存在,使函数实际上可以访问非局部的数据区,函数的黑盒性便名存实亡.但这并非一定坏事,指针是一把双刃剑,或灵巧或邪恶.引用是为了防范指针非安全的无意操作wDw红软基地
void swap(int *p1, int *p2); wDw红软基地
void main() wDw红软基地
{wDw红软基地
      int x1=100,x2=200; int *pp1,*pp2;wDw红软基地
      pp1=&x1;pp2=&x2;wDw红软基地
      cout<<x1<<x2);wDw红软基地
      swap(pp1,pp2); wDw红软基地
      cout<<x1<<x2);wDw红软基地
}wDw红软基地
void swap (int *p1, int *p2) {wDw红软基地
     int temp; wDw红软基地
     temp=*p1; wDw红软基地
    *p1=*p2; wDw红软基地
    *p2=temp; wDw红软基地
}wDw红软基地
传递指针须附带传递单位数据的个数wDw红软基地
3.   栈机制 ( Stack Mechanism )wDw红软基地
运行时内存布局wDw红软基地
栈区的演示程序(函数的嵌套调用)wDw红软基地
int funcA( int x,int y);wDw红软基地
void funcB( int & s);wDw红软基地
int main(){wDw红软基地
int a=6,b=12;wDw红软基地
a=funcA(a,b);wDw红软基地
}wDw红软基地
int funcA(int x, int y){wDw红软基地
int n=5;wDw红软基地
funcB(n);wDw红软基地
return;wDw红软基地
}wDw红软基地
未初始化局部数据的不确定性wDw红软基地
#include<iostream>wDw红软基地
void f(){wDw红软基地
  int b;  // 未初始化wDw红软基地
  std::cout<<”B=>”<<b<<“\n”;wDw红软基地
}//-------------------------wDw红软基地
int main(){wDw红软基地
  int a;  // 未初始化wDw红软基地
  std::cout<<”A=>”<<a<<“\n”;wDw红软基地
  f();wDw红软基地
}//-------------------------wDw红软基地
// 8804248wDw红软基地
// 2788048wDw红软基地
4.   函数指针 ( Function Pointers )wDw红软基地
函数类型:函数类型因参数类型、个数和排列顺序的不同而不同,也因返回类型的不同而不同.wDw红软基地
函数指针:指向代码区中函数体代码的指针.不同的函数类型,其函数指针也不同wDw红软基地
用法:函数指针经常用作函数参数,以传递连函数本身都不知道的处理过程(函数)wDw红软基地
4.1不同的函数指针,不能相互赋值wDw红软基地
int g(int);wDw红软基地
int (*gp)(int) = g;wDw红软基地
void f();wDw红软基地
void (*fp)();wDw红软基地
fp = f;wDw红软基地
gp = fp;  // errorwDw红软基地
指定函数指针类型,定义函数指针数组wDw红软基地
typedef void (*MenuFun)();wDw红软基地
void f1(){ cout<<"good!\n"; }wDw红软基地
void f2(){ cout<<"better!\n"; }wDw红软基地
void f3(){ cout<<"best!\n"; }wDw红软基地
MenuFun fun[]={f1,f2,f3};wDw红软基地
6.   递归函数 ( Recursive Functions )wDw红软基地
形式上:一个正在执行的函数调用了自身(直接递归).或者,一个函数调用了另一个函数,而另一个函数却调用了本函数(间接递归)wDw红软基地
本质上:程序在运行中调用了相同代码实体的函数,却在函数栈中重新复制了该函数的整套数据,由于每套数据中的参数也许不同,导致了计算条件发生变化,使得函数得以逐步逼近终极目标而运行wDw红软基地
6.1  现实问题wDw红软基地
猴子第一天摘了若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上有将剩下的桃子吃了一半多一个。以后每天如此,直到第十天想再吃时,只剩下一个桃子了,问猴子摘了多少个桃子呢?wDw红软基地
求N!wDw红软基地
一个球从100米高度落下,每次落地后反弹原高度的一半,再落下。问第10次落地后,共经过的距离为多少米?第10次落地后的反弹的高度?wDw红软基地
6.2  分析递归的实质wDw红软基地
递归的两个组成部分:wDw红软基地
回推wDw红软基地
递推wDw红软基地
递归存在的条件:wDw红软基地
递归结束的条件wDw红软基地
递归调用的参数应该是逐步逼近结束条件wDw红软基地
6.3  消除递归wDw红软基地
int  f( int n ){wDw红软基地
for( i=1,s=1;i<=n;i++)wDw红软基地
  s=s*I;wDw红软基地
return s;wDw红软基地
}wDw红软基地
6.4 递归的意义wDw红软基地
可读性wDw红软基地
效率wDw红软基地
7.  1 函数重载 ( Function Overload )wDw红软基地
定义:一组概念相同,处理对象(参数)不同的过程,出于方便编程的目的,用同一个函数名字来命名的技术称为函数重载wDw红软基地
意义;wDw红软基地
解决函数的命名的问题wDw红软基地
例子:求x绝对值函数wDw红软基地
int abs( int x )wDw红软基地
double abs( double x )wDw红软基地
#include< iostream.h>wDw红软基地
 int  abs( int a ){wDw红软基地
   return (a>0)?a:-a;wDw红软基地
}wDw红软基地
 double abs( double a){wDw红软基地
    return (a>0)?a:-a;wDw红软基地
}wDw红软基地
void main(){wDw红软基地
    cout<<abs(-10)<<endl;wDw红软基地
    cout<<abs(-12.23)<<endl;wDw红软基地
}wDw红软基地
7.2重载函数的匹配(编译)wDw红软基地
规则wDw红软基地
寻找严格匹配的函数wDw红软基地
寻找相容的函数wDw红软基地
例子wDw红软基地
重载是不同的函数,以参数的类型,个数和顺序来分辨wDw红软基地
void print(double);wDw红软基地
void print(int);wDw红软基地
void func(){wDw红软基地
  print(1);        // void print(int);        wDw红软基地
  print(1.0);      // void print(double);    wDw红软基地
  print(‘a’);      // void print(int);       wDw红软基地
  print(3.1415f);  // void pirnt(double);    wDw红软基地
}wDw红软基地
7.3参数默认:wDw红软基地
一个函数,既可以严谨和地道的调用,也可以省略实参,使用默认的参数值调用,达到此种方便编程目的的技术称为参数默认wDw红软基地
using namespace std;wDw红软基地
void delay(int a = 2);   // 函数声明时wDw红软基地
int main(){wDw红软基地
  delay();               // 默认延迟2秒wDw红软基地
  delay(2);              // 延迟2秒wDw红软基地
  delay(5);              // 延迟5秒wDw红软基地
}wDw红软基地
void delay(int a){       // 函数定义时wDw红软基地
  int sum=0;wDw红软基地
  for(int i=1; i<=a; ++i)wDw红软基地
  for(int j=1; j<3500; ++j)wDw红软基地
  for(int k=1; k<100000; ++k) sum++;wDw红软基地
}wDw红软基地
默认参数的规则wDw红软基地
默认参数的值只能在声明中wDw红软基地
   void point(int =3,int =4)//声明时wDw红软基地
   void point( int x,int y){  //定义时wDw红软基地
          cout<<x<<y<<endl;wDw红软基地
   }wDw红软基地
默认参数的值只能从后往前设置。wDw红软基地
默认参数的值设定不能出尔反尔。wDw红软基地
    void func( int a=1);wDw红软基地
    void func(int a=2);wDw红软基地
7.4无名参数wDw红软基地
例如:wDw红软基地
void point( int a ,int ){//定义时,第二个形参省略)wDw红软基地
  cout<<a<<endl;wDw红软基地
}wDw红软基地
void main(){wDw红软基地
   print(12,15);//调用时必需有第二个实参wDw红软基地
}wDw红软基地
7.3重载和参数默认的选择wDw红软基地
它们都是通过参数的变化来分辨处理任务的不同.如果参数决定了不同的处理过程,则应重载,否则参数默认更简捷一些wDw红软基地
8.   main参数 ( The main’s Parameters )wDw红软基地
程序运行:操作系统读入命令以启动程序wDw红软基地
重定向命令:操作系统读入命令后,识别并自我消化的参数wDw红软基地
main函数参数:操作系统读入命令后,不能识别参数,将其直接传递给所启动的程序wDw红软基地
命令重定向wDw红软基地
// f0509.cppwDw红软基地
#include<iostream>wDw红软基地
using namespace std;wDw红软基地
int main(){wDw红软基地
  for(int a,b; cin>>a>>b;) cout<<a+b<<”\n”;wDw红软基地
}wDw红软基地
main函数参数wDw红软基地
// f0510.cpp,标准的输入输出设备wDw红软基地
#include<iostream>wDw红软基地
using anmespace std;wDw红软基地
int main(int argc, char** argv)wDw红软基地
{wDw红软基地
  for(int i=0; i<argc; ++i)wDw红软基地
    cout<<argv[i]<<endl;wDw红软基地
}wDw红软基地
//从命令提示符开始wDw红软基地
#include<iostream>wDw红软基地
#include<fstream>wDw红软基地
#include<sstream>wDw红软基地
using namespace std;wDw红软基地
void main( int argc, char ** argv){wDw红软基地
if(argc!=3) cout<< “ print error!”;wDw红软基地
else{wDw红软基地
    ifstream fin(argv[1]);wDw红软基地
    ofstream fout(argv[2]);wDw红软基地
    for(string str;getline(fin,str);)wDw红软基地
          out<<str<<endl;wDw红软基地
      }wDw红软基地
}wDw红软基地
 wDw红软基地

模块化程序设计ppt:这是模块化程序设计ppt,包括了自顶而下、逐步求精的程序设计思想,过程与函数,综合实践练习—求五边形的面积等内容,欢迎点击下载。

循环结构程序设计ppt:这是循环结构程序设计ppt,包括了循环结构,用For-Next语句实现循环结构,用Do While-Loop语句实现循环结构,嵌套的循环结构等内容,欢迎点击下载。

vb程序设计教程ppt:这是vb程序设计教程ppt,包括了确定数据的性质:数据类型,两种数据表达:常量和变量,算术运算符和表达式,VB编程的开始:使用窗体,赋值和输入输出等内容,欢迎点击下载。

PPT分类Classification

Copyright:2009-2024 红软网 rsdown.cn 联系邮箱:rsdown@163.com

黑ICP备2025041396号-1