243

Создание Windows приложения с использованием Windows Forms

Курсовая

Информатика, кибернетика и программирование

Разработка алгоритма и программы на языке С# вычисления площади, ограниченной двумя кривыми, заданными вариантом индивидуального задания для интервала, определяемого пользователем в диалоговом режиме.

Русский

2012-11-14

401 KB

189 чел.

Министерство образования и науки РФ

ФГБОУ ВПО «Ижевский Государственный Технический Университет»

Кафедра: «Мехатронные системы»

Пояснительная записка к курсовому проекту

по дисциплине «Информатика»

на тему: «Создание Windows приложения

с использованием Windows Forms»

Выполнил:

студент группы 3-35-1

Чуйков Р.И.

Проверил:

преподаватель

Ананин Н.С.

Рецензент:

Лекомцев П.В.

Ижевск 2012

Содержание

Техническое задание 3

Введение 4

1 Разработка алгоритма 5

1.1 Разработка математического алгоритма 5

1.2 Разработка схем алгоритма 7

2 Разработка программы 11

3 Руководство оператора 18

4 Руководство программиста 19

5 Вычислительный эксперимент 20

Заключение 26

Список литературы 27


Техническое задание

Разработать алгоритм и программу на языке С# вычисления площади, ограниченной двумя кривыми, заданными вариантом индивидуального задания для интервала, определяемого пользователем в диалоговом режиме. Предусмотреть проверку ввода данных на корректность и графическое отображение заданных функций. Предусмотреть в программе вызов справки.

Вариант задания представлен в таблице 1.

Таблица 1.  Вариант задания

Функция 1: y = a*tg(b*x+c)

Функция 2: y = a*cos(b*x+c)

Метод интегрирования: метод Гаусса


                                                Введение

Программа, предназначенная для расчёта площади фигуры, ограниченной графиками двух исходных функций y = a*tg(b*x+c) и y = a*cos(b*x+c)и пределами интегрирования, вводимыми пользователем в диалоговом режиме, разработана в среде программирования «Microsoft Visual Studio 2010 Ultimate», на языке программирования C#.

Язык C# является наиболее известной новинкой в области создания языков программирования. Ввиду очень удобного объектно-ориентированного дизайна, C# является хорошим выбором для конструирования различных компонентов – от высокоуровневой
бизнес логики до системных приложений, использующих низкоуровневый код. Также
следует отметить, что C# является и Web ориентированным - используя встроенные конструкции языка компоненты, могут быть превращены в Web сервисы, к которым можно будет обращаться из Internet посредством любого языка на любой операционной системе. 

В C# унифицирована система типов, можно рассматривать каждый тип как объект. Несмотря на то, используется класс, структура, массив или встроенный тип, можно обращаться к нему как к объекту. Объекты собраны в пространства имен (namespaces),которые позволяют программно обращаться к чему-либо. Это значит, что вместо списка включаемых файлов заголовков в своей программе необходимо написать какие пространства имен, для доступа к объектам и классам внутри них, будут использоваться. В C# выражение using позволяет не писать каждый раз название пространства имен, когда необходимо использовать класс из него. Например, пространство имен System содержит несколько классов, в том числе и Console.


1 Разработка алгоритма

Алгоритм программы состоит из двух частей:

  1.  Математический алгоритм – вычисление интеграла;
  2.  Общий алгоритм работы программы.

  1.  Разработка математического алгоритма

Численное интегрирование  — вычисление значения определённого интеграла (как правило, приближённое). Под численным интегрированием понимают набор численных методов отыскания значения определённого интеграла.

Численное интегрирование применяется, когда:

  1.  Сама подынтегральная функция не задана аналитически. Например, она представлена в виде таблицы (массива) значений в узлах некоторой расчётной сетки.
  2.  Аналитическое представление подынтегральной функции известно, но её первообразная не выражается через аналитические функции.

В этих двух случаях невозможно вычисление интеграла по формуле Ньютона-Лейбница. Также, возможна ситуация, когда вид первообразной настолько сложен, что быстрее вычислить значение интеграла численным методом.

Метод Гаусса — метод численного интегрирования, позволяющий повысить алгебраический порядок точности методов на основе интерполяционных формул путём специального выбора узлов интегрирования без увеличения числа используемых значений подынтегральной функции. Метод Гаусса позволяет достичь максимальной для данного числа узлов интегрирования алгебраической точности.

