русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Транспонирование матрицы.


Дата добавления: 2014-11-28; просмотров: 3724; Нарушение авторских прав


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

Операция транспонирования сводится к обмену элементов матрицы, расположенных симметрично главной диагонали.

Исходная матрица Транспонированная матрица

 

 

Фрагмент программы транспонирования матрицы:

for i:=1 to n do {Просмотр всех строк матрицы}

for j:=i+1 to n do {Просмотр всех элементов в строке, расположенных выше главной диагонали}

begin

k:=a[i,j];

a[i,j]:= a[j,i];

a[j,i]:= k;

end;

Контрольные вопросы:

1. Какие из приведенных описаний одномерных массивов являются неправильными и почему:

а) var dim:array[-1..1] of real;

б) type mas=array[char] of char;

var beta:mas;

в) type massiv=array['A'..'D'];

var a,b:massiv;

г) var vector:array[integer] of char;

д) var mm:array[false..true] of char;

е) type ss=array[-20..0] of integer;

var mas=ss;

ж) type tr=array[1..n,1..m] of real;

var x,y,z:tr;

з) var k:integer;

pak:array[1..k] of integer;

 

2. Может ли типом индекса массива быть тип integer или real?

3. Дано:

const n=101;

var a:array[1..n] of real;

a) напишите операторы для ввода элементов в массив а;

б) напишите операторы для заполнения массива а случайными числами в интервале от -16 до 73;

в) напишите операторы для вывода элементов массива а в строку, разделяя их двумя пробелами;

г) напишите операторы для вывода элементов массива а в строку, разделяя их таким количеством пробелов, каков порядковый номер выводимого элемента;



д) напишите операторы вывода элементов массива в обратном порядке по n чисел в строке.

4. Чем одномерный массив отличается от двумерного?

5. Почему массивы называются структурами данных с прямым доступом?

6. Приведите примеры программ, где прямой доступ необходим.

7. Установите, какая задача решается в предложенном фрагменте программы. Назовите все операторы и типы данных, использованные в нем, расскажите как они работают:

const n=10;

var u,v,w:array [1..n] of integer;

j,k,t:integer;

begin k:=0;

for j:=n downto 1 do

begin t:=u[j]-v[j]+k;

w[j]:=t mod 10;

k:=t div 10;

end;

end.

8. Задан массив . Установите, каким будет значение С после выполнения операторов:

for i:=1 to 3 do

for j:=1 to 3 do

C[i,j] := A[A[i,j],A[j,i]].

Существенен ли порядок, в котором выбираются значения индексов i и j?

9. Установите, какая задача решается в предложенном фрагменте программы. Назовите все операторы и типы данных, использованные в нем, расскажите как они работают:

for i:=p to q-(p-q+1) div 2 do

begin r:=a[i];

a[i]:=a[q-i+p];

a[q-i+p]:=r

end.

10. Установите, какая задача решается в предложенном фрагменте программы. Назовите все операторы и типы данных, использованные в нем, расскажите как они работают:

for i:=1 to n do

for j:=1 to n do

a[i,j]:=(i div j) * (j div i).

11. Установите, какая задача решается в предложенном фрагменте программы. Назовите все операторы и типы данных, использованные в нем, расскажите как они работают:

for i:=1 to n-1 do

for j:=i+1 to n do

if a[i]>a[j]

then begin r:=a[i];

a[i]:=a[j];

a[j]:=r

end.

12. Какую задачу решает предложенный фрагмент алгоритма? Определите значение массива А после выполнения следующих операторов при N=3 и :

for i:=1 to n-1 do

for j:=i+1 to n do

begin r:=a[i,j];

a[i,j]:=a[j,i];

a[j,i]:=r

end.

13. Какую задачу решает предложенный фрагмент программы? Определите значение массива C после выполнения следующих операторов при N=3, M=2 и :

for j:=1 to m do

begin s:=0;

for i:=1 to n do s:=s+a[i,j];

c[j]:=s

end.

14. Какую задачу решает предложенный фрагмент программы? Определите значение массива C после выполнения следующих операторов для заданных массивов и :

for i:=1 to n do

for j:=1 to n do

if a[i,j]=b[i,j]

then c[i,j]:=1

else c[i,j]:=0.

