Статические одномерные массивы



 

Цель лабораторной работы: изучение структурной организации массивов и способов доступа к их элементам; совершенствование навыков процедурного программирования на языке C/C++ при решении задач обработки статических одномерных массивов.

 

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

 

Порядок выполнения работы:

 

1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные, их ограничения.

2) Разработать математическую модель: описать с помощью формул и рисунков структуру массивов и процесс их преобразования.

3) Построить схему алгоритма решения задачи.

4) Составить программу на языке C/C++.

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

Выходные данные должны выводиться на экран с пояснениями.

6) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными. Входные и выходные массивы должны выводиться в одном и том же формате.

7) Использовать стандартные потоковые объекты ввода/вывода cin и cout.

8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.

 


Варианты индивидуальных заданий

1.

Дан массив  b0, b1,…, b2n-1.   Написать   программу   построения   новых   массивов  x0, x1,…, xn-1 и y0, y1,…,yn-1, значения элементов которых соответственно равны значениям b1, b3,…, b2n-1 и b0, b2,…, b2n-2.

2.

Дан целочисленный массив a0, a1,…, am-1. Из абсолютных величин его элементов выбрать наибольшую. Далее построить массив, i-й элемент которого равен нулю, если |ai| не совпадает с выбранным значением, и равен 1 в противном случае.

3.

Написать программу построения по заданному массиву a0, a1,…, an-1 нового массива, значения элементов которого равны a0, a0+a1, a0+a1+a2, , a0+a1+a2+…+an-1.

4.

В вещественном массиве x0, x1,…, xn-1 заменить нулём значения всех его отрицательных элементов, предшествующих его максимальному элементу.

5.

Даны массивы a0, a1,…, an-1 и b0, b1,…, bn-1. Получить новый массив, значения элементов которого соответственно равны a0, b0, a1, b1, a2, b2, …, an-1, bn-1.

6.

Дан вещественный массив x0, x1, x2,…, xm. Значения всех его элементов, следующих за элементом с наибольшим значением, заменить величиной b.

7.

Даны вещественные массивы x0, x1,…, xn-1 и y0, y1,…, yn-1. Преобразовать их по правилу: большее из значений xi и yi принять в качестве нового значения xi, а меньшее – в качестве нового значения yi.

8.

Дан целочисленный массив a0, a1, a2,…, an-1. Если в массиве нет ни одной компоненты с заданным значением К, то первую по порядку компоненту этого массива, не меньшую всех остальных компонент, заменить значением К.

9.

Написать программу, осуществляющую циклический  сдвиг компонент массива x0, x1, x2,…, xn-1 (n>2) на одну позицию влево, то есть получающую массив x1, x2, x3,…, xn-1, x0.

10.

Дан вещественный массив a0, a1, a2,…, an-1. Если в этом массиве есть хотя бы один элемент, значение которого меньше Р, то значения всех отрицательных элементов массива заменить их квадратами, в противном случае значений всех элементов массива умножить на число B.

11.

Дан вещественный массив x0, x1, x2,…, xn-1. Определить сумму и количество компонент этого массива, принадлежащих отрезку [a,b].

12.

Преобразовать массив а0, а1, а2,…, аn-1 так, чтобы его элементы расположились в обратном порядке: аn-1, аn-2,…, а0.

 

13.

Написать программу выбора среди элементов массива а0, а1, а2,…, аn-1 наибольшего среди остающихся после выбрасывания наибольшего и всех ему равных. Предполагается, что не все элементы равны между собой.

14.

Из массива а0, а1, а2,…, а3n-1 получить массив b0, b1,…, bn-1, очередная компонента которого равна среднему арифметическому тройки очередных компонент массива а.

15.

Дан целочисленный массив b0, b1,…, bn-1. Если значения элементов этого массива не образуют убывающей последовательности, то заменить значения его отрицательных элементов единицами.

16.

Дан целочисленный массив а0, а1, а2,…, аn-1, среди элементов которого могут быть равные. Преобразовать исходный массив, оставив в каждой группе равных между собой элементов только один, выбросив все остальные. Освободившийся хвост массива заполнить нулями. Дополнительный массив не использовать.

17.

Дан вещественный массив а0, а1, а2,…, аn-1. Если в этом массиве есть хотя бы один элемент со значением, принадлежащим отрезку [x, y], то значения всех элементов, принадлежащие этому отрезку, заменить величиной К.

18.

Дан массив а0, а1, а2,…, аn-1. Переставить его элементы так, чтобы в начале массива расположились все его неотрицательные элементы, а в конце – отрицательные, сохранив при этом относительный порядок их следования. Дополнительный массив не использовать.

19.

Написать программу выполнения следующего задания: из всех непрерывных участков массива а0, а1, а2,…, аn-1, состоящих из нулей, выбрать наибольший по длине. Вывести индексы его начала и конца.

20.

Написать программу, осуществляющую циклический сдвиг компонент массива

x0, x1,…, xn-1 на одну позицию вправо, то есть получающую массив xn-1, x0, x1,…, xn-2.

21.

Дан вещественный массив x0, x1, x2,…, xm-1. Значения всех его элементов, предшествующих элементу с наибольшим значением, заменить величиной c.

22.

Дан массив x0, x1, x2,…, xm-1. Все положительные значения его элементов, следующих за элементом с наименьшим значением, заменить величиной d.

23.

Дан массив b0, b1, b2,…, b2m-1. Написать программу построения нового массива с элементами, значения которых соответственно равны b2m-1, b0, b2m-2, b1, …, bm, bm-1. Исходный массив оставить без изменения.

 

24.

Дан массив а0, а1, а2,…, а2n-1. Написать программу построения нового массива с элементами, значения которых соответственно равны а0, аn, а1, аn+1,…, аn-1, a2n-1. Исходный массив оставить без изменения.

25.

Найти сумму и произведение значений всех элементов массива b0, b1, b2,…, bm-1.

26.

Найти сумму положительных и число отрицательных элементов массива

а0, а1, а2,…, аn-1.

27.

Написать программу вычисления числа элементов с положительными значениями и суммы отрицательных значений элементов массива x0, x1, x2,…, xm-1.

28.

Задан упорядоченный по возрастанию массив y0 < y1 <…< ym-1 и величина x. Известно, что y0 < x < ym-1. Написать программу определения целого числа К, удовлетворяющего условию: yk-1 < x < yk.

29.

Дан массив b0, b1, b2,…, b2m-1. Переставить элементы этого массива так, чтобы значения его элементов были соответственно равны b2m-1, b0, b2m-2, b1, …, bm, bm-1. Дополнительный массив не использовать.

30.

Дан массив а0, а1, а2,…, а2n-1. Переставить элементы этого массива так, чтобы значения его элементов были соответственно равны а0, аn, а1, аn+1,…, аn-1, a2n-1. Дополнительный массив не использовать.

 


Дата добавления: 2018-04-05; просмотров: 784; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!