Формула нахождения определенного интеграла методом Гаусса

Например, для двух узлов можно получить метод 3-го порядка точности тогда как для равноотстоящих узлов метода выше 2-го порядка получить невозможно. В общем случае, используя n точек, можно получить метод с порядком точности 2n − 1. Значения узлов метода Гаусса по n точкам являются корнями полинома Лежандра степени n и приводятся в справочниках специальных функций вместе с соответствующими весами. Наиболее известен метод Гаусса по 5 точкам.

Алгебраический порядок точности численного метода (порядок точности численного метода, степень точности численного метода, порядок точности, степень точности) — наибольшая степень полинома, для которой численный метод даёт точное решение задачи.

Другое определение: говорят, что численный метод имеет порядок точности , если его остаток  равен нулю для любого полинома степени , но не равен нулю для полинома степени .

Очевидно, что метод левых (или правых) прямоугольников имеет порядок точности 0, метод Рунге — Кутты (решения дифференциалных уравнений) четвёртого порядка — 4. Широко известный метод Гаусса по пяти точкам имеет порядок точности 9. Менее очевидно, но легко показывается, что порядок точности метода трапеций — 1, а метода Симпсона — 4.

Наивысшая возможная алгебраическая степень точности для методов численного интегрирования достигается для метода Гаусса.

Для метода Рунге — Кутты решения ОДУ порядок точности имеет другое значение — максимальное число первых членов ряда Тейлора полученного решения, совпадающих с действительным решением ОДУ


1.2 Разработка схем алгоритма

Схема алгоритма программы представлена на рисунке 1.

Рисунок 1 – Схема алгоритма программы, считающей площадь, ограниченную двумя исходными функциями и границами интегрирования.

Рисунок 1 – Схема алгоритма программы, считающей площадь, ограниченную двумя исходными функциями и границами интегрирования (Продолжение )  


Схема алгоритма метода класса, выводящего окно справки, представлена на рисунке 2.

 

Рисунок 2 – Схема алгоритма программы, выводящей окно справки.


Схема алгоритма процедуры, считающей площадь, ограниченную двумя исходными функциями и границами интегрирования, представлена на рисунке 3.

Рисунок 3 – Схема алгоритма процедуры, считающей площадь, ограниченную двумя исходными функциями и пределами интегрирования


2 Разработка программы

Программа, предназначенная для расчёта площади, ограниченной графиками двух исходных функций y1= a*cos(b*x+c) и y2= a*tg(b*x+c) и пределами интегрирования, вводимыми пользователем в диалоговом режиме, разработана в среде программирования «Microsoft Visual Studio 2010 Ultimate», на языке программирования C#.

Программа содержит несколько классов: классы, отображающие окна программы, включающий в себя методы вычисления площадей, и класс для построения графиков.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace WindowsFormsApplication9

{

   class functions

   {

       /// <summary>

       /// коэффициенты в функциях

       /// </summary>

       public double a;

       public double b;

       public double c;

       /// <summary>

       /// пределы интегрирования

       /// </summary>

       public double x1;

       public double x2;

       public functions(double a, double b, double c, double x1, double x2)

       {

           this.a = a;

           this.b = b;

           this.c = c;

           this.x1 = x1;

           this.x2 = x2;

       }

       /// <summary>

       /// Метод, вычисляющий значение функции y=a*cos(b*x+c).

       /// </summary>

       /// <param name="x"></param>

       /// <returns>значение функции y=a*cos(b*x+c)</returns>

       public double f1(double x)

       {

           double y2 = Math.Pow(a, b * x + c);

           return y2;

       }

       /// <summary>

       /// Метод, вычисляющий значение функции y=a*tg(b*x+c).

       /// </summary>

       /// <param name="x"></param>

       /// <returns>значение функции y=a*tg(b*x+c)</returns>

      

Рисунок 4 – Текст класса, включающего методы вычисления функций и площадей

       public double f2(double x)

       {

           double y1 = a * Math.Cos(b * x + c);

           return y1;

       }

       /// <summary>

       /// Подынтегральная функция

       /// </summary>

       /// <param name="x"></param>

       /// <returns>Модуль разности функций</returns>

       private double F(double x)

       {

           double m = Math.Abs(f1(x) - f2(x));

           return m;

       }

       /// <summary>

       /// Нахождение площади методом Гаусса

       /// </summary>

       /// <returns>Площадь фигуры образованной двумя функциями </returns>

       public double Gauss()

       {

           double I;

           double c = 0.5 * (x2 - x1);

           double d = 0.5 * (x2 + x1);

           double e = 0.5 * (x2 - x1)/Math.Sqrt(3);

           I = c * (F(d - e) + F(d + e));

           return I;

       }

   }

}

