Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Формирование математической модели. УБ = _ _ _, _ ц/га – урожайность биологическая;




Исходные данные

S = _ _ _, _ га – площадь поля;

УБ = _ _ _, _ ц/га – урожайность биологическая;

п1 = _ _, _ % – потери при копке;

п2 = _ _, _ % – потери при сборе;

п3 = _ _, _ % – потери при погрузке;

п4 = _ _, _ % – потери при перевозке;

п5 = _ _, _ % – потери при сортировке;

п6 = _ _, _ % – потери при хранении.

Расчётные зависимости

[ц/га×га=ц] биологическая масса;

М = (((((МБ - МП1) - МП2) - МП3) - МП4) - МП5) - МП6 [ц]

общая математическая зависимость вычисления искомой

массы;

[ц] задание начального значения

массы;

[ц] вычисление текущего значения потерь;

Мi = Мi-1 - МПi [ц] вычисление текущего значения массы;

диапазон изменения параметра;

i = i + 1 закон изменения параметра.

Выбор метода решения

Математическая модель задает аргументы (проценты потерь) в форме одномерного массива. Она предписывает последовательное вычисление текущих значений масс потерь и собственно масс продукции на каждом этапе технологической обработки, начиная с копки (i = 1) и заканчивая хранением (i = 6).

Поэтому в качестве параметра цикла необходимо использовать индекс потерь (i) с диапазоном изменения и стандартным законом i = i + 1. Дополнительно необходимо сформировать начальное значение массы , а затем изменять его с учётом вычисления конкретных потерь МПi на каждом цикле.

Следовательно, в качестве метода решения необходимо использовать смешанный вычислительный процесс – арифметический циклический процесс с табличным заданием аргумента и дополнительным формированием уменьшения (разности).

Составление алгоритма решения

Сформированная математическая модель и выбранный метод решения позволяют выполнить одношаговую схему алгоритма (рис. 8.9).

Рис. 8.9 Алгоритм решения задачи 8.5

Для улучшения наглядности организации вычислений элементы дружественности не показаны.

Программирование задачи

Идентификация переменных представлена в табл. 8.5

Таблица 8.5

Обозначение в алгоритме i n S УБ пi МБ Мi МПi
Обозначение в программе i n s ub p[i] mb m[i] mp[i]

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

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

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#include<conio.h>

#include <windows.h>

#define N 20 /* увеличенный размер массивов */

main()

{

float s, ub, mb, p[N], m[N], mp[N];

int i, n;

char buf[50]; /*описание символьного массива*/

clrscr();

CharToOem("Введите значения S (га), УБ(ц/га) и n:", buf);

printf("\n %s ",buf);

scanf("%f %f %d", &s, &ub, &n);

for(i = 1; i <= n; i++) /* заголовок цикла ввода */

{

CharToOem(" Введите п(",buf);

printf("\n %s %d) ",buf,i);

scanf("%f", &p[i]);

}

mb = ub * s;

m[ 0 ] = mb;

printf("\n S = %.1f, UB = %.1f, n = %d, MB = %.1f ", s, ub, n, mb);

printf("\n ----------------------------------");

CharToOem("| пi | Mпi | Mi |",buf);

printf("\n %s ",buf);

CharToOem("| % | ц | ц |",buf);

printf("\n %s ",buf);

printf("\n ----------------------------------");

for(i = 1; i<=n; i++) /* заголовок цикла расчёта */

{

mp[i] = m[i-1] * p[i]/100.;

m[i] = m[i-1] - mp[i];

printf("\n | %4.1f | %6.2f |%8.1f |",

p[i], mp[i], m[i]);

}

printf("\n ----------------------------------");

getch();

}

120. 200 5 конкретные значения

5. 3.2 4. 3.5 10.4 вводимых переменных

Результаты решения представлены в приложении 8.9.

Программирование задачи с графическим интерфейсом

Программирование задачи при использовании графического интерфейса предварим его разработкой.

ListBoxMi
ListBoxMpi

Для ввода значений потерь урожая, площади поля и биологической урожайности планируем однострочные поля редактирования (EditN, EditS, EditUB). Для ввода процента потерь урожая – многострочное поле редактирования (EditP). Вывод расчетных значений массы потерь и массы собранного урожая реализуем в поля-списки (ListBoxMpi, ListBoxMi).

Управление процессом решения реализуем двумя командными кнопками, расположенными в нижней части окна. Назначение каждой определяется ее названием.

С учетом планируемого интерфейса выполним программирование задачи.

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#define N 20 /* увеличенный размер массивов */

void TSumprDlgClient::BNClickedOk()

{

// INSERT>> Your code here.

float s, ub, mb, p[N], m[N], mp[N];

int i, n;

char buf[20]; /*описание символьного массива*/

ListBoxMpi->ClearList(); /*очистка полей*/

ListBoxMi->ClearList(); /*вывода*/

EditN->GetText(buf,10); /*ввод*/

n=atoi(buf); /*количества потерь*/

EditS->GetText(buf,10); /*ввод*/

s=atof(buf); /*площади поля*/

EditUB->GetText(buf,10); /*ввод*/

ub=atof(buf); /*биологической урожайности*/

for(i = 1; i <= n; i++) /* заголовок цикла ввода */

{

EditP->GetLine(buf, 20, i-1); /* ввод */

p[i]=atof(buf); /*значения потерь */

}

mb = ub * s; /*расчет биологической массы урожая*/

m[ 0 ] = mb; /*формирование начального значения массы*/

for(i = 1; i<=n; i++) /* заголовок цикла расчёта */

{

mp[i] = m[i-1] * p[i]/100.; /*масса потерь*/

m[i] = m[i-1] - mp[i]; /*масса урожая*/

sprintf(buf,"%3f",mp[i]); /* вывод текущих*/

ListBoxMpi->AddString(buf); /*значений mp[i]*/

sprintf(buf,"%3f",m[i]); /* вывод текущих*/

ListBoxMi->AddString(buf); /*значений m[i]*/

}

}

5 120. 200 конкретные значения

5. 3.2 4. 3.5 10.4 вводимых переменных

Результаты решения представлены в приложении 8.10.





Поделиться с друзьями:


Дата добавления: 2015-11-23; Мы поможем в написании ваших работ!; просмотров: 426 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

В моем словаре нет слова «невозможно». © Наполеон Бонапарт
==> читать все изречения...

2215 - | 2176 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.