<span>C++基础实践指导(下)</span>
每一个计算机程序都是现实中的或者精神中的某个过程的一个模型,通过人的头脑孵化处理啊。这些过程出现在人们的经验或者思维之中,数量数不胜数,详情琐碎繁杂,任何时候人们都只能部分地理解它们。我们很少能通过自己的程序将这种过程模拟到永远令人满意的程度。计算机程序设计领域之令人兴奋的源泉,就在于它引起连绵不绝的发现,在我们的头脑之中,在由程序所表达的计算机机制之中,以及在由此所导致的认识爆炸之中。如果说艺术解释了我们的梦想,那么计算机就是以程序的名义执行着它们。
除了通过编程语言进行表达,程序员还要做些什么?恩,这是一个更深入的问题,大多数程序员在解释他们所作的事情这个问题上都会有困难。编程是一项充满了各种细节的工作,追踪这些细节需要专注。如果你不仔细思考,你也许会以为编程不过就是敲入某种编程语言的语句,你当然错了,但找遍书店的编程专柜,你却还是讲不出所以然。
在后续的文章中,我们将和读者一起学习怎样以一种我们能够遵循的方式编程?编程老手不也是和其他程序员一样,专注于各种细节而已吗?答案是他们在做某件事情时,会把注意力投注在他们在做的事情上,然后他们会试着把它做得更好。
设想你在参加一个会议。或许你在想,这个会议没完没了,你还不如去写程序,但资深的编程老手会想,他们为什么在开会,他们想知道是否可以通过另外的方式取代会议,并决定是否可是某件事情自动化,以使开会的工作推后,然后他们就会这样去编程。这就是他们的思考方式,开会并非是某种使他们远离编程的事情,开会就是编程,并且是加以改善的编程。因此,这就是他们思考的方式,思考你的工作,适用于各行各业。
小编今天也主要介绍两个程序,希望能给读者提供帮助。
1、编写一个函数,形参是数组,实现插入排序方法。
编程思路:
(1)将n个元素的数列分为有序和无序两个部分,每次处理将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置。
(2)函数形参是数组,需要指针来传递。
1 //定义排序函数
2 void Sort(int *ary,int nsize) 3 { 4 for(int i=1;i 5 { 6 int tmp=ary[i]; 7 int n=i-1; 8 while(tmp 9 { 10 ary[n+1]=ary[n]; 11 n--; 12 if(n==-1) 13 { 14 break; 15 } 16 } 17 ary[n+1]=tmp; 18 } 19 }
编程思路:
(1)库函数strcpy函数是字符串复制函数,函数原型是
char *strcpy(char *strDestination,const char *strSource);
其中,strDestination是目标内存的地址,strSource 是要复制的字符串,返回值是目标内存的地址。
(2)为了避免与库函数冲突,程序中将函数改为mystrcpy
(3)需要使用循环结构,由于strSource 是C风格的字符串,因此可以使用0结尾作为循环结束的条件。
(1)库函数strcpy函数是字符串复制函数,函数原型是
char *strcpy(char *strDestination,const char *strSource);
其中,strDestination是目标内存的地址,strSource 是要复制的字符串,返回值是目标内存的地址。
(2)为了避免与库函数冲突,程序中将函数改为mystrcpy
(3)需要使用循环结构,由于strSource 是C风格的字符串,因此可以使用0结尾作为循环结束的条件。
char *mystrcpy(char *strDestinaton,const char *strSource) { //定义一个临时指针备份目标内存的地址
char *sDest=strDestinaton; while(true) { //字符复制
*strDestinaton=*strSource; if(*strSource==0)//判断0结尾
{ break; } //指针步进
strDestinaton++; strSource++; } return sDest; }