Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




Задание №1. В матрице А размерности 5х5 найти сумму элементов главной диагонали:

Исходные данные:

.

Текст программы к заданию №1:

Program m111516;

Uses

Crt;

Const

N=5;

A: Array [1..N, 1..N] OF Real = ((1, 0.2, 56, 4, 7),

(0, 5, 1, 0.567, 45),

(23, 12.1, 9, 9.09, 2),

(0, 0, 3, 6, 123),

(0, 3, 5, 7, 8));

Var

I, J: Integer;

Sum: Real;

Begin

ClrScr;

 

For I:=1 To N Do

Begin

For J:=1 To N Do

Write (A[I, J]:6:2, ' ');

WriteLn;

End;

 

Sum:=0;

For I:=1 To N Do

Sum:=Sum+A[I,I];

WriteLn('Сумма элементов главной диагонали матрицы=', sum:6:2);

End.

 

End.

Результаты работы программы к заданию №1:

 

1.00 0.20 56.00 4.00 7.00

0.00 5.00 1.00 0.57 45.00

23.00 12.10 9.00 9.09 2.00

0.00 0.00 3.00 6.00 123.00

0.00 3.00 5.00 7.00 8.00

Сумма элементов главной диагонали матрицы=29.0


Задание №2. Сформировать матрицы. А, В, С:

Исходные данные:

Выполнить .

Текст программы к заданию №2:

Program m111526;

Uses

Crt;

Var

I, J, K, P, Sum: Integer;

A, B, C, D, E: Array [1..5,1..5] of Integer;

Begin

ClrScr;

 

WriteLN ('Матрица A:');

For I:=1 To 4 Do

Begin

For j:=1 to 5 do

Begin

If I=2 Then

A[I,J]:=J

Else

A[I,J]:=0;

Write (A[I,J]:4);

End;

WriteLN;

End;

 

WriteLN ('Матрица B:');

For I:=1 To 5 Do

Begin

For J:=1 To 5 Do

Begin

If J=2 Then

B[I,J]:=5

Else

B[I,J]:=I*J;

Write (B[I,J]:4);

End;

WriteLN

End;

 

WriteLN ('Матрица C:');

For I:=1 To 5 Do

Begin

For J:=1 To 5 Do

Begin

If I=5 Then

C[I,J]:=3*J

Else

C[I,J]:=2;

Write (C[I,J]:4);

End;

WriteLN

End;

 

For I:=1 To 5 Do

For J:=I+1 To 5 Do

Begin

P:=A[I,J];

A[I,J]:=A[J,I];

A[J,I]:=P;

End;

 

WriteLN('Матрица A^T:');

For I:=1 To 5 Do

Begin

For J:=1 To 5 Do

Write (A[I,J]:4);

WriteLN;

End;

 

 

WriteLN('Матрица D=A^T*B:');

For I:=1 To 5 Do

Begin

For J:=1 To 5 Do

Begin

Sum:=0;

For K:=1 To 5 Do

Sum:=Sum+A[I,K]*B[K,J];

D[I,J]:=Sum;

Write (D[I,J]:4);

End;

WriteLN;

End;

 

WriteLN('Матрица A^T*B+3*C:');

For I:=1 To 5 Do

Begin

For J:=1 To 5 Do

Begin

E[I,J]:=D[I,J]+3*C[I,J];

Write (E[I,J]:4);

End;

WriteLN;

End;

End.

Результаты работы программы к заданию №2:

Матрица C:

2 2 2 2 2

2 2 2 2 2

2 2 2 2 2

2 2 2 2 2

3 6 9 12 15

Матрица A^T:

0 1 0 0 0

0 2 0 0 0

0 3 0 0 0

0 4 0 0 0

0 5 0 0 0

Матрица D=A^T*B:

2 5 6 8 10

4 10 12 16 20

6 15 18 24 30

8 20 24 32 40

10 25 30 40 50

Матрица A^T*B+3*C:

8 11 12 14 16

10 16 18 22 26

