Обработка двумерных массивов (матриц) — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Обработка двумерных массивов (матриц)

2017-12-21 238
Обработка двумерных массивов (матриц) 0.00 из 5.00 0 оценок
Заказать работу

Вычисление суммы и количества элементов массива

Пример 17. Найти количество отрицательных элементов матрицы А(m,n), удовлетворяющих условию aij>-4.5 (m=3, n=4).

 

Программа Схема алгоритма

 
 


Program Prim17;

var

a: array[1..10,1..10] of real;

i,j,m,n,k: integer;

begin

writeln('Введите m, n');

readln(m,n);

writeln('Введите матрицу');

for i:=1 to m do

for j:=1 to n do

read(a[i,j]);

k:=0;

for i:=1 to m do

for j:=1 to n do

if (a[i,j]<0) and (a[i,j]>-4.5) then k:=k+1;

writeln('k=', k)

end.

 

Исходные данные: Результат:

m = 3; n = 4 k=3

Матрица A

2 4 -5 6

-1 3 -2 7

9 -3 5 8

Пример 18. Найти сумму элементов главной и побочной диагоналeй матрицы С(m,m), (m=4).

Указание.

Нужно учитывать, что элементы главной диагонали матрицы C имеют вид cii; побочной – сi,(n+1)-i, следовательно, для обработки элементов главной и побочной диагоналей матрицы нужно использовать один цикл с параметром i.

 

Программа Схема алгоритма

 
 


Program Prim18;

var

c:array[1..10,1..10] of real;

i,j,m: integer;

s1, s2: real;

begin

writeln('Введите m');

readln(m);

writeln('Введите матрицу');

for i:=1 to m do

for j:=1 to m do

read(c[i,j]);

s1:=0; s2:=0;

for i:=1 to m do

begin

s1:=s1+c[i,i];

s2:=s2+c[i,(n+1-i)];

end;

writeln('s1=', s1:6:2, 's2=', s2:6:2);

end.

 

Исходные данные: Результат:

m = 4 S1= 30.00

Матрица C S2= 35.00

8 6 11 7

5 4 9 8

25 3 -2 1

16 7 4 20

 

 

2.3.2.2. Поиск элементов массива по заданному критерию

 

Пример 19. Найти наибольший элемент по каждому столбцу матрицы В(m,n). (Пусть m<=10, n<=10)

 

Программа Схема алгоритма

 
 


Program Prim19;

var

b: array[1..10,1..10] of real;

i,j,m,n: integer;

max: real;

begin

writeln('Введите m, n');

readln(m,n);

writeln('Введите матрицу');

for i:=1 to m do

for j:=1 to n do

read(b[i,j]);

for j:=1 to n do

begin

max:=b[1,j];

for i:=2 to m do

if b[i,j]>max then max:=b[i,j];

writeln('j=', j:2,' max=', max:6:2);

end;

end.

 

Исходные данные: Результат:

m = 4; n = 4 j= 1 max= 12.00

Матрица B: j= 2 max= 6.00

2 -1 7 5 j= 3 max= 7.00

3 6 4 -9 j= 4 max= 6.00

8 5 -10 2

12 4 3 6

 

Работа с текстовыми файлами

Текстовыми файлами [Л1, стр. 70-74] называются файлы, состоящие из строк символов ASCII. Строки отделяются друг от друга символами “конец строки”, т.е. при вводе данных в файл с клавиатуры нужно нажимать клавишу “ENTER” для ввода каждой компоненты данных. В программе текстовый файл может быть описан в разделе переменных, например, так:

var f: text;

где fуказатель файла (файловая переменная), играющая роль “окна”, через которое можно прочитать или записать компоненты данных, размещаемых в файле.

Чтобы связать имя файловой переменной и соответствующее ему имя файла на магнитном диске нужно записать в программе оператор:

assign(f, ‘ff.dat’);

где f - имя файловой переменной в Pascal-программе, а ff.dat - соответствующее ему имя файла на магнитном диске.

В отличие от массива, количество компонент в файле не фиксировано, место компоненты не определяется индексами.

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

Перед работой с файлом нужно открыть файл, используя один из приведенных ниже операторов:

reset(f); – открыть файл для чтения

rewrite(f); - открыть файл для записи

где f - имя файловой переменной в Pascal-программе.

Для чтения (ввода данных) из файла и записи (вывода данных) в файл используются следующие процедуры:

readln(f); – прочитать данные из файла с именем f;

writeln(f); – записать данные в файл с именем f.

После окончания работы с файлом f нужно закрыть файл, используя процедуру

close(f);

Пример 21. Вычислить таблицу значений функции:

yi=xi2 , если xi ≤ a

yi=xi+1, если xi > a (i=1, 2, …, n) (n≤10)

Пусть исходные данные (выбранные произвольно) размещаются в файле с именем fread.dat и пусть они принимают следующие значения:

n =5; a =2.5; x={0.5, 1.2, 2.5, 3.2, 3.5},

где n – количество элементов массива, x – массив, состоящий из n элементов, т.е. x={x1,x2,…,xn}.

Результаты вычислений поместим в файл с именем fwrite.dat

 

Программа

 

program prim21; {заголовок программы}

var f1, f2: text; {описание файловых переменных f1 и f2}

x, y: array[1..10] of real; {описание массивов}

i, n: integer; {описание переменных}

a: real;

begin

assign(f1,'fread.dat'); {связать f1 с именем файла на диске}

reset(f1); {открыть файл f1 для ввода данных}

read(f1,n); {ввод из файла f1 значения n }

read(f1,a); {ввод из файла f1 значения a }

for i:=1 to n do

read(f1,x[i]); {ввод из файла f1 массива x }

close(f1); {закрыть файл f1}

assign(f2,'fwrite.dat'); {связать f2 с именем файла на диске}

rewrite(f2); {открыть файл f2 для записи результатов}

for i:=1 to n do

if x[i]<=a then y[i]:=x[i]*x[i] else y[i]:=x[i]+1;

writeln(f2,'Таблица y(x)');

writeln(f2,' x y ');

for i:=1 to n do

writeln(f2,x[i]:6:3,' ',y[i]:6:3); {вывод результатов в файл f2}

close(f2); {закрыть файл f2}

end.


Поделиться с друзьями:

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.017 с.