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

UptoLike

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

23
Пример 14 Формирование массива из матрицы
Требуется сформировать из матрицы А
размером n×m одномерный массив B,
каждый элемент которого равен количеству
четных чисел в каждом столбце матрицы.
Программа 10
Var n, m, i, k, s: byte;
A: array[1 . . 10, 1 . . 20] of integer;
B: array[1 . . 20] of byte;
Begin
repeat writeln('Ввод 1n10, 1m20');
read(n, m);
until (n<=10) AND (m<=20);
writeln('Ввод матрицы',n,' × ',m);
For i:=1 to n do
For k:=1 to m do read(A[ i, k ]);
writeln;
for i:=1 to n do begin
s:=0';
for k:=1 to m do
if A[ i, k ] mod 2=0 then
S:=S+1;
B[ k ]:=S;
Write(B[ k ]:2:0); end;
Writeln
End.
НАЧАЛО
КОНЕЦ
S:=S+1;
Печать
Ввод n ,m
k:=1, m
i:=1, n
Печать
Ввод A[ i, k]
Печать
Вывод B[ k]
S:=0;
A
[ i, k] mod2=0
B[ k]:=S;
Р
исунок 16. Блок-схема
программы 10
24
Задание. Обработка одномерных массивов
1. В массиве A 17 элементов. Заменить отрицательные элементы,
индексы которых не превышают 15 нулями. Вывести исходный и
полученный массивы.
2. В массиве B 20 элементов. Найти и напечатать:
a). Сумму элементов, имеющих нечетные номера;
b). Произведение элементов с четными индексами;
c). Изменить знак у всех положительных элементов на обратный;
d). Увеличить положительные элементы на 2, о
трицательные
элементы уменьшить на 1, а нулевые оставить без изменения;
e). Сформировать массив C из положительных элементов массива B;
f). Сформировать массив C из отрицательных элементов массива B;
g). Удалить из массива нулевые элементы;
h). Подсчитать число x, равное среднему арифметическому всех
элементов и разделить каждый элемент исходного массива на x;
i). Подсчитать к
оличество элементов массива. Кратных трем;
j). Сформировать массив A из отрицательных элементов исходного
массива B, а массив C из элементов исходного массива с четными
индексами;
k). Подсчитать количество элементов массива, принадлежащих
интервалу [–1, 2], и определить их сумму;
l). Выяснить, какой элемент встречается чаще в массиве
положительный или отрицательный. Если все эле
менты равны
нулю, то сообщить об этом;
m). Инвертировать массив B, то есть изменить порядок следования
элементов на обратный, чтобы первым стал 20-й элемент, 19-й стал
вторым, …, а двадцатым стал бывший 1-й элемент.
3. У прилавка в магазине выстроилась очередь из n покупателей.
Время обслуживания продавцом первого покупателя равно t
i
(i
= 1, …, n). Пусть даны натуральное число n и действительные
числа t
1
, …, t
n
. Получить и напечатать значения c
1
, …, c
n
, где c
i
время пребывания i-го покупателя в очереди. Указать номер
Пример 14 Формирование массива из матрицы
                                                                                                 Задание. Обработка одномерных массивов
         НАЧАЛО                Требуется сформировать из матрицы А
                         размером n×m одномерный массив B,                              1.    В массиве A 17 элементов. Заменить отрицательные элементы,
                         каждый элемент которого равен количеству                            индексы которых не превышают 15 нулями. Вывести исходный и
         Печать
        Ввод n ,m        четных чисел в каждом столбце матрицы.                              полученный массивы.

                         Программа 10                                                   2.   В массиве B 20 элементов. Найти и напечатать:
         Печать
       Ввод A[ i, k]                                                                     a). Сумму элементов, имеющих нечетные номера;
                         Var n, m, i, k, s: byte;
                                                                                         b). Произведение элементов с четными индексами;
         k:=1, m             A: array[1 . . 10, 1 . . 20] of integer;
                                                                                         c). Изменить знак у всех положительных элементов на обратный;
                                         B: array[1 . . 20] of byte;
          S:=0;                                                                          d). Увеличить положительные элементы на 2, отрицательные
                           Begin
                                                                                           элементы уменьшить на 1, а нулевые оставить без изменения;
                               repeat      writeln('Ввод 1≤n≤10, 1≤m≤20');
         i:=1, n         read(n, m);                                                     e). Сформировать массив C из положительных элементов массива B;

                             until    (n<=10)    AND (m<=20);                            f). Сформировать массив C из отрицательных элементов массива B;
      A[ i, k] mod2=0    writeln('Ввод матрицы',n,' × ',m);                              g). Удалить из массива нулевые элементы;
                                For i:=1 to n do                                         h). Подсчитать число x, равное среднему арифметическому всех
        S:=S+1;                                                                            элементов и разделить каждый элемент исходного массива на x;
                                       For k:=1 to m do read(A[ i, k ]);
                                                                   writeln;              i). Подсчитать количество элементов массива. Кратных трем;
        B[ k]:=S;                                                                        j). Сформировать массив A из отрицательных элементов исходного
                             for i:=1 to n do begin
                                                                                            массива B, а массив C из элементов исходного массива с четными
         Печать              s:=0';                                                         индексами;
       Вывод B[ k]
                                     for k:=1 to m do
                                                                                         k). Подсчитать количество элементов массива, принадлежащих
                                       if A[ i, k ] mod 2=0 then                           интервалу [–1, 2], и определить их сумму;
         КОНЕЦ
                                              S:=S+1;                                    l). Выяснить, какой элемент встречается чаще в массиве –
                                         B[ k ]:=S;                                         положительный или отрицательный. Если все элементы равны
Рисунок 16. Блок-схема                                                                      нулю, то сообщить об этом;
                                Write(B[ k ]:2:0);      end;
программы №10                                                                            m). Инвертировать массив B, то есть изменить порядок следования
                           Writeln                                                        элементов на обратный, чтобы первым стал 20-й элемент, 19-й стал
                         End.                                                             вторым, , а двадцатым стал бывший 1-й элемент.
                                                                                        3.    У прилавка в магазине выстроилась очередь из n покупателей.
                                                                                             Время обслуживания продавцом первого покупателя равно ti
                                                                                             (i = 1, , n). Пусть даны натуральное число n и действительные
                                                                                             числа t1, , tn. Получить и напечатать значения c1, , cn, где ci –
                                                                                             время пребывания i-го покупателя в очереди. Указать номер

                                                                              23   24