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

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЭКОНОМИКИ, СТАТИСТИКИ И ИНФОРМАТИКИ.



КАФЕДРА МАТЕМАТИЧЕСКОГО ОБЕСПЕЧЕНИЯ И АДМИНИСТРИРОВАНИЯ ИНФОРМАЦИОННЫХ СИСТЕМ.





































ЛАБОРАТОРНАЯ РАБОТА № 2

ОБРАБОТКА ДВУМЕРНЫХ МАССИВОВ (МАТРИЦ).







































Выполнил студент группы  ДМК – 101

Преподаватель: Сорока Р.И.









Москва 2010.

Оглавление:



	Постановка задачи	3

	Распечатка программы	3

	Распечатка результатов	4

	Контрольный просчет	4

































































































Постановка задачи. 



Удалить строки и столбцы матрицы, где все элементы являются числами Фибоначчи.



Распечатка программы.



Program pr1;

var

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

m,n,i,j,f0,f1,f2,k,l,d:integer;

f:boolean;

begin

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

read(m,n);

writeln('введите элементы');

for i:=1 to m do

for j:=1 to n do

read(a[i,j]);



for i:=1 to m do

        begin

        f:=false;

        for j:=1 to n do

                begin

                f0:=1;

                f1:=1;

                while f1<a[i,j] do

                        begin

                        f2:=f0+f1;

                        f0:=f1;

                        f1:=f2;

                        end;

                if f1<>a[i,j] then f:=true;

                end;

        if f then

                begin

                k:=k+1;

                for l:=1 to n do

                a[k,l]:=a[i,l];

                end;

        end;



for j:=1 to n do

        begin

        f:=false;

        for i:=1 to m do

                begin

                f0:=1;

                f1:=1;

                while f1<a[i,j] do

                        begin

                        f2:=f0+f1;

                        f0:=f1;

                        f1:=f2;

                        end;

                if f1<>a[i,j] then f:=true;

                end;

        if f then

                begin

                d:=d+1;

                for l:=1 to n do

                a[l,d]:=a[l,j];

                end;

        end;

for i:=1 to k do begin

writeln;

for j:=1 to d do

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

readln;

readln;

end.



Распечатка результатов.







Контрольный просчет.

M=5

N=5















I

J

A[i,j]

F1(конечн)

F

K

L

a[k,l]

1

1

3

3

False









2

4

5

True









3

5

5

True









4

6

8

True









5

7

8

True

1

1 2 3 4 5

3 4 5 6 7

2

1

1

1

False









2

2

2

False









3

3

3

False









4

5

5

False









5

8

8

False







3

1

6

8

True









2

9

13

True









3

13

13

True









4

45

55

True









5

3

3

True

2

1 2 3 4 5

6 9 13 45 3

4

1

8

8

False









2

13

13

False









3

21

21

False









4

34

34

False









5

55

55

False







5

1

1

1

True









2

1

1

True









3

3

3

True









4

1

1

True









5

4

5

True

3

1 2 3 4 5

1 1 3 1 4





j

i

A[i,j]

F1(конечн)

F

D

L

a[l,d]

1

1

3

3

False









2

1

1

False









3

6

8

True









4

8

8

True









5

1

1

True

1

1 2 3 4 5

3 1 6 8 1

2

1

4

5

True









2

2

2

True









3

9

13

True









4

13

13

True









5

1

1

True

2

1 2 3 4 5

4 2 9 13 1

3

1

5

5

False









2

3

3

False









3

13

13

False









4

21

21

False









5

3

3

False







4

1

6

8

True









2

5

5

True









3

45

55

True









4

34

34

True









5

1

1

True

3

1 2 3 4 5

6 5 45 34 1

5

1

7

8

True









2

8

8

True









3

3

3

True









4

55

55

True









5

4

5

True

4

1 2 3 4 5

7 8 3 55 5



I,J

1

2

3

4

1

3

4

6

7

2

6

9

45

3

3

1

1

1

4



2