12 21 24 30 36

14 26 30 38 46

19 43 57 76 95


Задание №3. Найти сумму нечетных элементов данного вектора.

Исходные данные:

Текст программы к заданию №3:

Program m111536;

Uses

Crt;

Const

N=10;

A: array[1..N] of Integer=(10, -17, -3, 5, -10, -5, 7, 10, 6, 1);

Var

Sum, I:Integer;

Begin

ClrScr;

 

WriteLN('Вектор А:');

For I:=1 To N Do

Write (A[I]:4);

 

Sum:=0;

For I:=1 To N div 2 Do

Sum:=Sum+A[2*I-1];

 

WriteLN;

 

WriteLN('Сумма нечет. эл-ов вектора А=', Sum:5);

End.

Результаты работы программы к заданию №3:

Вектор A:

10 -17 -3 5 -10 -5 7 10 6 1

сумма нечет. эл-ов вектора A= 10


Задание №4. В матрице размерностью 5×5 найти среднее арифметическое элементов второстепенной диагонали.

Исходные данные:

Текст программы к заданию №4:

Program m111546;

Uses

Crt;

Const

N=5;

A: Array[1..N,1..N] of Real=((1, 0.2, 56, 4, 7),

(0, 5, 1, 0.567, 45),

(23, 12.1, 9, 9.09, 2),

(0, 0, 3, 6, 123),

(0, 3, 5, 7, 8));

Var

I, J: Integer;

Sum, SA: Real;

Begin

ClrScr;

WriteLN('Исходная матрица А(5,5):');

For I:=1 To N Do

Begin

For J:=1 To N Do

Write(A[I, J]:7:3, ' ');

WriteLN;

End;

Sum:=0;

For I:=1 To N Do

For J:=1 To N Do

If I+J=N+1 Then

Sum:=Sum+A[I,J];

WriteLN('Сумма элементов второстепенной диагонали=',Sum:5:3);

SA:=Sum/5;

WriteLN('Среднее арифметическое элементов второстепенной диагонали=',SA:5:3);

End.

Результаты работы программы к заданию №4:

Матрица C:

Исходная матрица А(5,5):

1.000 0.200 56.000 4.000 7.000

0.000 5.000 1.000 0.567 45.000

23.000 12.100 9.000 9.090 2.000

0.000 0.000 3.000 6.000 123.000

0.000 3.000 5.000 7.000 8.000

Сумма элементов второстепенной диагонали=16.567

Среднее арифметическое элементов второстепенной диагонали=3.313

 


 

Задание №5. Поменять местами первую и вторую строчки данной матрицы.

Исходные данные:

Текст программы к заданию №5:

Program m111556;

Uses

Crt;

Var

I, J, Buf: Integer;

A: Array [1..4, 1..4] of Integer=((564, 816, 196, 436),

(300, -44, 423, 513),

(764, 554, -94, -24),

(944, -92, -69, 284));

Begin

ClrScr;

 

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

For I:=1 To 4 Do

Begin

For J:=1 To 4 Do

Write(A[I,J]:5);

WriteLN;

End;

 

For J:=1 To 4 Do

Begin

Buf:=A[1,J];

A[1,J]:=A[2,J];

A[2,J]:=Buf;

End;

 

WriteLN;

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

For I:=1 To 4 Do

Begin

For J:=1 To 4 Do

Write(A[i,J]:5);

WriteLN;

End;

readln;

End.

Результаты работы программы к заданию №5:

Исходная матрица А:

564 816 196 436

300 -44 423 513

764 554 -94 -24

944 -92 -69 284

 

Полученная матрица А:

300 -44 423 513

564 816 196 436

764 554 -94 -24

944 -92 -69 284

Лабораторная работа №6

ПОСТРОЕНИЕ ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЙ

Задание №1. Используя графические команды языка Turbo-Pascal, составить программу для построения текста с объемным начертанием, указанного в варианте. Необходимо предусмотреть организацию циклического изменения цветовой палитры элементов (букв) заданного текста.

