КМ-6. Динамические массивы. Семинар Вариант 4
Описание
Файл содержит в себе полный отчёт
Семинар 1. Динамические массивы
Цель семинара: Овладение навыками разработки, кодирования на Си и отладки циклических алгоритмов, использующих динамические массивы.
1. Задание
- Вспомните задачи 2 и 3 из семинара 1 прошлого семестра нашего курса «Программирование и основы алгоритмизации»: разработка циклических алгоритмов с одномерными массивами (задача 2 – задачи приведены также в разделе 2 этого семинара) и с матрицами (задача 3 – условия также есть в разделе 3 этого семинара). Напишите и отладьте программы с динамическими массивами для решения этих задач, используя примеры лекции 1 этого семестра.
- Вспомните задачу семинара 2 прошлого семестра нашего курса «Программирование и основы алгоритмизации»: функции и многофайловые программы; условие этой задачи также приведено в разделе 4 данного семинара. Исправьте решение этой задачи в соответствии с полученными замечаниями; это очень важно, так как решение этой задачи лежит в основе курсовой работы. Измените программу, используя динамические массивы – см. примеры лекции 1 текущего семестра. Ответьте на вопрос: какие преимущества дает использование динамических массивов?
- Отчет по выполнению задания обязательно должен содержать условия задач, анализ данных (возможно, в виде таблицы «Состав данных»), блок-схемы семинаров прошлого семестра (возможно, с исправленными ошибками), коды приложений с локальными массивами (прошлого семестра) и с динамическими массивами.
Жду отчетов по индивидуальным заданиям разделов 2, 3, 4. Напоминаю, что отчет по выполнению задания обязательно должен содержать условие задачи, анализ данных (возможно, в виде таблицы «Состав данных»), блок-схему, программу (в двух вариантах: с локальными и с динамическими массивами).
Отчеты надо пересылать через возможность «письменные работы» СДО «Прометей».
2. Варианты индивидуальных заданий на проектирование алгоритма обработки одномерных массивов (раздел 6 семинара 1 прошлого семестра)
В приведенных ниже задачах значения A, B (если они есть в варианте) и вектора X и (или) Y задаются вводом; n — размер каждого из векторов X и Y.
- Каждая пара (Xk ,Yk) представляет координаты одной из n точек на плоскости. Определить, у какого числа точек положительна как абсцисса Xk, так и ордината Yk; для прочих точек найти среднее расстояние до начала координат.
- Рассмотрев все пары (Xk,Yk), подсчитать случаи равенства элементов пары; найти также среднее арифметическое чисел вектора X.
- Получить вектор T по правилу Tk = max (Xk ,Yk), k = 1,2, … ,n; подсчитать элементы Tk, получившие значения элементов Xk.
- Изменить каждый положительный элемент вектора T, поделив элемент на его номер, а отрицательные элементы – подсчитать.
- Каждая пара (Xk, Yk) задает длины сторон прямоугольника; найти число тех прямоугольников, площадь которых больше A.
- Найти число n1 отрицательных элементов вектора X и их сумму C1 и число n2 положительных элементов вектора Y и их сумму C2.
- Получить вектор T по правилу
а также подсчитать число нулей в полученном векторе T. - Найти число и произведение положительных элементов вектора X, удовлетворяющих требованию sin Xk ≤ 0.
- Пара (Xk, Yk) представляет координаты одной из n точек на плоскости. Найти число точек, у которых ордината Yk больше абсциссы Xk, и сумму расстояний от первой точки до остальных точек.
- Найти сумму и число элементов вектора X, для которых ||Xk–A|<B.
- Найти сумму и число элементов вектора X, для которых ||Xk–A|<B.
- Заменить каждый неположительный элемент вектора X абсолютной величиной имеющего тот же номер элемента вектора Y и подсчитать число таких замен.
- Пара (Xk, Yk) представляет координаты одной из n точек на плоскости. Найти число точек, находящиеся вне круга диаметром B, центр которого имеет координаты X0, Y0.
- Получить вектор T по правилу
а также подсчитать число неотрицательных элементов Xk. - Найти среднее арифметическое положительных элементов вектора X, имеющих четный номер, и среднее арифметическое отрицательных элементов вектора Y, имеющих нечетный номер.
- Найти , где Sx, Sy – средние арифметические положительных элементов векторов X и Y соответственно.
- В векторе X подсчитать число нулей и заменить отрицательные элементы их абсолютными величинами.
- Пара (Xk , Yk) представляет координаты одной из n точек на плоскости. Подсчитать, сколько из них лежит в квадрате с длиной стороны A, центр симметрии которого находится в начале координат, а стороны параллельны координатным осям.
- Найти среднее арифметическое элементов вектора X, исключая нули, и число неположительных элементов вектора.
- Найти отдельные суммы S1, S2 и количества n1, n2 элементов Xk, значения которых соответственно больше A и меньше –A.
- Вычислить куб суммы и общее число элементов вектора X, удовлетворяющих условию Xk < A/2 или условию A < Xk< B.
- Подсчитать число отрицательных элементов вектора X, а каждый положительный его элемент изменить, умножив на предыдущий элемент. Первый элемент должен быть отрицательным.
- Определить число произведений Xk·Yk, удовлетворяющих требованию Xk·Yk < A (номер k у элементов одинаков) и сумму S этих произведений.
- Найти среднее арифметическое тех элементов вектора X, которые удовлетворяют требованию Xk < X1, и среднее арифметическое всех элементов вектора X.
- Найти сумму и число положительных элементов вектора X, каждый из которых больше имеющего тот же номер элемента вектора Y.
- В векторе X изменить значения положительных элементов, умножив на B, а отрицательные элементы уменьшить вдвое; затем подсчитать, сколько окажется элементов, абсолютная величина которых не превышает A.
- Задать значения Yk тем элементам Xk, для которых выполняется условие |Xk – Yk| < A, и подсчитать число измененных элементов.
- Заменить значения элементов вектора Y по правилу
- Вычислить куб суммы и общее число элементов вектора X, удовлетворяющих условию Xk < A/2 или условию A < Xk< B.
Варианты индивидуальных заданий на проектирование алгоритма обработки матриц
Дана матрица А из n строк и m столбцов. Способ задания n и m определяется средой программирования и указаниями преподавателя. Матрицу A необходимо вводить и выводить (если ее элементы были изменены) построчно.
- Определить число нулевых элементов в каждой строке матрицы.
- Заменить элементы матрицы, равные нулю, на заданное значение.
- Найти среднее арифметическое элементов матрицы, меньших заданного значения.
- Вывести индексы элементов матрицы, равных нулю.
- Для каждой строки матрицы найти произведение отрицательных элементов.
- Для каждого столбца матрицы вычислить среднее арифметическое элементов, меньших первого элемента этого столбца
- Определить число отрицательных и число положительных элементов матрицы.
- Элементы матрицы, абсолютная величина которых больше заданного значения C, разделить на С.
- Определить число элементов, меньших заданного значения, для каждого столбца матрицы.
- В каждом столбце матрицы заменить нулевые элементы значением первого элемента этого столбца, который предполагается не равным нулю.
- Для каждого столбца матрицы найти среднее арифметическое элементов, больших нуля, но меньших единицы.
- Найти номера строк матрицы, сумма элементов которых меньше 0.
- Вычислить произведение положительных элементов для каждого столбца матрицы.
- Определить число отрицательных и число положительных элементов в каждой строке матрицы.
- Найти число строк матрицы, сумма элементов которых меньше 0.
- Вычислить произведение тех элементов матрицы, которые больше Е, но меньше Н (Е и Н - заданные значения, Е < Н).
- Вычислить общую сумму элементов тех строк матрицы, первый элемент которых положителен.
- Все отрицательные элементы матрицы заменить квадратом их значений.
- Для каждой строки матрицы определить число элементов, больших первого элемента этой строки.
- Определить число столбцов матрицы, сумма элементов которых положительна.
- Для каждой строки матрицы определить произведение элементов, меньших последнего элемента этой строки.
- Вывести номера столбцов, произведение элементов которых меньше единицы.
- Отрицательные элементы матрицы заменить на нуль. Определить число замен, сделанных в каждой строке
- Вывести номера тех строк матрицы, в которых число положительных элементов больше m/2.
- Вычислить общую сумму элементов тех строк матрицы, последний элемент которых равен нулю.
- Положительные элементы матрицы увеличить в 2 раза, а отрицательные заменить на нуль.
- Для каждого столбца найти произведение элементов, больших первого элемента столбца.
- Для каждой строки определить число элементов, равных последнему элементу этой строки.
4. Индивидуальное задание на разработку и использование функций Си (из семинара 2 курса «Программирование)»
Разработайте программу, выделив в ней одну или несколько подпрограмм (функций). Требования к составляемым подпрограммам:
- каждая подпрограмма является функционально завершенной и должна вызываться более одного раза с разными фактическими параметрами;
- подпрограмма обработки не должна содержать ввод (вывод) данных;
- в подпрограммах не рекомендуется использовать глобальные переменные.
Варианты:
- Если сумма SA положительных элементов главной диагонали матрицы A (7×7) больше единицы, вывести значение SA /SB, где SB — сумма положительных элементов главной диагонали матрицы B (5×5).
- Определить индексы минимального элемента (в предположении, что он единственный) в каждой из трех матриц A (7×5), B (3×7), C (4×5).
- Даны матрицы A (5×5), B (7×7), C (4×4). Вычислить значение выражения PA+ PB – PC, где PA (PB, PC) — произведение положительных элементов главной диагонали матрицы A (B, C).
- В каждой из двух матриц A (7×7), B (5×5) определить минимальное значение среди положительных элементов главной диагонали.
- Если среднее арифметическое SA положительных элементов матрицы A (5×4) больше среднего арифметического SB положительных элементов матрицы B (4×6), найти сумму SA + SB, иначе найти разность SA – SB.
- В матрицах A (7×7) и B (5×5) заменить каждый положительный элемент, стоящий выше главной диагонали, на нуль.
- Даны матрицы A (4×4), B (5×5), C (3×3). Вычислить значение выражения (PA + PB)PC, где PA (PB, PC) — произведение положительных элементов матрицы A (B, C), стоящих выше главной диагонали.
- Для каждой строки матрицы A (5×8) определить число элементов, больших D, а для каждой строки матрицы B (7×5) определить число элементов, больших Q; D, Q — заданные значения.
- Проверить, есть ли среди элементов главной диагонали матрицы A (5×5) отрицательные элементы, а среди элементов главной диагонали матрицы B (3×3) — элементы, меньшие 2,7.
- 10. В каждой из матриц A (4×3), B (5×4) поменять местами две строки: в A вторую и третью строки , в B — первую и третью.
- 11. Для каждой строки матрицы A (6×5) найти среднее арифметическое положительных элементов, а для каждой строки матрицы B (4×7) — среднее арифметическое элементов больших единицы.
- 12. Даны матрицы A (5×4), B (5×5), C (3×7). Найти значение выражения PA+ 2PB – PC, где PA (PB, PC) — произведение положительных элементов матрицы A (B, C), не лежащих на главной диагонали.
- 13. Определить максимальные значения для каждого столбца каждой из трех матриц A (4×5), B (5×7), C (3×4).
- 14. Заменить в третьем столбце матрицы A (5×7) все нули на единицы, а в пятом столбце матрицы B (4×5) — все единицы на нули.
- 15. Проверить, есть ли в матрице A (6×5) элементы, большие 10, а в матрице B (5×7) — элементы, большие 5.
- 16. Даны целочисленные матрицы A (4×5) и B (5×7). В первой строке матрицы A найти число нулевых элементов, а в третьей строке матрицы B — число элементов, равных 5.
- 17. Для матрицы A (7×3) вычислить общую сумму элементов строк, первый элемент которых положителен, а для матрицы B (6×4) — общую сумму элементов строк, в которых первый элемент больше единицы.
- 18. Проверить, все ли элементы главной диагонали матрицы A (5×5) положительны и все ли элементы главной диагонали матрицы B (4×4) больше единицы.
- 19. Для каждой из матриц A (4×5) и B (5×3) определить количество строк, сумма элементов которых положительна.
- 20. Даны матрицы A (4×4), B (5×5), C (3×3). Вычислить значение выражения Amin Bmin – Cmin, где Amin (Bmin, Cmin) — минимальный элемент главной диагонали матрицы A (B, C).
- 21. Даны целочисленные матрицы A (4×5) и B (3×7). Проверить, есть ли в матрице A элементы, равные D, а в матрице B — элементы, равные Q, где D, Q — заданные значения.
- 22. Для каждой строки матрицы A (4×5) вычислить сумму и количество отрицательных элементов, а для каждой строки матрицы B (3×7) — сумму и количество элементов, значения которых меньше 5.
- 23. Даны целочисленные матрицы A (4×5) и B (3×7). Для матрицы A найти число элементов, стоящих ниже главной диагонали и равных D, а для матрицы B – число элементов, стоящих ниже главной диагонали и равных Q, где D и Q — заданные значения.
- 24. Проверить, есть ли в матрице A (5×4) строки с отрицательной суммой и есть ли в матрице B (4×5) строки, сумма элементов которых меньше 5.
- 25. Для матрицы A (3×7) найти число строк, произведение элементов которых больше единицы, а для матрицы B (4×5) — число строк, произведение элементов которых больше заданного значения Q.
- 26. Для каждой из матриц A (4×5), B (3×7) найти число столбцов, сумма элементов которых меньше их произведения.
- 27. Даны матрицы A (5×4), B (5×5), C (3×7). Вычислить значение выражения Amax + Bmax – Cmax, где Amax (Bmax, Cmax) — максимальный из элементов, лежащих ниже главной диагонали матрицы A (B, C).
- 28. Для каждой из матриц B (5×4), C (4×6) проверить, во всех ли столбцах сумма элементов положительна.
- 29. Проверить, упорядочены ли по возрастанию элементы третьего столбца матрицы A (4×6) и элементы пятого столбца матрицы B (5×5).
Курс Программирование 2/2 (ИДДО П-Б-4/4-2-ЗАО/ЭКЗ).