2 курс БСТ Лабораторные работы / TP_Laboratornaya_rabota_4
.docxМинистерство цифрового развития, Связи и Массовых Коммуникаций
Ордена Трудового Красного Знамени федерального государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики» (МТУСИ)
Кафедра: «Информатика»
Лабораторная работа №4 «Программирование алгоритмов разветвляющихся структур»
Вариант 8
Проверил: доцент Аляпкин В.В.
Москва 2023 г.
Постановка задачи
Создать приложение для вычисления значения переменной z в зависимости от условий и входных данных.
Блок-схема алгоритма
Рисунок 1. Алгоритм программы
Рисунок 2. Алгоритм процедуры rez()
Графический интерфейс
Рисунок 3. Интерфейс программы
Программный код
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 TP_LabRab_4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
double vvod(TextBox textbox)
{
return Convert.ToDouble(textbox.Text);
}
void vyvod(TextBox textbox, double z)
{
textbox.Text = Convert.ToString(z);
}
double rez(double x, double y, double a, double b, double c)
{
double n, z;
if (x < 3)
{
n = Math.Pow(x, 2);
if (n < y) n = y;
if (n < c) n = c;
if (n > a) n = a;
z = n;
}
else
{
if (x >= 3 && x <= 4)
{
z = Math.Sqrt(Math.Pow(b, 2) + Math.Pow(c, 2));
}
else
{
n = 0;
n = Math.Pow(y, 3);
if (n < (a * x + c)) z = a * x + c;
else z = n;
}
}
return z;
}
private void button1_Click(object sender, EventArgs e)
{
double x = vvod(textBox1),
y = vvod(textBox2),
a = vvod(textBox3),
b = vvod(textBox4),
c = vvod(textBox5);
double z = rez(x, y, a, b, c);
vyvod(textBox6, z);
}
private void button2_Click(object sender, EventArgs e)
{
Close();
}
}
}
Тесты
В рамках тестирования введем в программу такие значения переменной x, при которых значение z будет рассчитано каждым из трех выражений системы и, как следствие, будет принимать различные значения. Другие переменные сделаем постоянными во всех тестах: a = 2, b = 3, c = 4, y = 10.
Для первого теста возьмем x = 1 (т.е. меньше 3):
Рисунок 3. Результат первого теста, x = 1
Для второго теста возьмем x = 3 (чтобы значение попадало в промежуток от 3 до 4 включительно):
Рисунок 4. Результат второго теста, x = 3
В рамках третьего теста проверим все остальные случаи, возьмем x = 5, т.е. строго больше 4:
Рисунок 5. Результат третьего теста, x = 5
Как видим на рисунках 3, 4 и 5, переменная z в тестах каждый раз принимает разные значения: z = 2, z = 5, z = 1000. Это при том, что вводимые в программу переменные не изменялись, за исключением переменной x. Можно сделать вывод, что формулы расчета z меняются вместе с изменением x, т.е. программа работает корректно. В противном случае мы бы имели повторяющийся результат для формул, не зависящих от x, при заведомо большом y и маленьком a.