Исходные данные.

а) Фамилия - "Гагарин"

б) Тип заливки - "Г"-6; "А"-1; "Г"-7; "А"-2; "Р"-1; "И"-3; "Н"-1.

Текст программы к заданию №1:

Program m111616;

Uses

Crt,Graph;

Var

GD,GM,N:Integer;

Begin

ClrScr;

 

GD:=Detect;

GM:=1;

Initgraph(GD,GM,'');

 

{рисование буквы "Г"}

Line(50,50,50,130);

Line(50,50,100,50);

Line(100,50,100,60);

Line(100,60,60,60);

Line(60,60,60,130);

Line(50,130,60,130);

{рисование буквы "А"}

Line(210-80,50,220-80,50);

Line(210-80,50,190-80,130);

Line(220-80,50,240-80,130);

Line(190-80,130,200-80,130);

Line(240-80,130,230-80,130);

Line(200-80,130,210-80,95);

Line(230-80,130,220-80,95);

Line(210-80,95,220-80,95);

Line(212-80,85,218-80,85);

Line(212-80,85,215-80,70);

Line(215-80,70,218-80,85);

{рисование буквы "Г"}

Line(185,50,185,130);

Line(185,50,235,50);

Line(235,50,235,60);

Line(235,60,195,60);

Line(195,60,195,130);

Line(185,130,195,130);

{рисование буквы "А"}

Line(210+40,50,220+40,50);

Line(210+40,50,190+40,130);

Line(220+40,50,240+40,130);

Line(190+40,130,200+40,130);

Line(240+40,130,230+40,130);

Line(200+40,130,210+40,95);

Line(230+40,130,220+40,95);

Line(210+40,95,220+40,95);

Line(212+40,85,218+40,85);

Line(212+40,85,215+40,70);

Line(215+40,70,218+40,85);

{рисование буквы "Р"}

Line(290,50,290,130);

Line(290,50,340,50);

Line(330,85,330,60);

Line(330,60,300,60);

Line(300,60,300,85);

Line(300,85,330,85);

Line(340,95,330,95);

Line(330,95,300,95);

Line(300,95,300,130);

Line(290,130,300,130);

Line(340,50,340,95);

{рисование буквы "И"}

Line(360,50,360,130);

Line(360,50,370,50);

Line(370,50,370,110);

Line(360,130,370,130);

Line(370,110,400,50);

Line(400,50,410,50);

Line(410,50,410,130);

Line(400,130,410,130);

Line(400,75,400,130);

Line(370,130,400,75);

{рисование буквы "Н"}

Line(430,50,430,130);

Line(430,50,440,50);

Line(430,130,440,130);

Line(440,85,440,50);

Line(440,130,440,100);

Line(440,85,470,85);

Line(440,100,470,100);

Line(470,50,470,85);

Line(470,100,470,130);

Line(470,50,480,50);

Line(470,130,480,130);

Line(480,50,480,130);

 

Randomize;

Repeat

{Г}

N:=1+Random(14);

Setfillstyle(6,N);

Floodfill(75,55,15);

 

{А}

N:=1+Random(14);

Setfillstyle(1,N);

Floodfill(140,55,15);

 

{Г}

N:=1+Random(14);

Setfillstyle(5,N);

Floodfill(186,55,15);

 

{А}

N:=1+Random(14);

Setfillstyle(1,N);

Floodfill(252,55,15);

 

{Р}

N:=1+Random(14);

Setfillstyle(6,N);

Floodfill(295,55,15);

{И}

N:=1+Random(14);

Setfillstyle(1,N);

Floodfill(365,55,15);

{Р}

N:=1+Random(14);

Setfillstyle(6,N);

Floodfill(435,55,15);

 

Until KeyPressed;

CloseGraph;

 

End.

Результаты работы программы к заданию №1:

Задание №2. Используя графические команды языка Turbo-Pascal, составить программу для построения игрового поля с расстановкой и динамическим перемещением шашек в соответствии с позицией, указанной в варианте, а также предусмотреть реализацию указанных ходов.

