КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Массивы. В рассмотренных в примере 3.8 вариантах циклических алгоритмов параметры цикла и результаты вычислений рассматриваются как простые переменные
В рассмотренных в примере 3.8 вариантах циклических алгоритмов параметры цикла и результаты вычислений рассматриваются как простые переменные, которые позволяют использовать в алгоритме одиночные объекты (простая переменная может принимать одно числовое значение). В алгоритмах с применением массива могут использоваться также объекты, содержащие множество однотипных элементов. Массивы – это формальное объединение нескольких однотипных объектов (элементов массива), рассматриваемое как единое целое (имеющих общее имя). К необходимости применения массивов мы приходим всякий раз, когда требуется связать и использовать целый ряд родственных величин. Например, результаты многократных замеров (дискретно) параметров исследуемого объекта за определенный временной интервал удобно рассматривать как совокупность вещественных чисел, объединенных в один сложный объект ‑ массив измерений. Доступ к каждому элементу массива в алгоритме осуществляется с помощью индекса ‑ целого числа (точнее, выражения целого типа), который служащего адресом элемента в массиве (если левая граница типа-диапазона равна 1, индекс элемента совпадает с его порядковым номером). Массивы могут быть одномерными (адрес каждого элемента определяется значением одного индекса) и многомерными (несколько индексов). Аналогом одномерного массива в математике является вектор Х(Х1, Х2,…,ХN). Аналогом двумерного массива в математике является матрица размерностью MxN (M строк и N столбцов) A= При упоминании в программе любого элемента массива сразу за именем массива должен следовать индекс (индексы) элемента в квадратных скобках, например: X[1], A[2,1]. Пример 3.9. Составить алгоритм для вычисления и запоминания в массиве таблицы значений наиболее вероятной скорости молекул газа от температуры VB=f(T) для заданного ряда значений температуры воздуха Т=(T1, T1,…,ТN) с по формуле . Исходные данные R, M, T заданы в системе физических единиц Си. Алгоритм на языке Турбо Паскаль имеет вид. begin ReadLn(T,N); For I:=1 TO N Do VB[I]:=SQRT(2*R*T[I]/M); WriteLn(VB) End. Оператор ReadLn(T,N) осуществляет ввод всего массива значений температуры Т. В цикле вычисляется результат как переменная с индексом VB[I]– элемент массива. Переменная T[I] также является элементом массива (T1, T1,…,ТN). После выполнения оператора присваивания в теле цикла осуществляется переход к следующему циклу – значение переменной цикла I увеличивается на 1 и проверяется условие продолжения цикла I<=N. При невыполнении условия осуществляется выход из цикла и вывод на экран значений элементов массива VB оператором WriteLn. Оператор WriteLn(VB)стоит за циклом, так как на экран выводится весь массив VB. Пример 3.10. Составить алгоритм вычисления суммы S значений элементов массива F=(F1, F2,…,FN). Алгоритм на языке Турбо Паскаль имеет вид. Begin ReadLn(F,N); S:=0; For I:=1 TO N Do S:=S+F[I]; WriteLn(S) End. Перед оператором цикла задается начальное значение суммы S равное нулю. В цикле осуществляется «накопление суммы» ‑ к предыдущему значению накопленной суммы прибавляется текущее значение элемента массива S:=S+F[I]. При первом выполнении цикла вычисляется значение S:=S+F[1], которое должно быть равно F[1]. Пример 3.11. Составить алгоритм определения наименьшего элемента XM массива X(x1, x2,…xN,) и его порядкового номера NM. begin ReadLn(X,N); XM:=X[1]; NM:=1; For I:=2 To N Do If X[I]<XM Then Begin XM:=X[I]; NM:=I End; WriteLn('XM=',XM,'NM=',NM) End. В качестве начального значения XM принимается первый элемент массива X[1] ( адрес NM=1). Сравнение текущего элемента массива X[I] c NM выполняется в цикле, начиная со второго элемента массива X ( For I:=2 TO N Do <Оператор>). Проверка условия X[I] < XM выполняется в условном операторе If X[I]<XM Then <составной оператор>. Если условие выполняется, то определяются новые значения XN и NM ( XM:=X[I]; NM:=I). При невыполнении условия X[I] < XM никаких действий не производится и осуществляется переход к следующему циклу – переменная цикла I изменяет значение на 1 и проверяется условие продолжения цикла I<=N. При невыполнении условия осуществляется выход из цикла и вывод на экран значений XN и NM с их названиями оператором WriteLn. Пример 3.12. Составить алгоритм умножения прямоугольной матрицы A на вектор-столбец B. Произведением АВ матрицы A на вектор-столбец B называется матрица С. Элементы матрицы С вычисляют по следующему правилу: элемент равен сумме произведений элементов (i -й строки, j -го столбца) матрицы А на соответствующие элементы Произведение АВ существует, если число столбцов N матрицы A=((i=1,2,…,M; j=1,2,…,N) равно числу элементов вектора-столбца B (j=1,2,…,N) , где +++. Алгоритм решения задачи представляет собой структуру вложенных циклов – внешнего и внутреннего. Внешний цикл определяет изменение индекса строки i, а внутренний – индекса столбца j. Так как значения числа строк М и столбцов N в алгоритме определены (оператор ReadLn(N,M,A,B), то для организации внешнего цикла воспользуемся оператором цикла For J:=1 TO M <составной оператор>, а для внутреннего цикла – оператором цикла For J:=1 TO N <Оператор>. Перед внутренним циклом необходимо задать начальное значение суммы C[I]:=0. Для каждого значения параметра внутреннего цикла I параметр внутреннего цикла J пробегает все свои значения. После завершения внутреннего цикла управление передается во внешний цикл. После завершения внешнего цикла управление передается оператору вывода WriteLn ( C ) для вывода на экран значений элементов массива С=(сi).
Дата добавления: 2014-01-04; Просмотров: 365; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |