Материал: Отчёт по ЛР Информатика

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

(национальный исследовательский университет)»

(МАИ)

Кафедра «Технология испытаний и эксплуатации»

Отчёт по лабораторным работам

по дисциплине «Информатика»

(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. Управляющие конструкции. Циклы.

Источник: https://studfile.net/preview/16421899/