Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт.docx
Скачиваний:
4
Добавлен:
12.11.2019
Размер:
457.63 Кб
Скачать

Двумерные массивы.

  1. Задана целочисленная квадратная матрица A размерностью N:(a)Поменять местами элементы матрицы, расположенные на одной строке и принадлежащие главной и побочной диагоналям

  2. Среди элементов, расположенных ниже главной диагонали матрицы A, найти те элементы, которые удовлетворяют условию K1 <= A[i,j] <= K2 (K1, K2 – произвольные числа), и сформировать из них одномерный массив B

  3. Сформировать одномерный массив B, элементы которого Bi равны true, если элементы i-й строки матрицы A упорядочены по возрастанию, и false – в противном случае

  4. Задана целочисленная матрица A размерностью NxM и массив X(N). Обнулить строки матрицы с номером K, для которого X[K] >= 0

  5. Даны два массива X(N) и Y(M). Сформировать массив Z(N+M) из положительных элементов массивов X и Y.

Процедуры и функции

    1. Листинг.

2.2.1 Одномерные массивы

1.F

program Project2;

const N=9;

var

A,B:array[1..N]of integer;

i,j:integer;

d,c:real;

f:boolean;

begin

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

readln(d);

for i := 1 to N do

begin

Writeln('Введите элемент A[',i,']');

readln(A[i]);

end;

C:=A[1]+d*(N-1);

if A[1]<C then f:=true else f:=false;

writeln(f,C,A[1]);

end.

1.I

program Project2;

const N=7;

var

A,B,C:array[1..N]of integer;

i:integer;

h,g:integer;

begin

h:=0;

g:=0;

for i := 1 to N do

readln(A[i]);

for i := 1 to N do

begin

if A[i]>=0 then

h:=h+1;

B[i]:=A[i];

if A[i]<0 then

g:=g+1;

C[i]:=A[i];

writeln(B[i],' ',C[i],' ',h,' ',g);

end;

end.

2

program Project2;

const N=3;

var

A,Z,X:array[1..N]of real;

i:integer;

begin

for i := 1 to N do

begin

Writeln('Введите элемент A[',i,']');

readln(A[i],X[i]);

z[i]:=sqrt((x[i]+a[i])/2)

end;

writeln(z[i],' ',z[1],' ',z[2],' ',z[3]);

end.

3.

program Project2;

const N=3;

var

A,B,X:array[1..N]of real;

i:integer;

begin

for i := 1 to N do

begin

Writeln('Введите элемент A[',i,']');

readln(A[i],B[i]);

x[i]:=b[i]/a[i];

end;

writeln(x[i],' ',x[1],' ',x[2],' ',x[3]);

end.

5.

program Project5;

const N=2;

var

A,B:array[1..N]of integer;

i:integer;

f:boolean;

begin

for i:=1 to N do

begin

writeln('Введите A[',i,']');

readln (A[i]);

writeln('Введите B[',i,']');

readln (B[i]);

end;

for i:=1 to N do

begin

if A[i]=B[i] then

f:=true

else

f:=false;

end;

writeln('Ответ:',f);

end.

2.2.2 Двумерные массивы

1.

Program smenaMest

Uses crt;

Const

N=4;

Type

mas=array [1..N,1..N] of integer;

Procedure vvod(var a:mas);

var

i,j:integer;

begin

for i:=1 to N do

for j:=1 to N do

readln(a[i,j]);

end;

Procedure smena(var a:mas);

var

i,k:integer;

begin

for i:=1 to n do

begin

k:=a[i,i];

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

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

end;

end;

Procedure vyvod(a:mas);

var

i,j:integer;

begin

for i:=1 to N do begin

for j:=1 to N do begin

write(a[i,j]);

end;

writeln;

end;

end;

Var

a:mas;

Begin

Clrscr;

vvod(a);

smena(a);

vyvod(a);

Readkey;

end.

2

Uses crt;

Const

N=4;

Type

mas=array [1..N,1..N] of integer;

masb=array [1..N*N] of integer;

Procedure vvod(var a:mas);

var

i,j:integer;

begin

for i:=1 to N do

for j:=1 to N do

readln(a[i,j]);

end;

Procedure B_ot_K_do_K(k1, k2:integer; var k:integer; var a:mas; var b:masb);

var

i,j:integer;

begin

for i:=2 to n do

for j:=1 to i-1 do

if (k1<=a[i,j]) and (a[i,j]<=k2) then

