Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
387.doc
Скачиваний:
11
Добавлен:
30.04.2022
Размер:
3.51 Mб
Скачать

Контрольные вопросы

1. Для чего используется скобки [ ]?

2. К какому типу относятся массивы?

3. Как задать многомерный массив?

4. Какие методы существуют для обработки массива?

5. Можно ли объявить функцию с типом void?

6. Чем отличаются параметры выходные от обновляемых?

7. Для чего в списке аргументов используется слово params?

8. Как задать аргументы функции Main()?

Содержание и порядок выполнения работы

Ознакомиться с теоретическими сведениями, ответить на контрольные вопросы. По заданному варианту разработать программу. Составить отчет.

Вариант 1

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

2. Составить программу, которая получает матрицу Х размерностью m*n и целое число К. Программа формирует новую матрицу, осуществив циклический сдвиг всех строк исходной матрицы вверх К раз.

Вариант 2

1. Составить функцию, которая для упорядоченного массива чисел, определяет с помощью метода «бинарного поиска», является ли некоторое заданное число элементом этого массива. Используя эту функцию решить следующую задачу: для упорядоченного массива и заданного числа создать новый массив путем добавления в него этого числа в начало массива, если это число не является его элементом. Если массив не подвергнут изменению, выдать об этом соответствующее сообщение.

2. Составить программу, которая получает матрицу Х размерностью m*n и формирует новую матрицу, построив ее из исходной перестановкой строк: первой с последней, второй с предпоследней и т.д.

Вариант 3

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

2. Составить программу, которая получает матрицу Х размерностью m*n и матрицу Y размером m*n. Программа формирует матрицу Z размером m*n, где элемент (i, j) матрицы Z равен сумме элементов i-й строки матрицы X, которые отсутствуют в j–м столбце матрицы Y.

Вариант 4

1. Даны два целочисленных массива. Определить два массива, которые являются их разностью. В первый массив включить те элементы, которые входят в первый, но не входят во второй. Во второй массив включить элементы, которые входят во второй массив, но не входят в первый.

2. Составить программу, которая получает матрицу Х размерностью m*m и находит минимальный и максимальный элементы матрицы. Если оба элемента находятся под главной диагональю, то формируется новая матрица, из которой удалены строки и столбцы, на пересечении которых находятся эти элементы, в противном случае новая матрица не формируется и на экран выдается сообщение об этом.

Вариант 5

1. Дан массив действительных чисел. Создать новый массив, в который поместить элементы следующим образом: первым поместить максимальный элемент исходного массива, затем минимальный; далее максимальный и минимальный из оставшихся элементов и т.д.

2. Составить программу, которая получает матрицу Х размерностью m*n и вектор А, размером k. Программа формирует новую матрицу, в которой элементы исходной матрицы, которые совпали с одним из элементов вектора А, заменяются 0. Если в новой матрице есть строки или столбцы, все элементы которых равны 0, то об этом выдается сообщение.

Вариант 6

1. Задан массив из М действительных чисел. Создать новый массив, в котором отрицательные элементы исходного массива упорядочены по убыванию их значений. Взаимное расположение отрицательных и положительных чисел сохранить.

2. Составить программу, которая получает матрицу В размерностью n*n и проверяет свойство , где В- исходная матрица, Т означает транспонирование. Составьте функции транспонирования матрицы и сравнения двух матриц на равенство.

Вариант 7

1. Составить функцию, которая определяет, является ли заданное натуральное число простым. Используя эту функцию решить следующую задачу. Задан массив из М натуральных чисел. Сформировать из него новый массив, поместив в него из исходного массива только простые числа.

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

Вариант 8

1. В одну и ту же переменную последовательно вводятся М действительных чисел, среди которых могут встретиться одинаковые числа. Сформировать массив, в который поместить только разные числа. Запомнить их порядковые номера при вводе. Новый массив вывести на экран с их старыми номерами.

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

Вариант 9

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

2. Составить программу, которая получает матрицу А размерностью m*n и формирует новую матрицу, поместив в нее только те строки из исходной матрицы, которые образуют монотонную последовательность.

Вариант 10

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

2. Составить программу, которая получает матрицу Х размерностью m*n и если в исходной матрице есть строки и столбцы, все элементы которой равны 0, то программа уплотняет исходную матрицу влево и вверх, а затем формирует новую матрицу, поменяв местами строки и столбцы. Программа выдает на экран исходную и сформированную матрицу, сообщив, уплотнялась ли исходная матрица.

Вариант 11

1. В массив заданной размерности N ввести произвольные числа. Создать новый массив, поменяв местами столько равноудаленных от K-го элемента элементов массива, сколько возможно (K задано). Напечатать модифицированный массив.

2. Составить программу, которая получает матрицу Х размерностью m*n и и число К. Если программа находит число К среди элементов исходной матрицы, то она удаляет из исходной матрицы столбцы с элементом, равным К, в противном случае программа формирует новую матрицу, записав в нее только четные строки. Программа выдает на экран исходную матрицу и новую, если ее удалось создать.

Вариант 12

1. В одномерный массив размерности N ввести произвольные числа. Ввести число К. Если в исходном массиве чисел больше чем К, то массиве выполнить кольцевой сдвиг массива так, чтобы его первый максимальный элемент оказался на K-м месте (N и K заданы). Кольцевой сдвиг массива выполняется всеми его элементами так, что элементы “выталкиваемые” из массива в одну сторону занимают освободившиеся место с другой стороны. Если К больше или равно числу элементов в исходном массиве, то создать новый массив, добавив в начало исходного массива число К. Напечатать модифицированный массив.

2. Составить программу, которая получает матрицу Х размерностью m*n и и вектор А, размером m. Каждому элементу вектора поставлена в соответствие строка с тем же номером. Программа сортирует вектор А в порядке возрастания и формирует новую матрицу, расположив строки исходной матрицы в том же порядке, что и элементы вектора после сортировки.

Вариант 13

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

2. Составить программу, которая получает матрицу Х размерностью m*n и вектор A размером к. Программа формирует новую матрицу, в которую включены только те строки, которые содержат хотя бы одно число из вектора А.

Вариант 14

1. Ввести два одномерных массива разной размерности, каждый из которых содержит разные числа. Удалить из первого массива числа, содержавшиеся во втором. При удалении элементов массива он должен быть «сжат» перемещением оставшихся элементов в массиве. Если какое-либо число из второго массива не встретилось в первом ни разу, вывести соответствующее сообщение. Напечатать измененный массив.

2. Составить программу, которая получает матрицу Х размерностью m*n и вектор A, размером m. Строку с номером i назовем отмеченной, если соответствующий i элемент вектора A больше 0, и неотмеченной – в противном случае. Программа формирует новую матрицу по следующему правилу: все отрицательные элементы в отмеченных строках исходной матрицы в формируемой матрице заменяет на –1, положительные заменяет на 1, а нулевые остаются без изменений. Не отмеченные строки исходной матрицы копируются в новую матрицу в обратном порядке.

Вариант 15

1. В массив заданной размерности N ввести произвольные числа. Ввести число К. Если К меньше N, то в исходном массиве изменить порядок следования элементов в нем на обратный порядок отдельно до и отдельно после К-го элемента массива. В противном случае создать новый массив, исключив из исходного массива первый и последний элемент. Напечатать модифицированный массив, или новый массив, если он создан.

2. Составить программу, которая получает матрицу А размерностью m* m и формирует из нее матрицу В, получаемую из исходной перестановкой в каждой строке наибольшего по абсолютной величине элемента с ее диагональным.

Вариант 16

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

2. Составить программу, которая получает матрицу А размерностью m*n и формирует из нее матрицу В, поменяв местами строки и столбцы.

Вариант 17

1. Даны действительные числа а1...аn , b1...bm , (а1<= а2.<=...<=аn ). Получить натуральные числа k1...km , такие, что ki - это решение задача поиска места bi среди а1...аn , ( i=1,...,m). Применить алгоритм деления пополам. В функции ввода последовательности чисел предусмотреть контроль ввода в порядке возрастания их значений.

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

