C++ 编程问题集
我们这些作者这本书希望解决编程书籍普遍存在的一个错误。从我们所见,C++(和其他语言)的编程教程和书籍都以相同的老套方式组织。他们从变量和控制流等“基础”开始,每一章都专门介绍编程语言的不同部分。他们教授语言,但却没有教授编程绝对基础的东西。还有一些书说他们不只是教授语言,而是教授“现实世界”的例子。这些书籍倾向于压缩语言部分,并在用户界面编程或网络编程方面添加章节。再次,这并非教授真正需要的东西。他们传播知识是好的,以便读者了解一些可应用于编程的实用技能。不好的是他们压缩了语言知识,而语言本身也同样有用。
然而,我们仍然缺少编程中一些根本的东西。无论使用哪种编程语言,无论任务是什么,每个程序员都在做什么?他们在解决问题!解决问题是编程的核心技能。程序员可能了解世界上所有界面、所有库,但如果他们不知道如何使他们的知识有用,这一切都将毫无意义。作为一名程序员,你不仅需要完整地了解语言:包括怪癖、奇特之处和所有的一切,你还需要知道如何使用这些知识并将其应用于问题。
所以这就是我们介入的地方。我们将采取一种不同的方法来教授编程。确实,我们将教授 C++ 编程语言。确实,我们也可能会破坏我们这些程序员在学习编程一两年后,在解决本书中提出的问题的快乐周末。为此,我们会留下一份“问题”清单供读者参考,指向关于这些问题的各种文章,以便他们也能体验到快乐的周末,制作井字棋游戏或数独求解器,因为正是这些“周末”启发了我们中的一些人用它们来教授 C++,因为正是那些时候,你尝试新事物而不必担心弄乱什么,正是那些时候,新技能真正发展起来。
我在 C++ 书籍中看到的一件常见事情是,即使他们没有明说,他们也会教授 C 而不是 C++。正如你可能猜到的,C++ 是从另一种编程语言 C 派生出来的,但有许多、许多扩展,甚至创新。C 可以用一本书的章节(而且经常如此)来教授,而 C++ 可能会占用这本书的大部分篇幅。许多书籍早期代码看起来和行为都像 C 代码,没有使用好的 C++ 约定,然而正是这些章节在读者脑海中留下了深刻的印象(你会惊讶这些有多大影响,即使你读完 5 分钟后就记不起这些段落了),因为它们是他们进入编程的第一步。所以,秉承《加速 C++》(一本强烈推荐的商业书籍)的精神,我们将从 C++ 代码开始,以 C++ 代码结束。
编译器
- Dev-C++(整齐地使用 GCC 编译器)
- MinGW(使用 GCC 编译器)
- Cygwin(直接使用 GCC 编译器,你需要自己生成编译代码(注意:MinGW 也是这样),你会得到帮助 ;-) )
这些是免费的开源软件,但你可能仍然想要使用商业编译器。只要它与 ANSI-C 和/或 ANSI/ISO C++ 兼容,你就不必担心太多(虽然据说有一种编译器是最不符合标准的编译器)。否则,只需编辑这本书,添加对你有效的编译器。建议的非开源编译器是 Microsoft Visual C++ 或 Borland C++。
第一章,涵盖基础知识
[编辑 | 编辑源代码]你的第一个问题:汉诺塔。它听起来可能并不令人兴奋,但它是一个很好的编程入门。在本章中,我们将编写一个解决汉诺塔问题的程序,向我们展示它为找到解决方案所采取的各个步骤。我们将首先解读问题,找出解决方案,然后创建代码。该练习将教会你 C++ 基础知识,例如函数、变量、条件语句、格式化输出和容器。你的第一个程序确实值得你感到自豪。
一个将简单的 HTML 页面输出到控制台屏幕的程序。