第1课-进阶高手的大门
- 理解程序的本质
程序是为了实际的问题而存在从本质上而言,程序是解决问题的步骤描述。
问题:
怎样把大象放冰箱?
(1)打开冰箱门 (2)把大象放进去 (3)关上冰箱门
Elephan* e = getElep();
int f = open(“fridge”);
put(f, e);
close(f
- 首先理解实际问题
(1) 确认问题类型。
如:数值计算,求最小值个数。
(2) 确认求解的步骤。
如:打开文件,读数据,关闭文件,计算和。
我们看一个求前n项和的程序:
#include <stdio.h>
#include <malloc.h>
long sum1(int n)
{
long ret = 0;
int* array = (int*)malloc(n * sizeof(int));
int i = 0;
for(i=0; i<n; i++)
{
array[i] = i + 1;
}
for(i=0; i<n; i++)
{
ret += array[i];
}
free(array);
return ret;
}
long sum2(int n)
{
long ret = 0;
int i = 0;
for(i=1; i<=n; i++)
{
ret += i;
}
return ret;
}
long sum3(int n)
{
long ret = 0;
if( n > 0 )
{
ret = (1 + n) * n / 2;
}
return ret;
}
int main()
{
printf("%d\n", sum1(100)); //5050
printf("%d\n", sum2(100)); //5050
printf("%d\n", sum3(100)); //5050
return 0;
}
- 程序评鉴
(1) 用尽量少的内存空间解决问题
(2) 用尽量少的步骤解决
优秀的开发者需要追求代码的高“性价比”!
小结:
(1) 程序是为了具体问题而存的。
(2) 程序需要围绕问题的解决进行。
(3) 同一个问题可以有多种解决。
原文地址:https://www.cnblogs.com/free-1122/p/9884909.html