МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар.

Пример 2. Дана матрица действительных чисел размером 3x5. Вычислить сумму элементов матрицы.





PROGRAM EX_1;

CONST

n=3; {Количество строк}

m=5; {Количество столбцов}

TYPE

mas=array[1..n,1..m] of real;

VAR

b: mas; {Массив}

i: integer; {Индекс строки}

j: integer; {Индекс столбца}

s: real; {Сумма}

BEGIN

{Ввод значений матрицы}

Writeln('Введите значения элементов матрицы:');

for i:=1 to n do

for j:=1 to m do

readln(b[i,j]);

{Вычисление суммы}

s:=0;

for i:=1 to n do

for j:=1 to m do

s:=s+b[i,j];

writeln('Сумма = ',s);

END.

Пример3. Дана матрица целых чисел размером 4x4. Заменить все элементы главной диагонали на нули. Вывести на экран монитора содержимое матрицы до обработки и после обработки.

PROGRAM EX_2;

VAR

matr: array[1..4,1..4] of integer; {Матрица}

i: integer; {Индекс строки}

j: integer; {Индекс солбца}

BEGIN

{Ввод значений матрицы}

for i:=1 to 4 do

for j:=1 to 4 do

begin

write('Введите элемент ',i,' ',j,' ');

readln matr[i,j];

end;

{Вывод содержимого матрицы до обработки}

Writeln('Содержимое матрицы до обработки');

for i:=1 to 4 do begin

for j:=1 to 4 do

write(matr[i,j]:4);

writeln;

end;

{Обработка матрицы}

for i:=1 to 4 do matr[i,i]:=0;

 

{Вывод содержимого матрицы после обработки}

Writeln('Содержимое обработанной матрицы ');

for i:=1 t0 4 do begin

for j:=1 to 4 do

write(matr[i,j]:4);

writeln; end;

END.

Пример 4. В матрице P(5, 6) поменять местами максимальный и минимальный элементы. Программа решения этой задачи содержится в следующем листинге.

program Swaping;

{Обмен местами max и min элементов матрицы}

uses

CRT;

const

N = 5; M = 6; {Количество строк и столбцов матрицы}

var

MatP : array [1..N, 1..M] of Integer; {Матрица}

Pmax, Pmin : Integer; {Значения max и min элементов}

Imax, Jmax, {Индексы max элемента}

Imin, Jmin, {Индексы min элемента}

i, j : Byte; {Параметры циклов}

begin {Swaping}

{Заполнение матрицы случайными числами и вывод по строкам}

Randomize; {Инициализация генератора случайных чисел}

ClrScr; Writeln;

Writeln (' ':4, 'Исходная матрица P');

for i := 1 to N do

begin

for j := 1 to M do

begin

MatP [i, j] := Random (50);

Write (' ', MatP [i, j]:3);

end; {for j}

Writeln;

end; {for i}

{Начальные значения max и min}

Pmax := MatP [1, 1]; Imax := 1; Jmax := 1;

Pmin := MatP [1, 1]; Imin := 1; Jmin := 1;

{Поиск max и min элементов матрицы}

for i := 1 to N do {Перебор строк}

for j := 1 to M do

begin {Перебор элементов строки}

if MatP [i, j] > Pmax then

begin {Запоминание max элемента и его индексов}

Pmax := MatP [i, j]; Imax := i; Jmax := j;

end; {if max}

 

if MatP [i, j] < Pmin then

begin {Запоминание min элемента и его индексов}

Pmin := MatP [i, j]; Imin := i; Jmin := j;

end; {if min}

end; {for j}

Writeln;

Writeln (' ':4, 'max: ', 'P [', Imax, ', ', Jmax, '] = ',

MatP [Imax, Jmax]:2);

Writeln (' ':4, 'min: ', 'P [', Imin, ', ', Jmin, '] = ',

MatP [Imin, jmin]:2);

{Обмен местами max и min элементов матрицы}

MatP [Imax, Jmax] := Pmin;

MatP [Imin, Jmin] := Pmax;

{Вывод измененной матрицы P по строкам}

Writeln;

Writeln (' ':3, 'Измененная матрица P');

for i := 1 to N do

begin {Перебор строк}

for j := 1 to M do {Перебор элементов строки}

Write (' ', MatP [i, j]:3);

Writeln;

end; {for i}

end. {Swaping}

Вначале во вложенных циклах по i и j происходит построчное заполнение элементов матрицы P. Априорно в качестве максимального и минимального элементов принимается элемент P [1,1]. Во вложенных циклах по i и j построчно перебираются и просматриваются элементы матрицы, при этом запоминаются наибольший и наименьший элементы среди просмотренных, а также номера строк и столбцов, в которых они расположены.

Далее на место максимального элемента записывается минимальный и наоборот.

Вывод измененной матрицы производится построчно аналогично заполнению.

 

Пример 5. Дана матрица A(3,4), и вектор B (4), состоящие из целых чисел . Умножить матрицу А на вектор В .program pr4-2 ;

const m=3; n=4;

var

a : array [ 1 .. m, 1 .. n ] of integer; (* описание матрицы *)

b : array [ 1 .. n ] of integer; (* описание вектора *)



c : array [ 1 .. m ] of integer; ( * описание С *)

i, j: integer;

begin

for i:=1 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:=1 to m do

begin

c [ i ]:=0; for j:=1 to n do c[i] := c[ i ]+ a[i , j]* b[j];

end;

for i:=1 to m do (*форматный вывод матрицы *)

begin

for j:=1 to n do write (a [i, j]: 4 ); writeln;

end;

for j:=1 to n do write (b [ j ] :4); (* вывод массива B *)

writeln ;

for i:=1 to m do write (c [ i ] :4); (* вывод массива С *)

readln;

end.

В программе элементы матрицы вводятся по строкам по одному с подтверждением клавишей Enter. А выводятся в общепринятом виде: каждая строка матрицы с новой строки экрана (цикл i по строкам внешний, а цикл j – внутренний)





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.