ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
СУММИРОВАНИЕ И ПЕРЕМНОЖЕНИЕ ЭЛЕМЕНТОВ МАССИВОВРассмотрим задачу нахождения суммы и произведения всех элементов некоторого одномерного массива X т.е. пусть дано X1,X2,... Xk,... Xn и требуется вычислить: S = X1 + X2 +... + Xk +...+ Xn; P = X1 * X2 *... * Xk *...* Xn. Из математической формулировки задачи вытекает и алгоритм вычисления суммы: присваиваем сумме значение первого слагаемого, а затем наращиваем эту величину последовательным прибавлением к ней каждого очередного слагаемого, начиная со второго и кончая последним. Делать это следует, разумеется, в цикле. Таким образом сумма может быть вычислена фрагментом из двух операторов: S:= X[1]; for k:= 2 to n do S:= S + x[k]; Аналогично вычисляется и произведение: P:= x[1]; for k:= 2 to n do P:= P * x[k]; Во многих случаях, однако, более удобно начинать вычисление суммы и произведения с присвоения им первоначально, соответственно нулевого и единичного значений, после чего наращивание суммы и произведения начинать с первого элемента массива, т.е. одновременное вычисление величин S и P может быть в данном случае выполнено и так: S:=0;P:=1; for k:=1 to n do Begin S:= S + x[k]; P:= P * x[k]; end; При суммировании и перемножении элементов двумерных массивов – матриц требуется перебирать все элементы по рядам: либо по строкам и в каждой строке по столбцам, либо по столбцам и в каждом столбце по строкам. Например вычислить сумму и произведение всех элементов матрицы A размером m * n (см. пример 2.9) можно с помощью следующих операторов: S:=0; P:=1; for i:=1 to m do Begin for j:=1 to n do Begin S:= S + a[i,j]; P:= P * a[i,j]; end; end; Результат не изменится, если в данном фрагменте операторы циклов по i и j поменять местами. Рассмотрим еще одну задачу, довольно часто встречающуюся в работе с массивами. Пусть дано два одинаковых по размеру массива X и Y (i=1,2,...n). Требуется вычислить величину SP = x1 y1 + x2 y2 +... + xi yi +... + xn yn. Отметим, что такая сумма – сумма попарных произведений одноименных элементов двух массивов (векторов) называется скалярным произведением этих массивов. Вычисление этого произведения может быть выполнено так: SP:= 0; for i:=1 to n do SP:= SP + x[i]*y[i]; Не нашли, что искали? Воспользуйтесь поиском:
|