Читайте также:
|
|
Дан одномерный массив MAS(12) из вещественных чисел. Найти наибольший элемент массива и его индекс.
program pr4_1;
const n = 12; (*константа n определяет размер массива в описании*)
type
m = array [1..n] of real; (* m - тип массива mas *)
var mas: m;
i, num: integer; max: real;
begin
for i:=l to n do (*ввод элементов массива mas по 1 в строке*)
begin
writeln('введите элемент массива', i);
read(mas[i]);
end;
num:= 1; max:= mas[1];
for i: =2 to n do
if mas[i] > max then begin
max:= mas[i]; num:= i;
end;
writeln; (* вывод массива в строку*)
for i:=l to n do write (mas[i]:5:1);
writeln;
writeln ('максимальный элемент = ', max:4:1,' его индекс=',num);
end.
Переменная max сравнивается с элементами массива, и если элемент массива больше max, то переменной max присваивается значение элемента массива, а переменной num - индекс этого элемента. По окончании цикла переменная max будет иметь значение, равное максимальному элементу массива, а переменная num - значение индекса этого элемента.
Пример обработки многомерного массива
Как правило, при обработке многомерных массивов используются вложенные циклы, т.е. цикл по столбцам располагается внутри цикла по строкам.
Дана матрица A(3,4), и вектор B(4), состоящие из целых чисел. Умножить матрицу А на вектор В.
program pr4-2;
const m=3; n=4;
var
a: array [l.. m, 1.. n] of integer; (* описание матрицы *)
b: array [1.. n] of integer; (* описание вектора *)
c: array [1.. m] of integer; (* описание С *)
i, j: integer;
begin
for i:=l to m do (* ввод матрицы *)
begin
writeln ('введите элементы ', i, '-той строки');
for j:=1 to n do read(a[i, j]);
writeln;
end;
writeln ('введите элементы вектора');
for j:=1 to n do (* ввод вектора *)
read (b[ j]);
writeln;
for i:=l to m do
begin
c[i]:=0;
for j:=l to n do c[i]:= c[i]+a[i,j]* b[j];
end;
for i:=l to m do (*форматный вывод матрицы *)
begin
for j:=1 to n do write(a[i,j]:4);
writeln;
end;
for j:=l to n do write(b[j]:4); (* вывод массива B *)
writeln;
for i:=l to m do write(c[i]:4); (* вывод массива С *)
readln;
end.
В программе элементы матрицы вводятся по строкам по одному с подтверждением клавишей Enter. А выводятся в общепринятом виде: каждая строка матрицы с новой строки экрана (цикл i по строкам внешний, а цикл j - внутренний).
Выполнение работы
Набрать и откомпилировать приведенные выше программы, исправить выявленные ошибки. Ввести элементы массива, убедиться в правильности выполнения программ.
Составить и выполнить программы с применением массивов согласно вариантам заданий.
Варианты задания 1.
Ввести массив А из 10 элементов
1. Найти наибольший элемент и переставить его с первым элементом. Преобразованный массив вывести.
2. Найти наименьший элемент и переставить его с последним элементом. Преобразованный массив вывести.
3. Найти произведение положительных элементов и вывести его на экран.
4. Найти произведение отрицательных элементов и вывести его на экран.
5. Найти сумму положительных элементов и вывести ее на экран.
6. Найти сумму отрицательных элементов и вывести ее на экран.
7. Найти сумму элементов, больших 3 и меньших 8 и вывести ее на экран.
8. Найти сумму элементов, меньших по модулю 5 и вывести ее на экран.
9. Найти произведение отрицательных элементов и вывести ее на экран.
10. Найти сумму четных элементов и вывести ее на экран..
Варианты задания 2
1. Даны матрица A размером m*n и вектор В размером m. Записать на главную диагональ элементы вектора, а в вектор - элементы главной диагонали.
2. Выбрать максимальный элемент матрицы С (размер m*n), элементы четных строк разделить на максимальный элемент, а к элементам нечетных прибавить максимальный элемент.
3. Найти минимальный элемент матрицы С (размер m*n), и поменять его местами с первым элементом.
4. Дана матрица Е размером m*n. Вычислить суммы элементов каждого столбца. Определить наибольшее значение этих сумм и номер соответствующего столбца.
5. В матрице К размером m*n найти в каждом столбце произведение отрицательных элементов и количество нулевых элементов в матрице.
6. Даны две матрицы А и В одинаковой размерности m*n. Получить матрицу C = max (ai,j, bi,j), и матрицу D = min (ai,j, bi,j).
7. Дана матрица Р размером m*n. Найти сумму минимальных элементов каждого столбца матрицы.
8. Даны две матрицы: А размером m*k и В размером k*n. Получить матрицу С=A*В.
9. Даны матрица A размером m*n. Найти все отрицательные элементы матрицы и заменить их на 0. Вывести результат.
10. Дана матрица Е размером m* n. Найти произведение элементов каждого столбца и сумму элементов каждой строки.
Контрольные вопросы
1. Что такое массив? индекс элемента массива?
2. В каких пределах изменяются индексы элементов массива?
3. Как ввести и вывести элементы вектора в строку и в столбец?
4. Способы описания массивов.
5. Вывод матрицы по строкам и по столбцам.
Дата добавления: 2014-11-24; просмотров: 39 | Поможем написать вашу работу | Нарушение авторских прав |