15. Какую задачу решает предложенный фрагмент программы? Определите значение массива A после выполнения следующих операторов при N=8, K=2 и А=(4, -3, 5, -2, 3, 10, 9, 0):

n:=n-1;

for i:=k to n do a[i]:=a[i+1].

16. Какую задачу решает предложенный фрагмент программы? Определите значение массива A после выполнения следующих операторов при M=3, N=5, D=6 и А=(5, 2, -8, 1, -3):

i:=m;

while i<=n-1 do

begin a[i]:=a[i+1];

i:=i+1

end;

a[n]:=d.

17. Какую задачу решает предложенный фрагмент программы? Определите значение массива B после выполнения следующих операторов при N=7 и А=(1, 6, 7, 3, -2, 8, 9):

for i:=1 to n do b[i]:=a[n-i+1].

18. Какую задачу решает предложенный фрагмент программы? Определите значение массива P после выполнения следующих операторов при M=3, N=3 и :

for i:=1 to n do

begin p[i]:=0;

for j:=1 to m do

if a[i,j]=5

then p[i]:=p[i]+1

end.

19. Какую задачу решает предложенный фрагмент программы? Определите значение массива C после выполнения следующих операторов при M=9 и C=(4, 5, 3, 2, 2, 3, 5, 8, 7):

 

k:=trunc(m/2);

for i:=1 to k do

begin q:=c[i];

c[i]:=c[m-i+1];

c[m-i+1]:=q

end.

20. Какую задачу решает предложенный фрагмент программы? Определите значение массива A после выполнения следующих операторов при N=8, K=3 и А=(3, -1, 9, -3, 4, 12, 3, 7):

n:=n-1;

for i:=k to n do a[i]:=a[i+1].

 

21. Какую задачу решает предложенный фрагмент программы? Определите значение массива S после выполнения следующих операторов при N=5 и :

for i:=1 to n do s[i]:=a[i,i].

22. Какую задачу решает предложенный фрагмент программы? Определите значение переменной S после выполнения следующих операторов при N=6, T=5 и А=(-4, 0, 3, 9, 5, 2):

s:=0;

k:=0;

for i:=1 to n do

if a[i]>t

then begin s:=s+a[i];

k:=k+1

end;

if k>0 then s:=s/k.

23. Какую задачу решает предложенный фрагмент программы? Определите значение массива C после выполнения следующих операторов для заданных массивов N=3, и :

for i:=1 to n do

for j:=1 to n do

if a[i,j]>b[i,j]

then c[i,j]:=a[i,j]-b[i,j]

else c[i,j]:=b[i,j]-a[i,j].

24. Сформулируйте задачу, решаемую в предложенном фрагменте программы, где a[i,j] – элемент массива размерности . Определите значение массива А при N=4, M=5, K=3, :

for i:=1 to n do

for j:=k to m-1 do a[i,j]:=a[i,j+1].

25. Задан одномерный массив А=(7, 5, 4, 6, 3, 2, 1). Какое значение будет выведено в результате выполнения программы:

var a:array[1..7] of integer;

i,j,k,c:integer;

begin write('Введите семь элементов массива ');

for k:=1 to 7 do read(a[k]);

i:=3; c:=0;

for k:=1 to 100 do

begin j:=a[i]; a[i]:=i; i:=j; c:=c+i end;

write(c)

end.

26. Какое значение будет выведено в результате выполнения программы:

var i,k,k1,c : longint;

begin k:=3; k1:=1; c:=80;

for i:=64 to 174 do

begin k1:=-k1; k:=k+k1; c:=c+k*i end;

write(c)

end.

 

Задачи

 

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

program zadacha_1;

uses crt;

var

a: array[1..50,1..50] of integer; {массив}

i,j: integer; {переменные счетчики}

n,m: integer; {количество строк и столбцов массива}

s: integer; {сумма элементов массива}

p: integer; {произведение элементов некоторой строки}

q: integer; {некоторая строка}

begin

clrscr;

write('Введите количество строк: ');

readln(n);

write('Введите количество столбцов: ');

readln(m);

for i:=1 to n do

for j:=1 to m do

begin

write('a[',i,',',j,']=');

readln(a[i,j]);

end;

writeln('Матрица:');

for i:=1 to n do

begin

for j:=1 to m do

begin

write(a[i,j]:3);

end;

readln;

end;

for i:=1 to n do

for j:=1 to m do

begin

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

end;

write('Введите номер строки для работы: ');

readln(q);

p:=1;

for j:=1 to m do

begin

p:=p*a[q,j];

end;

writeln('Сумма элементов матрицы: ',s);

writeln('Произведение элементов строки ',q,' равна ',p);

if s>p then

begin

writeln('Сумма больше произведения');

end

else

begin

writeln('Произведение больше произведения');

end;

readln;

end.

2. Поменять второй столбец матрицы с предпоследним.

program zadacha_2;

uses crt;

var

a: array [1..50,1..50] of integer;

b: array [1..50,1..50] of integer;

m,n,i,j: integer;

begin

clrscr;

writeln('Количество строк');

readln(n);

writeln('Количество столбцов');

readln(m);

for i:= 1 to n do

for j:= 1 to m do

begin

write ('a[',i,',',j,']=');

readln (a[i,j]);

end;

writeln('Исходная матрица:');

for i:=1 to n do begin

for j:=1 to m do

write (a[i,j]);

writeln;

end;

for i:=1 to n do begin

for j:=1 to m do

b[i,j]:=a[i,j];

end;

for i:=1 to n do begin

a[i,2]:=b[i,m-1];

end;

for i:=1 to n do begin

a[i,m-1]:=b[i,2];

end;

writeln('Полученная матрица:');

for i:=1 to n do begin

for j:=1 to m do

write (a[i,j]);

writeln;

end;

readln;

end.

3. Дана матрица размерности m*n. Расположить элементы последнего столбца по убыванию.

program zadacha_3;

uses crt;

var

a:array [1..50] of integer;

b:array [1..50] of integer;

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

begin

clrscr;

write('Введите количество строк');

readln(n);

write('Введите количество столбцов');

readln(m);

for i:=1 to n do

for j:=1 to m do

begin

write('a[',i,']={b[',j,']=}');

readln(a[i]);

end;

for i:=1 to n-1 do

for k:=i+1 to n do

{for j:=1 to m do}

if a[k]>a[i] then

begin

r:=a[i];

a[i]:=a[k];

a[k]:=r;

end;

writeln('Отсортированый массив:');

for i:=1 to n do

writeln(a[i]:4);

readln;

end.

Дана квадратная матрица. Транспонировать её. Посчитать сумму всех нечётных элементов транспонированной матрицы.

program zadacha_4;

uses crt;

var

a:array [1..5,1..5] of integer;

S,i,j,n,c:integer;

begin

clrscr;

write ('введите кол-во строк и столбцов ');

readln (n);

for i:=1 to n do

for j:=1 to n do

begin

write ('a[',i,',',j,']=');

readln (a[i,j]);

end;

for i:=1 to n do

for j:=i+1 to n do

begin

c:=a[i,j];

a[i,j]:=a[j,i];

a[j,i]:=c;

end;

S:=0;

for j:=1 to n do

for i:=1 to n do

begin

if a[j,i] mod 2 <>0 then

begin

S:=S+a[j,i];

end;

end;

writeln ('S=',S);

readln;

end.

4. Дан двумерный массив. Посчитать сумму его двух столбцов, вывести большую сумму.

program zadacha_5

uses crt;

var

a:array[1..3,1..3] of integer;

i,j,m,n,s,s1,p,p1,max,p3:integer;

begin

clrscr;

write('введите количество строк');

readln(n);

write('введите количество столбцов');

readln(m);

for i:=1 to n do

for j:=1 to m do

begin

write('a[',i,',',j,']=');

readln(a[i,j]);

end;

begin

write('введите номер столбца');

readln(p);

for i:=1 to n do

for j:=1 to m do

if j=p then s:=s+a[i,p];

write('s=',s);

readln;

end;

s1:=0;

begin

write('введите номер другого столбца');

readln(p1);

for i:=1 to n do

for j:=1 to m do

if j=p1 then s1:=s1+a[i,p1];

write ('s1=', s1);

readln;

end;

begin

max:=s;

if s < s1 then

begin

max:=s1;

write('максимальная сумма',max);

readln;

write('вывести на экран номер столбца большей суммы', p3);

readln(p3);

end;

end;

end.

end.

5. Дана вещественная матрица размерности n*m. Удалить k столбец матрицы.

program zadacha_5;

uses crt;

