第二课:学习C++的基本语句
引子:
上节课给大家介绍了如何在Windows环境下安装开发环境,如果您还没有开发环境,即先看看第一节。
这里在开课前给初学者说几句课外话:
题外话1: 初学者初学,最好不用VC的集成开发环境(IDE),IDE有它的优点,但初学这个优点您还用不上。如果您不是初学者,请飘过。
题外话2:为什么要给初学者用cygwin,而不是其它?
优点1: 它在windows下就可以用,windows大家都很熟悉。
优点2: cygwin提高的g++编译器,比较符合C++标准。
优点3: 用命令行方式能更好的了解C++,能有助于你将来用IDE,更有助于将来的将来你管理超大的项目。太大的项目IDE维护起来很吃力。
说话题外话,我们先说本节课将给大家介绍的内容:
本节课只给大家C++的基本语句,让大家对“编程写”有一个感性认识,同时加深对编程过程的了解。
不管是什么复杂的程序,也不管是编程语言,最终都可以分解为三种程序结构:
1) 顺序执行;
2) 分支执行;
3) 循环执行。
换句话说,再复杂的程序,都是上述三结构组合而成的。
本节课就让大家学会这三种结果。(对着镜子笑笑并自己说:“学了今天的知识,无论多复杂的程序我都能完成”)
还是先写代码吧。上节课我们让程序给我们说“hello world”,今天要让计算机能说”hello c++”,
“hello CSDN”.
演练1: 编写一个程序, 在命令行中输入 ./a.exe “your name”,计算机能输入” hello your name”.
代码:
- #include <iostream>
- int main (int argc, char* argv[])
- {
- if (argc == 2)
- {
- std::cout<<"hello " << argv[1] << std::endl;
- }
- else
- {
- std::cout<< "bad command" << std::endl;
- std::cout << "the command is :" << argv[0] << " your_name"
- << std::endl;
- }
- return 0;
- }
代码分析
通过本例,希望你能学到:
1) 加深对编程过程的熟悉;
2) 理解命令行参数
3) 理解 if 语句
4) 理解分支和顺序执行.
自己动手输入代码试试.
演练2: 编写一个程序,在命令行中输入 ./a.exe 2345, 让计算机确定输入的数是奇数还是偶数.
提示:
C++标准库中提供一个函数叫 atoi(),它可以把字符串(什么是字符串呢?我们以后再细说,今天的目的是学会用分支语句.
代码
- #include <iostream>
- #include <stdlib.h> //for using function atoi()
- int main (int argc, char* argv[])
- {
- if (argc == 2)
- {
- const char* parameter = argv[1];
- int val = atoi(parameter);
- if (val % 2 == 0)
- {
- std::cout << val << " " << " is even number." << std::endl;
- }
- else
- {
- std::cout << val << " " << " is odd number." <<std::endl;
- }
- }
- else
- {
- std::cout<< "bad command" << std::endl;
- std::cout << "the command is :" << argv[0] << " 1234 "
- << std::endl;
- }
- return 0;
- }
通过上面的演练,您是否理解了分支语句呢?
演练3: 编写一个程序,在命令行中输入 ./a.exe 5
在屏幕上输出
*****
*****
*****
*****
- #include <iostream>
- #include <stdlib.h> //for using function atoi()
- int main (int argc, char* argv[])
- {
- const char star = '*';
- if (argc == 2)
- {
- const char* parameter = argv[1];
- int val = atoi(parameter);
- for(int i = 0; i < val; i++)
- {
- for(int j = 0; j < val; j++)
- {
- std::cout<< star;
- }
- std::cout<<std::endl;
- }
- std::cout<<std::endl;
- }
- else
- {
- std::cout<< "bad command" << std::endl;
- std::cout << "the command is :" << argv[0] << " 1234 "
- << std::endl;
- }
- return 0;
- }
你能修改代码,
让计算机输入出 ./a.exe 3
*
**
***
C++的循环语句还有while和do while,这里就不再举例了.
可能有些同学觉得内容太少,不过瘾.~~~ 我们先易后难,并且后面可能会进度很快.我先给大家说说后面的安排吧:
接下来的课程,我们会给大家讲
C++的数据类型, 数组,指针,函数; (2~3课不等,看同学们情况)
上面的内容学完之后,会给大家讲指符串,C++中的stl,包括vector,list, string什么的 (2~3课不等,看同学们情况)
再以后我们就讲C++面向对象方面的了,其实我很期待面向对象编程哦. (5~10课不等,看同学们情况)
学完这些,其实还有很多可以学到的,
比如:
用c++写多线程的程序,写网络程序(打算讲mysql),写网络程序. (也许有这个机会吧)