Вариант 18

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

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

Вариант 19

1. Дан массив действительных чисел. Создать новый массив, каждый элемент которого равен среднему арифметическому всех предшествующих ему элементов.

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

Вариант 20

1. Даны натуральное число n, целые числа а1...аn . Требуется получить последовательность x1 ,y1 ,x2 ,y2,...,xk ,yk , где x1 ,... xm - взятые в порядке следования четные члены последовательности а1...аn , а y1...yl - нечетные члены, k=min(m, l).

2. Составить программу, которая получает матрицу В размерностью m*n. Программа формирует новую матрицу, меняя местами элементы строки с номером i на элементы строки с номером j исходной матрицы В.

Вариант 21

1. Дан массив вещественных чисел а1...аn. Требуется получить новый массив b1...bn, где каждое bi - среднее арифметическое всех членов последовательности а1...аn кроме аi(i=1,2,…., n).

2. Составить программу, которая получает матрицу C размерностью m*n. Программа находит наибольший элемент матрицы С и его индексы и получает новую матрицу, разделив все элементы исходной матрицы (кроме найденного наибольшего) на сумму индексов самого элемента и найденного максимального элемента.

Вариант 22

1. Дан массив целых чисел. Если в массиве сумма всех элементов четное число, то получить новый массив, удалив из исходного члены с максимальным значением, в противном случае удалить его минимальный элемент.

2. Составить программу, которая получает матрицу Х размерностью n*n. Программа определяет количество положительных, нулевых и отрицательных элементов в каждом столбце матрицы X и формирует из них матрицу Y, размером 3*n.

Вариант 23

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

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

Вариант 24

1. Дан массив целых чисел, каждое из которых отлично от нуля. Если в последовательности отрицательные и положительные члены чередуются (+,-,+,-,+,-... или -,+,-,+,-,+,...), то в новый массив включить саму исходная последовательность. Иначе получить новый массив, включив в него все отрицательные члены последовательности, сохранив обратный порядок их следования.

2. Составить программу, которая получает матрицу А размерностью m*n и формирует новую матрицу, все строки которой упорядочены по возрастанию суммы модулей элементов строки.

Вариант 25

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

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

Вариант 26

1. Дан массив действительных чисел, среди которых заведомо есть как отрицательные числа, так и неотрицательные. Получить а1 x1 +...+аs xs , гду а1... аp - отрицательные члены исходной последовательности, взятые в порядке их следования, x1... xq - неотрицательные члены, взятые в обратном порядке, s=min(p, q).

2. Составить программу, которая получает матрицу C размерностью m*n. Программа находит наибольший элемент матрицы С и его индексы и получает новую матрицу, разделив все элементы исходной матрицы (кроме найденного наибольшего) на сумму индексов самого элемента и найденного максимального элемента.

Вариант 27

1. Дан массив n целых чисел. Создать новый массив, оставив исходный массив без изменений, если он упорядочен по не убыванию; в противном случае удалить каждый N элемент (N<=n/2), сохранив прежний порядок остальных элементов.

2. Составить программу, которая получает матрицу А размерностью n*n и формирует новую транспонированную матрицу. Программа выводит исходную и транспонированную матрицы, элементы главной диагонали.

Вариант 28

1. Дан массив n действительных чисел. Если исходный массив имеет равное количество положительных и отрицательных чисел, создать новый массив, упорядочив исходный массив следующим образом. Первыми идут два максимальных элемента, затем два минимальных; далее два максимальных и два минимальных из оставшихся и т.д. Если количество положительных и отрицательных элементов различно, то выдать о том, что новый массив не создан.

2. Составить программу, которая получает матрицу А размерностью m*n. Из положительных элементов матрицы A программа формирует матрицу B, размером m*r. Количество элементов r в строке матрицы B определяется как максимальное число положительных элементов среди всех строк матрицы A. В каждой строке матрицы B расположены подряд положительные элементы соответствующей строки матрицы A. На место недостающих положительных значений в матрице В дописываются нули.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]