Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1_БСТ2154_Архангельский-1

.docx
Скачиваний:
6
Добавлен:
04.04.2023
Размер:
133.65 Кб
Скачать

Лабораторная работа №3

Тема 4.3. «Структура программы на C# и функции. Средства программирования алгоритмов линейной структуры»

  • ФИО — Архангельский Максим Вячеславович

  • Группа — БСТ2154

  • Номер студенческого билета — ЗБСТ21001

  • Вариант №1

  1. Тема и название работы:

Структура программы на C# и функции. Средства программирования алгоритмов линейной структуры – определение периметров правильных n-угольников, вписанных в окружность заданного радиуса.

  1. Задание на разработку и вариант задания:

Создать приложение c именем Проект-4-3-Лаб определения периметров правильных n-угольников (10 – угольника, 50 – угольника, 100 – угольника), вписанных в окружность заданного радиуса R.

Назначение процедуры:

Вычисление стороны правильного n-угольника ;

Вычисление периметра n-угольника

Задано: R – радиус описанной окружности.

Требуется определить: p10, p50, p100 –периметры.

Ограничения на значения исходных данных и их соотношения: R>0, n≥3.

  1. Формализация и уточнение задания

Для решения задачи будет использованы следующие формулы:

(1)

где n – количество углов n-угольника,

R – радиус описанной окружности,

a – сторона n-угольника.

При написании программного кода следует учесть, что тригонометрические функции работают с радианами, поэтому формула (1) примет следующий вид:

(2)

Вычисление полупериметра:

(3)

где n – количество углов n-угольника,

a – сторона n-угольника,

p – периметр n-угольника.

В соответствии с требованиями задания разобьем решение задачи на несколько отдельных задач и создадим процедуры-функции пользователя, реализующие эти задачи:

  • функцию double Side() вычисления стороны n-угольника;

  • процедуру void Perimeter() определения периметров 10 – угольника, 50 – угольника, 100 – угольника;

  • функцию double vvod() считывания из объекта TextBox действительного числа;

  • процедуру void vivod() вывода в объект TextBox действительного числа;

  1. Разработка проекта:

    1. Разработка графического интерфейса пользователя

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

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

Элемент label используется для размещения на форме поясняющих надписей.

Кнопка button используется для запуска и окончания программы и инициализируется щелчком левой кнопки мыши.

Таким образом, форма может иметь вид, показанный на рисунке 1.

Рисунок 1 – форма приложения

    1. Установка свойств объектов

В таблице 1 определены свойства объектов.

Таблица 1

Объект

Имя

объекта

Свойство

Значение свойства

Форма

Form1

Name

Form1

Text

Тема 4.3. Определение периметров правильных n-угольников

Font

Microsoft Sans Serif; 11,25pt

Метка

label1

Text

Задание: Определить периметры правильных n-угольников (10 – угольника, 50 – угольника, 100 – угольника), вписанных в окружность заданного радиуса R

ForeColor

Blue

Font

Microsoft Sans Serif; 9,75pt

Метка

label2

Text

R =

Метка

label3

Text

P_10 =

Font

Microsoft Sans Serif; 11,25pt; style=Bold

Метка

label4

Text

P_50 =

Font

Microsoft Sans Serif; 11,25pt; style=Bold

Метка

label5

Text

P_100 =

Font

Microsoft Sans Serif; 11,25pt; style=Bold

Текстовое поле

textBox1

Name

textBox1

Текстовое поле

textBox2

Name

textBox2

ReadOnly

True

Текстовое поле

textBox3

Name

textBox3

ReadOnly

True

Текстовое поле

textBox4

Name

textBox4

ReadOnly

True

Кнопка

button1

Name

button1

Text

Вычислить

Кнопка

button2

Name

button2

Text

Выход

    1. Разработка схемы алгоритма решаемой задачи

Блок-схема алгоритма процедуры Perimeter() представлена на рисунке 2, функции Side () – на рисунке 3.

Рисунок 2 – схема алгоритма процедуры Perimeter ()

Рисунок 3 — схема алгоритма функции Side()

    1. Написание программного кода

Программный код представлен ниже.

//функция получения из TextBox действительного числа

double vvod(TextBox textbox)

{

return Convert.ToDouble(textbox.Text);

}

//процедура вывода в TextBox действительного числа

void vivod(TextBox textbox, double n)

{

textbox.Text = Convert.ToString(n);

}

double Side(int n, double R)

{

double a = 2 * R * Math.Sin(Math.PI / n);

return a;

}

void Perimeter(double R, out double P10, out double P50, out double P100)

{

P10 = Side(10, R) * 10;

P50 = Side(50, R) * 50;

P100 = Side(100, R) * 100;

}

private void button1_Click(object sender, EventArgs e)

{

double R, P10, P50, P100;

R = vvod(textBox1);

Perimeter(R, out P10, out P50, out P100);

vivod(textBox2, P10);

vivod(textBox3, P50);

vivod(textBox4, P100);

}

private void button2_Click(object sender, EventArgs e)

{

Close();

}

  1. Результаты выполнения проекта

Результат выполнения проекта приведен на рисунке 4.

Рисунок 2 – результат выполнения проекта

  1. Доказательство правильности результатов

При

При

При

Сравним результаты, полученные выше, с результатами, выполнения проекта (рис. 4). При выполнении проекта были получены верные результаты.