Главная страница

Лабораторная работа Программирование алгоритмов вложенных циклических структур


Скачать 361.52 Kb.
НазваниеЛабораторная работа Программирование алгоритмов вложенных циклических структур
Дата17.05.2022
Размер361.52 Kb.
Формат файлаdocx
Имя файлаLab_praktrab_Win_6.docx
ТипЛабораторная работа
#534691

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

«Программирование алгоритмов вложенных циклических структур»
Цель данной работы состоит в получении навыков разработки проектов, использующих алгоритмы вложенных циклических структур.


4.1 Вопросы, подлежащие изучению





  1. Вложенные циклические алгоритмические структуры.

  2. Программирование вложенных циклических структур средствами С++.

  3. Базовые алгоритмы вложенных циклических структур.

  4. Реализация базовых алгоритмов вложенных циклических структур средствами С++.


4.2 Общее задание на разработку приложения





  1. Изучите вопросы программирования алгоритмов вложенных циклических структур.

  2. Выберите вариант задания из таблицы 4.3-1.

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

  4. Решите задачу построения таблицы значений функции z=f(x,y) двух аргументов, используя разработанные функции пользователя.

Для этого разработайте схемы алгоритмов и программные коды следующих функций:

  • программный код функции вычисления значения функции z=f(x,y) двух аргументов при заданных значениях аргументов согласно вашему индивидуальному заданию;

  • программный код функции построения таблицы значений z=f(x,y) на заданных отрезках и с заданными шагами изменения аргументов, причем использовать в качестве параметров циклов переменные целого типа;

  • программный код функции ввода исходных данных, предусмотревконтроль ввода исходных данных;

  • программный код функции вывода результатов;

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

  1. Создайте проект приложения Windows Form, содержащий:

  • графический интерфейс;

  • файлы с раздельно откомпилированными программными кодами необходимых для решения задачи функций:

  • файл, содержащий функции ввода исходных данных и вывода результатов;

  • файл, содержащий функции, решающие поставленную задачу;

  • событийную процедуру, которая должна содержать только операторы вызова пользовательских функций;

  1. Подготовьте тестыдля контрольного решения задачи.

  2. Выполнитепроект иполучитерезультаты.

  3. Докажите правильность полученных результатовна заранее разработанных тестах.



4.3 Варианты индивидуальных заданий


Таблица 4.3-1




Задача

1)

Постройте таблицу значений функции z=f(x,y) и найдите наибольшее значение функции при изменении x на отрезке [a;b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= - π b= π c= - π d= π h1=π/8 h2=π/4 z(x,y)= 3 cos2(2*x+y+1)

2)

Постройте таблицу значений функции z=f(x,y) и найдите сумму и количество положительных значений функции при изменении x на отрезке [a;b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= - π b= 0 c= - π d= π h1=π/8 h2=π/4 z(x,y)= 1/(x+2*π-y) – sin(x)

3)

Постройте таблицу значений функции z(x,y) и найдите произведение ее отрицательных значений при изменении x на отрезке [a;b] с шагом h1 и y на отрезке [c; d] с шагом h2.

а= - 1 b= 2 h1= 0.3 c = - 1 d=2 h2=0.2

x^2 + y^2 если 0≤ x ≤ 1 и 0 ≤ y ≤ 1 ,

z(x,y)= x - y если -1≤ x ≤0 и -1≤ y ≤0 ,

1 – x - y в противном случае

4)

Постройте таблицу значений функции z=f(x,y) и найдите произведение и количество положительных значений функции при изменении x на отрезке [a;b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= 0 b= 5 c= - 2 d= 2 h1= 0.5 h2=0.4 z(x ,y )=x^4 +y- 10*x^2 – 30*x -25

5)

Постройте таблицу значений функции z=f(x,y) и найдите наименьшее значение функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= 0.1 b= 1.1 c= 1 d=2 h1=0.1 h2=0.1 z(x,y) = x + 1/x + (1 - y)/2

6)

Постройте таблицу значений функции z=f(x,y) и найти сумму и количество отрицательных значений функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= 0 b= 2π c=0 d=2π h1=π/4 h2=π/2 z(x,y)= y – 0.1*sin(x)/2

7)

Постройте таблицу значений функции z(x,y) и найдите количество ее положительных значений при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= -3 b= 4 c = -2 d=2 h1= 0.7 h2=0.4

ex + y если x € [-2;2] и y € [-1;1],
z(x,y)= x+y+4 если -3 0 в противном случае

8)

Постройте таблицу значений функции z=f(x,y) и найдите произведение и сумму отрицательных значений функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= -1.5 b= 1.5 c= -2 d= 2 h1= 0.3 h2= 0.4 z(x,y)= x^8-y- 0.4*x^3 – 1.2

9)

Постройте таблицу значений функции z=f(x,y) и найдите сумму и произведение значений функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= 0.1 b=1.5 h1=0.1 c=2 d=3 h2=0.1 z(x,y) =

