Автор: Пользователь скрыл имя, 30 Марта 2010 в 10:32, курсовая работа
ЗАДАНИЕ: Задана действительная матрица размера n*m. Построить матрицу той же размерности, если каждый элемент новой матрицы равен сумме элементов в не заштрихованной области.
Задание на курсовую работу…………………………………………………2
Замечания руководителя……………………………………………….……..3
Введение…...………………….……………………………………………….5
1. Теоретическая часть…………….………………………………………….6
1.1 Стандартные типы данных……….……………………………….……6
1.2 Массивы в языке программирования Pascal…….…………………….9
1.3 Процедуры и функции…………………………………………….…....10
1.4 Графические возможности языка программирования Pascal………..13
2. Экспериментальная часть………………………………………………….15
2.1 Постановка задачи……………………………………………….……..15
2.2 Алгоритм решения задачи……………………………………….….....15
2.3 Описание диалога с пользователем……………………………….…..25
2.4 Контрольный пример……………………………………………….….26
Заключение…………………………………………………………………….27
Список литературы……………………………………………………………28
Приложение……………………………………………………………………29
Основные процедуры и функции модуля Graph:
Процедура
InitGraph инициирует перевод видеоадаптера
в видеорежим. Общий вид:
InitGraph(Driver,Mode,Path);
Driver - параметр, определяющий графический драйвер; 0 - автоопределение,9 - VGA.
Mode - параметр,
задающий один из графических
режимов. Для VGA 0 - 640X200 16 цветов, 1-
640Х350 16 цветов, 2 - 640Х480 16 цветов. Если
стоит автоопределение, то
Path - имя
файла и путь графического
драйвера. Указывать надо только
путь. Обычно в Паскале используется
egavga.bgi. Он расположен в каталоге(
Функция GraphResult - возвращает код ошибки графической операции, выполнявшейся последней.
Значения возвращаемые GraphResult:
-0 - без ошибок
-1 - не инициализирован граф. режим
-2 - не
удалось определить тип
-3 - не обнаружен файл с драйвером
-4 - Обнаруженный
файл не содержит
-5 - недостаточно памяти для загрузки драйвера
-6 - недостаточно памяти для просмотра областей
-7 - недостаточно памяти для заполнения областей
-8 - не обнаружен файл со шрифтом
-9 - недостаточно памяти для загрузки шрифта
-10 - недопустимый режим для выбранного драйвера
-11 - общая ошибка
-12 - ошибка ввода-вывода
-13 - неверный формат шрифта
-14 - неверный номер шрифта
SetFillStyle(5,11) - установка стиля и цвета закраски. Число стилей закраски = 0-11.
PutPixel(300,250,15) - рисование точки (X, Y, C), где X, Y -координаты точки, C - цвет точки. С=0-15.
Rectangle(25,100,100,
(X1,Y1,X2,Y2),
где X1,Y1 и X2,Y2 - координаты соответственно
начала и конца диагонали
Bar(20,70,210,50) - рисование закрашенного прямоугольника (X1,Y1,X2,Y2), где X1,Y1 и X2,Y2 - координаты соответственно начала и конца диагонали левого верхнего угла.
Circle(300,250,80) - рисование окружности (X, Y, R), где X, Y координаты центра окружности, R - радиус окружности.
Arc(300,250,135,45,60) - рисование дуги окружности (X,Y,Ф1,Ф2,R), где Ф1,Ф2 - начальный и конечный углы дуги. X,Y,R - см. выше.
PieSlice(100,100,30,120,
Ellipse(300,250,0,360,
Sector(400,100,90,290,
FillEllipse(X,Y,R1,R2)
- рисование закрашенного
OutTextXY(25,30,'Текст.'
CloseGraph
- закрытие графического режима.
2.
Экспериментальная часть
2.1
Постановка задачи
а)
б)
в)
г)
Задана
действительная матрица размера
n*m. Построить матрицу той же размерности,
если каждый элемент новой матрицы равен
сумме элементов в не заштрихованной области.
Варианты a), б), в), г)
2.2 Алгоритм решения задачи представлен
на рисунках 1-10
m, n m, n
Рис. 1 – Схема программы
i:=1 to m do
j:=1 to n do
W[i,j]
Рис.
2 – Ввод массива
i:=1 to m do
j:=1 to n do
W[i,j]:=random(89);
Рис.
3 – Ввод массива случайными числами
i:=1 to m do
j:=1 to n do
W[i,j]
Рис.
4 – Вывод массива
i:=1 to m do
j:=1 to n do
Str(W[i,j],S1)
OutTextXY
Рис.
5 – Вывод массива в Graph режиме
u:=n;
K:=0; i:=1
to m do u:=u-1;
u:=0; j:=1
to u do K:=K+1;
S:=S+W[i,j];
Str(W[i,j],Strin1);
OutTextXY
Рис. 6 –
Вычисление суммы (вариант А)
i:=1 to m do
j:=1 to n do
W[i,j]:=S;
Рис.
7 – Создание нового массива
u:=n;
u1:=n;
K:=0; i:=1 to m do u:=u-1;
u1:=0;
j:=u to u1 K:=K+1;
S:=S+W[i,j];
u:=0;
Str(W[i,j],Strin1);
OutTextXY
Рис. 8 –
Вычисление суммы (вариант Б)
m mod -
2=0
True:=1
+
True:=0
u:=Trunc(n/2)+1;
u1:=Trunc(m/2)+T
K:=u1-True;
True=1
i:=u to n u1:=u1-1;
+
K:=0; j:=1 to u1 K:=K+1;
u:=Trunc(n/2); S1:=S1+W[i,j];
Str(W[i,j],Strin1);
u1:=n;
1 OutTextXY
1
K:=0; i:=1 to u u1:=u1-1;
u:=Trunc(n/2); j:=u1 to n K:=K+1;
u1:=1;
S2:=S2+W[i,j];
Str(W[i,j],Strin1);
OutTextXY
K:=0;
i:=1 to u u1:=u1+1;
u:=Trunc(n/2)+1; j:=1 to u1
K:=K+1;
u1:=Trunc(m/2);
S3:=S3+W[i,j];
K:=u1-1;
Str(W[i,j],Strin1);
2 OutTextXY
2
S:=S1+S2+S3+S4;
i:=u to n u1:=u1+1;
K:=0; j:=u1 to m K:=K+1;
S1:=0;
S4:=S4+W[i,j];
S2:=0;
Str(W[i,j],Strin1);
S3:=0;
OutTextXY
S4:=0;
u:=0; u1:=0;
Рис. 9 –
Вычисление суммы (вариант В)
-
m mod True:=1
+
u:=Trunc(n/2)+True;
u1:=Trunc(m/2)+Tr;
True=1 i:=1 to u K:=K+1;
+
j:=1 to u1
K:=0:
u:=Trunc(n/2)+1
S1:=S1+W[i,j];
u1:=Trunc(m/2)+1;
Str(W[i,j],Strin1);
K:=u1-1; OutTextXY
1
1
S:=S1+S2; i:=u to n K:=K+1;
K:=0;
j:=u1 to m
S1:=0;
S2:=S2+W[i,j];
S2:=0;
Str(W[i,j],Strin1);
u:=0;
OutTextXY
u1:=0;
Рис. 10 –
Вычисление суммы (вариант Г)
2.3
Описание диалога с
Для
запуска программы необходимо выбрать
файл из папки с программой KURS9K.exe.
Сразу после этого на экран выводится
визуальное меню (рис. 11).
Рис. 11 –
Меню программы