Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Простейшие операции над массивами



При работе с массивами рекомендуется опробовать механизм использования массивов переменной размерности. Если (например, в Паскале) при объявлении массивов размерность задается константами, следует объявлять максимально разумные размерности, а затем вводить переменные размерности и циклы организовывать уже по ним.

Обращаем внимание на аккуратность использования индексов: общепринято в матрицах, например, первым индексом обозначать номер строки, а вторым — номер столбца (или количество соответственно).

При обработке массивов (вводимых с клавиатуры или генерируемых случайно) рекомендуется использовать «эхопечать» — вывод на дисплей всего введенного массива в наглядной форме, с рациональным использованием площади:экрана — для визуального контроля правильности ввода и демонстрации соответствия результатов введенным данным.

Следует максимально ограничивать себя в выделении дополнительных (рабочих) массивов размерности того же порядка, что и обрабатываемые, а также искать эффективные по трудоемкости алгоритмы: во многих задачах возможно решение за один проход (просмотр) массива, хотя провокационно напрашивается многопроходный алгоритм. Кроме того, в «пассивных» задачах, посвященных анализу или поиску в заданном массиве, следует воздерживаться от искажений массива и своих целях.

Пример. Реализуем на массивах выполнение строевых команд «ряды сдвой» и «сомкнись». То есть из массива А(2п) элементы с четными индексами нужно перенести в начало массива В(п), а оставшиеся — сдвинуть к началу массива А.

Пересылка из A в B очевидна и выполняется в одном цикле с пересчетом индексов. Для удаления образовавшихся «пустот» в А возможны следующие подходы:

■ передвинуть все элементы, начиная с 3-го и до конца, на одну позицию, затем начиная с 5-го — еще на одну позицию, и так далее — за несколько проходов исходного массива;

■ передвигать каждый элемент массива А на новое место, вычисляя каждый раз, на сколько позиций он сдвинется — при этом требуется только один проход;

■ совместить пересылку в В со сдвигом в А — все в одном цикле.

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

Испытывать эту программу можно на любом массиве (размерностью до 20) любых разнородных чисел (желательно, не более чем 3-разрядных — для удобства восприятия результатов).

Задачи по теме «Простейшие операции над массивами»

4.1 (5 б.) Разделение по знаку. В массиве С(п) подсчитать количество отрицательных и сумму положительных элементов.

4.2 (5 б.) Из строки в матрицу. Элементы одномерного массива А(пг) построчно расположить в матрице В(п,п).

Среднее значение. В задачах 4.3-4.5 использованы элементы математической статистики.

4.3 (6 б.) Центрирование массива. От каждого из заданных т чисел x ,x2,.-.,xm отнять их среднее арифметическое:

Результаты разместить на месте исходных данных.

4.4 (6 б.) Дисперсия1. Вычислить среднее значение х и дисперсию dx для заданного массива Х(к) наблюдений:

4.5 (6 б.) Дисперсия2. Вычислить среднее значение х и дисперсию dx для заданного массива Х(к) наблюдений более эффективным (по сравнению с предыдущей задачей) способом, за один проход массива:

4.6 (6 б.) Угол между векторами. Найти угол между векторами А(п) и В(п), используя формулу:

Преобразование элементов матриц и векторов: задачи 4.7-4.10

4.7 (6 б.) В матрице Z(m, m) каждый элемент разделить на диагональный, стоящий в том же столбце.

4.8 (7 б.) В массиве С(т) каждый третий элемент заменить полусуммой двух предыдущих, а стоящий перед ним — полусуммой соседних с ним элементов. Дополнительный (рабочий) массив не использовать.

4.9 (6 б.) В матрице А(т, п) все ненулевые элементы заменить обратными по величине и противоположными по знаку.

4.10 (7 б.) Найти среднее арифметическое элементов каждой строки матрицы Q(l, m) и вычесть его из элементов этой строки.





Дата публикования: 2015-11-01; Прочитано: 1323 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...