Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по программированию.docx
Скачиваний:
11
Добавлен:
01.05.2025
Размер:
683 Кб
Скачать
☆

Экзаменационный вопрос № 37. Программирование операций в одномерных массивах

Теория. Массив — структура данных для представления упорядоченного множества элементов одного типа. Он описывается в блоке VAR следующим образом:

<имя> : ARRAY [1.. <размерность>] OF <тип>,

где <имя> — имя описываемого массива, <размерность> — количество элементов в массиве, <тип> — любой из типов элементов массива.

П р и м е р

A : ARRAY [1..100] OF REAL;

B : ARRAY [1..10,7..20] OF INTEGER;

Обращение к элементу массива происходит через указание имени массива и записи в квадратных скобках через запятую конкретных индексов. Обращение к элементу A32 записывается так: A[3,2].

Задание. Cоставить программу в соответствии с пунктами задания

Исходные данные.

Даны векторы

A = (–10, 4, 8, –2, 11, 3, –90, –6, 0, 1), B = (–4, 2, 5, –16, 1, –1, 0, –9, 45, 50).

1. Найти максимальный элемент каждого из векторов.

2. Найти среднее арифметическое элементов обоих векторов.

3. Найти сумму четных элементов вектора А.

4. Произвести перестановку элементов векторов в порядке возрастания и убывания Код программы.

Program primer1; {название программы}

uses crt; {подключение стандартного пакета}

const

n=10; {задание количества элементов векторов}

A:array [1..n] of integer= (–10,4,8,–2,11,3,–90,–6,0,1); {задание матриц}

B:array [1..n] of integer= (–4,2,5,–16,1,–1,0,–9,45,50);

var

i, j: integer; {задание переменных счетчиков}

max,min,p,k, sum:integer; {переменные для хранения минимального и

максимального элементов, суммы, количества элементов}

begin;

clrscr; {очистка экрана}

{-----------------------------------------------------------------------------------------}

{нахождение максимального компонента вектора А}

{присвоение начальных значений}

max:=A[1];

for i:=2 to n do

begin;

{сравнение и переопределение}

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

end;

{вывод найденных значений}

writeln('Максимальный элемент А: ',max:4);

{-----------------------------------------------------------------------------------------}

{нахождение максимального компонента вектора B}

max:=B[1]; {присвоение начальных значений}

for i:=2 to n do

begin;

if B[i]>=max then max:=B[i]; {сравнение и переопределение}

end;

{вывод найденных значений}

writeln('Максимальный элемент B: ',max:4);

{------------------------------------------------------------------------------------------}

{среднее арифметическое элементов векторов}

sum:=0;

for i:=1 to n do

sum:=sum+A[i]+B[i];

writeln('Ср. арифметическое элементов обоих векторов: ',sum/(2*n):6:3);

{------------------------------------------------------------------------------------------}

{Сумма четных элементов вектора А}

sum:=0;

for i:=1 to n do

if A[i] mod 2=0 then sum:=sum+A[i];

writeln('Сумма четных элементов вектора А: ', sum:5);

{------------------------------------------------------------------------------------------}

{перестановка по возрастанию компонент вектора А}

min:=1;

for i:=1 to n do

begin;

for j:=i+1 to n do

if A[j]<=A[min] then min:=j;

p:=A[i];

A[i]:=A[min];

A[min]:=p;

min:=i+1;

end;

{Вывод вектора А после преобразования}

write('Компоненты А по возрастанию: (');

For i:=1 to n do

write(A[i]:4);

writeln(')');

{------------------------------------------------------------------------------------------}

{перестановка по убыванию компонент вектора В}

max:=1;

for i:=1 to n do

begin;

for j:=i+1 to n do

if B[j]>=B[max] then max:=j;

p:=B[i];

B[i]:=B[max];

B[max]:=p;

max:=i+1;

end;

{Вывод вектора В после преобразования}

write('Компоненты В по убыванию: (');

For i:=1 to n do

write(B[i]:4);

writeln(')');

readln;{ожидание нажатия клавиши Ввод}

end.