Обработка одномерных и двумерных массивов.
⇐ ПредыдущаяСтр 2 из 2 Задание №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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|