var

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

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

i,j: integer; {переменные счётчики}

n,m: integer; {количество строк и столбцов в массиве}

k: integer; {№ строки которую необходимо удалить}

begin

clrscr;

write ('Введите количество строк в массиве');

readln (n);

write ('введите количество столбцов в массиве');

readln (m);

write ('Введите № строки которую надо удалить');

readln (k);

randomize; {ввод массива случайных чисел}

for i:=1 to n do

for j:=1 to m do

begin

a[i,j]:=random(100);

end;

for i:=1 to n do

for j:=1 to m do

begin

writeln ('a[',i,',',j,']=',a[i,j]);

end;

writeln ('Новый массив');

for i:=1 to n do

for j:=1 to m do

begin

if j<>k then

{Проверка условия № столбца

неравен № столбца,

который необходимоудалить}

begin

b[i,j]:=a[i,j];

{если да, то новому массиву

присваиваем проверяемый элемент }

end;

end;

for i:=1 to n do {вывод нового массива}

for j:=1 to m do

writeln ('b[',i,',',j,']=',b[i,j]);

readln;

end.

6. Дана вещественная матрица размерности n*m. Вывести номера столбцов, содержащих только отрицательные элементы.

program zadacha_10;

uses crt;

var

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

i,j: integer;

n,m: integer;

begin

clrscr;

write('введите кол-во строк ');

readln(n);

write('введите кол-во столбцов ');

readln(m);

for i:=1 to n do

for j:=1 to m do

begin

write('a[',i,',',j,']= ');

readln(a[i,j]);

end;

for j:=1 to m do

begin

if a[i,j]<0 then

begin

writeln('номер столбца, в котором все элементы отрицательные= ',J);

readln;

end

else

begin