Рисунок 4– Текст класса, включающего методы вычисления функций и площадей (Продолжение)


Текст класса, включающего методы построения графиков функций, представлен на рисунке 5.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Drawing;

namespace WindowsFormsApplication9

{

   class Grafik : Control

   {

       /// <summary>

       /// Масштаб и инициализация переменных

       /// </summary>

       public double maxX = 7;

       public double maxY = 7;

       double a, b, c;

       int x1, x2;

       

       Nullable<Point> lastPoint;

       public List<List<Point>> pointList1 = new List<List<Point>>();

       protected override void OnPaint(PaintEventArgs e)

       {

           this.SetStyle(ControlStyles.ResizeRedraw, true);

           Graphics g = e.Graphics;

           Pen p = new Pen(Color.Black, 1);

           ///Ocи x и y

           g.DrawLine(p, this.Size.Width / 2, 0, this.Size.Width / 2, this.Size.Height);

           g.DrawLine(p, 0, this.Size.Height / 2, this.Size.Width, this.Size.Height / 2);

           /// Стрелки на осях

           g.DrawLine(p, this.Size.Width / 2, 0, this.Size.Width / 2 - 5, 10);

           g.DrawLine(p, this.Size.Width / 2, 0, this.Size.Width / 2 + 5, 10);

           g.DrawLine(p, this.Size.Width, this.Size.Height / 2, this.Size.Width - 10, this.Size.Height / 2 - 5);

           g.DrawLine(p, this.Size.Width, this.Size.Height / 2, this.Size.Width - 10, this.Size.Height / 2 + 5);

           ///Деления

           for (int i = 0; i < this.Size.Width - 10; i = i + 10)

           {

               g.DrawLine(p, i, this.Size.Height / 2 - 1, i, this.Size.Height / 2 + 1);

           }

           for (int i = 0; i < this.Size.Height; i = i + 10)

           {

               g.DrawLine(p, this.Size.Width / 2 - 1, i, this.Size.Width / 2 + 1, i);

           }

Рисунок 5 – Текст класса, включающего методы построения графиков функций


           ///Подпись x, y, 0

           Font f = new System.Drawing.Font("Comic Sans MS", 10);

           g.DrawString("0", f, Brushes.Black, this.Size.Width / 2 - 15, this.Size.Height / 2 + 3);

           g.DrawString("y", f, Brushes.Black, this.Size.Width / 2 - 15, 3);

           g.DrawString("x", f, Brushes.Black, this.Size.Width - 15, this.Size.Height / 2);

           GRAF(a, b, c, x1, x2);

       }

       ///Преобразование координат

       public Point koordinat(double koordX, double koordY)

       {

           Point p = new Point();

           p.X = (int)(koordX * this.Size.Width / (2 * maxX)) + this.Size.Width / 2;

           p.Y = -(int)(koordY * this.Size.Height / (2 * maxY)) + this.Size.Height / 2;

           return p;

       }

       ///Обнуление

       public void SetNullLastPoint()

       {

           lastPoint = null;

       }

       ///Рисование графика

       public void AddTochka(double xTochki, double yTochki, Color col)

       {            

           

               Pen p = new Pen(col, 2);

               Graphics g = this.CreateGraphics();

               Point point = koordinat(xTochki, yTochki);

               {

                   if (lastPoint != null)

                   {

                       g.DrawLine(p, lastPoint.Value, point);

                   }

                   lastPoint = koordinat(xTochki, yTochki);

               }           

       }

       ///Рисование первого предела

       public void AddPredel_1(int x1, Color col)