10)

Постройте таблицу значений функции z(x,y) и найдите наименьшее значение функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= -π b= π h1=π/4 c= - π d= π h2=π/4 z(x,y)= sin(4x+y) – 2*x

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 если x € [2;4] и y € [1;5],

z(x,y)= если 1< x <2 и 0<y<1,
x - y в противном случае

12)

Постройте таблицу значений функции z=f(x,y) и найдите произведение и количество отрицательных значений функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a=1.9 b=2.1 h1=0.01 c=2 d=3 h2=0.1

z(x,y)=

13)

Постройте таблицу значений функции z=f(x,y) и найдите наименьшее значение функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= 2.1 b=3 h1=0.1 c=2 d=3 h2=0.2 z(x,y) =


14)


Постройте таблицу значений функции z=f(x,y) и найдите наибольшее значение функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a=0 b= π h1= π/4 c=0 d=3 h2=0.3 z(x,y)=

15)

Постройте таблицу значений функции z(x,y) и найдите сумму и количество значений функции >0.1 при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= -2 b= 5 h1=0.7 b= 0 c=3 h2= 0.3

если x€[-1;4] и y€ [1;2]
z(x,y)= x – 3 + y если -2 < x < -1 и 0< y <1

в противном случае

16)

Постройте таблицу значений функции z=f(x,y) и найдите наибольшее значение при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= -π b= π h1=π/4 c= -π d= π h2=π/8

z(x,y)=sin(4xy) + y - 2

17

Постройте таблицу значений функции z=f(x,y) и найдите произведение и количество значений функции z(x,y) < 1 функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [с; d] с шагом h2.

a=-1.9 b= 2.9 h1=0.48 c= 1 d=2 h2=0.1 z(x,y)= Y+ .

18)

Постройте таблицу значений функции z=f(x,y) и вычислите наименьшее значение функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= -3 b=3 h1=0.6 c= 1 d=2 h2= 0.1

z(x,y)= + y

19)

Постройте таблицу значений функции z=f(x,y) и найдите сумму и количество значений функции при z>0 при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= -1 b= 3 h1=0.4 c=2 d=3 h2=0.1 z(x,y) = - y

20)

Постройте таблицу значений функции z=f(x,y) и вычислите наименьшее значение функции при изменении x на отрезке [a; b]c шагом h1 и y на отрезке [c; d] с шагом h2.

a= -4 b=4 h1=0.8 c=2 d=3 h2=0.1




z(x,y)=

21)

Постройте таблицу значений функции z=f(x,y) и найдите сумму и количество значений функции при z<1.5 при изменении x на отрезке [a; b] c шагом h1 и y на отрезке [c; d] с шагом h2.

a= -π b=π h1=π/4 c= -π d=π h2=π/2 z(x,y)=sin(4x+y) - 2

22)

Постройте таблицу значений функции z=f(x,y) и найдите наибольшее значение функции при изменении x на отрезке [a; b]c шагом h1 и y на отрезке [c; d] с шагом h2.

a= 6 b=8 h1= 0.2 c=2 d=3 h2=0.1

z(x,y)=

23)

Постройте таблицу значений функции z=f(x,y) и найдите произведение и количество значений функции при z<3 при изменении x на отрезке [a; b] с шагом h и y на отрезке [c; d] с шагом h2.

a= -0.9 b=1.9 h1=0.1 c=2 d=3 h2=0.1 z(x,y)= . + y

24)

Постройте таблицу значений функции z=f(x,y) и найдите наибольшее значение при изменении x на отрезке[a; b] c шагом h1 и y на отрезке [c; d] с шагом h2.

a =0 b=3 h1=0.3 c=1 d=4 h2=0.3

x+y-1 если x€ [1;2] и y€ [2;3]


z(x,y)= x-y если 0


2 в противном случае


25)

Постройте таблицу значений функции z=f(x,y) и найдите сумму и количество значений функции z(x,y)> 0 при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= -π b=π h1=π/4 c=2 d=3 h2=0.1 z(x,y)= 5*sin(2*x+1)3 + y

26)

Постройте таблицу значений функции z=f(x,y) и найдите наименьшее значение функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= -2 b=3 h1= 0.5 c=0.1 d=0.2 h2=0.01 z(x , y)= x - y - x/y

27)

Постройте таблицу значений функции z=f(x,y) и найдите произведение и количество значений функции z(x,y) < 0 при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= 20 d=30 h1= 5 c= 10 d=50 h2=5 z(x,y)=17.5 + x – y

28)

Постройте таблицу значений функции z=f(x,y) и найдите наибольшее значение функции при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2. z(x,y) =

a= - 5 b=5 h1= 0.5 c= 0.1 d=0.3 h2=0.02

29)

Постройте таблицу функции z=f(x,y) и найдите сумму и количество значений функции при z>0 при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c; d] с шагом h2.

a= -2 b=2 h1=0.5 c=2 d=3 h2=0.1 z(x,y)= x/y + (x+y)/2 -

