Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shporgalka_informatika ANT I.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
3 Мб
Скачать
☆

16 Вопрос алгоритм вычисления суммы элементов одномерного массива

Вычисление суммы значений элементов массива

 

Вычисление суммы значений n элементов одномерного массива А: s=a[1]+a[2]+…+a[n]

 

Комментарий: перед входом в цикл обнуляем переменную для вычисления суммы (s). В цикле,  добавив к сумме значение элемента с номером 1 (при i=1), записываем полученное значение в ту же самую переменную s. Выполняя эту операцию nраз (при i=1, 2,…, n), после выхода из цикла получаем в переменной s значениеs=a[1]+a[2]+…+ a[n].

 

s:=0;  

For i:=1 to n do

s:=s+a[i];

Writeln(‘Сумма=’,s);

 

 

Вычисление суммы значений элементов одномерного массива А, удовлетворяющих некоторому условию

 

Комментарий: добавляем к сумме в цикле только те значения массива, которые удовлетворяют заданному условию.

s:=0;

For i:=1 to n do

if  условие  then s:=s+a[i];

Writeln(‘Сумма=’,s);

 

 

 

 Примеры:

 

 

1. Вычисление суммы элементов массива А, значения которых больше 1 и меньше 3

 

 

s:=0;

For i:=1 to n do

if (a[i]>1) and (a[i]<3) then s:=s+a[i];

Writeln(‘Сумма=’,s);

2. Вычисление суммы значений элементов массива А, целая часть которых делится на 2 без остатка

 

Комментарий: функция trunc вычисляет целую часть числа, являющегося значениемa[i]. При этом получается результат целого типа. Операция mod дает остаток от деления числа на 2. Если остаток равен 0, это означает, что число делится на 2 без остатка.

 

s:=0;

For i:=1 to n do

if trunc(a[i]) mod 2=0 then s:=s+a[i];

Writeln(‘Сумма=’,s);

 

 

 

 

3. Вычисление суммы значений элементов массива А, имеющих нечетные номера

 

Комментарий: добавляем к сумме значения только тех элементов, номера которых (i) при делении на 2 дают остаток, не равный 0 (остаток от деления в этом случае равен 1).

 

s:=0;

For i:=1 to n do

if i mod 2 <> 0 then s:=s+a[i];

Writeln(‘Сумма=’,s);

 

 

4. Вычисление суммы значений элементов массива А, имеющих номера 1,3,5,7 и т.д.  доn

 

 

 

 

 

 

 

К началу страницы

s:=0; i:=1;

While i<= n do

begin

s:=s+a[i];

i:=i+2

end;

Writeln(‘Сумма=’,s);

 

 

17 Вопрос алгоритм вычисления максимального элемента одномерного массива

Вычисление наибольшего и наименьшего значений элементов  массиве

 

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

 

Комментарий: первоначально за наибольшее значение принимается значение элемента массива с номером 1. Затем в цикле по переменной i наибольшее значение (переменная max) сравнивается с каждым из элементов массива a[i]. Если при сравнении оказывается, что сравниваемый элемент массива имеет большее значение, чем max, то значение этого элемента принимается за наибольшее.

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

 

max:=a[1];

For i:=2 to n do

if max < a[i] then max:= a[i];

Writeln(‘Наибольшее значение =’,max);

 

For i:=1 to n do

if max = a[i] then Writeln(‘Номерэлемента =’, i);

 

 

Вычисление наименьшего значения среди элементов массива А, имеющих нечетные номера.

min:=a[1];

For i:=1 to n do

if (i mod 2=1) and (min > a[i])then min:= a[i];

Writeln(‘Наименьшее значение =’,min);

 

Вычисление наибольшего значения среди элементов массива А, имеющих значение в диапазоне от 1 до 10.

 

Комментарий: В первой части программы просматриваются элементы массива с целью найти хотя бы один элемент со значением в диапазоне от 1 до 10. Если такой элемент находится, то он принимается за начальное значение наибольшего элемента массива (max) и происходит выход их цикла. В противном случае значение max остается равным 0.  В случае max=0 поиск наибольшего элемента не выполняется. Еслиmax не равен 0, то выполняется поиск наибольшего элемента по стандартной схеме.

 

 

К началу страницы

max:=0;

For i:=1 to n do

if (a[i]>=1) and (a[i]=<10) then

begin

max:=a[i];

break; {выход их цикла}

end;

 

if max=0 then

Writeln(‘В массиве нет элементов в диапаз. от 1 до 10’)

else

For i:=1 to n do

if max < a[i] then max:= a[i];

Writeln(‘Наименьшее значение =’,min);

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]