       {

           Pen p = new Pen(Color.Black, 1);

           Graphics g = this.CreateGraphics();

           g.DrawLine(p, this.Size.Width / 2 + x1, 0, this.Size.Width / 2 + x1, 500);

       }

       ///Рисование второго предела

       public void AddPredel_2(int x2, Color col)

       {

           Pen p = new Pen(Color.Black, 1); Graphics g = this.CreateGraphics(); g.DrawLine(p, this.Size.Width / 2 + x2, 0, this.Size.Width / 2 + x2, 500);

       }

Рисунок 5– Текст класса, включающего методы построения графиков функций (Продолжение)


      ///Метод перерисовки графиков

       public void GRAF(double a, double b, double c, int x1, int x2)

       {

           if (a != 0 && b != 0 && c != 0 && x1 != 0 && x2 != 0)

           {

               this.a = a;

               this.b = b;

               this.c = c;

               this.x1 = x1;

               this.x2 = x2;

               functions fun1 = new functions(a, b, c, x1, x2);

               ///Рисование графика функции y = a*tg(b*x+c)

               for (double x = -maxX; x < maxX; x = x + 0.001)

               {

                   double y = fun1.f1(x);

                   AddTochka(x, y, Color.LightCoral);

               }

               SetNullLastPoint();

               ///Рисование графика функции y = a*cos(b*x+c)

               functions fun2 = new functions(a, b, c, x1, x2);

               for (double x = -maxX; x < maxX; x = x + 0.001)

               {

                   double y = fun2.f2(x);

                   AddTochka(x, y, Color.BlueViolet);

               }

               SetNullLastPoint();

               ///Пределы интегрирования

               AddPredel_1(x1, Color.Black);

               AddPredel_2(x2, Color.Black);

           }

       }

   }

}

Рисунок 5– Текст класса, включающего методы построения графиков функций (Продолжение)


Текст основного класса, отображающего главное окно программы, представлен на рисунке 6.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication9

{

   public partial class Form1 : Form

   {

       public Form1()

       {

           InitializeComponent();

       }

       

       /// <summary>

       /// Вывод результата интегрирования, после нажатия кнопки "Результат"

       /// </summary>

       /// <param name="sender"></param>

       /// <param name="e"></param>

       private void button1_Click(object sender, EventArgs e)

       {

           ///Проверка на корректность введенных данных

           try

           {

               ///Инициализация переменных

               double a = Convert.ToDouble(pole_a.Text);

               double b = Convert.ToDouble(pole_b.Text);

               double c = Convert.ToDouble(pole_c.Text);

               int x1 = Convert.ToInt32(pole_x1.Text);

               int x2 = Convert.ToInt32(pole_x2.Text);

               ///Нахождение площади 

               functions S = new functions(a, b, c, x1, x2);

               double I = S.Gauss();

               string z = Convert.ToString(I);

               label4.Text = "= " + z;

           }

           catch

           {

               Oshibka o = new Oshibka();

               o.Show();

           }

       }

       /// <summary>

       /// Вызов справки

       /// </summary>

       /// <param name="sender"></param>

       /// <param name="e"></param>

       private void button2_Click(object sender, EventArgs e)

       {

           Spravka s = new Spravka();

           s.Show();

       }

   Рисунок 6 - Текст класса, отображающего главное окно программы

       /// <summary>

       /// Построение графиков, после нажатия кнопки "Графики"

       /// </summary>

       /// <param name="sender"></param>

       /// <param name="e"></param>

       private void button3_Click(object sender, EventArgs e)

       {         

           this.grafik.Refresh();

           this.grafik.Invalidate();

          

           try

           {

               double a = Convert.ToDouble(pole_a.Text);

               double b = Convert.ToDouble(pole_b.Text);

               double c = Convert.ToDouble(pole_c.Text);

               int x1 = Convert.ToInt32(pole_x1.Text);

               int x2 = Convert.ToInt32(pole_x2.Text);

               this.grafik.GRAF(a, b, c, x1, x2);               

           }

           catch

           {

               Oshibka o = new Oshibka();

               o.Show();

           }

       }

       /// <summary>

       /// Выход из приложения

       /// </summary>

       /// <param name="sender"></param>

       /// <param name="e"></param>

       private void button4_Click(object sender, EventArgs e)

       {

           DialogResult res = MessageBox.Show("закрыть проект?", "Выход", MessageBoxButtons.YesNo);

           if (res == DialogResult.Yes)

           {

               MessageBox.Show("Выход");

               this.Close();

           }

       }    

   }

}

