Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интегрирование Глава 9.doc
Скачиваний:
4
Добавлен:
12.11.2018
Размер:
1 Мб
Скачать
☆
            1. Выбор метода решения

Решение задачи можно осуществить двумя вариантами. Первый реализуется последовательностью:

  • присвоить индексу строки его начальное значение (i = 1);

  • присвоить индексу столбца его начальное значение (j = 1);

  • рассчитать искомое , сохранив его в соответствующей ячейке;

  • изменить индекс столбца по закону j = j + 1;

  • повторять два предыдущих пункта пока j  n;

  • изменить индекс строки по закону i = i + 1;

  • повторять пять предыдущих пунктов пока i  m;

  • прекратить решение при i > m.

Второй вариант реализации:

  • присвоить индексу столбца его начальное значение (j = 1);

  • присвоить индексу строки его начальное значение (i = 1);

  • рассчитать искомое , сохранив его в соответствующей ячейке;

  • изменить индекс строки по закону i = i + 1;

  • повторять два предыдущих пункта пока i  m;

  • изменить индекс столбца по закону j = j + 1;

  • повторять пять предыдущих пунктов пока j  n;

  • прекратить решение при j > n.

С точки зрения результатов методы идентичны, поэтому, выбрав для реализации первый, детализируем его. Присвоив индексу строки начальное значение i = 1, и, изменяя индекс столбца j от 1 до n с шагом 1, выберем каждый из элементов x1j и, разделив его на 2, получим соответствующие элементы y1j первой строки искомого массива Y. Повторим вычисления для каждой из следующих строк, индексы которых изменяются от 1 до m с шагом 1.

Следовательно, анализ математической модели позволяет сделать вывод, что решение требует использования структуры с одним последовательно вложенным циклом. При этом в качестве внешнего цикла принят перебор строк (индекс i), а в качестве внутреннего – перебор столбцов (индекс j).

При вычислениях по второму варианту циклы поменяются местами.

            1. Составление алгоритма решения

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

  • ввод исходного массива;

  • вывод его в форме двумерной матрицы;

  • расчет элементов получаемого массива yij;

  • вывод его в форме двумерной матрицы.

            1. Программирование задачи

Составление программы требует овладения методами и приемами организации описания многомерных массивов и обозначения их элементов в Си/Си++.

        1. Описание многомерных массивов

Методика описания многомерных массивов аналогична представленной для одномерных с указанием размеров по каждому измерению.

Структура отдельного оператора описания многомерного массива:

Рис. 9.3. Схема алгоритма расчета элементов двумерной матрицы

описатель имя[разм_1][разм_2]...[разм_i]...[разм_n];

где описатель – ключевое слово, определяющее тип элементов массива;

имя – идентификатор массива (формируется аналогично имени переменной);

i – номер измерения (i = 1 – первое измерение, i = 2 – второе, i = n – n-ое);

n – размерность массива (число измерений);

разм_i – целая константа, определяющая количество элементов массива по i-му измерению;

[ ] – ограничители размера массива по каждому измерению (не путать с признаком необязательности содержимого);

; – признак простого оператора.

В практике инженерных задач в большинстве случаев под многомерными подразумевают двумерные и трехмерные массивы.

Двумерный массив представляется в виде таблицы (матрицы), при этом первое измерение определяет строку, второе – столбец.

Каждый элемент двумерного массива имеет два индекса. Первый задает номер строки, второй – номер столбца элемента в таблице.

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

Исходя из изложенного, двумерный целочисленный массив D, состоящий из 20 строк и 30 столбцов, т.е обозначаемый как D(2030) требует описателя:

int d[20][30];

Трехмерный вещественный массив S из десяти страниц с пятью строками и пятнадцатью столбцами на каждой, т.е. S(10515) по минимуму описывается:

float s[10][5][15];

Описание многомерных массивов можно проводить совместно с одномерными массивами и неиндексированными переменными аналогичного типа.

Например, описатель целых переменных x, y, одномерного массива T(120) и двумерных массивов D(2030), S(2030) может иметь вид:

int x, y, t[120], d[20][30], s[20][30];

или

int t[120], s[20][30], d[20][30], x, y;

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