
- •Экзаменационный вопрос №1 базовые понятия алгоритмизации
- •Экзаменационный вопрос №2 средства изображения алгоритмов
- •Экзаменационный вопрос № 3 базовые канонические структуры алгоритмов
- •Экзаменационный вопрос № 16. Общая характеристика языка программирования паскаль
- •Экзаменационный вопрос № 17. Программирование ввода-вывода данных различного типа
- •Экзаменационный вопрос № 18. Программирование линейных вычислительных процессов
- •Экзаменационный вопрос № 19. Программирование разветвляющихся вычислительных процессов с использованием if -then –else
- •Экзаменационный вопрос № 20. Программирование разветвляющихся вычислительных процессов с использованием оператора case
- •Экзаменационный вопрос № 21.
- •Экзаменационный вопрос № 22. Программа вычисления корней квадратного уравнения
- •Экзаменационный вопрос № 23. Программирование разветвляющихся структур с использованием в цикле операторов repeat – until
- •Экзаменационный вопрос № 24. Программа вычисления суммы бесконечного ряда
- •Экзаменационный вопрос № 25. Программирование циклических вычислительных структур
- •Экзаменационный вопрос № 26. Программирование с использованием цикла с параметрами
- •Экзаменационный вопрос № 27. Программирование циклов с постусловием
- •Экзаменационный вопрос № 28. Программирование с использованием подпрограмм
- •Экзаменационный вопрос № 29. Алгоритмы нахождения корней уравнений
- •Экзаменационный вопрос № 30. Алгоритмы численного интегрирования
- •Экзаменационный вопрос № 31. Программа вычисления определенного интеграла методом прямоугольников
- •Экзаменационный вопрос № 32. Программа вычисления определенного интеграла методом трапеций
- •Экзаменационный вопрос № 33. Программа вычисления определенного интеграла методом симпсона
- •Экзаменационный вопрос № 34. Программа вычисления корней алгебраического уравнения методом половинного деления
- •Экзаменационный вопрос № 35. Программа вычисления корней алгебраического уравнения методом ньютона
- •Экзаменационный вопрос № 36. Программа вычисления корней алгебраического уравнения методом хорд
- •Экзаменационный вопрос № 37. Программирование операций в одномерных массивах
- •Экзаменационный вопрос № 38. Программирование операций в двумерных массивах (На примере задания 1)
- •Экзаменационный вопрос № 39. Программирование операций в двумерных массивах (На примере задания 2)
- •Экзаменационный вопрос № 40. Построение графических изображений
- •Экзаменационный вопрос № 41. Программа для построения объекта с циклическим изменением цвета
- •Экзаменационный вопрос № 42. Программа для построения динамического объекта
Экзаменационный вопрос № 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,φ1,φ2,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 |
Нормальная толщина
Увеличенная толщина |