Рисунок 6– Текст класса, отображающего главное окно программы (Продолжение)


3 Руководство оператора

Назначение программы: программа предназначена для расчёта площади фигуры, ограниченной графиками двух исходных функций y1 = a*tg(bx+c) и y2 = a*cos(b*x+c) и пределами интегрирования, вводимыми пользователем в диалоговом режиме, а также для отображения графиков этих функций.

Входные параметры (задаваемые пользователем в диалоговом режиме):

а, b, cкоэффициенты исходных функций y1 = a*tg(bx+c) и y2 = a*cos(b*x+c);

x1 – начало интервала интегрирования;

x2 – конец интервала интегрирования.

Для корректной работы программы все параметры должны иметь численные значения. Значения коэффициентов могут быть дробными, а значения начала и конца интегрирования целочисленными.  Дробные числа необходимо вводить через запятую.

В случае неверного заполнения полей ввода, либо заполнения не всех предусмотренных полей, программа сообщит оператору о возникновении ошибки (вывод окна «ОШИБКА»).

            Описание работы кнопок:

           «Графики» - При нажатии кнопки «Графики» происходит построение графиков функций у1 = a*tg(bx+c) и y2 = a*cos(b*x+c) и пределами интегрирования х1 и х2.

«Результат» - При нажатии кнопки «Результат» происходит расчёт площади, ограниченной графиками функций y1 = a*tg(bx+c) и y2 = a*cos(b*x+c) (расчёт площади производится методом Гаусса), выводится числовое значение вычисленной площади в поле «Вывод площади».

«Справка» -  При нажатии кнопки «Справка», происходит  вызов окна справки.

«Выход» - При нажатии кнопки «Выход», происходит закрытие приложения, ведущее за собой выбор «Да» или «Нет».

          


4 Руководство программиста

Назначение и условия применения программы

Программа предназначена для расчёта площади фигуры, ограниченной графиками двух исходных функций y1 = a*tg(bx+c) и y2 = a*cos(b*x+c)   и пределами интегрирования. Программа работает в диалоговом режиме. В программе предусмотрена проверка ввода данных на корректность и графическое отображение заданных функций.

Обращение к программе

Program.cs – главная точка входа для приложения;

Form1.cs – основной класс, используемый для отображения главного окна приложения;

Spravochka.cs– класс, используемый для отображения окна справки;

Oshibochka.cs– класс, используемый для отображения сообщения об ошибке;

functions.cs–класс, включающий в себя методы расчетов значений функций и площадей фигур, образуемых графиками заданных функций;

Grafik.cs – класс, включающий в себя методы построения координатной плоскости и графиков функций;

Входные и выходные данные

Входные и выходные параметры всех методов имеют тип double.

Список основных методов, используемых в программе:

  •  public double f1(double a, double b, double c, double x) и public double f2(double a, double b, double c, double x) – методы, вычисляющие значения функций;
  •  private double F(double x, double m)  – методы, вычисляющий модуль разности функций;
  •  public void AddTochka (double xTochki, double yTochki, Color col) – метод, рисующий графики.


5 Вычислительный эксперимент

Окно программы и окно справки представлены на рисунках 7,8.

Рисунок 7 – Окно программы

Рисунок 8 – Окно справки

                                                   Вычислительный эксперимент №1

В первом вычислительном эксперименте предусмотрим ввод положительных целых чисел.

Рисунок 9 – Вычислительный эксперимент №1


Вычислительный эксперимент №2

Во втором вычислительном эксперименте предусмотрим ввод отрицательных чисел.

Рисунок 10 – Вычислительный эксперимент №2


Вычислительный эксперимент №3

В третьем вычислительном эксперименте предусмотрим ввод некорректных данных (буквы).

Рисунок 11 – Вычислительный эксперимент №3


Вычислительный эксперимент №4

В четвертом вычислительном эксперименте предусмотрим заполнение не всех полей для ввода.

Рисунок 12 – Вычислительный эксперимент №4


Заключение