writeln ('в столбце ',J,' нет отрицательных или не

все отрицательные элементы ');

end;

end;

readln;

end.

11.В двумерном массиве найти минимальное число и определить в какой строке и каком столбце он находится.

program zadacha_11;

uses crt;

var

a:array [1..50,1..50] of integer; {описание масива}

i,j:integer; {переменные-счетчики}

min: real; { минимальное число}

n,m: integer; { кол-во строк, кол-во столбцов}

begin {начало программы}

clrscr;

write('введите кол-во строк '); {ввод кол-ва строк}

readln(n);

write('введите кол-во столбцов '); {ввод кол-ва столбцов}

readln(m);

for i:=1 to n do

for j:=1 to m do

begin

write('a[',i,',',j,']= '); { ввод элементов массива }

readln(a[i,j]);

end;

min:=a[1,1];

for i:=1 to n do

for j:=1 to m do

begin

if a[i,j] < min then {поиск минимального числа}

min:=a[i,j];

end;

for i:=1 to n do

for j:=1 to m do

begin

if a[i,j]=min then

begin

writeln('минимальное число = ',min:5);

{вывод минимального числа}

writeln('номер элемента i=',i,',','j=',j);

{вывод номера мин. чис-ла}

end;

end;

readln;

end.

12.Развернуть квадратную матрицу на 90 градусов по часовой стрелке.

program zadacha_12;

uses crt;

var

a: array [1..30,1..30] of integer; {исходная матрица}

b: array [1..30,1..30] of integer; {промежуточная матрица}

c: array [1..30,1..30] of integer; {Матрица развёрнута на 90?}

i,j: integer; {переменные счётчики}

m,n: integer; {количество строк и столбцов}

begin

clrscr;

write ('введите количество строк и столбцов ');

readln (n);

for i:=1 to n do {ввод элементов массива}

for j:=1 to n do

begin

write ('a[',i,',',j,']=');

readln (a[i,j]);

end;

for i:=1 to n do

for j:=1 to n do

begin

b[i,j]:=a[n+1-i,j]; {промежуточной матрицы присваиваем

элементы первоначальной матрицы по закону: первому элементу

присваиваем строки последний, последнему первый, второму

элементу предпоследний, предпоследнему второй и тд.}

end;

writeln ('Матрица развёрнута на 90?.');

for i:=1 to n do

for j:=1 to n do

begin

c[i,j]:=b[j,i]; {третьей матрице присваиваем

элементы промежуточной по закону: первая строка

становится первым столбцом и тд. }

writeln ('c[',i,',',j,']=',c[i,j]); {печать массива развёрнутого на 90?}

readln;

end;

end.

13.Заменить положительные элементы прямоугольной вещественной таблицы их целыми частями, а отрицательные - их модулями.

program zadacha_13;

uses crt;

var

a:array[1..50,1..100] of real;

i,j,n,m:integer;

begin

clrscr;

write('Введите кол-во строк');

readln(n);

write('Введите кол-во столбцов');

readln(m);

for i:=1 to n do

for j:=1 to m do

begin

write('a[',i,',',j,']=');

readln(a[i,j]);

end;

for i:=1 to n do

for j:=1 to m do

begin

if a[i,j]>0 then a[i,j]:=int(a[i,j]);

if a[i,j]<0 then a[i,j]:=abs(a[i,j]);

writeln ('a[',i,j,']=',a[i,j]:3:2);

readln;

end;

end.

 

14.Дана вещественная квадратная матрица размерности n. Поменять местами элементы главной и побочной диагоналей матрицы по столбца

program zadacha_14;

uses crt;

var

a:array [1..50,1..100] of integer;

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

begin

clrscr;

write('введите кол-во строк и столбцов');

readln(n);

for i:=1 to n do

for j:=1 to n do

begin

write('a[',i,',',j,']=');

readln(a[i,j]);

end;

for i:=1 to n do

for j:=1 to n do

begin

if i=j then

begin

k:=a[i,j];

a[i,j]:=a[i,n+1-j];

a[i,n+1-j]:=k;

end;

end;

for i:=1 to n do

begin

for j:=1 to n do

writeln(a[i,j]:4);

writeln;

end;

readln;

end.

15.Дана вещественная матрица размерности m*n. Определить индексы первого нулевого элемента матрицы. Обход делать по столбцам.

program zadacha_15;

uses crt;

var

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

m,n: integer; {количество строк и столбцов}

i,j: integer; {переменные счётчики}

k: integer; {переменная счётчик }

begin

clrscr;

write ('Введите количество строк в массиве ');

readln (n);

write ('введите количество столбцов в массиве');

readln (m);

for i:=1 to n do {ввод массива}

for j:=1 to m do

begin

write ('a[',i,',',j,']=');

readln (a[i,j]);

end;

for j:=1 to m do

for i:=1 to n do

begin

if a[i,j]=0 then{проверка условия равен ли проверяемый элемент 0}

begin

k:=k+1; {если да, то увеличиваем переменную k на1}

if k=1 then {проверка условия k=1}

begin

writeln ('i=',i,',j=',j); {если да, то печатать № строки и № столбца }

end;

end;

end;

readln;

end.

16.Заполните квадратную матрицу по образцу:

program zadacha_16;

uses crt;

var

a: array [1..30,1..30] of integer;

i,j,n,p,s,k: integer;

begin

clrscr;

write ('Введите количество строк и столбцов в матрице.');

readln (n);

k:=n*n;

for i:=1 to n do

begin

if (i mod 2)<>0 then

begin

for j:=1 to n do

begin

a[i,j]:=k;

k:=k-1;

end;

end

else

begin

for j:=n downto 1 do

begin

a[i,j]:=k;

k:=k-1;

end;

end;

end;

for i:=1 to n do

begin

for j:=1 to n do

writeln (a[i,j]:5);

readln;

end;

end.

17.Сформировать матрицу по образцу:

program zadacha_17;

var n,i,j:integer; a:array [1..100,1..100] of integer;

begin write('введите n:'); readln(n);

for i:=1 to n do

for j:=1 to n do

begin

a[i,j]:=j-i+1;

if a[i,j]<=0 then a[i,j]:=abs(a[i,j]-2);

end;

 

for i:=1 to n do

begin for j:=1 to n do

write(a[i,j]:3);

writeln

end

end.

18.Сформировать матрицу по образцу:

program zadacha_18;

var a:array[1..100,1..100] of integer;

i,j,n:integer;

begin write('Введите количество строк и столбцов');

readln(n);

for i:=1 to n div 2 do

for j:=i to n do

begin a[i,j]:=0;

if ((j>=i) and (j<=(n-i+1))) and (i<=(n div 2)+1)

then begin a[i,j]:=1;

a[n-i+1,j]:=1;

end;

end;

if n mod 2=1 then a[n div 2+1,j div 2+1]:=1;

for i:=1 to n do

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

writeln

end;

readln

end.

19.Дана матрица размеренности m*n, в которой не все элементы равны нулю. Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент.

program zadacha_19;

uses crt;

var

a:array[1..100,1..100] of integer; {исходная матрица}

b:array[1..100,1..100] of single; {конечная матрица}

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

j:integer; {номер столбца}

n:integer; {количество строк}

m:integer; {количество столбцов}

max:integer;{наибольший по модулю элемент}

begin

clrscr;

writeln ('Количество строк');

readln(n);

writeln ('Количество столбцов');

readln(m);

for i:=1 to n do {ввод элементов исходной матрицы}

for j:=1 to m do

begin

write('a[',i,',',j,']=');

readln(a[i,j]);

end;

writeln('Исходная матрица:');

for i:=1 to n do {вывод элементов матрицы}

begin

for j:=1 to m do

begin

write(a[i,j]);

end;

writeln;

end;

max:=abs(a[1,1]); {нахождение наиб. элемента по модулю}

for i:=1 to n do

for j:=1 to m do

begin

if abs(a[i,j])>max then

max:=abs(a[i,j]);

end;

writeln('Наибольший по модулю элемент: ',max);

for i:=1 to n do {деление каждого эл. нового массива на max}

for j:=1 to m do

begin

b[i,j]:=a[i,j]/max;

end;

writeln('Конечная матрица:');

for i:=1 to n do {вывод элементов конечной матрицы}

begin

for j:=1 to m do

begin

write(b[i,j]);

end;

writeln;

end;

readln;

end.

20.Дана квадратная вещественная матрица размерности n. Является ли матрица симметричной относительно главной диагонали

program zadacha_20;

uses crt;

var

a:array[1..50,1..50]of integer;{описываю массив и данные}

n:integer;

i,j:integer;

begin

clrscr;

writeln('введите кол-во строк и столбцов'); {ввожу кол-во строк и столбцов}

readln(n);

for i:=1 to n do

for j:=1 to n do

begin

write('a[',i,',',j,']=');{ввожу числа}

readln(a[i,j]);

end;

begin

for i:=1 to n-1 do {транспонирую матрицу}

for j:=i+1 to n do

end;

if a[i,j]=a[j,i] then {проверяю условие}

writeln('матрица симетричная'){вывожу ответ на экран}

else

writeln('матрица не симетричная');

readln;

end.

21.Дана действительная квадратная матрица порядка n. Вычислить сумму тех из m элемен-тов, расположенных по главной диагонали и выше неё, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если элементов с указанным свойством нет, то вывести соответствующее сообщение.

program zadacha_21;

uses crt;

var

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

i,j: integer;

n: integer;

max: real;

s: real;

begin

clrscr;

writeln ('введите кол-во строк и столбцов');

readln (n);

for i:=1 to n do

for j:=1 to n do

begin

write('a[',i,',',j,']=');

readln(a[i,j]);

end;

s:=0;

max:=0;

for i:=1 to n do

for j:=1 to n do

begin

if i>j then

begin

if a[i,j]>max then

begin

max:=a[i,j];

end;

end;

end;

for i:=1 to n do

for j:=1 to n do

begin

if (i<=j) then

begin

if a[i,j]>max then

begin

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

end;

end;

end;

if s<>0 then

begin

write ('s=',s:5:2);

end

else

begin

writeln ('Элементов с указанным свойством нет');

end;

readln;

end

22.Имеется квадратная матрица. Повернуть её на 180 градусов

program zadacha_22;

uses crt;

var

a,x: array [1..50,1..50] of integer;

i,j: integer;

n: integer;

begin

randomize;

clrscr;

writeln('Введите размерность массива');

readln(n);

for i:=1 to n do

for j:=1 to n do

begin

a[i,j]:=random(100);

end;

for i:=1 to n do

begin

for j:=1 to n do

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

writeln;

end;

writeln('Новый массив');

for i:=1 to n do

for j:=1 to n do

begin

x[i,j]:=a[n-i+1,n-j+1];

end;

for i:=1 to n do

begin

for j:=1 to n do

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

writeln;

end;

readln;

end.

 



<== предыдущая лекция | следующая лекция ==>
Квадратная матрица | Задачи для самостоятельного решения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.05 сек.