- •Н. А. Аленский основы программирования
- •§ 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
3.3. Операции отношения и логические операции
Эти операции возвращают true (любое ненулевое значение, например, единицу) или false (нуль). Логические операции выполняются, как и в других языках программирования или системах, согласно следующей таблице, где A и B — некоторые операнды (части) выражения со значением true или false. Например, в выражении x>0 && y>0, в котором x и y принимают вещественные значения, первым операндом A является x>0, a вторым операндом В — вторая часть y>0.
A |
B |
A && B |
A || B |
!B |
0 (x<=0) |
0 (y<=0) |
0 |
0 |
1 |
0 (x<=0) |
1 (y>0) |
0 |
1 |
0 |
1 (x>0) |
0 (y<=0) |
0 |
1 |
1 |
1 (x>0) |
1 (y>0) |
1 |
1 |
0 |
В результате операции && получается true (1) тогда и только тогда, когда оба операнда истинны — в нашем примере оба числа положительные. В остальных случаях получается false (0).
В результате операции || получается true, если один из операндов либо оба истинны, то есть в примере одно из чисел или оба положительные. Результатом является false только в том случае, если оба операнда ложны.
Операция отрицания (!) одноместная и меняет значение одного операнда на противоположное, то есть true на false и false на true.
Для закрепления этих операций необходимо научиться выполнять упражнения двух типов:
-
дана некоторая область плоскости. Записать логическое выражение, принимающее значение “истина” тогда и только тогда, когда точка с координатами (x, y) принадлежит указанной области;
-
наоборот, по заданному выражению нарисовать область плоскости, в которой и только которой указанное выражение истинно.
Такие задачи, в зависимости от того, какие логические операции используются при определении областей, можно классифицировать следующим образом:
-
в выражении не используются логические операции. Например, точки первой и третьей четвертей, включая и оси координат, определяются с помощью выражения x*y>=0;
-
используется только операция &&, если область состоит из одной части. Например, точки внутри треугольника с вершинами (1,1), (0,0) и (-1,1) определяются так: у>=abs(x) && y<=1;
-
используется только операция ||, если область состоит из нескольких относительно несложных частей, для определения каждой из которых достаточно одного неравенства. Область, состоящая из левой половины круга радиуса 2 с центром в начале координат, включая и полуокружность, и точек справа от оси OY определяется так: x>0 || x*x+y*y<=4;
-
используются как операция &&, так и операция ||, если область “склеена” из нескольких частей. Каждая из них определяется с помощью нескольких неравенств, соединённых операцией &&. Например, ту же левую половину круга радиуса 2, включая и его границы, и правую относительно оси OY часть полукольца, образованного окружностями радиусов 2 и 3 с центром в начале координат, можно определить так:
-
x<=0 && x*x+y*y<=4 || x>=0 && x*x+y*y>=4 && x*x+y*y<=9;
-
используется операция отрицание (!), если легче определить область, которой точки не принадлежат, или некоторую часть уже определённой области надо “выбросить” из неё. Например, так легче определить круг радиуса 5 с центром в начале координат, из которого выброшен треугольник с вершинами (1,1), (0,0) и (–1,1): x*x+y*y<=25 && ! ( у>=abs(x) && y<=1);