В процессе выполнения представленной курсовой работы были приобретены навыки по созданию Windows-приложений в среде программирования «Microsoft Visual Studio 2010 Ultimate», на языке программирования C#.

Разработанный программный продукт работает исправно и выполняет свои функции, что подтверждается результатами вычислительного эксперимента.


Список литературы

  1.  Агуров П.А. С#. Разработка компонентов в MS Visual Studio 2008/2010.СПб.: БХВ –Петербург, 2008. 480с.

  1.  Марченко А.Л. C#. Введение в программирование. Учебное пособие. М.: МГУ им. М.В. Ломоносова ,2005. 317с.

  1.  Биллиг В.А. Основы программирования на C#//Учебное пособие. 2005. URL:http://www.intuit.ru/department/pl/csharp (дата обращения 16.01.12)


 

А также другие работы, которые могут Вас заинтересовать

55020. СЕКРЕТНИЙ ПОКУПЕЦЬ 81.5 KB
  Мета конкурсу: узагальнення і поглиблення професійних знань, умінь та навичок продавця. Демонстрація досягнутого рівня підготовки студентів–практикантів та розвиток зацікавленості їх до майбутньої професії з предмету навчальна практика.
55021. ПОЛЕ ЧУДЕС 112.5 KB
  Цель: заинтересовать учащихся предметом; вовлечь их в самостоятельную работу; способствовать расширению кругозора учащихся; способствовать развитию внимания, мышления, памяти, смекалки, познавательной и творческой активности учащихся; воспитывать трудолюбие, ответственность, интерес к изучению математики.
55022. Наростання політичної боротьби у вересні – жовтні 1917р 37.5 KB
  Мета. Дати уявлення про платформу реформ які містила ЦР перед Демократичною нарадою у вересні 1917 року в Петрограді; розкрити фатальні наслідки прорахунків ЦР у воєнній політиці; показати вплив наростаючої анархії на становище в Україні; вказати на головні причини конфлікту ЦР та ТУ.
55023. POLITICAL SYSTEMS OF THE WORLD 105 KB
  Good afternoon! I m happy to see you! We have begun our lesson with the national anthem of our country. We are all citizens of Ukraine. In my opinion a man can’t live outside a state. The life of citizens depends on the political system of the state. I’m convinced that every citizen has to know everything about it. That’s why our theme today is Political systems of the world.
55024. Политическая география и геополитика 30.5 KB
  Политическая география и геополитика Ключевые вопросы Каковы основные положения традиционных геополитических теорий Какие принципы лежат в основе современных геополитических моделей Ратцель Фридрих Политическая география наука сравнительно новая. книгу Политическая география. Политическая география включает следующие основные направления: геополитику занимающуюся глобальной системой межгосударственными союзами географическое государствоведение изучающее отдельно взятые государства и территории политическую регионалистику...
55025. Политическая карта мира. Изменение на политической карте мира в новейшее время 158 KB
  Политическая карта мира. Изменение на политической карте мира в новейшее время. Сформулировать представления о разнообразии современного мира вспомнить классификацию стран показать место России в мире.
55026. РОЛЬ УЧИТЕЛЯ УКРАЇНСЬКОЇ МОВИ ТА ЛІТЕРАТУРИ В РЕАЛІЗАЦІЇ ДЕРЖАВНОЇ МОВНОЇ ПОЛІТИКИ 209 KB
  Сьогодні в Україні мовна проблема є однією з найактуальніших. Однак проблема функціонування української мови чомусь досі не зникає. Саме тому статтю присвячено розглядові основних напрямків української мовної політики а саме: основних проблем реалізації Концепції державної мовної політики на сучасному етапі...
55027. Політичний і соціальний устрій Київської Русі. Розвиток господарства 47 KB
  МЕТА: охарактеризувати особливості політичного і соціального устрою Київської Русі; ознайомити учнів з розвитком землеробства ремесел та торгівлі на Русі; розвивати вміння працювати з текстом робити висновки критично мислити. Чому вас народ Київської Русі назвав Мудрим.
55028. Процес політизації українського суспільства 71.5 KB
  Мета. Дати уявлення про умови та методи формування українських політичних партій. Показати на прикладі західноєвропейського та російського суспільно–політичних рухів процес формування українського національно–політичного руху. Розвивати уміння учнів працювати з різними джерелами інформації;