标题:[原创]学习感受.....
只看楼主
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
结帖率:33.33%
 问题点数:0 回复次数:7 
[原创]学习感受.....
我是一个菜鸟....学习到现在也有半年了,但是算法仍是可以算空白.不过,我今天不是讲算法,而是发泄一下自己的学习感受..为了大家看起轻松,我也轻松,会写得很少..
   对于编程,没什么好说的,其实什么语言都一样,学起很简单滴!!!常常看到飞燕的话,大概这样说:与其去弄语法,不如多学几个算法...而且我们也曾听过,算法是程序的灵魂.. 可见算法是如此重要....所以我也抓紧学习它... 然而,有人是否会混淆两个词呢----语法,语意.. 其实我的学习让我知道并不相同.如果说"一个程序=语法+算法",那么是否该说"一个好的程序=语意+算法"?我觉得,是可以这么说..下面我就举两个例子来说明:
 #include<iostream>
 using namespace std;
class A{
  char* s;
public:
   A(int size){ s=new char[size];}
   A(){}
   ~A(){ delete [] s; }
 void dump() const { cout<<s<<endl;}
  void set() { cin>>s;}
};
int main(void)
{
   A a_;  //**
 return 0;
}
上面的代码在编译期没问题, 但是执行就出现问题了.可以肯定,代码的语法没问题,但是问题就在语意上----默认构造函数和析构函数,下面我重点扩展a_对象析构函数(可能写得不好):
从** 这句:
   A a_;
   a_.A::A();
   a_A::~A();
 -----------------------------
析构函数内部:
   ~A()
  {
     if(s!=0)   /*问题在这里,由于默认构造函数没有初始化s,所以s指向未知区域..于是执行_delete(s)释放这个区域是不合法滴*/
        _delete(s);
   }
  只举这个例子了。。 学习语法很简单,但是弄清语意和算法就是下功夫的地方了...
是想写一个程序还是要写一个好的程序?我要努力了....
 PS:
    有什么不对请指出批评.....
搜索更多相关主题的帖子: 算法 语法 语意 学习 
2008-01-30 15:00
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
得分:0 
程序里面有几个误区要看清楚.

在高端开发,算法是很重要的.没有算法你几乎写不出程序.
比如游戏开发,你需要制作自己的引擎,这包括物理引擎(碰撞测试,物理学模仿),或者图形引擎(3D的,2D的,你需要几何学以及其他的知识).还有其他领域,比如航空,国防之类,还有你们都知道的搜索引擎......如果没有这些知识,你几乎开发不出程序来.

有种情况不太需要算法,比如在公司开发外包.中国90%的软件公司都是做外包的.
理解起来很简单,核心不是你来写,你写的就是一个GUI界面,或者其他的一些小工具.也不太需要多少优化.
2008-01-30 15:21
dingpin
Rank: 1
等 级:新手上路
帖 子:281
专家分:0
注 册:2007-9-29
得分:0 
LS的强啊...

我的地盘我做主!
2008-01-30 16:55
lf426
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-12-15
得分:0 
太有才了。
你还真把cin当函数用啊?
2008-02-05 03:36
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
得分:0 
LS的你要来找茬我也无话可说,反正你觉得你很厉害..(至少比我厉害)
但是我要告诉你,我说的变化不大是说那个cin>>,cout<<不是他自己封装的..直接用现成的和直接用printf,scanf不是表达一个意思么?
cin.operator>>, cout.operator<<

樱花大战,  有爱.
2008-02-05 13:40
lf426
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-12-15
得分:0 
我并不比你强,跟你抬杠只是因为觉得你对待问题的态度不科学——特别是给别人解释问题的时候。
我说你有才是因为你这个程序我不知道该如何修改:一边是C风格字符串;一边是C++的标准对象——无论那种修改都会把这个程序改得面目全非而且无法实现你的意图——因为你的意图本身就是个问题。
对象和函数到底有什么不同,你何不用这个类自己做些测试。
2008-02-07 01:53
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
得分:0 
谢谢你的关心.......下面是关于标准输入输出流的:
   >>可处理的类型为:
bool&       int&
signed char*     unsigned int&
unsigned char*      long&
charT*      unsigned long&
signed char&      float&
charT&        long double &
short&         void* &
unsigned short&
类型char* 和charT*用于存储读入的字符串,且>>操作符为C风格字符串添加一个null结束符.

樱花大战,  有爱.
2008-02-07 13:56
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
得分:0 
那个,我是这么看的,关于什么算法不算法语法不语法的。
你说“算法是空白”就有些说不过去了。
写程序就是把头脑中的方法按照特定的语法(和采用的语言有关)写成编译器可识别的源文件,然后生成可以运行的程序。
所以算法其实就是我们头脑中的想法,我们的思路,难道头脑中也是“空白”麽?
算法,我个人认为,就算买一堆算法书,也只能是记下一堆常见问题的计算方法,真正会用的算法还是要碰到具体问题的时候才能确定。
就像我学完《数据结构与算法》这本书后,拿到一个PCM、PSK编解码程序的项目。之后呢?除了数据结构方面能灵活运用外,书上介绍的N多算法一个没用上,还是老老实实的看了厚厚几本信道编码方面的书,了解的具体原理后,自己活生生硬把公式编成程序的。这个时候,我写出来的是程序,算法是书上的公式。

女侠,约吗?
2008-02-10 22:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-199106-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.163080 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved