Постановка задания

Задание для всех вариантов звучит так (или, возможно, немного изменено, так как могут быть разные издания учебного пособия):

Для решения задачи следует применить статическое выделение памяти для массива и функции: ввода числа элементов и элементов массива с клавиатуры, вывода элементов массива на экран, обработки массива в соответствии с заданием.

 

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

Варианты заданий

Задание
1.В одномерном массиве, состоящем из $n$ вещественных чисел, вычислить сумму положительных элементов с нечетными номерами и максимальное произведение положительных подряд идущих элементов. Сформировать новый массив, состоящий из отрицательных элементов исходного массива.
2.В одномерном массиве, состоящем из $n$ целых чисел, вычислить сумму положительных четных элементов и минимальное произведение отрицательных подряд идущих элементов. Сформировать новый массив, состоящий из минимальных элементов исходного массива.
3.В одномерном массиве, состоящем из $n$ вещественных чисел, вычислить сумму максимальных элементов с четными номерами и максимальное произведение отрицательных подряд идущих элементов. Сформировать новый массив, состоящий из элементов исходного массива, равных первому элементу.
4.В одномерном массиве, состоящем из $n$ вещественных чисел, вычислить сумму минимальных элементов с нечетными номерами и максимальное произведение трех соседних элементов. Сформировать новый массив, состоящий из элементов исходного массива, равных предпоследнему элементу.
5.В одномерном массиве, состоящем из $n$ вещественных чисел, вычислить сумму отрицательных элементов с четными номерами и максимальное произведение трех соседних элементов. Сформировать новый массив, состоящий из элементов исходного массива, равных предпоследнему элементу.
6.В одномерном массиве, состоящем из $n$ вещественных чисел, вычислить сумму положительных элементов с нечетными номерами и минимальную сумму трех соседних элементов. Сформировать новый массив, состоящий из элементов исходного массива, равных предпоследнему элементу.
7.В одномерном массиве, состоящем из $n$ целых чисел, вычислить сумму минимальных элементов, равных максимальному элементу, и максимальное произведение двух равноотстоящих от центра элементов. Сформировать новый массив, состоящий из элементов исходного массива, равных среднеарифметическому значению максимального и минимального элементов.
8.В одномерном массиве из $n$ целых чисел вычислить среднегеометрическое всех положительных элементов массива и сумму положительных элементов массива, расположенных после второго максимального элемента. Сформировать новый массив, состоящий из последних элементов исходного массива, сумма которых равна сумме максимальных и минимальных элементов.
9.В одномерном массиве из $n$ целых чисел вычислить сумму всех положительных элементов массива с номерами, кратными заданному целому числу, и сумму нечетных элементов массива, расположенных между вторым минимальным и первым максимальным элементами. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены первый максимальный и последний минимальный элементы.
10.В одномерном массиве из $n$ целых чисел вычислить сумму всех положительных элементов массива, расположенных до последнего максимального элемента, и сумму четных элементов массива, расположенных между первым и вторым минимальными элементами. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены первый минимальный и последний минимальный элементы.
11.В одномерном массиве из $n$ целых чисел вычислить сумму всех положительных элементов массива, расположенных между минимальным и максимальным элементами, и сумму элементов массива, расположенных до последнего минимального элемента. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены все минимальные элементы.
12.В одномерном массиве из $n$ целых чисел вычислить сумму всех положительных элементов массива, расположенных между первым и последним минимальными элементами, и сумму нечетных элементов массива, расположенных до последнего максимального элемента. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены все нулевые элементы.
13.В одномерном вещественном массиве из $n$ чисел вычислить сумму всех положительных элементов массива, расположенных между первым и последним максимальными элементами, и сумму элементов массива, расположенных до предпоследнего минимального элемента. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены все отрицательные элементы.
14.В одномерном массиве, состоящем из $n$ вещественных чисел, вычислить сумму положительных элементов с четными номерами и максимальное произведение знакочередующихся двух соседних элементов. Сформировать новый массив, состоящий из положительных элементов исходного массива, расположенных после максимального элемента.
15.В одномерном массиве, состоящем из $n$ целых чисел, вычислить сумму положительных нечетных элементов и максимальную сумму подряд идущих отрицательных элементов. Сформировать новый массив из элементов, расположенных между первым и последним минимальными элементами исходного массива.
16.В одномерном массиве, состоящем из $n$ вещественных чисел, вычислить сумму минимальных элементов с нечетными номерами и минимальное произведение отрицательных подряд идущих элементов. Сформировать новый массив, состоящий из элементов исходного массива, находящихся между максимальным и предпоследним элементами.
17.В одномерном массиве, состоящем из $n$ вещественных чисел, вычислить сумму максимальных элементов массива и максимальное произведение подряд идущих положительных элементов массива. Сформировать новый массив, состоящий из элементов исходного массива, находящихся между минимальным и последним положительным элементами массива.
18.В одномерном массиве, состоящем из $n$ вещественных чисел, вычислить сумму положительных элементов с нечетными номерами и максимальную сумму трех соседних знакочередующихся элементов. Сформировать новый массив, состоящий из элементов исходного массива, находящихся между максимальным и первым положительным элементами массива.
19.В одномерном массиве, состоящем из $n$ вещественных чисел, вычислить сумму элементов с четными номерами, которые больше заданного числа $M$, и минимальную сумму двух элементов, равноотстоящих от середины массива. Сформировать новый массив, состоящий из элементов исходного массива, находящихся между среднеарифметическим и максимальным значениями элементов.
20.В одномерном массиве, состоящем из $n$ целых чисел, вычислить сумму минимальных элементов, находящихся на нечетных местах, а также максимальную сумму двух равноотстоящих от центра элементов и их номера. Сформировать новый массив, состоящий из элементов исходного массива, равных среднеарифметическому значению максимального и минимального элементов.
21.В одномерном массиве из $n$ целых чисел вычислить среднегеометрическое всех положительных элементов массива и сумму положительных элементов массива, расположенных после второго максимального элемента. Сформировать новый массив, состоящий из начальных элементов исходного массива, сумма которых равна сумме максимальных и минимальных элементов.
22.В одномерном массиве из $n$ целых чисел вычислить сумму элементов массива, кратных заданному целому числу, и сумму нечетных элементов массива, расположенных между последним минимальным и вторым максимальным элементами. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены максимальные и первый минимальный элементы.
23.В одномерном массиве из $n$ целых чисел вычислить сумму элементов массива, расположенных до первого максимального элемента, и сумму нечетных элементов массива, расположенных между вторым и последним минимальными элементами. Сформировать новый массив, состоящий из элементов исходного массива, из которого удален последний максимальный элемент.
24.В одномерном массиве из $n$ целых чисел вычислить сумму всех положительных элементов массива, расположенных между вторым четным и максимальным элементами, и сумму элементов массива, расположенных до первого нечетного отрицательного элемента. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены все отрицательные элементы.
25.В одномерном массиве из $n$ целых чисел вычислить сумму всех положительных элементов массива, расположенных между первым нечетным и последним максимальным элементами, и сумму четных элементов массива, расположенных после последнего максимального элемента. Сформировать новый массив, состоящий из элементов исходного массива, из которого удалены все элементы, кратные заданному числу.

Лабораторная работа $№4$ предполагает написание программы на языке Си. При заказе работы своего варианта вы получите качественно написанную и хорошо прокомментированную программу.

Дополнительно заказав алгоритм решения вашей задачи (мы крайне рекомендуем это сделать), получите аккуратно оформленный отчет-алгоритм, поясняющий все тонкости решения поставленной задачи.

Образец выполнения (вариант №15)

Условие задания

В одномерном массиве, состоящем из $n$ целых чисел, вычислить сумму положительных нечетных элементов и максимальную сумму подряд идущих отрицательных элементов. Сформировать новый массив из элементов, расположенных между первым и последним минимальными элементами исходного массива.

Алгоритм решения задачи

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

Сначала выделим список проблем, которыми обладает текущая постановка задачи:

  1. В условии ни слова не сказано о максимальном количестве элементов одномерного массива.
  2. В условии ни слова не сказано о допустимых значениях элементов одномерного массива.

➡ Рассмотрим первую проблему. Стоит ли давать пользователю работать с массивом, состоящим из $1$-го элемента? Очевидно, что нет! Стоит ли давать пользователю работать с массивом, состоящим из одного миллиона элементов? Очевидно также, что нет, т к заполнение элементов производится вводом с клавиатуры, а, например, не случайным образом. Какое максимальное количество элементов можно задать по умолчанию? Сделаем по аналогию с примером, показанным в данном пособии, то есть ограничим это количество элементов числом $30$.

➡ Рассмотрим вторую проблему. В условии говорится, что элементы массива представляют собой целые числа. Но диапазон целых чисел, с точки зрения математики, бесконечен. Следовательно, нам нужно ввести какие-то здравые ограничения. Предлагаю работать с целыми числами на отрезке $[-100; +100]$. Этого диапазона вполне будет достаточно, чтобы продемонстрировать все необходимые вычисления.

💡 Рассмотрим фрагмент постановки задачи:

«вычислить сумму положительных нечетных элементов«.

Вспомним, что число называется положительным, если оно строго больше нуля (например: $11$, $7$, $90$, $55$ и т.д.). Вспомним, что число называется нечетным, если оно не делится на $2$ без остатка (например: $11$, $7$, $55$ и т.д.).

Пусть дан следующий одномерный массив целых чисел (визуализация с точки зрения языка Си, то есть индекс первого элемента равен $0$):

-1703236-6-610значение элемента массива
01234567индекс элемента массива

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

💡 Рассмотрим следующий фрагмент постановки задачи:

«максимальную сумму подряд идущих отрицательных элементов«.

Вспомним, что число называется отрицательным, если оно строго меньше нуля (например: $-7$, $-20$, $-99$, $-1$ и т.д.). Также стоит учесть, что сумма отрицательных значений тем больше, чем она ближе к нулю.

Пусть задан следующий одномерный массив целых чисел (визуализация с точки зрения языка Си, то есть индекс первого элемента равен $0$):

-3-10-516-4171-90-14-5-6значение
01234567891011индекс
1-я цепочка 2- цепочка  3-я цепочка 4-я цепочка№ цепочки

Обратите внимание, что цепочку может образовывать даже один отрицательный элемент (цепочка $№2$). Найдем сумму отрицательных элементов каждой из этих $4$-рех цепочек:

  • Сумма цепочки №1 $= (-3) + (-10) + (-5) = -18$.
  • Сумма цепочки №2 $= -4$.
  • Сумма цепочки №3 $= (-90) + (-1) = -91$.
  • Сумма цепочки №4 $= (-5) + (-6) = -11$.

Нам нужно взять максимальное значение из этих $4$-рех полученных. Очевидно, что максимальным является число $-4$, так как оно ближе всех к нулю.

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

💡 Рассмотрим завершающий фрагмент постановки задачи:

«Сформировать новый массив из элементов, расположенных между первым и последним минимальными элементами исходного массива«.

  1. Минимальный элемент точно присутствует в заданном массиве.
  2. Минимальный элемент может быть единственным, то есть быть неповторяющимся, и в этом случае данный блок задания не имеет решения.

Рассмотрим одномерный массив целых чисел, состоящий из $10$ элементов (визуализация с точки зрения языка Си):

Лабораторная работа №4. Степанов. Си. Программирование. МГТУ им.Баумана. Пример формирования нового одномерного массива

Самый наименьший элемент среди элементов заданного массива имеет значение $-77$. Первый минимальный элемент занимает позицию с индексом $2$, а последний минимальный элемент — позицию с индексом $8$. Следовательно, в новый массив мы должны перености все элементы, находящиеся между элементами с индексами $2$ и $8$. Сформированный массив будет состоять из пяти элементов.

Важно понимать, что сформированный массив будет состоять из количества элементов, равных исходному. Но «хвостовые» элементы (это элементы с индексами $[5 .. 9]$ имеют сероватый фон на рисунке выше) будут иметь неопределенное значение.

Необходимые программные функции для кодирования

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

Назначение функции
1Ввод количества элементов одномерного массива (InputCountElements).
2Заполнение элементов одномерного массива целых чисел вводом с клавиатуры (FillVectorByKeyboard).
3Вывод значения элементов одномерного массива на экран (PrintVector).
4Вычисление суммы положительных нечетных элементов (GetSumPlusOddElements).
5Вычисление максимальной суммы подряд идущих отрицательных элементов (GetMaxSumMinusElements).
6Нахождение минимального элемента исходного массива (GetMinElement).
7Получение индекса первого минимального элемента (GetIndexFirstMinElement).
8Получение индекса последнего минимального элемента (GetIndexLastMinElement).
9Формирование нового массива из элементов между первым и последним минимальным (FormVectorBetweenMin).

Итого получилось $9$ функций. Каждая из этих функций выполняет строго одно действие и это важнейший момент правильного программирования.

Реализация задачи на языке Си

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

исходный массив содержит несколько минимальных элементов
исходный массив содержит единственный минимальный элемент

Стоимость заказа работы

💡 Стоимость одной программы из любого варианта составляет $200$ рублей.
💡 Стоимость алгоритма (в виде отчета в формате *.doc из любого варианта составляет $200$ рублей (заказывается опционально на ваше усмотрение, чтобы детально разобраться с решением лабораторной работы, например, не прибегая к консультации репетитора).

Для оформления заказа пишите на почту: proglabs@mail.ru.
Время нашего ответа обычно составляет не более 10 минут.