Исходные данные.

а) Исходная расстановка: Белые:6,2;7,5. Черные: 5,1;6,6.

б) Ходы: Белые G5 бьют черные F6. Черные E1 бьют белые F2.

Текст программы к заданию №2:

Program m111626;

Uses

Crt, Graph;

Var

GD, GM, H, I, J, P, H1, H2, K:integer;

Begin

ClrScr;

GD:=Detect;

GM:=1;

InitGraph (GD, GM, '');

Rectangle (20, 20, Getmaxy-20, Getmaxy-20);

H:=(GetMaxY-40) Div 8;

For I:=1 To 7 Do

Begin

Line(I*H+20, 20, I*H+20, Getmaxy-20);

Line(20, I*H+20, Getmaxy-20, I*H+20);

End;

For I:=1 To 8 Do

Begin

Outtextxy(I*H-10, 10, Chr(64+I));

Outtextxy(10, I*H-10, Chr(48+I));

End;

{Цикл закраски квадратов на игральной доске}

For I:=1 To 8 Do

For J:=1 To 8 Do

Begin

If (I+J) Mod 2<>0 Then

P:=7

Else

P:=0;

SetFillStyle(1,P);

Floodfill(20+I*H-2, 20+J*H-2,15);

End;

H1:=H Div 2;

{Рисование белой шашки}

SetColor(1);

Circle(6*H+20-H1, 2*H+20-H1, H1-4);

SetFillstyle(1, 15);

Floodfill(6*H+20-H1, 2*H+20-H1, 1);

{Рисование черной шашки}

Circle(5*H+20-H1, 1*H+20-H1, H1-4);

SetFillstyle(1,6);

Floodfill(5*H+20-H1, 1*H+20-H1, 1);

{Рисование белой шашки}

Circle(7*H+20-H1, 5*H+20-H1, H1-4);

SetFillStyle(1,15);

Floodfill(7*H+20-H1, 5*H+20-H1, 1);

{Рисование черной шашки}

Circle(6*H+20-H1, 6*H+20-H1,H1-4);

SetFillStyle(1, 6);

Floodfill(6*H+20-H1, 6*H+20-H1, 1);

Repeat

Until KeyPressed and (ReadKey='1');

{Удаление белой шашки}

SetColor(0);

Circle(7*H+20-H1, 5*H+20-H1, H1-4);

SetFillStyle(1,0);

Floodfill(7*H+20-H1, 5*H+20-H1, 0);

{Рисование белой шашки}

SetColor(1);

Circle(5*H+20-H1, 7*H+20-H1, H1-4);

SetFillStyle(1,15);

Floodfill(5*H+20-H1, 7*H+20-H1, 1);

{Удаление черной шашки}

Circle(6*H+20-H1, 6*H+20-H1, H1-4);

SetFillStyle(1,0);

Floodfill(6*H+20-H1, 6*H+20-H1, 0);

Repeat

Until KeyPressed and (ReadKey='2');

{Удаление черной шашки}

SetColor(0);

Circle(5*H+20-H1, 1*H+20-H1, H1-4);

SetFillStyle(1,0);

Floodfill(5*H+20-H1, 1*H+20-H1, 0);

{Рисование черной шашки}

SetColor(1);

Circle(7*H+20-H1, 3*H+20-H1, H1-4);

SetFillStyle(1,6);

Floodfill(7*H+20-H1, 3*H+20-H1, 1);

{Удаление белой шашки}

SetColor(1);

Circle(6*H+20-H1, 2*H+20-H1, H1-4);

SetFillStyle(1,0);

Floodfill(6*H+20-H1, 2*H+20-H1, 0);

Repeat

Until KeyPressed and (ReadKey='3');

End.


Результаты работы программы к заданию №2:

Вид шахматной доски перед первым ходом


Вид шахматной доски после первого хода


Вид шахматной доски после второго хода

 

 

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...