Основы алгоритмизации и программирования. Часть вторая. Типовые алгоритмы обработки массивов. Асламова В.С - 5 стр.

UptoLike

Составители: 

9
Элемент массива считается переменной, он может получать
значения (например, в операторе присваивания), а также участвовать в
выражениях, где он представляет значение, помещенное в
соответствующий элемент данного массива.
Ассортимент операций над элементами массива полностью
определяется типом этих массивов (базовым типом массива).
Эквивалентность и совместимость типов
Два типа являются эквивалентными, если выполнимо хо
тя бы одно
из следующих условий:
1. Эти два типа представляют собой один и тот же
идентификатор типа
2. Первый тип описан с использованием второго типа с
помощью равенства
type T1 = T2 или посредством цепочки
таких равенств
Совместимость типов имеет место, если выполняется хотя бы одно
из следующих условий:
1. Оба типа эквивалентны
2. Оба типа являются либо целыми, либо оба типа являются
вещественными
3. Оба типа являются ограниченными, причем их базовым
типом является один и тот же тип
Ввод и вывод массива
По
д вводом массива понимается ввод значений элементов массива.
Данную операцию удобно реализовать при помощи оператора цикла с
параметром (оператор цикла
For). Чтобы пользователь программы знал,
ввод какого элемента массива ожидает программа, следует организовать
своевременныеподсказкиперед вводом очередного элемента массива. В
подсказке обычно указывают индекс элемента массива.
Под выводом массива понимается вывод на экран значений
элементов массива. Если в программе необходимо вывести значения всех
элементов массива, то для этого также удобно воспользоваться
операт
ором цикла с параметром (оператор цикла
For), переменная-счетчик
которой может быть использован как индекс элемента массива.
10
Типовые алгоритмы обработки массивов
Пример 1
Сформировать массив B из элементов
массива C, кратных трем. Массив C состоит из
25 элементов целого типа.
Особенностью решения задачи является
то, что индексы элементов массивов B и C не
совпадают. Это связано с тем, что не все
элементы массива C включаются в массив B.
Поэтому в качестве индекса массива B возьмем
переменную k, значение которой будем
увеличивать на 1
(k = k + 1) перед записью
нового элемента в массив B. Начальное
значение k = 0. Индекс i массива C будем
изменять с помощью оператора цикла с
параметром.
Проверку на кратность трем будем
производить с помощью встроенной функции
mod, назначение которой выделение остатка
при делении. Если элемент массива C делится
без остатка на три, (то есть, кратен трем), то
его следует включить в массив B, если же нет,
то перейти к следующему элементу массива C.
Программа 1
Var k,I: real;
C,B: array[1 . . 25] of integer;
begin
for I:=1 to 25 do begin
write('Ввод С',i); readln(C[ i ]);
if C[ i ] mod 3 = 0 then begin
k:=k+1; B[ k ]:=C[ i ] end;
end;
writeln('Массив B:');
for I:=1 to k do write(B[ i ]:6); {печать в строку}
writeln; {перевод курсора} End.
НАЧАЛО
K=0; N=25
I=1, N
Печать
Ввод C(I)
нет
да
C(I) mod3=0
K=K+1
B(K)=C(I)
КОНЕЦ
I=1, K
Печать
B(I)
Р
исунок 3. Блок-схема
программы 1
      Элемент массива считается переменной, он может получать                          Типовые алгоритмы обработки массивов
значения (например, в операторе присваивания), а также участвовать в
выражениях, где он представляет значение, помещенное в                              НАЧАЛО       Пример 1
соответствующий элемент данного массива.
                                                                                                       Сформировать массив B из элементов
      Ассортимент операций над элементами массива           полностью              K=0; N=25     массива C, кратных трем. Массив C состоит из
определяется типом этих массивов (базовым типом массива).                                        25 элементов целого типа.

Эквивалентность и совместимость типов                                                                   Особенностью решения задачи является
                                                                                      I=1, N
                                                                                                 то, что индексы элементов массивов B и C не
       Два типа являются эквивалентными, если выполнимо хотя бы одно                             совпадают. Это связано с тем, что не все
из следующих условий:                                                                            элементы массива C включаются в массив B.
                                                                                      Печать
          1.   Эти два типа представляют собой один и тот же                        Ввод C(I)
                                                                                                 Поэтому в качестве индекса массива B возьмем
               идентификатор типа                                                                переменную k, значение которой будем
                                                                                                 увеличивать на 1 (k = k + 1) перед записью
          2.   Первый тип описан с использованием второго типа с              да                 нового элемента в массив B. Начальное
               помощью равенства type T1 = T2 или посредством цепочки              C(I) mod3=0
                                                                                                 значение k = 0. Индекс i массива C будем
               таких равенств                                                                    изменять с помощью оператора цикла с
                                                                                          нет
                                                                                                 параметром.
       Совместимость типов имеет место, если выполняется хотя бы одно
                                                                                     K=K+1              Проверку на кратность трем будем
из следующих условий:
                                                                                                 производить с помощью встроенной функции
          1.   Оба типа эквивалентны                                                             mod, назначение которой выделение остатка
                                                                                                 при делении. Если элемент массива C делится
          2.   Оба типа являются либо целыми, либо оба типа являются               B(K)=C(I)     без остатка на три, (то есть, кратен трем), то
               вещественными
                                                                                                 его следует включить в массив B, если же нет,
          3.   Оба типа являются ограниченными, причем их базовым                                то перейти к следующему элементу массива C.
               типом является один и тот же тип
                                                                                                 Программа 1
                                                                                      I=1, K
Ввод и вывод массива                                                                             Var k,I:    real;

      Под вводом массива понимается ввод значений элементов массива.                                  C,B:     array[1 . . 25]    of   integer;
                                                                                     Печать
Данную операцию удобно реализовать при помощи оператора цикла с                       B(I)       begin
параметром (оператор цикла For). Чтобы пользователь программы знал,                                   for I:=1 to 25 do begin
ввод какого элемента массива ожидает программа, следует организовать
                                                                                                         write('Ввод С',i);      readln(C[ i ]);
своевременные “подсказки” перед вводом очередного элемента массива. В               КОНЕЦ
подсказке обычно указывают индекс элемента массива.                                                            if C[ i ] mod 3 = 0 then begin
                                                                         Рисунок 3. Блок-схема
                                                                         программы №1                            k:=k+1;      B[ k ]:=C[ i ]    end;
      Под выводом массива понимается вывод на экран значений
элементов массива. Если в программе необходимо вывести значения всех                                                       end;
элементов массива, то для этого также удобно воспользоваться                                     writeln('Массив B:');
оператором цикла с параметром (оператор цикла For), переменная-счетчик                           for I:=1 to k do write(B[ i ]:6); {печать в строку}
которой может быть использован как индекс элемента массива.
                                                                                                 writeln; {перевод курсора}                    End.


                                                                    9    10