Информатика

Автор: Пользователь скрыл имя, 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

Работа содержит 1 файл

Курсяк.doc

— 508.00 Кб (Скачать)

      Основные  процедуры и функции модуля Graph:

      Процедура InitGraph инициирует перевод видеоадаптера в видеорежим. Общий вид: 

InitGraph(Driver,Mode,Path); 

Driver - параметр, определяющий графический драйвер; 0 - автоопределение,9 - VGA.

Mode - параметр, задающий один из графических  режимов. Для VGA 0 - 640X200 16 цветов, 1- 640Х350 16 цветов, 2 - 640Х480 16 цветов. Если  стоит автоопределение, то параметр Mode надо задавать, выбор будет  сделан в пользу максимально возможного из режимов.

Path - имя  файла и путь графического  драйвера. Указывать надо только  путь. Обычно в Паскале используется egavga.bgi. Он расположен в каталоге(например): D:\tp7\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,200) - рисование прямоугольной рамки 

      (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,70) - рисование сектора окружности (X,Y,Ф1,Ф2,R).

      Ellipse(300,250,0,360,95,40)-рисование эллипса (X,Y,Ф1,Ф2,R1,R2). Ф1,Ф2 - начальный и конечный углы. R1, R2 - радиусы эллипса.

      Sector(400,100,90,290,200,80)- рисование сектора эллипса (X,Y,Ф1,Ф2,R1,R2).

      FillEllipse(X,Y,R1,R2) - рисование закрашенного эллипса  (или окружности при R1=R2).

      OutTextXY(25,30,'Текст.') - вывод текста (X, Y, 'Текст').

      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

                                                              2=0  

              + 

                                                           True:=0 
 

                                                 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 –  Меню программы 

Информация о работе Информатика