Uploaded by Анастасия Голубочкина

информатика ЛР4-11

advertisement
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Ордена Трудового Красного Знамени
федеральное государственное бюджетное образовательное учреждение
высшего образования
«МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
СВЯЗИ И ИНФОРМАТИКИ»
Кафедра "Информатики"
Лабораторная работа №4
«Программирование алгоритмов вложенных циклических структур»
Выполнил:
студентка группы БИН2051
Голубочкина А. С.
Проверил:
Доцент Саркисова И. О.
Москва 2020
Лабораторная работа №4 «Программирование алгоритмов вложенных
циклических структур»
1. Задание на разработку проекта «Проект-ЛР4-11»:
Построить таблицу значений функции z(x,y) и найти сумму и количество
положительных значений функции при изменении x на отрезке [a; b] с шагом
h1 и y на отрезке [c; d] с шагом h2.
a= 1 b=5 h1= 0.4 c=0 d=6 h2=0.3
x +y
z(x,y)=
если x € [2;4] и y € [1;5],
( x + 1)
если 1< x <2 и 0<y<1,
x-y
в противном случае
2. Расположение элементов на форме:
Рис.1 Форма проекта ЛР 1-1
3. Таблица используемых объектов и их свойств.
Объект
Имя объекта
Форма
Form1
Текстовое поле
textBox1
Текстовое поле
textBox2
Текстовое поле
textBox3
Текстовое поле
textBox4
Свойство
Таблица 1.
Значение свойства
Name
Form1
Text
БИН2051
Голубочкина А.С.
ЛР4 Лабораторная
работа №4
«Программирование
алгоритмов
вложенных
циклических
структур»
BackColor
(Palette
Name
Оранжевый
Text
“”(Пусто)
Font
Arial; 12
Enabled
False
Name
txtNpoz
Text
“”(Пусто)
Font
Arial; 12
Enabled
False
Name
txta
Text
“”(Пусто)
Font
Arial; 12
Enabled
True
Name
txtb
Text
“”(Пусто)
Font
Arial; 12
Enabled
True
txtS
Текстовое поле
textBox5
Текстовое поле
textBox6
Текстовое поле
textBox7
Текстовое поле
textBox8
Метка
Метка
Метка
Метка
Label1
Label2
Label3
Label4
Name
txth1
Text
“”(Пусто)
Font
Arial; 12
Enabled
True
Name
txtc
Text
“”(Пусто)
Font
Arial; 12
Enabled
True
Name
txtd
Text
“”(Пусто)
Font
Arial; 12
Enabled
True
Name
txth2
Text
“”(Пусто)
Font
Arial; 12
Enabled
True
Text
Сумма z>0
BackColor
Черный
Font
Arial; 12
Text
Количество z>0
BackColor
Черный
Font
Arial; 12
Text
a
BackColor
Черный
Font
Arial; 12
Text
b
BackColor
Черный
Font
Arial; 12
Метка
Метка
Метка
Метка
Метка
Label5
Label6
Label7
Label8
Label9
Text
h1
BackColor
Черный
Font
Arial; 12
Text
c
BackColor
Черный
Font
Arial; 12
Text
d
BackColor
Черный
Font
Arial; 12
Text
h2
BackColor
Черный
Font
Arial; 12
Text
Диапазон и шаг
переменной
BackColor
Черный
Font
Arial; 12
Кнопка
button1
Text
Вычислить
Кнопка
Button2
Text
Завершить
4. Разработка схемы алгоритма
Рис.2 Вычисление функции func
Рис.3 Схема алгоритма
5. Программный код проекта
6. //файл с функциями решения задачи
7. #include "stdafx.h"
8. //табулируемая функция двух переменных
9. float f(float x,float y)
10. {
11.
float z;
12.
if ((x >= 2 && x <= 4) && (y >= 1 && y <= 5))
13.
z=(x+y);
14. else
15. if (x>1 && x<2 && y>0 && y<1)
16.
z=(sqrt(x+1));
17. else z=(x-y);
18. return z;
19. }
20. //формирование таблицы значений функции
21. float RegCikl2(float a, float b, float h1, float c, float d, float h2,int& Npos,
ListBox^ Lb)
22. {
23. int n1=floor((b-a)/h1)+1;
24. int n2=floor((d-c)/h2)+1;
25. float S=0;
26. Npos=0;
27. float x,y,z;
28. x=a; //начальное значение x
29. String ^ fs; //строка для вывода в listBox
30. // строка из 4-х пробелов для разделения столбцов x и y при выводе
31. String^ probel = String(' ',4).ToString();
32. Lb->Items->Clear(); //очистка списка
33. for (int i=1;i<=n1;i++)
34. {
35.
y=c; //начальное значение y
36.
for (int j=1; j<=n2; j++)
37.
{
38.
z=f(x,y); // вычисление значения функции
39.
if (z>0) {S+=z; Npos++;}
40.
// формируем строк для вывода в ListBox
41.
if (j==1) //чтобы x выводился только один раз
42.
fs=String::Format("x={0,-9:F2}y={1,10:F6}{2,4}z={3,10:F6}",
x,y,probel,z);
43.
else
44.
{
45.
String^ ss=String(' ',12).ToString(); // 12 пробелов
46.
fs=String::Format("{0,-12}y={1,10:F6}{2,4}z={3,10:F6}",ss,y,probel,z);
47.
}
48.
// выводим строку в ListBox
49.
Lb->Items->Add(fs);
50.
y+=h2;
51.
}
52.
x+=h1;
53. }
54. return S;
55. }
56.
6. Результаты выполнения проекта
Рис.3 Результат вычислений
7. Доказательство правильности результатов
Download