- •Н. А. Аленский основы программирования
- •§ 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
1.6. Простой ввод, вывод
Для вывода информации на экран можно использовать следующую “команду”:
cout<<элемент1<<элемент2<<…<<элементN;
Здесь в качестве элемента могут быть:
-
переменная одного из указанных выше типов, например, cout<<r;
-
строковая константа, то есть текст, который, как и в других операторах, должен записываться, в отличие от Pascal, в двойных кавычках. В тексте можно использовать так называемые управляющие символы, признаком которых является обратная наклонная черта. Один из них, ‘\n’, означает, что информация, выводимая после него, будет размещаться с новой строки экрана. Этот символ может располагаться не только в начале строковой константы, но и в её середине, в конце, а также строковая константа может содержать только этот единственный символ (см. далее примеры);
-
числовая константа. При изучении некоторых элементов языка с использованием компьютера можно, например, написать cout<<5. В реальных программах это используется редко;
-
выражение, записанное в круглых скобках, например, cout<<(a+b);
-
ключевое слово endl, которое называют манипулятор вывода. После этого слова информация будет выводиться с новой строки.
Рассмотрим следующий фрагмент программы:
int a=2, b=5;
cout<<”\n Сумма ”<<(a+b)<<”\n Произведение “<<(a*b); // или
cout<<endl<<” Сумма ”<<(a+b)<<endl<<” Произведение “<<(a*b);
В результате обязательно с начала строки будет выведено Сумма 7, а с начала следующей строки — Произведение 10.
Ввод информации с экрана можно выполнить с помощью “команды”
cin>>элемент1>>элемент2>>…>>элементN;
где в качестве элемента может быть переменная, но не выражение и не константа. При выполнении этого оператора программа останавливается и ждёт ввода необходимого количества данных, которые набираются по правилам записи констант. Перед cin желательно с помощью cout выводить необходимую подсказку, т. е. текст.
Замечания.
-
До изучения объектно–ориентированного программирования cout и cin будем называть “командами”, хотя это объекты стандартного класса, для которых перегружены операци << и >>. Подробности в третьем семестре.
-
Для вывода можно использовать функцию printf и cprintf (см. § 4), а для ввода — функцию scanf (2-й семестр), подключив заголовочный файл с помощью #include <stdio.h>.
§ 2. Оператор if
2.1. Полная форма
Полная форма if следующая:
if ( выражение) { оператор 1;
…
оператор N;
} else
{ оператор 1; …
оператор K; }
Здесь if и else — ключевые слова, которые записываются только маленькими буквами. Выражение, которое записывается в круглых скобках, чаще всего (но не обязательно) представляет собой логическое выражение со значением true или false, содержащее арифметические, логические операции, операции сравнения и некоторые другие. Перечень и приоритет некоторых операций приведён в § 3.
Выполняется оператор следующим образом. Если выражение истинно, то выполняется первая последовательность из N операторов, вторая пропускается и выполняется оператор, записанный после if. Если выражение ложно, то первая последовательность пропускается, выполняется вторая группа операторов, а затем оператор, записанный после if.
Фигурные скобки, влияющие на выполнение алгоритма, обязательны, если в последовательности более одного оператора, и необязательны, если оператор один. Так, если в нашем примере (§ 1) опустим фигурные скобки после else, то слово “sum: ” будет выводиться в любом случае, независимо от значения выражения. Если их не запишем в первой группе операторов, то это приведёт к синтаксической ошибке на этапе компиляции, так как else будет рассматриваться как самостоятельный оператор, не связанный с if. Выполняться программа не будет. В сложных алгоритмах не всегда очевидно, сколько операторов в первой и (или) второй ветви, один или более одного. В таком случае лучше записать {}. Ошибки не будет, если они не нужны.