
第2课 蹩脚的“ChatGPT”(信息输入)

要和计算机交朋友,就少不了互动,互动就离不开输入输出。不同的输入结合不同的算法得到不同的输出。
计算器中,输入数字,经过四则运算,输出答案。
摄像机中,输入画面,经过剪辑处理,输出视频。
学习机中,输入题目,经过搜索分析,输出题解。

温故知新
现在给你输入一些画面,然后经过你的大脑的思考加工,找到对应画面的李白的诗句,并运用cout输出你联想到的诗句吧。
1

2

3

给上面每幅画,编写一段程序输出对应的诗句吧。
(1)

(2)

(3)

创造我的“ChatGPT”
ChatGPT是人工智能技术驱动的自然语言处理工具,它能够基于在预训练阶段所见的模式和统计规律生成回答,并且能根据聊天的上下文进行互动,实现像人类一样的聊天交流。此外,它甚至能完成撰写邮件、视频脚本、文案、翻译、代码以及写论文等任务。
ChatGPT太强大了,我非常崇拜它。虽然我只学了几天的C++,但是我决定创造一个。

于是,我成功地创造了一个调皮的“ChatGPT”。

运行程序后,它问我:
我是蹩脚的ChatGPT,你有什么问题吗?
我提出问题:
怎样才能成为C++大神?
它回答道:
都说了我是蹩脚的ChatGPT,所以我不知道【怎样才能成为C++大神?】的答案。
运行效果是这样的:


还真是蹩脚的程序,不过它竟然能知道我问的问题,看来它还是有两把刷子。让我们一起探索一下程序是如何知道我们提出问题的。
(1)要使用string工具,则先要将头文件包含进程序,使用预处理命令#include<string>。
(2)string question表示声明一个名为question的变量,该变量的类型是string。
敲黑板
想象一下,在计算机中,你创建了一个魔法盒子,可以用来存放各种东西。这个盒子上贴着一个特殊的标签,叫作“变量”。当我们需要往计算机里存放东西时,就去创建一个魔法盒子。
举一个例子:现在我创建了一个question的魔法盒子(变量),把我输入的问题存放在里面。当我或者计算机想要知道里面的问题时,只需要找到question就可以知道里面存放的内容。
在计算机中,将东西放入魔法盒子(变量),通常是称为赋值。
(3)cin >> question将输入的内容赋值给question变量。这时候魔法盒子question里面存放的就是输入的内容。
翻译助力理解
● cin:是console input的缩写,表示从控制台输入数据。
划重点
>>方向是重点
方向代表了流向,cin >> question的流向是从输入流向变量。

对比学习cout <<
(4)cout <<"都说了我是蹩脚的ChatGPT,所以我不知道[" + question + "]的答案。"。
因为将输入的问题赋值给了question,所以这里使用该变量就可以知道问题的内容了。虽然蹩脚,但是程序将回答的话语和问题用+进行了组合。
在C++中,放在双引号(" ")里面的内容被称为字符串,这样就能原样输出了。
如果是这样,编译器就会把question当作一个英文单词直接输出,而不是当作输出变量question中的内容。
cout << "都说了我是蹩脚的ChatGPT,所以我不知道[question]的答案。"
为了避免这个问题,伟大的发明者通过拆分再组合的方式实现了输出。将输出内容拆成3部分后通过+进行组合。
①"都说了我是蹩脚的ChatGPT,所以我不知道["
+
②question
+
③"]的答案。"

人工智能的问候
试着与计算机对话,它可以记住你的名字、家乡、年龄等。

运行看看结果:

巩固练习
(1)哪段代码可以将键盘输入的内容赋值给变量word?( )
A.cout >> word
B.cin << word
C.cout << word
D.cin >> word
(2)以下代码可以输出“杨梅和葡萄真好吃!”。( )√( )×

(3)脑洞大开,制作一段有趣的问答程序。