Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование на языке С++. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Л.Ф. Белева
ПРОГРАММИРОВАНИЕ
НА ЯЗЫКЕ С++
Учебное пособие
Москва
Ай Пи Ар Медиа
2024
УДК 004.43 ББК 32.973.2
Б43
Автор:
Белева Л.Ф. — преподаватель информатики
Рецензент:
Остапов Н.В. — канд. истор. наук, преподаватель истории,
автор мультимедийных электронных учебников по истории
Белева, Людмила Федоровна.
Б43 Программирование на языке С++ : учебное пособие / Л.Ф. Белева. —
Москва : Ай Пи Ар Медиа, 2024. — 81 с. — Текст : электронный.
ISBN 978-5-4497-2560-8
Учебное пособие ориентировано на обучение основам алгоритмиза-
ции и записи алгоритмов одного из наиболее популярных и перспективных
языков программирования — С++.
В книге рассмотрены возможности языка С++ на основе большего
количества простых задач и примеров, используемых в рамках структур-
ной парадигмы: стандартные типы данных, основные конструкции линей­ных, разветвляющихся и циклических алгоритмов, массивы, строки, струк-
туры, работа с подпрограммами и файлами.
Каждая из рассматриваемых тем предваряется теоретическим вступ-
лением, поясняющим приведенные примеры и задачи.
Предназначено для учащихся 9–11 классов, студентов первых курсов
и преподавателей школ и колледжей.
Учебное электронное издание
ISBN 978-5-4497-2560-8 © Белева Л.Ф., 2017
© ООО Компания«Ай Пи Ар Медиа», 2024
Учебное издание
Белева Людмила Федоровна
Технический редактор А.А. Агешкин
Компьютерная верстка, обложка С.С. Сизиумовой
Подписано к использованию 06.12.2023. Объем данных 6 Мб.
ООО Компания «Ай Пи Ар Медиа»
8 800 555 22 35 (бесплатный звонок по России)
E-mail: sale@iprmedia.ru
ОГЛАВЛЕНИЕ
Введение ...................................................................................................................... 6
1. Введение в програмирование.............................................................................. 7
1.1. Среды программирования ................................................................................ 7
1.2. История развития языка С++ ........................................................................... 8
1.3. Элементы языка С++......................................................................................... 9
2. Типы данных языка С++ . ................................................................................. 12
2.1. Целочисленные типы данных ........................................................................ 12
2.2. Плавающие (вещественные) типы данных .................................................. 13
2.3. Логический тип данных .................................................................................. 13
2.4. Тип данных (char) ............................................................................................ 15
3. Операции в языке С++ ....................................................................................... 17
3.1. Арифметические операции с целыми числами ............................................ 17
3.2. Операции сравнения ....................................................................................... 17
3.3. Оператор присваивания .................................................................................. 18
3.4. Инкремент и декремент .................................................................................. 18
3.5. Преобразование типов данных ...................................................................... 19
4. Линейные программы ........................................................................................ 21
4.1. Объявление переменной в С++ ...................................................................... 21
4.2. Потоковый ввода-вывода ............................................................................... 22
4.3. Структура программы ..................................................................................... 23
5. Управляющие структуры .................................................................................. 25
5.1. Условный оператор if-else .............................................................................. 25
5.2. Оператор варианта switch ............................................................................... 27
5.3. Операторы цикла: for, while, do while ........................................................... 28
5.4. Вложенные циклы ........................................................................................... 33
5.5. Основные алгоритмы для работы с циклами .............................................. 34
6. Функции ................................................................................................................ 38
6.1. Определение функции .................................................................................... 38
6.2. Стандартные математические функции ........................................................ 40
6.3. Прототип функции.......................................................................................... 42
6.4. Способы передачи данных в функции .......................................................... 42
4
7. Структурированные типы данных .................................................................. 44
7.1. Массивы ........................................................................................................... 44
7.2. Основные алгоритмы для работы с массивами ...........................................
7.3. Строки в C++ ................................................................................................... 49
7.4. Структуры ........................................................................................................ 52
7.5. Файлы ............................................................................................................... 54
8. Задачи .................................................................................................................... 58
8.1. Линейные алгоритмы ...................................................................................... 58
8.2. Операторы ветвления ...................................................................................... 59
8.3. Циклические алгоритмы ................................................................................. 65
8.4. Одномерные массивы ..................................................................................... 70
8.5. Функции ........................................................................................................... 73
8.6. Задачи по теме «Обработка строк» ............................................................... 75
8.7. Задачи по теме «Структуры» ......................................................................... 76
8.8. Файлы ............................................................................................................... 78
Литература ................................................................................................................ 81
46
5
ВВЕДЕНИЕ
Язык формирует наш способ мышления и определяет,
о чем мы можем мыслить.
Б.Л. Ворф
В настоящее время основное внимание в большинстве школ стало уделяться освоению информационных технологий. Эти тенденции отраженны и в новом стандарте по информатике. Однако без изучения раздела программирования курс информатики превращается в курс знакомства с информационными технологиями,
своеобразный курс пользователя.
К сожалению, овладеть основами программирования на современных алго­ритмических языках представляется невозможным в связи со скудным количе­ством часов, недостаточной мотивацией у учащихся, а также нежеланием препо-
давателей заниматься программированием.
Всем известные слова Андрея Петровича Ершова «Программирование — вторая грамотность» давно уже не лозунг. Тем не менее, контингент школьни-
ков у которых интерес к изучению программирования существует. Несомненно,
существуют и школы, в которых хотят и изучают языки программирования.
Естественно отсюда возникает и вопрос: Какой язык программирования вы­брать для школьного программирования? Задача, которую следует ставить при
первоначальном изучении программирования, — освоение основ структурной ме-
тодики программирования. С методической точки зрения, Pascal и С++ идеально
подходят на эту роль.
C++ компилируемый язык программирования общего назначения, сочетает свойства как высокоуровневых, так и низкоуровневых языков программирования. В сравнении с его предшественником, языком программирования Cи, наибольшее
внимание уделено поддержке объектно-ориентированного и обобщённого про-
граммирования. Язык программирования C++ широко используется для разработ-
ки программного обеспечения. А именно, создание разнообразных прикладных
программ, разработка операционных систем, драйверов устройств, а также видео
игр и многое другое.
6
1. ВВЕДЕНИЕ В ПРОГРАМИРОВАНИЕ
Замечание:
Процесс превращения обычного текста в инструкции процессору в виде exe-
файла и называется компиляцией, а программа, создающая из исходника файл exe,
называется компилятором.
1.1. СРЕДЫ ПРОГРАММИРОВАНИЯ
Программа — это детальное и законченное описание алгоритма средствами
языка программирования. Исполнителем программы является компьютер. Для вы­полнения компьютером программа должна быть представлена в машинном ко-
де — последовательности чисел, понимаемых процессором. Написать программу в машинных кодах вручную достаточно сложно.
Поэтому возникла идея записывать программу на так называе-
мом алгоритмическом языке или языке программирования. Языки програм- мирования — специально разработанные искусственные языки, предназначенные исключительно для записи алгоритмов, исполнение которых поручается ЭВМ.
Обычный разговорный язык состоит из четырех основных элементов: сим­волов, слов, словосочетаний и предложений. Алгоритмический язык содержит по­добные элементы, только слова называют элементарными конструкциями, слово-
сочетания — выражениями, предложения — операторами. Алгоритмический язык
(как и любой другой язык), образуют три его составляющие: алфавит, синтаксис и
семантика.
Алфавит — фиксированный для данного языка набор символов (букв,
цифр, специальных знаков и т.д.), которые могут быть использованы при написа-
нии программы.
Синтаксис — правила построения из символов алфавита специальных кон- струкций, с помощью которых составляется алгоритм.
Семантика — система правил толкования конструкций языка. Таким обра­зом, программа составляется с помощью соединения символов алфавита в соот­ветствии с синтаксическими правилами и с учетом правил семантики.
Однако, текст программы, записанный с помощью языка программирования, должен быть преобразован в машинный код. Эта операция выполняется автомати-
чески с помощью специальной служебной программы, называемой транслятором.
Трансляторы делятся на два типа: интерпретаторы и компиляторы.
Интерпретатор переводит в машинный код и выполняет очередной оператор (команду) программы. Если команда повторяется, то интерпретатор рассматривает
ее как встреченную впервые.
Компилятор переводит в машинный код исходный текст программы цели-
ком. Поэтому достоинство компиляторов — быстродействие и автономность по­лучаемых программ. Достоинство интерпретаторов — их компактность, возмож-
7
8
ность остановить в любой момент выполнение программы, выполнить различные
преобразования данных и продолжить работу программы.
Примерами служебных программ — интерпретаторов являются GW Basic,
Лого, школьный алгоритмический язык, многие языки программирования баз дан-
ных. Компиляторами являются Turbo Pascal, С++, Delphi.
Средства создания программ
В общем случае для создания программ нужно иметь следующие компоненты:
• текстовый редактор — для набора исходного текста программы;
• компилятор — для перевода текста программы в машинный код;
• редактор связей — для сборки нескольких откомпилированных модулей в
одну программу;
• библиотеки функций — для подключения стандартных функций
к программе.
Современные системы программирования включают в себя все указанные
компоненты и называются интегрированными системами.
1.2. ИСТОРИЯ РАЗВИТИЯ ЯЗЫКА С++
Язык программирования C++ был разработан на основе языка С Бьярном
Страуструпом.
Авторство языка С принадлежит Денису Ритчи, сотруднику AT&T Bell Laboratories (1970 г.). Сначала язык программирования С был написан для созда­ния и поддержки операционной системы UNIX. До того времени все программы операционной системы UNIX были написаны либо на языке ассемблера, либо на
языке В, разработанном Кеном Томпсоном — создателем системы UNIX. Язык С —
это язык общего назначения и он может быть использован для написания различ­ных программ, но его популярность была связана в основном с операционной си-
стемой UNIX.
Особенность языка С заключается в том, что будучи языком высокого уров-
ня, он сохранил многие черты языка низкого уровня. Язык С расположен где-то
между языками очень высокого уровня и языками низкого уровня, и в этом его
сильные и одновременно слабые стороны. Как и язык ассемблера (язык низкого
уровня), язык программирования С может непосредственно управлять памятью компьютера. С другой стороны, С обладает чертами языков высокого уровня, по­этому программы на языке С читать и создавать легче, чем программы на языке ассемблера. Язык С является очень удобным для написания системных программ, но в программах на языке С для иных целей зачастую трудней разобраться, неже­ли в программах, написанных на других языках. Язык С также имеет меньше воз­можностей для автоматической проверки программ, чем некоторые друге языки
высокого уровня.
Чтобы преодолеть эти и другие недостатки языка С, Бьярн Страуструп из
AT&T Bell Laboratories в 1980 г. разработал на его основе язык программирования C++. Большая часть С — это подмножество языка C++, и, таким образом, боль­шинство С-программ являются также С++-программами. В программах на языке
C++ можно использовать тексты на языке С и обращаться к библиотечным функ-
циям языка С. Основное отличие языка C++ от С заключается в реализации объ­ектно-ориентированного подхода программирования — чрезвычайно мощного со­временного способа программирования.
Через несколько лет практического использования языка C++ стандартом языка фактически стала спецификация языка AT&T C++ release 2.0, разработанная под руководством Б. Страуструпа в Bell Laboratories фирмы AT&T. В настоящее время в Американском Национальном Институте Стандартов (ANSI) существует комитет по языку C++ (X3J16). Изданное в 1990 году описание языка с коммента­риями принято комитетом ANSI в качестве исходного материала для стандартиза-
ции C++. Последняя версия стандарта датирована 26 мая 1994 г.
В настоящее время широкое распространение получили различные реализа-
ции языка в системах Visual C++, Borland C++ x.x, Borland C++ Builder x и др.
1.3. ЭЛЕМЕНТЫ ЯЗЫКА С++
Замечание:
В С++ строчные и прописные буквы считаются разными.
Не рекомендуется начинать идентификаторы с символа подчеркивания.
Не рекомендуется использовать длинные имена.
Алфавит языка
Алфавит языка — это тот набор знаков (символов), который допустим в
данном языке. Такое определение справедливо и для языка человека, и для языков
программирования.
В языке С++ алфавит можно подразделить на следующие группы знаков:
• прописные и строчные латинские буквы (A, B, ..., Z, a, b, ..., z);
• арабские цифры (0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
• специальные знаки: » , { } | [ ] ( ) + — / % \ ; ' . : ? < = > _ ! & * # ~ ^;
• пробельные символы — это символы пробела, табуляции, перехода на но-
вую строку.
Алфавит C++ служит для построения слов, которые в C++ называются лек-
семами. Различают пять типов лексем:
• идентификаторы,
• ключевые слова,
• знаки (символы) операций,
• литералы,
• разделители.
9
Идентификаторы
Идентификаторы:
Не идентификаторы:
MYNAME
My nаme-содержит пробел
MY_name1
1name-начинается с цифры
My_name_1
name^1-содержит недопустимый символ ^
My_name
1n%-содержит недопустимый символ %
_MYName
for-ключевое слово
asm
double
new
switch
auto
else
operator
template
break
enum
private
this
case
extern
protected
throw
catch
float
public
try
char
for
register
typedef
class
friend
return
typeid
const
goto
short
union
continue
if
signed
unsigned
default
inline
sizeof
virtual
delete
int
static
void
do
long
struct
while
Идентификатор — последовательность символов и цифр, служащая для обо-
значения переменных, новых имен типов и т.п. Допустимыми символами являют-
ся: 'A'-'Z', 'a'-'z','_', '0'-'9'. Цифра не может быть первым символом.
Идентификатор не может совпадать с ключевым словом или литералами.
Ключевые слова в языке c++
Следующие идентификаторы зарезервированы для использования в качестве
ключевых слов и не могут использоваться иным образом:
Знак операции — это один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются.
Один и тот же знак может интерпретироваться по-разному в зависимости от
контекста. Все знаки операций за исключением [ ], ( ) и ? : представляют собой от-
дельные лексемы.
Литералы используются в тексте программы для обозначения числовых зна­чений, строк, символов или логических констант. Другими словами литерал пред-
ставляет собой постоянное значение, у которого нет имени.
Знаки операций
Литералы
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]