- •Н. А. Аленский основы программирования
- •§ 1. Структура простой программы. Ввод, вывод
- •1.1. Пример первой программы
- •1.2. Директива препроцессора #include
- •1.3. Структура программы
- •1.4. Комментарии
- •1.5. Ключевые слова и идентификаторы
- •1.6. Простой ввод, вывод
- •§ 2. Оператор if
- •2.1. Полная форма
- •2.2. Сокращённая форма
- •2.3. Особенности оператора
- •Задачи и упражнения
- •§ 3. Выражения
- •3.1. Константы
- •Непосредственно записать в выражении;
- •3.2. Операции и их приоритет
- •3.3. Операции отношения и логические операции
- •3.4. Особенности операции присваивания
- •3.5. Тернарная операция (?)
- •Задачи и упражнения
- •§ 4. Оператор выбора switch
- •Задачи и упражнения
- •§ 5. Операторы цикла
- •5.1. Оператор while c предусловием
- •Правила использования и особенности оператора while
- •5.2. Оператор цикла do … while c постусловием
- •5.3. Оператор for
- •5.4. Операторы continue и break
- •Задачи и упражнения
- •§ 6. Введение в одномерные массивы
- •6.1. Что такое массив. Объявление одномерного массива
- •6.2. Способы определения массивов
- •6.3. Вывод одномерного массива. Функции printf и сprintf
- •6.4. Некоторые типы простых задач при работе с массивами
- •Задачи и упражнения
- •§ 1. Функции без результатов. Передача параметров по значению
- •1.1. Примеры. Правила оформления и вызова функций
- •Void line2(int Len, y, char ch) // ошибка,
- •1.2. Формальные и фактические параметры
- •1.3. Передача параметров по значению
- •§ 2. Функции типа void с несколькими результатами
- •2.1. Пример
- •2.2. Что такое ссылочный тип
- •2.3. Возврат значений из функции с помощью ссылочного типа
- •Задачи и упражнения
- •§ 3. Функции с одним результатом. Оператор return
- •Задачи и упражнения
- •§ 4. Одномерные массивы в функциях. Сортировка массива
- •Задачи и упражнения.
- •§ 5. Область действия имён. Локальные и глобальные имена
- •§ 6. Дополнительные возможности функций
- •Встраиваемые функции (inlineфункции)
- •6.2. Параметры по умолчанию
- •6.3. Перегрузка функций
- •§ 1. Примеры
- •§ 2. Класс. Поля и методы класса
- •§ 3. Создание объектов. Конструктор
- •Задачи и упражнения.
- •Глава 4 простые типы данных § 1. Целый тип
- •1.1. Битовые операции
- •1.2. Использование битовых операций
- •1.3. Упаковка и распаковка информации
- •Задачи и упражнения.
- •§ 2. Логический тип
- •§ 3. Символьный тип
- •Глава 5 матрицы (двухмерные массивы) § 1. Объявление, способы определения
- •§ 2. Вывод матриц
- •§ 3. Типы алгоритмов на обработку матриц
- •3.1. Построчная обработка
- •3.2. Обработка матрицы по столбцам
- •3.3. Обработка всей матрицы
- •3.4. Обработка части матрицы
- •3.5. Преобразование матрицы
- •Упражнения.
- •3.6. Построение матриц
- •§ 4. Передача матрицы в качестве параметра функции
- •Задачи и упражнения.
- •Б. Обработка матрицы по столбцам.
- •Даны две матрицы a и b одинаковой размерности. Построить матрицу с, каждый элемент которой определяется по правилу:
- •Список рекомендуемой литературы
- •Сборники задач по программированию
- •Оглавление
- •Задачи и упражнения …….……………………………………...12
- •3.1. Константы ………………………………………………...…14
АКАДЕМИЯ ПОСЛЕДИПЛОМНОГО ОБРАЗОВАНИЯ
Кафедра информатики
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
МЕХАНИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ
Кафедра численных методов и программирования
Н. А. Аленский основы программирования
НА ЯЗЫКЕ С++
Учебное пособие
Минск 2005
Р е ц е н з е н т ы:
зав. кафедрой прикладной математики и информатики БГПУ им. М. Танка канд. физ.мат. наук, проф. А. И. Павловский;
зав. каф. технологии инженерного образования Респ. Института инновационных технологий БНТУ канд. техн. наук доцент В. И. Клевзович.
АННОТАЦИЯ
В учебном пособии дано теоретическое описание основных типов алгоритмов, операций, операторов, функций, простых и структурированных типов данных, в том числе классов. В практической части приведено большое количество как решённых в виде отлаженных программ задач, так и заданий и упражнений для самостоятельной работы.
Адресуется прежде всего тем, кто начинает программировать. Стиль и методика изложения материала таковы, что для его успешного изучения не требуется предварительной подготовки по программированию. Преподаватели найдут в пособии много интересных и полезных задач, которые можно использовать также при изучении других систем. Пособие будет полезным также и опытным программистам, желающим освоить с самого начала язык С++ и ознакомиться с основами современного объектноориентированного метода программирования.
Г л а в а 1 БЫСТРОЕ ВВЕДЕНИЕ В ЯЗЫК С++
В этой главе будут рассмотрены ввод с экрана и вывод на экран, операторы, некоторые операции и работа с одномерными массивами без использования указателей.
§ 1. Структура простой программы. Ввод, вывод
1.1. Пример первой программы
Рассмотрим следующую простую программу, не содержащую циклов и функций пользователя:
#include <iostream.h>
#include <conio.h>
int main()
{ int a, b, r ; // Объявление трёх переменных
// Вводим два числа
cout<<"The first number "; cin>>a;
cout<<"The second number "; cin>>b;
cout<<" Result of ";
/* В любом случае после ввода выводим “Result of ”.
Если оба числа положительны, то вычисляем произведение двух введённых чисел и выводим слово “multiplication:”. В противном случае, то есть если только одно из них (любое) положительное, а второе неположительное или если оба неположительные, вычисляем сумму и выводим слово “sum:”. */
if (a>0 && b>0)
{ r=a*b;
cout<<" multiplication: ";
}
else { r=a+b;
cout<<" sum: ";
}
/*После текста “Result of multiplication:” или “Result of sum:” выводим r –– полученное значение произведения или суммы.*/
cout<<r ;
getch();
return 0;
}
1.2. Директива препроцессора #include
В первых двух строках программы записана одна из директив препроцессора (команд препроцессора, директив компиляции или инструкций компилятору). Директива #include предлагает компилятору включить другой исходный файл с указанным именем. В нашем примере подключаются заголовочные файлы стандартной библиотеки ввода, вывода. Другими словами, если мы используем стандартную функцию (или объект стандартного класса), то необходимо узнать (например, из Help или другого источника), в каком файле находится так называемый прототип (заголовок) функции и записать соответствующую директиву. Например, если бы в программе использовали стандартную математическую функцию типа cos, abs и т. п., то необходимо было бы записать #include <math.h>.
Некоторые правила использования директивы include:
-
имя файла заключается в <>;
-
в одной директиве можно указать только один файл. Поэтому если подключаем несколько файлов, то записываем соответствующее количество директив;
-
в одной строке можно записать только одну директиву;
-
каждая из них должна начинаться с символа #;
-
в конце директивы в отличие от операторов символ “точка с запятой” не пишется;
-
расширение файла .h можно не указывать. Но для совместимости с системой C++Builder желательно имя файла записывать с расширением.
Другие возможности include и директивы компиляции будут рассмотрены во втором семестре.
Директива include частично похожа на ключевое слово uses языка Turbo Pascal, с помощью которого определяются используемые в программе модули (например, uses crt).