Построение семейства графиков функций вида Y=F(X)

Автор: Пользователь скрыл имя, 11 Декабря 2011 в 15:49, курсовая работа

Краткое описание

Цель работы: Построить семейство графиков 5 функций, заданных аналитически и определенных на известном интервале изменения аргумента [a,b] для декартовой и полярной систем координат.
Задачи работы:
1. Изучить теоретический материал по теме работы и особенности применения на практике полученных теоретических знаний.
2. Решить прикладную задачу из конкретной предметной области, создав программный продукт в одной из объектно-ориентированных инструментальных сред.
3. Описать основные приёмы работы с созданным программным средством (сеанс работы).

Оглавление

ВВЕДЕНИЕ…………………………………………………………………………..3
Глава 1.ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ……………………………………….....5
1.1 Декартовая система координат………………………………………......9
1.2 Полярная система координат…………..………………………………..11
1.3 Связь между полярной и декартовой системами координат………….21
Глава 2. СТРУКТУРНОЕ ОПИСАНИЕ РАЗРАБОТКИ………………………….23
Глава 3. ФУНКЦИОНАЛЬНОЕ ОПИСАНИЕ…………….………………………32
Глава 4. ОПИСАНИЕ ПРИЕМОВ РАБОТЫ С ПРОГРАММОЙ………………..36
ЗАКЛЮЧЕНИЕ……………………………………………………………………..40
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ………………………………..41
ПРИЛОЖЕНИЕ………………………………………………………………….......42

Файлы: 1 файл

Text.doc

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

Глава 2. СТРУКТУРНОЕ ОПИСАНИЕ РАЗРАБОТКИ

Задание:

Вариант 21. Построение семейства  графиков функций  вида Y=F(X).

     Построить семейство графиков 5 функций, заданных аналитически и определенных на известном интервале изменения аргумента [a,b] для декартовой и полярной систем координат.

     Указания: В программе предусмотреть меню, позволяющее выбрать от 1 до 5 аналитически заданных функций для построения их графиков. Рисование графиков должно выполняться последовательно: каждый очередной график (начиная со 2-го) должен быть добавлен к ранее нарисованным.

     При выполнении задания использовать модульный  стиль программирования: создать  модуль, содержащий процедуры и функции, обеспечивающие расчеты смещений осей и масштабирующих коэффициентов в новой системе координат, построение на экране осей системы координат со всеми необходимыми элементами их оформления, рисование графика функции. Основная программа должна содержать ввод исходных данных (интервал [a,b]), аналитический вид функции (для описания которого использовать функциональный тип) и обращения к необходимым процедурам и функциям модуля.

     Последовательность  выполнения работы

 
  1. Перенести на форму компоненты в соответствии с рис. 1 и задать свойства компонентов  согласно таблице 1.
 

            Таблица 1

     Компоненты  формы

  Страница Имя компонента Свойство Примечание
1 2 3 4 6
1 Additional  
Series1
 
TPointSeries
Выберите функцию
2 Additional Series2  
TPointSeries
Начальное ограничени
3 Additional Series3  
TPointSeries
Конечное ограничение
4 Additional Series4  
TPointSeries
Выбирете функцию  в полярной системе.
5 Additional Series5  
TPointSeries
Задайте коэффициент  а
6 Additional Series6  
TPointSeries
Задайте коэффициент  b
7 additional Series7  
TPointSeries
Задайте коэффициент  alfa
8 win32  
PageControl1
 
TPageControl
Рисование графиков
9 Standard  
  Label
 
caption
Ограничения
10 Standard   ComboBox1 items

text

Позволяет разместить панели декартовой системы координат и полярной системы координат
11 Additional Button1 caption рисовать
12 Standard Button2 caption Оси координат
13 Standard Button3  
caption
очистка
14 Standard Button4  
caption
рисовать
 
 
 
 
 
 

      Рис 1. Расположение компонентов на форме.

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

      Компонент Delphi ComboBox

     Компонент Delphi ComboBox представляет собой комбинацию списка строк ListBox со строкой ввода Edit. При этом "список строк" компонента Delphi ComboBox вначале скрыт, и раскрывается при щелчке мышкой по треугольничку раскрытия, который находится справа в строке ввода: 
 
 
 
   Таким образом, с помощью Delphi ComboBox место на Форме экономится для расмещения других элементов интерфейса программы. А при необходимости раскрытие списка строк можно вообще запретить. 
 
   Многие свойства и возможности компонента Delphi ComboBox по работе со строками (объектами Items) такие же как и у компонента
Delphi ListBox, поэтому повторно описывать их не буду. Опишу отличия и дополнительные возможности. 
 
   Итак, за возможность раскрытия компонента ComboBox отвечает стиль - свойство Style:

     Стиль компонента ComboBox1равенComboBox1.Style=csDropDown 
(список может быть раскрыт, можно писать в строке ввода) 
Стиль компонента ComboBox равен ComboBox1.Style=csSymple(список не может быть раскрыт, можно писать в строке ввода) 
При стиле csDropDownList компонент может быть раскрыт, но свойство Text может принимать значения только одной из строк, сохранённых в компоненте, то есть пользователь лишён возможности писать в строке ввода.

      
   Количество строк, видимых при  раскрытии списка, равно DropDownCount. Если реальное количество сохранённых строк больше этого количества, то автоматически появляется полоса прокрутки. Программист может заставить список раскрыться в нужный момент. Для этого нужно свойству DroppedDown присвоить значение True. Для этой же цели пользователь может использовать клавиатурную комбинацию ALT+ВНИЗ. 
 
   Максимально допустимое количество символов в текстовой строке задаётся параметром MaxLemgth, причём значение 0 означает отсутствие ограничений. Свойство CharCase управляет преобразованием вводимого текста к верхнему (значение CharCase = ecUpperCase) или нижнему (значение CharCase = ecLowerCase) регистру. Значение ecNormal означает, что текст вводится без преобразования. 
 
   Основными событиями компонента Delphi ComboBox являются:

     Событие      Условие генерации
     OnChange      Изменился текст в строке ввода.
     OnDropDown      Список раскрывается. Это событие нужно обработать, если содержимое списка может изменяться во время работы программы. Тогда в обработчике этого события можно заново сформировать содержимое списка.

 

     Компонент приложения, содержащий несколько страниц, каждая из 
