Структурированные данные и алгоритмы их обработки
Для повышения производительности и качества работы необходимо иметь данные, максимально приближенные к реальным аналогам. Тип данных, позволяющий хранить вместе под одним именем несколько переменных, называется структурированным. Массив – это структура, объединяющая элементы одного типа данных.
Массивом называется упорядоченная совокупность однотипных величин, имеющих общее имя, элементы которой адресуются (различаются) порядковыми номерами (индексами). Элементы массива в памяти компьютера хранятся в ячейках с последовательными адресами. Массивы различаются количеством индексов, определяющих их элементы.
Одномерный массив предполагает наличие у каждого элемента только одного индекса. Примерами одномерных массивов служат арифметическая и геометрическая последовательности, определяющие конечные ряды чисел.
Количество элементов массива называют размерностью. При определении одномерного массива его размерность записывается в круглых скобках, рядом с его именем. Например, если сказано: «задан массив A(10)», это означает, что даны элементы: а1, а2, …, а10.
Ввод элементов одномерного массива осуществляется поэлементно, в порядке, необходимом для решения конкретной задачи. Обычно, когда требуется ввести весь массив, порядок ввода элементов не важен, и элементы вводятся в порядке возрастания их индексов. Алгоритм ввода элементов массива А(10) представлен на рисунке 3.18.
Рисунок 3.18 Блок-схема алгоритма ввода значений элементов одномерного массива А(10)
Двумерный массив состоит из элементов, положение которых определяется двумя координатами — по горизонтали и по вертикали. В математике двумерный массив называется матрицей. Каждый ее элемент имеет два индекса аij, первый индекс i определяет номер строки, и которой находится элемент (координата по горизонтали), а второй j – номер столбца (координата по вертикали). Двумерный массив характеризуется двумя размерностями К и М, определяющими число строк и столбцов соответственно (рисунок 3.19).
Рисунок 3.19 Матрица А(N×M)
Ввод элементов двумерного массива осуществляется построчно, и свою очередь, ввод каждой строки производится поэлементно, тем самым определяется циклическая конструкция, реализующая вложение циклов. Внешний цикл определяет номер вводимой строки (i), внутренний — номер элемента по столбцу (j). На рисунке 3.20 представлен алгоритм ввода матрицы А(N×M).
Рисунок 3.20 Алгоритм ввода элементов матрицы А(N×M)
Основным требованием при составлении алгоритмов обработки массивов является неиспользование дополнительных массивов.
Чтобы точнее уяснить постановку задачи следует сначала рассмотреть частные решения для конкретных наборов входных данных (провести анализ), затем обобщить полученное решение и определить набор решаемых задач. Составив алгоритм, его следует проверить на различных наборах исходных данных. Эти наборы исходных данных требуется подбирать таким образом, чтобы при заполнении таблиц трассировок проверить все пути вычислений данного алгоритма от начальной вершины до конечной.
Пример 7. Перестановка элементов массива.
Постановка задачи: В одномерном массиве А поменять местами 2-ой нулевой элемент и последний положительный элемент.
Исходные данные: N – количество элементов массива.
Выходные данные: А – массив, в котором переставлены соответствующие заданию элементы.
Основными операциями алгоритма будут: поиск второго нулевого элемента массива, поиск последнего положительного элемента массива и перестановка найденных элементов. Отметим, что для перестановки элементов необходимо знать номера переставляемых элементов. На рисунке 3.21 изображен обобщенный алгоритм решения задачи.
Рисунок 3.21 Обобщенный алгоритм решения к примеру 7
Ввод количества и значений элементов массива осуществляется вначале в отдельном блоке ввода, который реализуется по схеме алгоритма ввода элементов массива, изображенного на рисунке 3.18. Поиск второго нулевого элемента массива осуществляется в цикле, с проверкой значения очередного элемента. Если очередной элемент равен 0, то для подсчета количества таких элементов можно использовать реккурентную формулу M=M+1. Когда значение М=2, необходимо запомнить номер текущего элемента массива, так как это и есть искомый второй положительный элемент исходного массива.
Поиск последнего положительного элемента массива осуществляется аналогично в цикле, где номер очередного элемента, значение которого больше нуля, запоминается в дополнительной переменной S. Учитывая тот факт, что после того как будут просмотрены и проверены на положительность все элементы массива в переменной S будет храниться номер последнего положительного элемента массива.
Для реализации перестановки найденных элементов достаточно воспользоваться управляющей структурой следования. Для того, чтобы во время перестановки не потерять переставляемые значения используется дополнительная переменная Q, временно хранящая одно из переставляемых значений элемента массива.
Введение в программирование MATLAB
Ещё совсем недавно основным инструментом инженера был калькулятор. Расчёты занимали немало рабочего времени. Например, большинство инженерных расчётов проводятся в нескольких приближениях, т.е. один и тот же алгоритм вычислений повторяется несколько раз, но каждый раз с новыми, уточнёнными данными. Инженер вынужден был повторять на калькуляторе вычислительные операции каждого приближения снова и снова.
В современных условиях рыночной экономики, такой подход, несомненно, не позволит предприятию быть конкурентоспособным и получать прибыль. При размещении заказа на выполнение проектных работ одним из основных критериев является минимальное время выполнения проекта. Автоматизация инженерной работы (расчётов, выполнения чертежей и текстовых документов) позволяет сократить время выполнения проекта в несколько раз. Для этого требуется оборудовать место работы инженера персональным компьютером и установить на него соответствующее программное обеспечение.
Возможности компьютера позволяют использовать его как средство автоматизации инженерной и научной работы. Для решения сложных расчётных задач используют программы, написанные специально. В то же время, в инженерной и научной работе встречается широкий спектр задач ограниченной сложности, для решения которых можно использовать универсальные средства.
К такого рода задачам относятся:
- подготовка научно-технических документов, содержащих текст и формулы, записанные в привычной для специалистов форме;
- вычисление результатов математических операций, в которых участвуют числовые константы, переменные и размерные физические величины;
- статистические расчёты и анализ данных;
- построение двумерных и трёхмерных графиков;
- дифференцирование и интегрирование, аналитическое и численное;
- решение дифференциальных уравнений;
- проведение серий расчётов с разными значениями начальных условий и других параметров;
- выполнение чертежей.
К универсальным программам, пригодным для решения таких задач, относятся программы MS Word, MS Excel, MathCad, MatLab.
MS Word – это мощный текстовый редактор, получивший широчайшее распространение в среде Windows. Он является удобным инструментом для подготовки разнообразных текстовых документов, например пояснительных записок, бланков, отчётов, инструкций и т.д. В основе оформления документов в Word лежит система шаблонов и стилей форматирования, которые позволяют достичь единства оформления большинства документов.
MS Excel – программа, обладающая эффективными средствами обработки числовой информации, представленной в виде электронных таблиц. Электронные таблицы обрабатывают числовые данные, которые размещаются в ячейках листа Excel. Столбцы и строки таблицы могут иметь текстовые названия. На листе Excel могут также располагаться заголовки, подписи и дополнительные ячейки данных с пояснительным текстом. С помощью Excel можно выполнять сложные вычисления с большими массивами чисел, строить диаграммы и печатать финансовые отчёты.
MathCad представляет собой автоматизированную систему, позволяющую динамически обрабатывать данные в числовом и аналитическом (формульном) виде. Программа MathCad сочетает в себе возможности проведения расчётов и подготовки форматированных научных и технических документов.
Система MATLAB, разработанная более двадцати лет назад компанией MathWorks, является универсальным средством для выполнения математических вычислений.