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

ЗБИК1953_лр1

.docx
Скачиваний:
0
Добавлен:
11.02.2023
Размер:
230.57 Кб
Скачать

Ордена Трудового Красного Знамени федеральное государственное

бюджетное образовательное учреждение высшего образования

Московский технический университет связи и информатики

Предмет: Языки программирования

Лабораторная работа №1 по теме:

«Программирование алгоритмов разветвляющихся структур»

Проверил(а): Саркисова И.О.

2 курс, факультет ЦЗОПБ

Группа БИК1953

Вариант 24

Москва, 2020

Оглавление

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

Программирование алгоритмов разветвляющихся структур – Вычисление значения сложной условной функции.

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

Создать проект с именем YaP_LR_01C для вычисления значения функции l=f(x, a):

Разработать приложение для решения задачи и получить результаты.

  1. Формализация задания

Алгоритм решения данной задачи представляет собой комбина­цию вычисления сложной функции с условием и выбора наименьшего (наибольшего) из нескольких значений. Он использует все виды разветвлений и программируется с использованием как однострочных, так и блочных операторов If. Данная задача решается с помощью функции «double Calculate(int x, double a)», которая, получив в качестве входных параметров аргументы x, a, возвращает вычисленное значение. Вызов этой функции «double Calculate(double x, double a)» производит функция «void buttonCalculate_Click(object sender, EventArgs e)», которая сохраняет значение функции в переменную и выводит её с помощью вызова функции «void Output(double l)» в которую передаёт в качестве аргумента значение функции «double Calculate(double x, double a)», а «void Output(double l)» в свою очередь осуществляет вывод полученного параметра в текстовое поле TextBox.

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

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

Разработанная форма интерфейса пользователя приведена на рис. 4.1.

Анализируя задание на разработку проекта, можно сделать вывод, что для организации ввода и вывода данных можно использовать три элемента управления. Для ввода аргументов x и a используются объекты TextBox и для вывода результата вычисления функции так же используется объект TextBox только с установленным свойством ReadOnly в true что бы поле предназначенное для вывода нельзя было изменить вручную. Для отображения текстовой информации и для указания за что отвечают поля ввода и вывода используются объекты Label. Для вызова функций расчёта и выхода из программы используются объекты Button которые запускают соответствующие функции при нажатии на них.

Рис. 4.1

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

Свойства объектов управления разработанной формы приведены в таблице 4.2

Объект

Имя объекта

Свойтсво

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

Form

FormLab1

Name

FormLab1

Text

ЗБИК1953_ЛР1_ЩеголевГГ_В24

Font

Century Gothic, 10 point

MaximizeBox

false

BackColor

Color.FromArgb(181, 208, 238)

FormBorderStyle

FormBorderStyle.FixedSingle

Label

labelText1Red

Name

labelText1Red

Text

Задание:

ForeColor

Color.Red

Font

Century Gothic, 18 point

Label

labelText2

Name

labelText2

Text

Вычислить значение условной функции l=f(x, a)

Font

Century Gothic, 10 point

Label

labelText3X

Name

labelText3X

Text

x:

Font

Century Gothic, 10 point

Label

labelText4A

Name

labelText4A

Text

a:

Font

Century Gothic, 10 point

Label

labelText4L

Name

labelText4L

Text

l:

Font

Century Gothic, 10 point

TextBox

textBoxX

Name

textBoxX

Font

Century Gothic, 12 point

BackColor

Color.FromArgb(155, 167, 183)

BorderStyle

BorderStyle.None

TextBox

textBoxA

Name

textBoxA

Font

Century Gothic, 10 point

BackColor

Color.FromArgb(155, 167, 183)

BorderStyle

BorderStyle.None

TextBox

textBoxL

Name

textBoxL

Font

Century Gothic, 10 point

BackColor

Color.FromArgb(151, 177, 238)

BorderStyle

BorderStyle.None

Button

buttonCalculate

Name

buttonCalculate_Click

Text

Вычислить l=f(x, a)

Font

Century Gothic, 10 point

Click

buttonCalculate_Click

BackColor

Color.FromArgb(140, 156, 177)

FlatStyle

FlatStyle.Flat

FlatAppearance.BorderSize

0

FlatAppearance.MouseDownBackColor

Color.FromArgb(123, 137, 155)

FlatAppearance.MouseOverBackColor

Color.FromArgb(158, 176, 199)

Button

buttonExit

Name

buttonExit

Text

Выход

Font

Century Gothic, 10 point

Click

buttonExit_Click

BackColor

Color.FromArgb(140, 156, 177)

FlatStyle

FlatStyle.Flat

FlatAppearance.BorderSize

0

FlatAppearance.MouseDownBackColor

Color.FromArgb(123, 137, 155)

FlatAppearance.MouseOverBackColor

Color.FromArgb(158, 176, 199)

Таблица 4.2

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

Схемы алгоритмов представлены на рис. 4.3-1 и 4.3-2.

Рис 4.3-1

Рис 4.3-2

    1. Написание программного кода с использованием процедур

using System;

using System.Windows.Forms;

namespace YaP_LR_01C

{

public partial class FormLab1 : Form

{

public FormLab1()

{

InitializeComponent();

}

//функция вызываемая при нажатии на кнопку расчёта

private void buttonCalculate_Click(object sender, EventArgs e)

{

double a, l;

int x;

x = InputX();

a = InputA();

l = Calculate(x, a);

Output(l);

}

//функция ввода X

private int InputX()

{

return int.Parse(textBoxX.Text);

}

//функция ввода a

private double InputA()

{

return double.Parse(textBoxA.Text);

}

//функция вывода

private void Output(double l)

{

textBoxL.Text = l.ToString();

}

//функция расчёта условной функции

private double Calculate(int x, double a)

{

double l;

if (x < 0)

{

double ax = Math.Pow(a, x);

if (x > ax)

l = x;

else

l = ax;

}

else if (x > 1)

l = 0;

else

{

double min1, min2, min3, min;

min1 = (x - a) / x;

min2 = Math.Sqrt(a) + x;

min3 = Math.Pow(Math.Sin(x), 2);

if (min1 < min2)

min = min1;

else

min = min2;

if (min < min3)

l = min;

else

l = min3;

}

return l;

}

//функция вызываемая при нажатии на кнопку выхода

private void buttonExit_Click(object sender, EventArgs e)

{

Application.Exit();

}

}

}

Программный код решаемой задачи представлен на рис. 4.4-1 и Рис. 4.4-2.

Рис. 4.4-1

Рис. 4.4-2

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

Результаты работы проекта YaP-LR-01C представлены на рис. 5.

Рис. 5

  1. Доказательство правильности работы программы

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

x

a

-1,00

-0,50

-2,00

1,00

2,00

1,00

Результаты расчёта в Excel и используемые формулы приведены на рис. 6.

Рис. 6

При тестовых данных результаты расчета в Excel и вычисления в Программе совпадают.

Соседние файлы в предмете Языки программирования