которых имеет ярлычок в виде закладки, называется элементом с заклад- 
ками. Страницы пользователь может выбирать сам, щелкая по закладкам 
(корешкам или ярлычкам). Количество страниц можно регулировать, а 
также можно переключаться по страницам с помощью пунктов контекст- 
ного меню. Для вызова компонента с закладками воспользуемся пунктом 
главного меню: File/New/Other…. В диалоговом окне New Items на за- 
кладке Form выбрать пиктограмму Tabbed pages. При таком вызове окно с 
вкладками - это разновидность форм среды Delphi. Данная разновидность 
формы содержит набор кнопок (Ok, Cancel, Help) которые можно удалить 
либо запрограммировать на действие. 
 
 
 
 
 
 
 
 
 
 
 
 

Компонент PageControl 

     Компонент PageControl (вкладкой Win32 панели компонентов) 
также позволяет создать многостраничный блокнот (элемент с закладка- 
ми). В данном случае он выступает как обычный компонент, расположен- 
ный на форме. Данный компонент является контейнером и может содер- 
жать в себе другие элементы или группы. При расположении компонента 
на форме на нем нет страниц. Добавить страницы можно с помощью пунк- 
та контекстного меню New Page. Каждая страница блокнота TabSheet рас- 
сматривается как отдельный компонент, ее свойства аналогичны свойст- 
вам, описанным в предыдущих разделах. Название страницы – Caption
Основные свойства компонента представлены в табл. 5.7.

 
Таблица 5.7. Свойства компонента PageControl 

 
 
 
 

  1. Для для  рисования функций в декартовой системе координат используем:

         procedure parabola (a,b:integer);

         procedure osi(x,x1,y,y1:real);//рисует оси координат исходя из наибольшего и наименьшего значений графиков

         procedure x2_1 (a,b:integer);

        procedure sinus (a,b:integer);

         procedure list (a,b:integer);

         procedure logo(a,b:integer);

  1. Создать обработчик кнопки «рисование»:

     procedure TForm1.Button1Click(Sender: TObject);

     var

      a,b,x,i:integer;

     begin

       if spinedit1.Value>=spinedit2.Value then

             begin

                     messagedlg('Не правильно введен интервал',mterror,[mbok],1);

                     exit;

             end; 

       a:=spinedit1.Value;

       b:=spinedit2.Value;

       case combobox1.ItemIndex  of

             0:parabola(a,b);

             1:x2_1(a,b);

             2:sinus (a,b);

             3:list (a,b);

             4:logo(a,b);

       else

        messagedlg('Функция не выбрана',mterror,[mbok],1);

        end; 

     //osi();

     end;

  1. Создать обработчик кнопки «рисовать»:

     procedure TForm1.Button2Click(Sender: TObject);

     var

     a,b:integer;

     r,alfa,h:real;

     begin

       a:=spinedit3.Value;

       b:=spinedit4.Value;

       try

         alfa:=strtofloat(edit1.text);

       except

        messagedlg('Ошибка ввода параметра Alfa',mterror,[mbok],1);

        exit;

       end;

       case combobox2.ItemIndex  of

             0:topolar(a,b,alfa,0);

             1:topolar(a,b,alfa,3);

             2:topolar(a,b,alfa,4);

             3:begin

             if alfa=0 then

                     begin

                        messagedlg('Параметр Alfa должен быть больше нуля!',mterror,[mbok],1);

                     end;

             topolar(a,b,alfa,5); 

             end;

             4:topolar(a,b,alfa,6);

       else

        messagedlg('Функция не выбрана',mterror,[mbok],1);

        end;

  1. Создать обработчик кнопки «оси координат»:

           procedure TForm1.Button3Click(Sender: TObject); 
    var 
    i:integer; 
    begin 
       for i:1 to 6  do 
        Form1.Chart1.Series[i].Clear; 
    end; 
     
    procedure TForm1.Button4Click(Sender: TObject); 
    begin 
    osi(chart1.LeftAxis.Maximum,chart1.LeftAxis.minimum,chart1.BottomAxis.Maximum,chart1.BottomAxis.Minimum); 
    end;

  1. Создать обработчик кнопки «очистка»:

     procedure TForm1.Button4Click(Sender: TObject); 
begin 
osi(chart1.LeftAxis.Maximum,chart1.LeftAxis.minimum,chart1.BottomAxis.Maximum,chart1.BottomAxis.Minimum); 
end; 
 
                        Глава 3. ФУНКЦИОНАЛЬНОЕ ОПИСАНИЕ
 

В данной программе используются основные процедуры  такие как:

        procedure x2_1 (a,b:integer);

        procedure sinus (a,b:integer);

         procedure list (a,b:integer);

         procedure logo(a,b:integer);

          
 

     Общая блок-схема алгоритма

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Блок-схемы  основных процедур и функций

     procedure list (a,b:integer);

       var

       i:integer;

       begin

Информация о работе Построение семейства графиков функций вида Y=F(X)