МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ
(национальный исследовательский университет)»
(МАИ)
Кафедра «Технология испытаний и эксплуатации»
Отчёт по лабораторным работам
по дисциплине «Информатика»
(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. Управляющие конструкции. Циклы.