
- •Лабораторная работа № 4.
- •Var a, b : vector_1;
- •Var a, b : array[1..5] of Integer;
- •Var {Описание переменных}
- •I,j : Integer;
- •I,j : Integer;
- •2 Строка: наибольший элемент в 7 столбце равен 0.696
- •4 Строка: наибольший элемент в 4 столбце равен 1.989
- •6 Строка: наибольший элемент в 7 столбце равен 0.960
- •I,j,k:Integer;
- •Варианты заданий
Var a, b : vector_1;
Begin a : = b;
if a = b then WriteLn(‘ массивы a и b совпадают ‘) ;
if a <> b then WriteLn (‘массивы a и b не совпадают ‘);
С другой стороны, если задать следующие массивы:
Var a, b : array[1..5] of Integer;
C : array[1..5] of Integer;
то допустим следующий оператор: A := B;
Но оператор C := A; недопустим, несмотря на то, что структуры массивов C и A совпадают, так как данные массивы неидентичных типов.
Начальные значения элементов массива могут быть заданы внутри программы или при описании массива. Во втором случае массив описывается в разделе Const, а элементы перечисляются через запятые и заключаются в скобки. Количество начальных значений должно строго соответствовать количеству элементов массива. Например:
Type
Dim2 = array[1..2] of integer ;
Dim432 = array[1..4,1..3] of Dim2 ;
Const
a : Dim2 = (0,3) ;
b : Dim432 = (((0,1), (0,4), (5,-7)),
((-2,1), (6,-3), (8,2)),
((3,0), (0,0), (0,4)),
((0,1), (2,4), (-1,2))) ;
Почти все операции с массивами требуют использования операторов цикла. К наиболее распространённым операциям относятся суммирование элементов массива и поиск наибольших (наименьших) значений элементов.
Вывод на печать групп элементов одномерного (двумерного) массива чаще всего осуществляется в виде строки (таблицы). При выводе отдельных элементов указывают их индексы. Например:
i := 3 ; j :=2 ; k := 5 ;
a[i,j,k] := 7.5 ;
WriteLn( ‘a[‘,i:1,’,’,j:1,’,’,k:1,’]=‘,a[i,j,k]:3:1) ;
В результате на экран будет выведено a[3,2,5] = 7.5 .
Пример выполнения работы.
Задача 5.1.
Создать два одномерных массива по
правилам
и образовать из них двумерный массив
по правилу
,
где
;
.
Решение.
Анализ задачи.
Здесь
имеем дело с двойным циклом. Пусть
внешний цикл будет по параметру
,
внутренний цикл по параметру
.
В теле цикла сначала вычисляем элементы
одномерного массива
,
где
;
затем вычисляем элементы одномерного
массива
,
где
;
наконец, вычисляем элементы двумерного
массива
,
где
,
;
.
Тест для отладки программы.
,
,
;
,
,
;
,
,
.
Блок-схема:
Программа:
program Vector_Matrix;
Var {Описание переменных}
A : array[1..6] of real ;
B : array[3..7] of real ;
C : array[1..6,3..7] of real ;
I,j : Integer;
{ начало основного блока }
BEGIN
for i:= 1 to 6 do
for j := 3 to 7 do
begin
a[i] := exp(i*ln(2)) ; {Вычисление элементов массива A}
b[j] := sqr(j) ; {Вычисление элементов массива B}
c[i,j] := a[i] + b[j] ; {Вычисление элементов массива C}
end;
{Выводим массив A}
WriteLn('Массив A') ; for i:= 1 to 6 do
Write(a[i]:4:1,' ');
WriteLn ; {перевод курсора на следующую строку}
{Выводим массив B}
WriteLn('Массив B') ;
for j:= 3 to 7 do
Write(b[j]:4:1,' ') ;
WriteLn ; {перевод курсора на следующую строку}
{Выводим массив C}
WriteLn('Массив C') ;
for i:= 1 to 6 do
begin
for j := 3 to 7 do
Write(c[i,j]:5:1,' ') ;
WriteLn ; {перевод курсора на следующую строку}
end;
End.
5. Вид печати:
Массив A
2.0 4.0 8.0 16.0 32.0 64.0
Массив B
9.0 16.0 25.0 36.0 49.0
Массив C
11.0 18.0 27.0 38.0 51.0
13.0 20.0 29.0 40.0 53.0
17.0 24.0 33.0 44.0 57.0
25.0 32.0 41.0 52.0 65.0
41.0 48.0 57.0 68.0 81.0
73.0 80.0 89.0 100.0 113.0
Задача 5.2.
Создать двумерный массив
,
где
;
по
правилу
.
Найти сумму наибольших элементов строк
матрицы с четными номерами. Вывести на
печать саму матрицу, номера строк, в
которых производился поиск наибольших
элементов, сами наибольшие элементы и
окончательный ответ.
Решение.
Анализ задачи.
Обозначим: Max – наибольший элемент в строке с четным номером, N_Max – номер столбца, в котором найден наибольший элемент, sum – сумма наибольших элементов строк матрицы с четными номерами. Для проверки чётности будем использовать функцию Odd(k), которая возвращает True, если k – нечётное число и False, если k – чётное число.
Тест для отладки программы.
;
;
;
;
;
;
;
;
.
Наибольший элемент будет .
3. Блок-схема:
4. Программа:
program Matr;
TYPE
Matrix=array [2..7,1..9] of real;
VAR
a : Matrix;
sum, Max : Real;
N_Max : Integer;