ВУЗ:
Составители:
Рубрика:
140
2. когда результаты вычислений или промежуточные значения, содержащиеся в
нескольких ячейках памяти, должны быть сохранены в памяти и все они несут
одинаковую «логическую функцию». Эти ячейки могут быть сгруппированы под
одним именем и образуют массив.
Пусть, например, необходимо подсчитать количество вхождений всех букв
русского алфавита в некоторый текст. Для решения
задачи можно ввести 33
счетчика - по одному для каждой буквы алфавита. Все 33 счетчика выполняют
одну и ту же логическую функцию. Их можно сгруппировать в массив, присвоив
массиву имя СЧЕТЧИК, содержащий 33 элемента. Индекс его изменяется от 1 до
33, что позволяет различать счетчики: СЧЕТЧИК(1) содержит количество
вхождений «А», СЧЕТЧИК(2) - количество вхождений «Б» и т
.д. СЧЕТЧИК(33)
содержит количество вхождений «Я».
Рассмотрим пример работы с массивом как со структурой с прямым методом
доступа.
Пример 11.1. Вычислить сумму нескольких произвольных элементов массива,
индексы которых вводятся с клавиатуры. Признаком окончания ввода является
ноль.
В этом и следующих примерах будем считать, что описан одномерный массив с
нижней границей индекса 1 и верхней - nn. В массиве используются только n
элементов.
Const nn=50;
type mas = array [1..nn] of real;
var a : mas; {исходный массив}
n : integer; { количество используемых элементов <=nn}
i,j,k : integer; { индексы массива }
Решение. Пусть, например, n=5 и массив а содержит следующие значения:
a[1]=-3, a[2]=17, a[3]=4, a[4]=-5, a[5]=81. Последовательность ввода имеет вид: 3, 1,
10, 3, 5, 0. В этом случае искомая сумма вычисляется в следующем порядке:
1) s:=0;
2) s:=s+a[3] = 0+4 = 4;
3) s:=s+a[1] = 4+(-3)=1;
4) сообщение пользователю: «В массиве нет элемента с индексом 10»;
5) s:=s+a[3] = 1+4=5;
6) s:=s+a[5] = 5+81=86
7) 0 - конец ввода.
В результате получена сумма s=86.
Для решения задачи введем элементы массива. Затем организуем цикл ввода
элементов до
того момента, когда будет введен ноль. В теле этого цикла будем
проверять допустимость индекса и находить сумму или выдавать сообщение о
неправильном индексе. Фрагмент этого алгоритма на Паскале будет выглядеть так:
{Ввод массива}
write('Введите используемое количество элементов ');readln(n);
write('Введите ',n,' элементов массива ');
for i:=1 to n do read(a[i]);
{Вычисление суммы}
s:=0;
140
2. когда результаты вычислений или промежуточные значения, содержащиеся в
нескольких ячейках памяти, должны быть сохранены в памяти и все они несут
одинаковую «логическую функцию». Эти ячейки могут быть сгруппированы под
одним именем и образуют массив.
Пусть, например, необходимо подсчитать количество вхождений всех букв
русского алфавита в некоторый текст. Для решения задачи можно ввести 33
счетчика - по одному для каждой буквы алфавита. Все 33 счетчика выполняют
одну и ту же логическую функцию. Их можно сгруппировать в массив, присвоив
массиву имя СЧЕТЧИК, содержащий 33 элемента. Индекс его изменяется от 1 до
33, что позволяет различать счетчики: СЧЕТЧИК(1) содержит количество
вхождений «А», СЧЕТЧИК(2) - количество вхождений «Б» и т.д. СЧЕТЧИК(33)
содержит количество вхождений «Я».
Рассмотрим пример работы с массивом как со структурой с прямым методом
доступа.
Пример 11.1. Вычислить сумму нескольких произвольных элементов массива,
индексы которых вводятся с клавиатуры. Признаком окончания ввода является
ноль.
В этом и следующих примерах будем считать, что описан одномерный массив с
нижней границей индекса 1 и верхней - nn. В массиве используются только n
элементов.
Const nn=50;
type mas = array [1..nn] of real;
var a : mas; {исходный массив}
n : integer; { количество используемых элементов <=nn}
i,j,k : integer; { индексы массива }
Решение. Пусть, например, n=5 и массив а содержит следующие значения:
a[1]=-3, a[2]=17, a[3]=4, a[4]=-5, a[5]=81. Последовательность ввода имеет вид: 3, 1,
10, 3, 5, 0. В этом случае искомая сумма вычисляется в следующем порядке:
1) s:=0;
2) s:=s+a[3] = 0+4 = 4;
3) s:=s+a[1] = 4+(-3)=1;
4) сообщение пользователю: «В массиве нет элемента с индексом 10»;
5) s:=s+a[3] = 1+4=5;
6) s:=s+a[5] = 5+81=86
7) 0 - конец ввода.
В результате получена сумма s=86.
Для решения задачи введем элементы массива. Затем организуем цикл ввода
элементов до того момента, когда будет введен ноль. В теле этого цикла будем
проверять допустимость индекса и находить сумму или выдавать сообщение о
неправильном индексе. Фрагмент этого алгоритма на Паскале будет выглядеть так:
{Ввод массива}
write('Введите используемое количество элементов ');readln(n);
write('Введите ',n,' элементов массива ');
for i:=1 to n do read(a[i]);
{Вычисление суммы}
s:=0;
Страницы
- « первая
- ‹ предыдущая
- …
- 136
- 137
- 138
- 139
- 140
- …
- следующая ›
- последняя »
