Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по программированию.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
682.73 Кб
Скачать

Экзаменационный вопрос № 39. Программирование операций в двумерных массивах (На примере задания 2)

Задание 2

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

Дана матрица А размерности 4 × 4: .

1. Найти сумму элементов, не превышающих по модулю заданного L.

2. Произвести в заданной строке перестановку элементов в обратном порядке.

3. Провести транспонирование данной матрицы.

Код программы.

Program primer3; {название программы}

uses crt; {подключение стандартного пакета}

const

{задание матрицы}

A:array [1..4,1..4] of integer=((0,–3,2,1),(8,89,66,4),(–2,10,7,–45),(9,–4,77,1));

var

i,j,i1: integer; {задание переменных счетчиков}

p,k,sum,L:integer;{переменные для хранения суммы, количества

элементов, параметра}

begin;

clrscr;{очистка экрана}

{------------------------------------------------------------------------------------------}

{Нахождение суммы эл-тов, не превышающих по модулю заданного L}

write('Введите параметр: L=');

readln(L);{ввод параметра L}

sum:=0;

for i:=1 to 4 do

for j:=1 to 4 do

if abs(A[i,j])<=L then sum:=sum+A[i,j];

writeln('Сумма элементов, не превышающих по модулю заданного L: ',

sum:5);

{------------------------------------------------------------------------------------------}

{Проведение перестановки в обратном порядке в заданной строке}

write('Строка, в которой будет проведена перестановка: i1=');

readln(i1);{задание номера строки для перестановки}

for j:=1 to 2 do

begin;

p:=a[i1,j];

a[i1,j]:=a[i1,4+1–j];

a[i1,4+1–j]:=p;

end;

{Вывод преобразованной матрицы}

writeln('Матрица после перестановки элементов в заданной строке');

for i:=1 to 4 do

begin;

for j:=1 to 4 do

write(A[i,j]:5);

writeln;

end;

{------------------------------------------------------------------------------------------}

{транспонирование матрицы А с произведенной в заданной строке

перестановкой}

for i:=1 to 3 do

for j:=i+1 to 4 do

begin;

p:=a[i,j];

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

a[j,i]:=p;

end;

writeln('Матрица после перестановки элементов в заданной строке c

выполненным транспонированием');

for i:=1 to 4 do

begin;

for j:=1 to 4 do

write(A[i,j]:5);

writeln;

end;

readln;

end.

Экзаменационный вопрос № 40. Построение графических изображений

Теория. Графические возможности языка Turbo Pascal реализованы с помощью библиотечной подпрограммы GRAPH.TPU, расположенной в модуле GRAPH. После ее подключения программа может рисовать геометрические фигуры и изменять цветовую гамму. Для вычисления координат необходимо учитывать размер рабочей области: горизонталь [0—640]; вертикаль[0 (в верхней левой позиции экрана) — 480]. Для выполнения заданий использовать следующие процедуры.

1. Процедура вывода линии:

Line(X1,Y1,X2,Y2);

Здесь (X1,Y1) — координаты начала, (X2,Y2) — координаты конца.

2. Процедура изображения окружности:

Circle(X,Y,R);

Здесь (X,Y) — координаты центра окружности, R — радиус.

3. Процедура изображения прямоугольника:

Rectangle(X1,Y1,X2,Y2);

Здесь (X1,Y1) — координаты верхнего левого угла прямоугольника, (X2,Y2)  — правого нижнего.

4. Процедура изображения эллиптической дуги из центра с координатами (X,Y) от угла φ1 до угла φ2, XR и YR — размеры горизонтальной и вертикальной полуосей соответственно:

Ellipse(X,Y,φ12,XR,YR);

5. Процедура изображения эллипса и заполнение его по установленному шаблону:

FillEllipse(X,Y,XR,YR).

В графической библиотеке разработаны команды для изменения цвета (табл. 6.1), типа заливки (табл. 6.2), типа линии (табл. 6.3), типа ее ширины (табл. 6.4):

1. Установка цвета изображения фигур:

SetColor(C);

2. Установка цвета фона:

SetBkColor(C);

По умолчанию цвет фона равен 0 (черный).

3. Установка типа и цвета заливки:

SetFillStyle(NP,C);

Здесь NP — тип заливки.

4. Установка типа линии:

SetLineStyle(TL,0,TWL);

Здесь TL — тип линии, TWL — тип ширины линии.

5. Процедура заполнения всей области вокруг точки (X,Y), ограниченной линиями цвета С:

FloodFill(X,Y,С).

6. Процедура вывода текста на графический экран с точки ( X,Y)

OutTextXY(msg : string)

7. Возврат максимального значения по оси ОХ для данного графического режима

GetMaxX

8. Возврат максимального значения по оси ОY для данного графического режима

GetMaxY

Т а б л и ц а 6.1 Т а б л и ц а 6.2

Имя

константы

Значе-

ние

Смысл

Константы

Значение

и смысл

Black

Blue

Green

Cyan

Red

Magenta

Brown

LightGray

DarkGray

LightBlue

LightGreen

LightCyan

LightRed

0

1

2

3

4

5

6

7

8

9

10

11

12

Черный

Синий

Зеленый

Бирюзовый

Красный

Малиновый

Коричневый

Светло-серый

Темно-

коричневый

Ярко-синий

Ярко-зеленый

Ярко-

бирюзовый

Ярко-красный

EmptyFill

SolidFill

LineFill

LtSlashFill

SlashFill

BkSlashFill

LtBkSlashFill

HatchFill

XHatchFill

InterleaveFill

WideDotFill

CloseDotFill

UserFill

0 Пустая заливка

1 Сплошное

заполнение

2 ---

3 ///

4 ///

5 \\\

6 \\\

7 Сетка

8 Штрихпунктир

9 Решетка

10 Заполнение

точками

11 Мелкие точки

12 Пользовательская

LightMagenta

Yellow

White

13

14

15

Ярко-малиновый

Желтый

Белый

Т а б л и ц а 6.3 Т а б л и ц а 6.4

Имя константы

Значе-

ние

Смысл

Имя

константы

Значе-

ние

Смысл

SolidLn

DottedLn CenterLn

DashedLn

UserBitLn

0

1

2

3

4

Сплошная линия

Пунктирная

Штрихпунктирная

Штриховая

Пользовательская

NormWidth

ThickWidth

1

3

Нормальная

толщина

Увеличенная толщина