Все задачи по ОПиБД и ОАиП. Рогов

[Laba19]


Задачи А1 - A8

Задача A1

Написать программу поиска минимального элемента массива. Поиск оформить в виде функции. Основная программа формирует массив из N целых чисел, вызывает функцию поиска минимального элемента, выводит значение минимального элемента на экран. Количество и значения элементов вводятся с клавиатуры. Передачу массива в функцию организовать по адресу. Использовать динамические массивы.

Примеры

Входные данные

5 3 2 1 2 3

Результат работы

1


Задача A2

Написать программу вычисления суммы элементов массива. Вычисление оформить в виде функции. Основная программа формирует массив из N целых чисел, вызывает функцию вычисления суммы элементов массива, выводит значение суммы на экран. Количество и значения элементов вводятся с клавиатуры. Передачу массива в функцию организовать по адресу. Использовать динамические массивы.

Примеры

Входные данные

5 1 2 3 4 5

Результат работы

15


Задача A3

Написать программу умножения двух массивов. Умножение производить поэлементно. Умножение оформить в виде функции. Вывод массива на экран оформить в виде функции. Основная программа формирует два массива из N целых чисел, вызывает функцию умножения массивов, выводит полученный массив через функцию. Количество и значения элементов вводятся с клавиатуры. Передачу массивов в функции организовать по адресу. Использовать динамические массивы.

Примеры

Входные данные

5 1 2 3 4 5 6 7 8 9 10

Результат работы

6 14 24 36 50


Задача A4

Написать программу вычисления среднего арифметического элементов массива. Вычисление оформить в виде функции. Основная программа формирует массив из N целых чисел, вызывает функцию вычисления среднего арифметического элементов массива, выводит значение среднего арифметического на экран. Количество и значения элементов вводятся с клавиатуры. Передачу массива в функцию организовать по адресу. Использовать динамические массивы. Точность полученного значения не менее трех знаков после запятой.

Примеры

Входные данные

4 1 2 3 4

Результат работы

2.500


Задача A5

Написать программу поиска максимального элемента массива. Поиск оформить в виде функции. Основная программа формирует массив из N целых чисел, вызывает функцию поиска максимального элемента, выводит значение максимального элемента на экран. Количество и значения элементов вводятся с клавиатуры. Передачу массива в функцию организовать по адресу. Использовать динамические массивы.

Примеры

Входные данные

5 1 2 3 2 1

Результат работы

3


Задача A6

Написать программу вычисления количества и суммы положительных элементов массива. Вычисления оформить в виде функции. Основная программа формирует массив из N целых чисел, вызывает функцию вычисления количества и суммы, выводит полученные значения на экран. Количество и значения элементов вводятся с клавиатуры. Передачу массива в функцию организовать по адресу. Возвращать значения через глобальные переменные. Использовать динамические массивы.

Примеры

Входные данные

5 1 2 3 4 -5

Результат работы

4 10


Задача A7

Написать программу, переворачивающую массив. Действия оформить в виде функции. Вывод массива на экран оформить в виде функции. Основная программа формирует массив из N целых чисел, вызывает функцию преобразования массива, выводит полученный массив через функцию. Количество и значения элементов вводятся с клавиатуры. Передачу массива в функцию организовать по адресу. Использовать динамические массивы.

Примеры

Входные данные

5 1 2 3 4 5

Результат работы

5 4 3 2 1


Задача A8

Написать программу, вычитающую из каждого элемента массива минимальное значение элементов массива. Поиск минимального значения оформить в виде функции. Вычитание оформить в виде функции. Вывод массива на экран оформить в виде функции. Основная программа формирует массив из N целых чисел, вызывает функцию поиска минимального элемента, вызывает функцию вычитания, выводит полученный массив через функцию. Количество и значения элементов вводятся с клавиатуры. Передачу массивов в функции организовать по адресу. Использовать динамические массивы.

Примеры

Входные данные

5 1 2 3 4 5

Результат работы

0 1 2 3 4


[Лабораторная работа №20 “Составление программ с использованием массивов структур”]


Варианты 1-5

Вариант 1: Написать программу, работающую с массивом структур со следующими полями:

  • Табельный номер работника;
  • Фамиляия Имя Отчество работника;
  • Стаж работы.

Программа должна позволять ввести новые данные, вывести содержимое массива на экран, вывести средний стаж работы, выйти из программы. Все действия программы организовать с помощью функций.
Рекомендации: Основная функция только реализует главное меню. Действие каждого пункта меню выполняет отдельная функция.


Вариант 2: Написать программу, работающую с массивом структур со следующими полями:

  • Номер поезда;
  • Маршрут следования;
  • Среднее опоздание за рейс.

Программа должна позволять ввести новые данные, вывести содержимое массива на экран, вывести информацию по поезду с максимальным опозданием, выйти из программы. Все действия программы организовать с помощью функций.
Рекомендации: Основная функция только реализует главное меню. Действие каждого пункта меню выполняет отдельная функция.


Вариант 3: Написать программу, работающую с массивом структур со следующими полями:

  • Назание группы;
  • Курс;
  • Количество студентов в группе.

Программа должна позволять ввести новые данные, вывести содержимое массива на экран, вывести информацию по группе с минимальным количеством студентов, выйти из программы. Все действия программы организовать с помощью функций.
Рекомендации: Основная функция только реализует главное меню. Действие каждого пункта меню выполняет отдельная функция.


Вариант 4: Написать программу, работающую с массивом структур со следующими полями:

  • Назание товара;
  • Цена товара;
  • Остаток товара на складе.

Программа должна позволять ввести новые данные, вывести содержимое массива на экран, вывести среднюю цену определенного товара, выйти из программы. Все действия программы организовать с помощью функций.
Рекомендации: Основная функция только реализует главное меню. Действие каждого пункта меню выполняет отдельная функция.


Вариант 5: Написать программу, работающую с массивом структур со следующими полями:

  • Маршрут автомобиля;
  • Пробег за поездку (км);
  • Расход бензина за поездку (л).

Программа должна позволять ввести новые данные, вывести содержимое массива на экран, вывести средний расход бензина (л на 100 км) за все поездки, выйти из программы. Все действия программы организовать с помощью функций.
Рекомендации: Основная функция только реализует главное меню. Действие каждого пункта меню выполняет отдельная функция.


[Лабораторная работа №21 “Запись в файл и чтение из файла однотипных данных”]


Варианты 1 - 6

Вариант 1:

Написать две программы: Первая вводит с клавиатуры целые числа до тех пор, пока не введено число 0 и записывает их в файл. Вторая производит чтение из файла и выводит на экран считанные числа и их сумму. Использовать функции записи-чтения целых чисел. Файл сохранять в каталоге Student. Чтение из файла производить до конца файла.


Вариант 2:

Написать две программы: Первая вводит с клавиатуры N целых чисел и записывает их в файл. Вторая производит чтение из файла и выводит на экран считанные числа и минимальное из этих чисел. Использовать функции записи-чтения целых чисел. Файл сохранять в каталоге Student. Чтение из файла производить до конца файла.


Вариант 3:

Написать две программы: Первая вводит с клавиатуры целые числа до тех пор, пока не введено число 0 и записывает их в файл. Вторая производит чтение из файла и выводит на экран считанные числа и их среднее арифметическое. Использовать функции записи-чтения целых чисел. Файл сохранять в каталоге Student. Чтение из файла производить до конца файла.


Вариант 4:

Написать две программы: Первая вводит с клавиатуры N целых чисел и записывает их в файл. Вторая производит чтение из файла и выводит на экран считанные числа и максимальное из этих чисел. Использовать функции записи-чтения целых чисел. Файл сохранять в каталоге Student. Чтение из файла производить до конца файла.


Вариант 5:

Написать две программы: Первая случайным образом генерирует N целых чисел и записывает их в файл. Вторая производит чтение из файла и выводит на экран считанные числа и квадраты этих чисел. Использовать функции записи-чтения целых чисел. Файл сохранять в каталоге Student. Чтение из файла производить до конца файла.


Вариант 6:

Написать две программы: Первая вводит с клавиатуры символы до тех пор, пока не введен символ ‘0’ и записывает их в файл. Вторая производит чтение из файла, формирует строку и выводит ее на экран. Использовать функции записи-чтения символов. Файл сохранять в каталоге Student. Чтение из файла производить до конца файла.


[Лабораторная работа №22 “Запись в файл и чтение из файла блоков данных”]


Варианты 1 - 6

Вариант 1:

Написать две программы: Первая запрашивает заполнение вводом с клавиатуры структуры данных и выводит структуру данных в файл. Вторая производит чтение из файла и выводит данные на экран. Структура данных: Массив структур из 5 элементов. Структура имеет три поля: целое число, действительное число, строка. Использовать функции записи-чтения блоков данных. Файл сохранять в каталоге Student.


Вариант 2:

Написать две программы: Первая запрашивает заполнение вводом с клавиатуры структуры данных и выводит структуру данных в файл. Вторая производит чтение из файла и выводит данные на экран. Структура данных: Массив структур из 5 элементов. Структура имеет два поля: Целое число, строка. Использовать функции записи-чтения блоков данных. Файл сохранять в каталоге Student.


Вариант 3:

Написать две программы: Первая запрашивает заполнение вводом с клавиатуры структуры данных и выводит структуру данных в файл. Вторая производит чтение из файла и выводит данные на экран. Структура данных: Массив строк из 5 элементов. Использовать функции записи-чтения блоков данных. Файл сохранять в каталоге Student.


Вариант 4:

Написать две программы: Первая запрашивает заполнение вводом с клавиатуры структуры данных и выводит структуру данных в файл. Вторая производит чтение из файла и выводит данные на экран. Структура данных: Двумерный массив целых чисел из 3 строк и 3 столбцов. Использовать функции записи-чтения блоков данных. Файл сохранять в каталоге Student.


Вариант 5:

Написать две программы: Первая запрашивает заполнение вводом с клавиатуры структуры данных и выводит структуру данных в файл. Вторая производит чтение из файла и выводит данные на экран. Структура данных: Массив структур из 5 элементов. Структура имеет два поля: Целое число, массив действительных чисел из 2 элементов. Использовать функции записи-чтения блоков данных. Файл сохранять в каталоге Student.


Вариант 6:

Написать две программы: Первая заполняет вводом с клавиатуры структуру данных и выводит структуру данных в файл. Вторая производит чтение из файла и выводит данные на экран. Структура данных: Массив структур из 3 элементов. Структура имеет два поля: строка, массив действительных чисел из 2 элементов. Использовать функции записи-чтения блоков данных. Файл сохранять в каталоге Student.


[Лабораторная работа №23 “Составление программ с использованием форматного обмена с файлами”]


Варианты 1 - 5

Вариант 1:

Написать программу, вычисляющую среднее арифметическое N целых чисел. Исходные данные должны находиться в файле input.txt, результат работы записан в файл output.txt.
Формат файла input.txt:
5
1 2 3 4 5
Формат файла output.txt:
3.0


Вариант 2:

Написать программу, выводящую в текстовый файл таблицу квадратов всех целых чисел, расположенных между A и B. Исходные данные должны находиться в файле input.txt, результат работы записан в файл output.txt.
Формат файла input.txt:
2 6
Формат файла output.txt:
2 4
3 9
4 16
5 25
6 36


Вариант 3:

Написать программу, сортировки одномерного массива из N вещественных чисел. Исходные данные должны находиться в файле input.txt, результат работы записан в файл output.txt. Массив создавать динамически.
Формат файла input.txt:
5
1.1 5.4 2.3 4.2 3.5
Формат файла output.txt:
1.1 2.3 3.5 4.2 5.4


Вариант 4:

Написать программу, вычисляющую количество ненулевых элементов в двумерном массиве. Размер массива и исходные данные должны находиться в файле input.txt, результат работы записан в файл output.txt. Массив создавать динамически.
Формат файла input.txt:
3 4
1 3 6 3
3 0 2 4
4 2 0 0
Формат файла output.txt:
9


Вариант 5:

Написать программу, вычисляющую сумму двух массивов. Размер массива и исходные данные должны находиться в файле input.txt, результат работы записан в файл output.txt. Массив создавать динамически.
Формат файла input.txt:
3 3
1 3 2
3 0 2
4 2 0
3 5 4
4 1 3
2 2 1
Формат файла output.txt:
4 8 6
7 1 5
6 4 1


[Лабораторная работа №24 Классы. Объекты. Свойства и методы]


Варианты 1 - 11

  1. Поле first — дробное число; поле second — целое число, показатель степени. Реализовать метод power( ) — возведение числа first в степень second. Метод должен правильно работать при любых допустимых значениях first и second.

  1. Поле first — целое положительное число, числитель; поле second — целое положительное число, знаменатель. Реализовать метод ipart( ) — выделение целой части дроби first/second. Метод должен проверять неравенство знаменателя нулю.

  1. Поле first — дробное положительное число, цена товара; поле second — целое положительное число, количество единиц товара. Реализовать метод cost( ) — вычисление стоимости товара.

  1. Поле first — целое положительное число, калорийность 100 г продукта; поле second — дробное положительное число, масса продукта в килограммах. Реализовать метод power( ) — вычисление общей калорийности продукта.

  1. Поле first — дробное число, левая граница диапазона; поле second — дробное число, правая граница диапазона. Реализовать метод rangecheck( ) — проверку заданного числа на принадлежность диапазону.

  1. Поле first — целое положительное число, часы; поле second — целое положительное число, минуты. Реализовать метод minutes( ) приведение времени в минуты.

  1. Линейное уравнение у = Ах + В. Поле first — дробное число, коэффициент А; Поле second — дробное число, коэффициент В. Реализовать метод function( ) — вычисление для заданного х значения функции у.

  1. Линейное уравнение у = Ах + В. Поле first — дробное число, коэффициент А; поле second — дробное число, коэффициент В. Реализовать метод root( ) — вычисление корня линейного уравнения. Метод должен проверять неравенство коэффициента В нулю.

  1. Поле first — дробное число, координата х точки на плоскости; поле second — дробное число, координата у точки на плоскости. Реализовать метод distance( ) — расстояние точки от начала координат.

  1. Поле first — дробное положительное число, катет а прямоугольного треугольника; поле second — дробное положительное число, катет b прямоугольного треугольника. Реализовать метод hypotenuse() — вычисление гипотенузы.

  1. Поле first — целое положительное число, продолжительность телефонного разговора в минутах; поле second — дробное положительное число, стоимость одной минуты в рублях. Реализовать метод cost( ) — вычисление общей стоимости разговора.

[Лабораторная работа №25 Передача объектов в функцию. Возврат объекта в качестве результата]


Варианты 1 - 9

  1. Поле first — дробное число, левая граница диапазона; поле second — дробное число, правая граница диапазона. Реализовать внешнюю функцию сложения двух объектов данного типа. Результат возвращать в качестве объекта. Поля объекта-результата вычисляются как сумма соответствующих полей исходных объектов.

  1. Поле first — целое положительное число, продолжительность телефонного разговора в минутах; поле second — дробное положительное число, стоимость одной минуты в рублях. Реализовать внешнюю функцию сложения двух объектов данного типа. Результат возвращать в качестве объекта. При расчете поля second объекта-результата учитывать значение поля first исходных объектов.

  1. Поле first — дробное число, координата х точки на плоскости; поле second — дробное число, координата у точки на плоскости. Реализовать внешнюю функцию перемещения точки на заданную величину по х и у. Результат возвращать в качестве объекта.

  1. Линейное уравнение у = Ах + В. Поле first — дробное число, коэффициент А; Поле second — дробное число, коэффициент В. Реализовать внешнюю функцию сложения двух объектов данного типа. Результат возвращать в качестве объекта

  1. Поле first — целое положительное число, часы; поле second — целое положительное число, минуты. Реализовать внешнюю функцию сложения двух объектов данного типа. Результат возвращать в качестве объекта. В реализации функции учесть, что значение поля минуты может быть только в диапазоне от 0 до 59.

  1. Поле first — целое положительное число, калорийность 100 г продукта; поле second — дробное положительное число, масса продукта в килограммах. Реализовать внешнюю функцию сложения двух объектов данного типа. Результат возвращать в качестве объекта. Поле калорийность объекта-результата вычисляется как среднее значение полей калорийности исходных объектов (с учетом массы).

  1. Поле first — дробное положительное число, цена товара; поле second — целое положительное число, количество единиц товара. Реализовать внешнюю функцию сложения двух объектов данного типа. Результат возвращать в качестве объекта. Поле цены объекта-результата вычисляется как среднее значение полей цены исходных объектов (с учетом количества).

  1. Поле first — целое положительное число, числитель; поле second — целое положительное число, знаменатель. Реализовать внешнюю функцию сложения двух объектов данного типа. Результат возвращать в качестве объекта

  1. Поле first — целое число; поле second — целое число, показатель степени. Реализовать внешнюю функцию умножения двух объектов данного типа. Результат возвращать в качестве объекта. Функция должна работать только для объектов с одинаковым полем first. В противном случае – обнулять значение поля first возвращаемого объекта и суммировать поля second исходных объектов.

[Лабораторная работа №26 Перегруженные конструкторы и перегруженные операции]


Варианты 1 - 7

Вариант 1

Закрытые поля класса: first - часы (0-23), second - минуты (0-59).
Конструктор без параметров инициализирует поля класса нолями.
Конструктор с параметрами инициализирует поля класса указанными данными.
Операция + вычисляет сумму времени двух объектов и возвращает результат в виде объекта того же класса (Результирующее значение не может превышать время 23:59, в противном случае происходит переход к следующим суткам)
Операция - вычисляет разность времени двух объектов и возвращает результат в виде объекта того же класса (Результирующее значение всегда положительно)
Операция ++ увеличивает значение времени в объекте на 1 минуту (Результирующее значение не может превышать время 23:59, в противном случае происходит переход к следующим суткам)
Операция – уменьшает значение времени в объекте на 1 минуту (Результирующее значение не может быть отрицательным, в противном случае происходит переход к предыдущим суткам)
Операция == сравнивает значение времени двух объектов и возвращает -1 если время первого объекта меньше второго, 0 если время объектов равно и 1 если время первого объекта больше времени второго объекта.


### Вариант 2

Закрытые поля класса: first - числитель дроби, second - знаменатель дроби.
Конструктор без параметров инициализирует поля класса нолями.
Конструктор с параметрами инициализирует поля класса указанными данными.
Операция + вычисляет сумму двух объектов и возвращает результат в виде объекта того же класса
Операция - вычисляет разность двух объектов и возвращает результат в виде объекта того же класса
Операция * вычисляет произведение двух объектов и возвращает результат в виде объекта того же класса
Операция / вычисляет частное двух объектов и возвращает результат в виде объекта того же класса
Операция == сравнивает значение двух объектов и возвращает -1 если первый объект меньше второго, 0 если объекты равны и 1 если первый объект больше второго объекта. (Для сравнения реализовать функцию сокращения дроби)


### Вариант 3

Закрытые поля класса: first - рубли (больше или равно 0), second - копейки (0-99).
Конструктор без параметров инициализирует поля класса нолями.
Конструктор с параметрами инициализирует поля класса указанными данными.
Операция + вычисляет сумму двух объектов и возвращает результат в виде объекта того же класса (Результирующее значение копеек не может превышать 99, в противном случае происходит увеличение рублей)
Операция - вычисляет разность двух объектов и возвращает результат в виде объекта того же класса (Результирующее значение всегда положительно)
Операция ++ увеличивает значение копеек в объекте на 1 (Результирующее значение не может превышать 99, в противном случае происходит увеличение рублей)
Операция – уменьшает значение копеек в объекте на 1 (Результирующее значение не может быть отрицательным, в противном случае происходит уменьшение рублей)
Операция == сравнивает значение двух объектов и возвращает -1 если первый объект меньше второго, 0 если объекты равны и 1 если первый объект больше второго объекта.


### Вариант 4

Закрытые поля класса: first - пробег автомобиля за поездку (больше или равно 0), second - израсходовано топлива за поездку (больше или равно 0).
Конструктор без параметров инициализирует поля класса нолями.
Конструктор с параметрами инициализирует поля класса указанными данными.
Операция + вычисляет сумму двух объектов и возвращает результат в виде объекта того же класса.
Операция - вычисляет разность двух объектов и возвращает результат в виде объекта того же класса (Результирующее значение всегда положительно)
Операция ++ вычисляет расход топлива за поездку (л/100км)
Операция – вычисляет пробег с 1 литра топлива (км/л)
Операция == сравнивает значение двух объектов и возвращает -1 если первый объект меньше второго, 0 если объекты равны и 1 если первый объект больше второго объекта. Сравнение производить по расходу топлива.


### Вариант 5

Закрытые поля класса: first - количество товара (больше или равно 0), second - цена единицы товара (больше или равно 0).
Конструктор без параметров инициализирует поля класса нолями.
Конструктор с параметрами инициализирует поля класса указанными данными.
Операция + вычисляет сумму двух объектов и возвращает результат в виде объекта того же класса (Количество складывается, цена переопределяется).
Операция - вычисляет разность двух объектов и возвращает результат в виде объекта того же класса (Количество вычитается, цена переопределяется)
Операция ++ Вычисляет суммарную стоимость товара
Операция – количество товара, приходящееся на единицу цены
Операция == сравнивает значение двух объектов и возвращает -1 если первый объект меньше второго, 0 если объекты равны и 1 если первый объект больше второго объекта. Сравнение производить по суммарной стоимости товара.


### Вариант 6

Закрытые поля класса: first - координата х, second - координата у конца вектора. Начало вектора: точка с координатами (0;0)
Конструктор без параметров инициализирует поля класса нолями.
Конструктор с параметрами инициализирует поля класса указанными данными.
Операция + вычисляет сумму двух объектов и возвращает результат в виде объекта того же класса.
Операция - вычисляет разность двух объектов и возвращает результат в виде объекта того же класса.
Операция ++ Вычисляет длину вектора.
Операция – Вычисляет угол наклона вектора к оси х.
Операция == сравнивает значение двух объектов и возвращает -1 если первый объект меньше второго, 0 если объекты равны и 1 если первый объект больше второго объекта. Сравнение производить модулям векторов.


### Вариант 7

Закрытые поля класса: first - действительная часть комплексного числа, second - мнимая часть комплексного числа.
Конструктор без параметров инициализирует поля класса нолями.
Конструктор с параметрами инициализирует поля класса указанными данными.
Операция + вычисляет сумму двух объектов и возвращает результат в виде объекта того же класса.
Операция - вычисляет разность двух объектов и возвращает результат в виде объекта того же класса.
Операция ++ Увеличивает на 1 (префиксная форма - действительную часть, постфиксная - мнимую).
Операция – Уменьшает на 1 (префиксная форма - действительную часть, постфиксная - мнимую).
Операция == сравнивает значение двух объектов и возвращает -1 если первый объект меньше второго, 0 если объекты равны и 1 если первый объект больше второго объекта. Сравнение производить по модулям комплексного числа.


1 лайк