30)

Постройте таблицу значений функции z=f(x,y) и найдите произведение и сумму значений функции при изменении x на отрезке[a; b] c шагом h1 и y на отрезке [c; d] с шагом h2.

a= 0.1 b=0.8 h1=0.1 c= 0.2 d= 0.6 h2=0.05



Sin(x+y) если x€[0.5; 0.7] и y € [0.3;0.4]
z(x,y)= x-y если 0.1

1 в противном случае


4.4 Содержание отчёта





  1. Титульный лист с указанием названия работы.

  2. Общее и индивидуальное задание.

  3. Рисунки, таблицы и программные коды, отражающие этапы разработки приложения:

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

  2. таблица используемых объектов и их свойств;

  3. схемы алгоритмов решения поставленной задачи;

  4. программный код разработанных функций, событийных процедур и

заголовочных файлов.

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

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


4.5 Пример выполнения задания




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


Лабораторная работа №4 «Программирование алгоритмов вложенных циклических структур»

Фамилия, имя студента, номер группы, номер варианта:

Иванов И., БИН1905, вариант 13.

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

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


  x2 +y2, если 0
z(x,y)=

x+y, в противном случае
а также для подсчета суммы и количества положительных значений z(x,y), при изменении x на отрезке [a; b] с шагом h1 и y на отрезке [c;d] с шагом h2.
  1. Разработаны схемы алгоритмов двух процедур:


  • схема алгоритма функции f() вычисления значения заданной функции в одной точке;

  • схема алгоритма функции RegCikl2() решения задачи и формирования таблицы значений функции z(x,y);

Схемы алгоритмов студенты разрабатывают самостоятельно.
  1. Разработан графический интерфейс


Графический интерфейс проекта изображен на рисунке 1.


Рисунок 1 - Графический интерфейс проекта

Форма содержит текстовые поля TextBox для ввода исходных данных и вывода результатов выполнения, список ListBox для вывода таблицы значений функции, а также кнопки Button для запуска приложения на выполнение и для выхода из приложения. Начальные значения исходных данных заданы в свойствах соответствующих текстовых полей, но, разумеется, могут быть переопределены пользователем при выполнении приложения.
Таблицу, в которой приведены основные объекты формы с указанием тех их свойств, которые были переопределены разработчиком приложения, студенты составляют самостоятельно по примеру лабораторной работы 2.

  1. Разработан программной код приложения


5.1) Созданы программные коды заголовочного файла TABLE.h и

отредактирован программный код системного заголовочного

файла stdafx.h.

На рис. 2 приведен программный код созданного заголовочного

файла CalcTab.h и системного заголовочного файла stdafx.h






Рис. 2. Программные коды заголовочных файлов
5.2) Созданы файлы c функциями решения поставленной задачи.

В данном проекте в соответствии с заданием создается два файла с программным кодом функций пользователя:

  • файл GetPut.cpp, содержащий функцию GetFloat для ввода из текстового поля формы и преобразования в вещественное число типа float, и функцию Put для вывода вещественного числа типа float в текстовое поле формы;

  • файл CalcTab.cpp, содержащий все остальные функции, необходимые для решения поставленной задачи.


На рис. 3 приведен программный код файла GetPut.cpp. Функции GetFloat и Put полностью аналогичны одноименным функциям, использованных в предыдущей лабораторной работе.


Рис. 3 – Программный код файла GetPut.cpp

На рис. 4 приведен программный код файла CalcTab.cpp, содержащий необходимые функции для решения задачи.









Рис. 4 - Программный код файла CalcTab.cpp
Программный код функции f тривиален и пояснений не требует. В функцию RegCikl2 в качестве входных параметров передаются по значению границы и шаг изменения аргументов, а также ссылка на список формы для вывода таблицы. Выходным параметром, возвращаемым по ссылке, является подсчитанное количество положительных значений функции Npos. Подсчитанная функцией сумма положительных значений S возвращается оператором return.

Для перебора всех сочетаний аргументов x и y организуются вложенные циклы с параметрами i и j. Для “красивого” вывода в список формы (без повторения во внутреннем цикле неизменных значений x) во внутреннем цикле организовано разветвление: при первом повторении цикла значение x выводится, при остальных – заменяется пробелами.
5.3) Создание событийных процедур.
В данной работе создаются две событийные процедуры, вызываемые при нажатии на кнопках cmdTab2 (Решить задачу) и cmdExit (Завершить).

Напомним, что для создания заготовок этих процедур следует, находясь в окне Form1.h [Конструктор], выполнить двойной щелчок мышью на соответствующих кнопках, а затем заполнить тело процедур соответствующим кодом.

На рис. 5 приведен код этих процедур, вставляемых в файл Form1.h

после директивы #pragma endregion.





Рис. 5. Программный код событийных процедур в файле Form1.h


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


На рис. 6 приведены результаты выполнения приложения при заданных исходных данных


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


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



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


написать администратору сайта