Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные и контрольные работы ОАиП (6 вариант) - 1 семестр

.pdf
Скачиваний:
6
Добавлен:
15.11.2023
Размер:
693.02 Кб
Скачать

Лабораторная работа №8

Задание 1. Дана матрица, надо проверить симметричность (симметрия относительной побочной диагонали).

Задание 2. Заполнить квадратную матрицу (n×n) четными числами 2, 4, 6, 8, ... по сходящейся к центру линии (по спирали).

Задание 3. Дана матрица размером N×M. Упорядочить ее строки по возрастанию их первых элементов.

11

Лабораторная работа №9

Задание. Выполните все задания следующим образом:

а) для хранения массивов используйте динамически распределяемую память; б) каждый этап обработки массивов (ввод, заполнение, вывод, упорядочение и т.п.) оформите в виде отдельной функции.

Не забывайте своевременно освобождать память.

Задание 1. Задан двумерный массив. Составьте программу для поиска в этом массиве.

В прямоугольном массиве N×M найдите все седловые элементы (элемент массива называется седловым, если его значение является наименьшим в строке и наибольшем в столбце).

Задание 2. Заполните случайным образом двумерный массив двузначными числами и выведите его на экран. Выполните циклический сдвиг его элементов в заданном направлении. Выведите полученный массив на экран. (Циклический сдвиг означает, что все элементы массива, по возможности, должны переместиться в указанном направлении. Те крайние элементы, которым некуда перемещаться, должны появиться с противоположной стороны. Например, циклический сдвиг элементов массива по диагонали вправо вниз должен выполняться так:

Исходный массив

Полученный массив

1

2

3

4

16

13

14

15

5

6

7

8

4

1

2

3

9

10

11

12

8

5

6

7

13

14

15

16

12

9

10

11

Прямоугольный массив N×M по горизонтали справа налево.

12

Лабораторная работа №10

Задание 1.

Задание 2. Проверьте баланс скобок «(» и «)» в строке.

Задание 3. Выполните предыдущие задания, используя для хранения строк динамически распределяемую память.

Не забывайте своевременно освобождать память.

13

Лабораторная работа №11

Оформить предыдущие 2 лабораторных работы с помощью модульного программирования.

Заголовки функций описать в Header File а реализацию функций в Source File.

14

Контрольная работа №1

Задание 1. При реализации программы использовать оператор if.

Дано целое число. Проверить, является ли данное число положительным пятизначным числом.

Задание 2. При реализации программы использовать операторы циклов (for, while, do ... while).

Напишите программу вычисления значения функции = 2 2 − 16 + 32 дляот 0 до 8 с шагом 0,2.

Задание 3. При реализации программы использовать оператор выбора switch. Задан набор функций. Необходимо вычислить значение одной из функций. Значение параметра функции и номер функции выводит пользователь.

1. = (sin( ) + cos( ))3 5

1

+ 5)2

2.= lg( )

3.= ∙ | −5|(

3 5

4. = √|1 + 3 ∙ 2 + 4 ∙ 2|

15

Лабораторная работа №12

Задание 1. Изучите пример решения геометрической задачи «geometry» с использованием объектов.

Задание 2. Дополните приведенный в примере модуль «geometry» операторами для вывода объектов в поток. Используя эти операторы, измените решение задачи.

Задание 3. Дополните приведенный в примере модуль «geometry2 описанием класса «Вектор» для работы с векторами. Подготовьте методы, реализующие основные операции над векторами.

Задание 4. С использованием имеющихся классов решите предложенные задачи. При необходимости дополните модуль «geometry» новыми классами и/или методами.

Найдите точки пересечения высот и медиан треугольника, вершины которого расположены в точках (x1, y1), (x2, y2) и (x3, y3).

16

Лабораторная работа №13

Задание. В задаче необходимо разработать заголовочный файл, содержащий описание иерархии из двух классов, включающих функции для ввода – вывода параметров объектов и некоторую заданную функцию. Определение функции

– членов класса разместите в отдельном файле.

Составьте программу, демонстрирующую работу с каждым из подготовленных классов.

Базовый класс круг; производный класс — сектор; функция — площадь.

17

Лабораторная работа №14

Задание. В задаче необходимо разработать заголовочный файл, содержащий описание соответствующего класса, включающего все необходимые для решения задачи данные и операторы (<< , >> и т.д.).

Определение функций-членов класса разместите в отдельном файле. Предусмотрите обработку исключительных ситуаций.

Подготовьте программу, демонстрирующую работу с подготовленным классом.

Найдите разность и частное двух комплексных чисел

18

Лабораторная работа №15

Задание. Разработайте шаблон класса для решения предложенных задач. Подготовьте программу, демонстрирующую использование шаблона.

Вычислите натуральную степень, произведение квадратных матриц N x N.

Указания.

1.Описание класса-шаблона должно включать операторы <<, >>, конструктор копирования, а также другие операторы и функции, необходимые для решения задачи.

2.Распределение памяти для хранения массивов должно осуществляться динамически (в конструкторе), а освобождение – в деструкторе.

19

Лабораторная работа №16

Задание 1. Изучите пример обработки структурных типов данных. Подготовьте приложение, убедитесь в его работоспособности.

Задание 2. В соответствии с вариантом разработайте программу для обработки структурных типов данных. Реализуйте отдельные функции для ввода, вывода, поиска информации по некоторому условию, сортировки по некоторому признаку.

Ящик электронной ПОЧТЫ: отправитель СООБЩЕНИЯ, текст сообщения, даты отправления. Упорядочьте по убыванию даты отправления. Выведите все сообщения указанного отправителя.

Задание 3. В соответствии с заданием 2 подготовьте текстовый файл, содержащий требуемые исходные данные. Разработайте модульное приложение для решения задачи, используя для организации ввода-вывода: а) функции; б) операторы.

Указание. Рассмотрите описание организации ввода-вывода в языке С++, а также примеры организации ввода-вывода пользовательских типов данных.

20