
- •Приложение р (обязательное) Программный код 6.1.1
- •Приложение с (обязательное) Программный код 6.2.1
- •Приложение т (обязательное) Программный код 6.3.1
- •Приложение у (обязательное) Программный код 7.1.1
- •Приложение ф (обязательное) Программный код 7.2.1
- •Приложение х (обязательное) Программный код 8.1.1
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ
(национальный исследовательский университет)»
(МАИ)
Кафедра «Технология испытаний и эксплуатации»
Отчёт по лабораторным работам
по дисциплине «Информатика»
(2 семестр)
Студент Беспятых М.А
Группа Т12О-102С-19
Дата сдачи
Подпись
Проверил
Дата
Подпись
Содержание
Y
Введение 8
1 Лабораторная работа №1. Простейшие программы 9
1.1 Задание № 1.1 9
1.1.1 Задание 9
1.1.2 Алгоритм 9
1.1.3 Программный код 9
1.1.4 Тесты 9
1.2 Задание № 1.2 10
1.2.1 Задание 10
1.2.2 Алгоритм 10
1.2.3 Программный код 10
1.2.4 Тесты 10
2 Лабораторная работа №2. Типы данных и операторы языка «C++» 12
2.1 Задание № 2.1.1 12
2.1.1 Задание 12
2.1.2 Алгоритм 12
2.1.3 Программный код 13
2.1.4 Тесты 13
2.2 Задание № 2.2.1 14
2.2.1 Задание 14
2.2.2 Алгоритм 14
2.2.3 Программный код 14
2.2.4 Тесты 15
2.3 Задание № 2.2.1 16
2.3.1 Задание 16
2.3.2 Алгоритм 16
2.3.3 Программный код 16
2.3.4 Тесты 17
3 Лабораторная работа №3. Управляющие конструкции. 18
3.1 Задание № 3.1.1 18
3.1.1 Задание 18
3.1.2 Алгоритм 18
3.1.3 Программный код 19
3.1.4 Тесты 19
3.2 Задание № 3.2.1 20
3.2.1 Задание 20
3.2.2 Алгоритм 20
3.2.3 Программный код 21
3.2.4 Тесты 21
3.3 Задание № 3.3.1 22
3.3.1 Задание 22
3.3.2 Алгоритм 22
3.3.3 Программный код 23
3.3.4 Тесты 23
4 Лабораторная работа №4. Управляющие конструкции. Циклы. 25
4.1 Задание № 4.1.1 25
4.1.1 Задание 25
4.1.2 Алгоритм 25
4.1.3 Программный код 25
4.1.4 Тесты 26
4.2 Задание № 4.2.1 27
4.2.1 Задание 27
4.2.2 Алгоритм 27
4.2.3 Программный код 28
4.2.4 Тесты 28
5 Лабораторная работа №5. Массивы и указатели 29
5.1 Задание № 5.1.1 29
5.1.1 Задание 29
5.1.2 Алгоритм 29
5.1.3 Программный код 29
5.1.4 Тесты 30
5.2 Задание № 5.2.1 31
5.2.1 Задание 31
5.2.2 Алгоритм 31
5.2.3 Программный код 32
5.2.4 Тесты 32
5.3 Задание № 5.3.1 33
5.3.1 Задание 33
5.3.2 Алгоритм 33
5.3.3 Программный код 34
5.3.4 Тесты 34
6 Лабораторная работа №6 Функции и ссылки 36
6.1 Задание № 6.1.1 36
6.1.1 Задание 36
6.1.2 Алгоритм 36
6.1.3 Программный код 37
6.1.4 Тесты 37
6.2 Задание № 6.2.1 38
6.2.1 Задание 38
6.2.2 Алгоритм 38
6.2.3 Программный код 39
6.2.4 Тесты 39
6.3 Задание № 6.3.1 40
6.3.1 Задание 40
6.3.2 Алгоритм 40
6.3.3 Программный код 41
6.3.4 Тесты 41
7 Лабораторная работа №7 Структуры и работа с ними 42
7.1 Задание № 7.1.1 42
7.1.1 Задание 42
7.1.2 Алгоритм 42
7.1.3 Программный код 44
7.1.4 Тесты 44
7.2 Задание № 7.2.1 45
7.2.1 Задание 45
7.2.2 Алгоритм 45
7.2.3 Программный код 46
7.2.4 Тесты 46
8 Лабораторная работа №8 Классы и объекты 47
8.1 Задание № 8.1.1 47
8.1.1 Задание 47
8.1.2 Алгоритм 47
8.1.3 Программный код 48
8.1.4 Тесты 48
ПРИЛОЖЕНИЕ А (обязательное) 50
Программный код 1.1.1 50
ПРИЛОЖЕНИЕ Б (обязательное) 51
Программный код 1.2.1 51
ПРИЛОЖЕНИЕ В (обязательное) 52
Программный код 2.1.1 52
ПРИЛОЖЕНИЕ Г (обязательное) 53
Программный код 2.2.1 53
ПРИЛОЖЕНИЕ Д (обязательное) 54
Программный код 2.3.1 54
ПРИЛОЖЕНИЕ Е (обязательное) 55
Программный код 3.1.1 55
ПРИЛОЖЕНИЕ Ж (обязательное) 56
Программный код 3.2.1 56
ПРИЛОЖЕНИЕ И (обязательное) 57
Программный код 3.3.1 57
ПРИЛОЖЕНИЕ К (обязательное) 59
Программный код 4.1.1 59
ПРИЛОЖЕНИЕ Л (обязательное) 60
Программный код 4.2.1 60
ПРИЛОЖЕНИЕ М (обязательное) 61
Программный код 5.1.1 61
ПРИЛОЖЕНИЕ Н (обязательное) 62
Программный код 5.2.1 62
ПРИЛОЖЕНИЕ П (обязательное) 63
Программный код 5.3.1 63
ПРИЛОЖЕНИЕ Р (обязательное) 64
Программный код 6.1.1 64
ПРИЛОЖЕНИЕ С (обязательное) 65
Программный код 6.2.1 65
ПРИЛОЖЕНИЕ Т (обязательное) 67
Программный код 6.3.1 67
ПРИЛОЖЕНИЕ У (обязательное) 68
Программный код 7.1.1 68
ПРИЛОЖЕНИЕ Ф (обязательное) 70
Программный код 7.2.1 70
ПРИЛОЖЕНИЕ Х (обязательное) 71
Программный код 8.1.1 71
Введение
Основными целями и задачами выполнения лабораторных работ по информатике ставятся освоение и понимания языка программирования C++, получение навыков построения вычислительных программ для выполнения задач различного класса.
1 Лабораторная работа №1. Простейшие программы
1.1 Задание № 1.1
1.1.1 Задание
Условие задачи: вывести при помощи функции «printf()» текст в разных строках.
1.1.2 Алгоритм
Блок-схема алгоритма представлена на рисунке 1.
Рисунок 1 – Алгоритм программы, которая выводит текст
1.1.3 Программный код
Программный код, реализующий алгоритм (рисунок 1), представлен в приложении A.
1.1.4 Тесты
Тестирование программы показало, что программа работает исправно и выводит необходимую информацию в каждой строке. Результат представлен на рисунке 2.
Рисунок 2 – Результат программы, которая выводит текст
1.2 Задание № 1.2
1.2.1 Задание
Условие задачи: вывести в разных строках текст, используя конструкцию std::cout<<.
1.2.2 Алгоритм
Блок-схема алгоритма представлена на рисунке 3.
Рисунок 3 – Алгоритм программы, которая выводит текст в разных строках
1.2.3 Программный код
Программный код, реализующий алгоритм (рисунок 3), представлен в приложении Б.
1.2.4 Тесты
Тестирование программы показало, что программа работает исправно и выводит необходимую информацию в каждой строке. Результат представлен на рисунке 4.
Рисунок 4 – Результат программы, которая выводит текст с использованием конструкции std::cout<<.
2 Лабораторная работа №2. Типы данных и операторы языка «C++»
2.1 Задание № 2.1.1
2.1.1 Задание
Условие задачи: вычислить значение N по указанной формуле (1)
|
(1) |
2.1.2 Алгоритм
Блок-схема алгоритма представлена на рисунке 5.
Рисунок 5 – Алгоритм программы, которая вычисляет значение N
2.1.3 Программный код
Программный код, реализующий алгоритм (рисунок 5), представлен в приложении В.
2.1.4 Тесты
Тестирование программы показало корректную работу. При вводе значения 0 программа не уходит в ошибку, так как использована функция возведения в степень, а не деления. Результаты входных и выходных данных представлены в таблице 1.
Таблица 1 – Результат тестирования 2.1.1
Ввод |
1 |
33 |
-5 |
100 |
0 |
6 |
Вывод |
24 |
2318 |
36 |
20408 |
8 |
105 |
2.2 Задание № 2.2.1
2.2.1 Задание
Условие задачи: поменять местами значения целочисленных переменных без использования дополнительных переменных.
2.2.2 Алгоритм
Блок-схема алгоритма представлена на рисунке 6.
Рисунок 6 – Алгоритм программы, которая меняет значение 2 переменных, не используя третью.
2.2.3 Программный код
Программный код, реализующий алгоритм (рисунок 6), представлен в приложении Г.
2.2.4 Тесты
Значения переменных меняются местами без использования дополнительных переменных. Принцип работы алгоритма основан на побитовом исключающем ИЛИ( XOR) Всё работает.
2.3 Задание № 2.2.1
2.3.1 Задание
Условие задачи: вывести на экран числа вдвое большее и вдвое меньшее введённого, не используя операторы умножения и деления.
2.3.2 Алгоритм
Блок-схема алгоритма представлена на рисунке 7.
Рисунок 7 – Алгоритм программы, которая удваивает , а так же уменьшает число в двое
2.3.3 Программный код
Программный код, реализующий алгоритм (рисунок 7), представлен в приложении Д.
2.3.4 Тесты
Метод вывода значения в два раза больше и два раза меньше введенного значения основан на смещении битов влево и вправо соответственно. Результат представлен в таблице 2.
Таблица 2 – Входные и выходные данные программы 2.3.1
a |
5 |
10 |
3 |
25 |
min |
2 |
5 |
1 |
12 |
max |
10 |
20 |
6 |
50 |
3 Лабораторная работа №3. Управляющие конструкции.
3.1 Задание № 3.1.1
3.1.1 Задание
Условие задачи: ввести координаты x и y точки и определить, принадлежит ли она заштрихованной области, которая представлена на рисунке 8
Рисунок 8 – Рисунок к заданию 3.1.1
3.1.2 Алгоритм
Блок-схема алгоритма представлена на рисунке 9.
Рисунок 9 – Алгоритм программы, которая определяет, находится ли точка в закрашенной области
3.1.3 Программный код
Программный код, реализующий алгоритм (рисунок 9), представлен в приложении Е.
3.1.4 Тесты
Тестирование показало о корректной работе алгоритма. Результаты представлены на таблице 3.
Таблица 3 – Результат тестирования 2.1.1
Ввод |
1 |
33 |
-5 |
100 |
0 |
6 |
Вывод |
24 |
2318 |
36 |
20408 |
8 |
105 |
3.2 Задание № 3.2.1
3.2.1 Задание
Условие задачи: вывести “yes” если введенный символ обозначает строчную или заглавную гласную букву латинского алфавита. В остальных случаях “no”.
3.2.2 Алгоритм
Блок-схема алгоритма представлена на рисунке 10.
Рисунок 10 – Алгоритм программы, которая проверяет строку на верхний регистр
3.2.3 Программный код
Программный код, реализующий алгоритм (рисунок 10), представлен в приложении Ж.
3.2.4 Тесты
Тестирование алгоритма приведено в таблице 4. Программа работает корректно.
Таблица 3 – Ввод и вывод программы 3.2.1
Ввод |
a |
c |
D |
E |
Вывод |
Yes |
No |
No |
Yes |
3.3 Задание № 3.3.1
3.3.1 Задание
Условие задачи: определить количество полей, на которые может переместиться шахматный конь.
3.3.2 Алгоритм
Блок-схемы алгоритмов представлены на рисунках 11 и 12.
Рисунок 11 – Алгоритм программы, которая рассчитывает ходы коня
Рисунок 12 – Продолжение алгоритма расчета ходов
3.3.3 Программный код
Программный код, реализующий алгоритм (рисунки 11 и 12), представлен в приложении И.
3.3.4 Тесты
Алгоритм работы программы основан на проверке принадлежности конечной точки хода коня к полю, которое задано пользователем. Также введено исключение, если пользователь вводит положение коня вне размера поля. Данные ввода и вывода приведены в таблице 5.
Таблица 4 – Данные программы 3.3.1
Размеры поля |
8;8 |
5;5 |
4;3 |
3;2 |
Начальная точка коня |
4;4 |
2;1 |
3;2 |
45;666 |
Вывод |
8 |
3 |
2 |
Invalid input |
4 Лабораторная работа №4. Управляющие конструкции. Циклы.
4.1 Задание № 4.1.1
4.1.1 Задание
Условие задачи: вычислить и вывести значения функции (2) на интервале от 2 до 3.
|
(2) |
4.1.2 Алгоритм
Блок-схема алгоритма представлена на рисунке 1.
Рисунок 13 – Алгоритм программы, которая находит сумму ряда
4.1.3 Программный код
Программный код, реализующий алгоритм (рисунок 13), представлен в приложении К.
4.1.4 Тесты
Программа работает корректно. Результат работы программы представлен на рисунке 13.
Рисунок 13 – Результат программы, которая находит сумму ряда
4.2 Задание № 4.2.1
4.2.1 Задание
Условие задачи: вычислить сумму ряда (3).
|
(3) |
4.2.2 Алгоритм
Блок-схема алгоритма представлена на рисунке 14.
Рисунок 14 – Алгоритм программы, которая находит сумму ряда при заданном n
4.2.3 Программный код
Программный код, реализующий алгоритм (рисунок 14), представлен в приложении Л.
4.2.4 Тесты
Тестирование программы показало корректный вывод суммы ряда. Результаты приведены в таблице 6.
Таблица 5 – Входные и выходные данные программы 4.2.1
N |
1 |
2 |
3 |
4 |
5 |
S |
0.5 |
0.25 |
0.066 |
0.012 |
0.002 |
5 Лабораторная работа №5. Массивы и указатели
5.1 Задание № 5.1.1
5.1.1 Задание
Условие задачи: вывести на экран строку, добавив в начало и конец каждого слова “*”.
5.1.2 Алгоритм
Блок-схема алгоритма представлена на рисунке 15.
Рисунок 15 – Алгоритм программы, которая заменяет пробелы звездочкой
5.1.3 Программный код
Программный код, реализующий алгоритм (рисунок 15), представлен в приложении М.
5.1.4 Тесты
Тестирование показало корректную работу программы. Результат представлен на рисунке 16.
Рисунок 16 –
5.2 Задание № 5.2.1
5.2.1 Задание
Условие задачи: создать массив из n элементов и заполнить числами 1, n, 2, n-1, 3, n-2, 4, n-3.
5.2.2 Алгоритм
Блок-схема алгоритма представлена на рисунке 17.
Рисунок 17 – Алгоритм программы, которая заполняет массив числами
5.2.3 Программный код
Программный код, реализующий алгоритм (рисунок 17), представлен в приложении Н.
5.2.4 Тесты
Тестирование программы показала корректный вывод значений массива по заданному правилу. Результат представлен на рисунке 18.
Рисунок 18 – Результат заполнения массива
5.3 Задание № 5.3.1
5.3.1 Задание
Условие задачи: создать матрицу, найти в ней наибольший элемент и сумму столбца, в котором находиться наибольший элемент.
5.3.2 Алгоритм
Блок-схема алгоритма представлена на рисунке 19.
Рисунок 19 – Алгоритм программы, которая работает с матрицей
Рисунок 20 – Продолжение алгоритма, работающего с матрицей
5.3.3 Программный код
Программный код, реализующий алгоритм (рисунок 20), представлен в приложении П.
5.3.4 Тесты
Тестирование программы представлено на рисунке 21. Матрица создается нужного размера, а сумма считается корректно.
Рисунок 21 – Результат работы с матрицей
6 Лабораторная работа №6 Функции и ссылки
6.1 Задание № 6.1.1
6.1.1 Задание
Условие задачи: создать функцию для вычисления длины медианы треугольника с известными длинами сторон.
6.1.2 Алгоритм
Блок-схемы алгоритмов представлены на рисунках 22 и 23.
Рисунок 22 – Алгоритм основной программы
Рисунок 23 – Алгоритм программы, вычисляющий медиану
6.1.3 Программный код
Программный код, реализующий алгоритм, представлен в приложении Р.
6.1.4 Тесты
Тестирование показало корректную работу программы. Результат представлен на рисунке 24.
Рисунок 24 – Результат вычислений
6.2 Задание № 6.2.1
6.2.1 Задание
Условие задачи: написать функцию для нахождения наибольшего и наименьшего из трёх чисел.
6.2.2 Алгоритм
Блок-схемы алгоритмом представлены на рисунках 25 и 26.
Рисунок 25 – Алгоритм основной программы, которая находит ним. и наиб. из трех чисел
Рисунок 26 – Алгоритм программы, которая находит ним. и наиб. из трех чисел
6.2.3 Программный код
Программный код, реализующий алгоритм представлен в приложении С.
6.2.4 Тесты
Тестирование показало о корректном нахождении максимального и минимального значения из трёх введённых. Входные и выходные данные представлены в таблице 7.
Таблица 6 Данные работы программы 6.2.1
Входные данные |
5, 4, 1 |
2, 15, 133 |
-25, 26, 3 |
0, 0, 0 |
Минимальное |
1 |
2 |
-25 |
0 |
Максимальное |
5 |
133 |
26 |
0 |
6.3 Задание № 6.3.1
6.3.1 Задание
Условие задачи: создать функцию для циклического сдвига массива вправо.
6.3.2 Алгоритм
Блок-схемы алгоритмом представлены на рисунках 27 и 28.
Рисунок 27 – Алгоритм основной программы
Рисунок 28 – Алгоритм программы, которая сдвигает массив
6.3.3 Программный код
Программный код, реализующий алгоритм, представлен в приложении Т.
6.3.4 Тесты
Результат сдвига массива можно увидеть на рисунке 29. Сдвиг массива происходи циклически, то есть последний элемент перемещается на место первого, а не уничтожается.
Рисунок 29 – Результат сдвига массива
7 Лабораторная работа №7 Структуры и работа с ними
7.1 Задание № 7.1.1
7.1.1 Задание
Условие задачи: создать тип данных для хранения информации о книге. Реализовать поиск и вывод списка книг одного из авторов.
7.1.2 Алгоритм
Блок-схемы алгоритмов представлены на рисунках 30, 31, 32.
Рисунок 30 – Алгоритм основной программы
Рисунок 31 – Алгоритм программы, которая находит книги по автору
Рисунок 32 – Алгоритм программы, которая находит книгу по номеру
7.1.3 Программный код
Программный код, реализующий алгоритм, представлен в приложении У.
7.1.4 Тесты
Тестирование показало корректную работу программы. Результаты представлены на рисунках 33 и 34.
Рисунок 33 –
Рисунок 34 –
7.2 Задание № 7.2.1
7.2.1 Задание
Условие задачи: написать функцию для нахождения наибольшего и наименьшего из трёх чисел.
7.2.2 Алгоритм
Блок-схемы алгоритмов представлены на рисунках 35, 36 и 37.
Рисунок 35 – Алгоритм основной программы, в которой складываются строки
Рисунок 36 – Алгоритм программы, которая складывает две строки
Рисунок 37 – Алгоритм программы, которая складывает две строки и сохраняет в первой
7.2.3 Программный код
Программный код, реализующий алгоритм, представлен в приложении Ф.
7.2.4 Тесты
Тестирование показало корректную работу программы. Результат представлен на рисунке 38.
Рисунок 38 –
8 Лабораторная работа №8 Классы и объекты
8.1 Задание № 8.1.1
8.1.1 Задание
Условие задачи: создать тип данных для хранения информации о книге. Реализовать поиск и вывод списка книг одного из авторов.
8.1.2 Алгоритм
Блок-схемы алгоритмов представлены на рисунках 39, 40, 41.
Рисунок 39 – Алгоритм программы, которая складывает 2 строки в одну
Рисунок 40 – Алгоритм программы, которая складывает 2 строки
8.1.3 Программный код
Программный код, реализующий алгоритм, представлен в приложении Х.
8.1.4 Тесты
Тестирование показало корректную работу программы. Результат представлен на рисунке 41.
Рисунок 41 – Результаты складывания 2 строк
ПРИЛОЖЕНИЕ А (обязательное)
Программный код 1.1.1
#include <conio.h>
#include <iostream>
void main() {
setlocale(LC_ALL, "Russian");
printf("Беспятых МА \n Т12О-102С-19 \n ИЛА");
_getch();
}
ПРИЛОЖЕНИЕ Б (обязательное)
Программный код 1.2.1
#include <conio.h>
#include <iostream>
void main()
{
setlocale(LC_ALL, "Russian");
std::cout << "МАИ Аэрокосмические Наукоемкие Технологии и Производства \n";
std::cout << "Т12О-102С-19 Беспятых М.А.";
_getch();
}
ПРИЛОЖЕНИЕ В (обязательное)
Программный код 2.1.1
#include <conio.h>
#include <iostream>
#include <cmath>
void main()
{
int N;
std::cout << "Input N";
std::cin >> N;
std::cout << (2*pow(N,2)) + (4 * N) + 8 + (pow(10,-1) );
_getch();
}
ПРИЛОЖЕНИЕ Г (обязательное)
Программный код 2.2.1
#include <conio.h>
#include <iostream>
void main()
{
int a, b;
std::cout << "Input a \n";
std::cin >> a;
std::cout << "Input b \n";
std::cin >> b;
b = b ^ a;
a = a ^ b;
b = b ^ a;
std::cout << a << " " << b;
_getch();
}
ПРИЛОЖЕНИЕ Д (обязательное)
Программный код 2.3.1
#include <conio.h>
#include <iostream>
void main()
{
unsigned int a, min, max;
std::cout << "Input number ";
std::cin >> a;
min = a >> 1;
max = a << 1;
std::cout << min << "\n";
std::cout << max;
_getch();
}
ПРИЛОЖЕНИЕ Е (обязательное)
Программный код 3.1.1
#include <conio.h>
#include <iostream>
void main()
{
int x, y;
std::cout << "Input x \n";
std::cin >> x;
std::cout << "Input y \n";
std::cin >> y;
if (y > ((x + 2) / 2) && (y>0))
{
std::cout << "yes";
}
else if (y > 2) {
std::cout << "yes";
}
else {
std::cout << "no";
}
_getch();
}
ПРИЛОЖЕНИЕ Ж (обязательное)
Программный код 3.2.1
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int i = 0, k = 0;
char ch;
string s = "aeiouAEIOU";
cout << "Symbol: "; cin >> ch;
while (s[i])
{
if (s[i] == ch) { k = 1; cout << "yes\n"; break; }
i++;
}
if (k == 0) cout << "no\n";
system("pause");
return 0;
}
ПРИЛОЖЕНИЕ И (обязательное)
Программный код 3.3.1
#include <conio.h>
#include <iostream>
void main()
{
int x, y, k, l, count;
count = 0;
std::cout << "Input x:";
std::cin >> x; //Длина поля
std::cout << "Input y:";
std::cin >> y; //Ширина поля
std::cout << "Input k:";
std::cin >> k; //Положение коня по длине
std::cout << "Input l:";
std::cin >> l; //Положение коня по ширине
if ((k >= 1) && (k <= x) && (l >= 1) && (l <= y))
{
if ((k + 2 <= x) && (l + 1 <= y)) { //1
count++;
}
if ((k + 1 <= x) && (l + 2 <= y)) { //2
count++;
}
if ((k - 2 <= x) && (l + 1 <= y) && (k-2 > 0)) { //3
count++;
}
if ((k - 1 <= x) && (l + 2 <= y) && (k-1 > 0)) { //4
count++;
}
if ((k - 2 <= x) && (l - 1 <= y) && (k-2 > 0) && (l-1 > 0)) { //5
count++;
}
if ((k - 1 <= x) && (l - 2 <= y) && (k -1> 0) && (l -2> 0)) { //6
count++;
}
if ((k + 2 <= x) && (l - 1 <= y) && (l -1> 0)) { //7
count++;
}
if ((k + 1 <= x) && (l - 2 <= y) && (l -2> 0)) { //8
count++;
}
std::cout << count;
}
else
{
std::cout << "Invalid input";
}
_getch();}
ПРИЛОЖЕНИЕ К (обязательное)
Программный код 4.1.1
#include <conio.h>
#include <iostream>
void main()
{
float x,y;
x = 2;
while (x < 3)
{
y = (pow(x, 2) + 4 * x + 4) / (2 * (pow(x, 2) + 1));
std::cout << y << "\n";
x = x + 0.02;
}
_getch();
}
ПРИЛОЖЕНИЕ Л (обязательное)
Программный код 4.2.1
#include <conio.h>
#include <iostream>
void main()
{
int n;
float s = 0;
float f = 1;
float d = 1;
std::cout << "Input N \n";
std::cin >> n;
for (int i=1; i <=n; i++ )
{
f *= i;
int b = 1;
d = 1;
while (b <= (n + i))
{
d *= b++;
}
s += (f / d);
}
std::cout << s;
_getch();
}
ПРИЛОЖЕНИЕ М (обязательное)
Программный код 5.1.1
#include <conio.h>
#include <iostream>
void main()
{
int i;
char str[101];
std::cout << "Input string:";
std::cin.getline(str, 101);
std::cout << "\n\n";
for (i = 0; i < strlen(str); i++)
if (str[i] == ' ')
str[i] = '*';
std::cout << str;
_getch();
}
ПРИЛОЖЕНИЕ Н (обязательное)
Программный код 5.2.1
#include <conio.h>
#include <iostream>
void main()
{
int n;
int b = 1;
int c = 0;
std::cout << "Input mas size \n";
std::cin >> n;
int* mas = new int[n];
for (int i = 0; i <= n; i++)
{
if (i % 2 == 0)
{
mas[i] = b;
b++;
std::cout << mas[i] << "\n";
}
else
{
mas[i] = n - c;
c++;
std::cout << mas[i] << "\n";
}
}
_getch();}
ПРИЛОЖЕНИЕ П (обязательное)
Программный код 5.3.1
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
int i, st, j, N, M, S, a[20][20];
int max = 0;
int* A;
cout << "Введите количество строк,N=";
cin >> N;
cout << "Введите количество столбцов,M=";
cin >> M;
A = new int[N * M];
cout << "Составьте матрицу А\n";
for (i = 0; i < N; i++)
for (j = 0; j < M; j++)
cin >> a[i][j];
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
if (a[i][j] > max)
{
max = a[i][j];
st = i;
}
}
for (S = j = 0; j < M; j++)
S += a[st][j];
cout << "сумма равна,S=" << S << endl;
system("pause");
return 0;
}
Приложение р (обязательное) Программный код 6.1.1
#include <iostream>
#include <conio.h>
int Median(double a, double b, double c)
{
double m;
m = 0.5 * sqrt(2 * b * b + 2 * c * c - a * a);
std::cout << m;
return(m);
}
int main()
{
setlocale(LC_ALL, "RUS");
double A, B, C, m;
std::cout << "Введите длину стороны А:";
std::cin >> A;
std::cout << "Введите длину стороны B:";
std::cin >> B;
std::cout << "Введите длину стороны C:";
std::cin >> C;
m = Median(A, B, C);
_getch();
}
Приложение с (обязательное) Программный код 6.2.1
#include <iostream>
#include <conio.h>
int Compare(int X, int Y, int Z, int& min, int& max)
{
if (X > Y)
{
max = X;
min = Y;
}
else
{
max = Y;
min = X;
}
if (max < Z)
{
max = Z;
}
else if (min > Z)
{
min = Z;
}
return 0;
}
int main()
{
setlocale(LC_ALL, "RUS");
int min, max, x, y, z;
std::cout << "Введите 1-е число: ";
std::cin >> x;
std::cout << "Введите 2-е число: ";
std::cin >> y;
std::cout << "Введите 3-е число: ";
std::cin >> z;
Compare(x, y, z, min, max);
std::cout << "\nМинимальное значение: ";
std::cout << min;
std::cout << "\nМаксимальное значение: ";
std::cout << max;
_getch();
}
Приложение т (обязательное) Программный код 6.3.1
#include <iostream>
#include <conio.h>
int Shift(int N, int M[])
{
int c;
for (int i = 10; i > 0; i--)
{
c = M[N];
M[i] = M[i - 1];
}
M[0] = c;
for (int i = 0; i < N; i++)
std::cout << M[i] << " ";
return 0;
}
int main()
{
int n;
std::cout << "Input mas size: ";
std::cin >> n;
int* mas = new int[n];
std::cout << "Input mas: ";
for (int i = 0; i < n; i++)
std::cin >> mas[i];
Shift(n, mas);
_getch();
Приложение у (обязательное) Программный код 7.1.1
#include <iostream>
#include <conio.h>
using namespace std;
struct Book
{
string name, publ, author;
int year, page;
};
int search(Book mas[2])
{
string searchname;
cout << "Введите название книги: ";
cin >> searchname;
for (int i = 0; i < 2; i++)
{
if (mas[i].name == searchname)
{
cout << "\n Название: " << mas[i].name << "\n Издание: " << mas[i].publ
<< "\n Автор: " << mas[i].author << "\n Год: " << mas[i].year
<< "\n Страниц: " << mas[i].page;
}
}
return 0;
}
int aubook( Book aumas[2])
{
string auau;
cout << "Введите автора: ";
cin >> auau;
for (int i = 0; i < 2; i++)
{
if (aumas[i].author == auau)
{
cout << "\n Название: " << aumas[i].name << "\n Издание: " << aumas[i].publ
<< "\n Автор: " << aumas[i].author << "\n Год: " << aumas[i].year
<< "\n Страниц: " << aumas[i].page;
}
}
return 0;
}
int main()
{
int c;
setlocale(LC_ALL, "RUS");
Book xeq[2]; //каталог книг
xeq[0].name = "Hudo";
xeq[0].publ = "Kniga";
xeq[0].author = "P.I.Author";
xeq[0].year = 2020;
xeq[0].page = 35;
//-------------------------------
xeq[1].name = "ABC";
xeq[1].publ = "Vizantiya";
xeq[1].author = "Drevniy";
xeq[1].year = 1632;
xeq[1].page = 255;
//-----------------------------
cout << "Для поиска по названию введите 1\n"
<<"Для поиска по автору любое число\n";
cin >> c;
if (c == 1)
{
search (xeq);
}
else
aubook (xeq);
_getch();
}