begin

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

k:=k+1;

end;

end;

Procedure vyvod(k:integer; b:masb);

var

i:integer;

begin

for i:=1 to k do

write(b[i],' ');

end;

Var

a:mas;

b:masb;

k:integer;

Begin

clrscr;

vvod(a);

B_ot_K_do_K(4,8,k,a,b);

vyvod(k,b);

readkey;

end.

3.

Program smenaMest;

Uses crt;

Const

N=4;

Type

mas=array [1..N,1..N] of integer;

masb=array [1..N*N] of boolean;

Procedure vvod(var a:mas);

var

i,j:integer;

begin

for i:=1 to N do

for j:=1 to N do

readln(a[i,j]);

end;

Procedure true_false(a:mas; var b:masb);

var

z,i,j:integer;

k:boolean;

begin

for i:=1 to n do

begin

z:=0;

j:=2;

k:=false;

while j<=N do begin

if a[i,j-1] < a[i,j] then

begin

k:=true;

z:=z+1;

end;

j:=j+1;

end;

if z=N-1 then b[i]:=k;

end;

end;

Procedure vyvod(b:masb);

var

i:integer;

begin

for i:=1 to N do

write(b[i],' ');

end;

Var

a:mas;

b:masb;

Begin

clrscr;

vvod(a);

true_false(a,b);

vyvod(b);

Readkey;

End.

4.

Program obnulenie;

Uses crt;

Const

N=5;

M=4;

Type

masA=array [1..N,1..M] of integer;

masX=array [1..N] of integer;

Procedure vvod_A(var a:masA);

var

i,j:integer;

begin

writeln('vvedite A: ');

for i:=1 to N do

for j:=1 to M do

readln(a[i,j]);

end;

Procedure vvod_X(var x:masX);

var

i:integer;

begin

writeln('vvedite X: ');

for i:=1 to N do

readln(x[i]);

end;

Procedure ob_e(k:integer; var a:masA);

var

j:integer;

begin

for j:=1 to M do

a[k,j]:=0;

end;

Procedure prosmotr(x:masX; var a:masA);

var

i:integer;

begin

for i:=1 to N do

if x[i]>=0 then ob_e(i,a);

end;

Procedure vyvod(a:masA);

var

i,j:integer;

begin

for i:=1 to N do begin

for j:=1 to M do begin

write(a[i,j]);

end;

writeln;

end;

end;

Var

a:masA;

x:masX;

Begin

clrscr;

vvod_A(a);

vvod_X(x);

prosmotr(x,a);

vyvod(a);

Readkey;

End.

5.

Program ex;

uses crt;

Const

N=5;

M=3;

Type

massX=array[1..N] of integer;

massY=array[1..M] of integer;

massZ=array[1..N+M] of integer;

Var

k:integer;

Procedure masX(l:integer; var mass:massX);

var

i:integer;

begin

writeln('vvedite masX: ');

for i:=1 to l do

readln(mass[i]);

end;

Procedure masY(l:integer; var mass:massY);

var

i:integer;

begin

writeln('vvedite masY: ');

for i:=1 to l do

readln (mass[i]);

end;

Procedure ifi1(l:integer; v:massX; var k:integer; var c:massZ);

var

i:integer;

begin

for i:= 1 to l do

begin

if v[i]>0 then

begin

k:=k+1;

c[k]:=v[i];

end;

end;

end;

Procedure ifi2(l:integer; v:massY; var k:integer; var c:massZ);

var

i:integer;

begin

for i:= 1 to l do

begin

if v[i]>0 then

begin

k:=k+1;

c[k]:=v[i];

end;

end;

end;

Procedure masZ(k:integer; c:massZ);

var

i:integer;

begin

writeln('massiv iz pol el: ');

for i:=1 to k do

write(c[i],' ');

end;

Var

x:massX;

y:massY;

z:massZ;

Begin

Clrscr;

masX(N, x);

ifi1(N, x, k, z);

masY(M, y);

ifi2(M, y, k, z);

masZ(k, z);

readkey;

end.

2.2.3 Блок-схемы

Одномерные массивы

1.f

1.i

2.

3.

5.

      1. Результаты

Одномерные массивы

1.F

Тест№

Ввод

Вывод

1

2

1.I

Тест№

Ввод

Вывод

1

2

2.

Тест№

Ввод

Вывод

1

2

3.

Тест№

Ввод

Вывод

1

2

5.

Тест№

Ввод

Вывод

1

2