第 1 集 · B1 · 7 分钟
C++ · 第1集 · 输入输出和数据类型
中学信息学选修:用 C++ 讲输入输出、变量、分支和循环。 开头:今天我们将讨论C++语言中的一些基础概念。

中俄字幕
сегодня будем разговаривать про простые вещи в языке C++.
今天我们将讨论C++语言中的一些基础概念。
Я хотел бы для начала рассказать о нем, почему он вообще имеет смысл.
首先,我想介绍一下它为何存在、有何意义。
Язык этот достаточно старый, он
这门语言相当古老,
появился в 80- х годах.
诞生于20世纪80年代。
Вначале он назывался язык C с классами.
最初它被称为“带类的C语言”。
Вот C++ вначале назывался C с классами.
C++最初就叫“带类的C语言”。
с классами. А язык C, он еще более древний.
带类。而C语言则更为古老。
Он родился в 1970.
它诞生于1970年。
втором году, если я не ошибаюсь, но он после языка Паскаль родился.
确切地说是1972年,如果我没记错的话;但它是在Pascal语言之后诞生的。
Вот, язык C был создан для того, чтобы писать операционную систему Unix.
C语言最初是为了编写Unix操作系统而创建的。
Unix мертв, Linux жив.
Unix已死,Linux犹存。
Linux его потомок, FreeBSD, macOS— это все потомки Unix'а, их очень много.
Linux是它的后代,FreeBSD、macOS也都是Unix的后代,这样的系统非常多。
Ну вот изначально C был создан именно для того, чтобы писать ядро
最初,C语言正是为了编写操作系统内核而创建的。
операционной системы.
操作系统。
Вот, и в связи с этим у языка C, да, то есть если вот построить вот эту линеечку,
你看,正因如此,C语言——是的,如果画出这条发展线的话——
да, C, C с классами, C++, но я
是C,带类的C,也就是C++,但我
не буду промежуточные.
不提中间的过渡版本。
Там были перед этим, да, был язык B, BCPL, там C, C++.
在这之前确实存在过其他语言,比如B语言、BCPL语言,然后才是C、C++。
Это не так даже принципиально, но вот это наследие, оно очень сильное.
这其实并非根本性的区别,但这种传承影响非常深远。
Дело в том, что сейчас язык C тоже жив, им
事实上,如今C语言依然活跃,人们仍在使用它。
тоже пользуются, в частности ядро операционной системы Linux, ядро Linux,
也广泛使用,特别是Linux操作系统内核,即Linux内核。
точнее ядро операционной системы GNU.
更准确地说,是GNU操作系统的内核。
операционная система android называющаяся linux да оно написано на си линус
名为Linux的Android操作系统——没错,它用C语言编写,由林纳斯开发。
торвальдс продолжает писать на сях вот но
托瓦兹至今仍在用C语言持续开发。
наследие это достаточно жесткое.
这一遗产相当稳固。
Языки развиваются совместно, стандарты принимаются совместно.
编程语言共同演进,标准共同制定。
C он достаточно, как сказать, слабо развивается, то есть у него какие- то там фиксы
C语言发展相对缓慢,也就是说,仅有一些小修补。
небольшие, а так он очень стабилен.
改动很小,因此它非常稳定。
А C он развивается достаточно динамично и остается современным языком, и он не канул
而C++则发展迅速,始终保持着现代语言的地位,并未过时。
в лету совершенно.
完全没被淘汰。
Чем он интересен и важен для нас?
它为什么对我们来说既有趣又重要?
Потому что олимпиады.
因为有奥林匹克竞赛。
выгодно выигрывать именно на языке C++.
用C++语言参赛特别有利。
Можно, конечно, и на чистом C писать, но это можно грохнуться, потому что там нет
当然也可以用纯C语言编写,但这样容易出问题,因为C语言缺少
многих удобных структур данных, а C++
许多便捷的数据结构,而C++
он предоставляет все удобства современных языков, там контейнеры и прочее, прочее,
提供了现代语言的各种便利功能,例如容器等其他特性。
прочее. Итак, значит,
等等。那么,
я надеюсь, что действительно никто больше не ожидает.
我希望真的没人再抱有期待了。
да вроде бы все на месте
看起来一切就绪。
итак значит что в чем его плюс плюс в том что он давайте про плюсы его расскажем да
那么,它的优点是什么呢?我们来谈谈它的优势吧。
про плюсы раз два два плюса значит смотрите во первых
关于优点,一、二、二,即优点如下:首先,
Первое, он быстрый.
第一,它运行速度快。
Он быстрый. Это связано с тем, что он является языком компилируемым непосредственно
它运行速度快,这是因为它是直接编译为机器码的语言,
в машинный код тех архитектур компьютеров, на которых вы собираетесь собственно
而该机器码专为你们实际要运行程序的计算机架构所设计。
запускаться. Вот.
就是这样。
То есть он переводится прямо в машинный код и выполняется он быстро.
也就是说,它被直接转换为机器码,因此执行速度很快。
Еще плюсы. Да?
还有其他优点,对吧?
Он, как я уже сказал, на самом деле достаточно современный.
正如我之前所说,它实际上相当现代。
Он содержит в себе очень много классных концепций.
它包含了许多很棒的概念。
и он продолжает развиваться
并且它仍在持续发展。
есть еще одно свойство языков программирования а это универсальность
编程语言还有另一个特性,即通用性。
они не всегда универсальные.
但它们并不总是通用的。
Универсальный это, знаете, как швейцарский нож: его можно и туда, и сюда, и для
所谓通用,就像瑞士军刀:能干这,也能干那,还能干别的。
этого, и для того.
这件事,那件事。
Вот C++, он именно что универсальный, и
比如C++就是一种通用语言,
он может быть применен как для графических программ, для бэкенда.
它既可用于图形程序,也可用于后端开发。
Странно его использовать для фронтенда веб- сайтов, я такого почти не видел, но на
用它来开发网站前端显得很奇怪,我几乎没见过这种用法,但
самом деле видел.
实际上我确实见过。
вот но тем не менее да его можно использовать почти для всего чего угодно у него на
不过,话虽如此,它几乎能用于任何用途,
нем даже можно программировать микроконтроллера
甚至还能用它为微控制器编程。
вот там ардуино или другие то есть прям вот называется самые самые низовые вещи там
比如那边的Arduino或其他类似平台,也就是最底层的东西。
где даже нет операционной системы там где дотнет java машина и сам интерпретатор
那里甚至没有操作系统,也没有.NET、Java虚拟机或解释器本身。
python плакали вот хотя питон все равно универсальный java универсальный язык но тем
Python就更不用说了——尽管Python仍是通用语言,Java也是通用语言,但……
не менее да вот есть языки, которые не для всего годятся.
不过,确实存在一些并不适用于所有场景的编程语言。
А еще C++ очень хорош с точки зрения
此外,C++在……方面表现非常出色。
исторической. Дело в том, что вот как он сам появился на основании языка C, из- за
从历史角度看,C++最初是基于C语言诞生的,因此……
этого он в частности наследует некоторые костыли, которые были в языке C, и мне
正因如此,它尤其继承了C语言中的一些缺陷(临时解决方案)。
придется о некоторых вещах разговаривать, а кое- каких вещей я просто постараюсь
我不得不就此讲解一些内容,而对某些内容,我则会尽力……
избежать и вообще пропустить мимо.
避开并完全略过。
Вот. Так вот C++ на самом деле дал, как сказать,
总之,C++实际上带来了某种……
стал родоначальником очень многих языков.
成为许多语言的始祖。
Ну, в частности Java.
比如,Java 就是其中之一。
Ну, надо сказать, что C# тоже
嗯,必须指出,C# 也是
является его потомком, но все- таки C# уже учитывает и
它的后代,但 C# 确实还借鉴了
джавовские вещи, но вот
Java 的一些特性,不过
как бы как минимум, да, там
至少可以说,
JavaScript тоже делался с оглядкой.
JavaScript 的设计也参考了它。
Нет, JavaScript нельзя назвать вполне, но все равно так называемый C- подобный
不,JavaScript 并不能完全算作其直系后代,但通常仍被称为类 C 语言,
синтаксис. да то есть какие то есть языки которые
语法,也就是说,存在一些语言,
проросли условно рядом мимо да но все равно вот они от общего предка и они очень
虽未直接传承,却仍源自同一祖先,彼此非常相似。
похожи и поэтому да есть многие вещи которые переплетаются знаете как живут две
相似,因此确实存在许多相互交织的事物,就像两种文明毗邻而居一样。
цивилизации рядом и у них
彼此相邻,而且它们
языки заимствуют слова друг у друга, заимствуются какие- то идеи, одни одно
语言会互相借用词汇,也会借鉴某些思想:一方发明了某种东西,另一方则发明了另一种。
изобрели, другое другое, поэтому есть и обратное влияние, то есть что- то в языке
因此存在相互影响,也就是说,某些东西从C++中流出,同时又有某些东西回流到C++中。
уходит из C++, а что- то возвращается в него.
例如,目前C++中就出现了这种情况。
Вот сейчас, например, в C++
目前,比如在C++中,
пришло, хотя он вроде бы объектно- ориентированный язык, но в него притекло очень
虽然它本是一种面向对象的语言,但其中却融入了大量函数式编程的特性。
много функционального, от
函数式编程的特性,
функционального программирования, а потом там содержится и обобщенное
随后还包含了泛型编程。
программирование.
编程。
У нас не стоит задача углубляться в
我们的任务不是深入探讨
синтаксические вещи и восхвалять какие- то там детали, анализировать это в разных
语法问题,也不去赞美某些细节,或在不同语言中分析比较这些细节。
языках и сравнивать друг с другом.
不同语言之间进行分析和比较。
Мы не филологи от программирования с вами, но есть тем не менее некоторая польза.
我们并非编程领域的语言学家,但这样做仍有一定益处。
угадать язык программирования, на котором вы будете писать, очень сложно,
准确猜出你将使用的编程语言非常困难,
практически невозможно, да,
实际上几乎不可能,是的,
но. мало того что он подходит для олимпиад сто процентов то есть вот на российских
不仅如此,它完全适用于信息学竞赛——也就是说,在俄罗斯的
олимпиадах это сто процентов язык который можно использовать и
信息学竞赛中,它绝对是可使用的编程语言,而且
девяносто с лишним
超过百分之九十
来源:Тимофей Хирьянов · CC BY 3.0