Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Формирование математической модели. Исходные данные xн = _,_ мВ – начальное значение сигнала; xк = _ _,_ мВ – конечное значение сигнала; Dx = _,_ мВ – шаг изменения




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

xн = _,_ мВ – начальное значение сигнала;
xк = _ _,_ мВ – конечное значение сигнала;
Dx = _,_ мВ – шаг изменения сигнала;
k = _,_ – коэффициент усиления.

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

[мВ = мВ] – значение выходного сигнала;
[ ] – произведение значений выходного сигнала;
[ ] – диапазон изменения входного сигнала;
xi = xi-1 + Dx [мВ = мВ + мВ] – закон изменения входного сигнала.

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

Математическая формулировка задачи определяет, что наряду с вычислением текущих значений выходного сигнала yi необходимо предусмотреть их перемножение. При этом, аналогично рассмотренной ранее методике суммирования, накопление произведения требует выполнение двух операций:

· формирования начального значения произведения (Py = 1) до входа в цикл;

· вычисления в теле цикла текущего значения произведения (), которое при выходе из цикла автоматически становится конечным.

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

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

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

Рис. 8.8. Схема алгоритма решения задачи 8.4

Выполненный блоком 9 вывод конечного значения искомой переменной облегчает использование результатов, в то время как для отладки предусмотрена печать всех промежуточных (текущих) значений в блоке 7.

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

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

Перед составлением программы решения выполним идентификацию переменных. Ввиду того, что хранение промежуточных результатов не требуется, используем в программе неиндексированные переменные (табл. 8.4).

Таблица 8.4

Обозначение в алгоритме xн xк Dx k xi yi Py
Обозначение в программе xn xk dx k xi yi py

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

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

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#include<conio.h>

#include <windows.h>

main()

{

float xn, xk, dx, k, /* описание */

xi, yi; /* локальных */

double py; /* переменных */

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

clrscr();

CharToOem("Введите начальное значение сигнала xн (мВ):", buf);

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

scanf("%f", &xn);

CharToOem("Введите конечное значение сигнала xк (мВ): ", buf);

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

scanf("%f", &xk);

CharToOem(" Введите шаг изменения сигнала dx (мВ): ",buf);

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

scanf("%f", &dx);

CharToOem(" Введите коэффициент усиления сигнала k: ",buf);

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

scanf("%f", &k);

py = 1.;

printf("\n ----------------------------------------"

"\n | xi, | yi, | Py |"

"\n | mB | mB | |"

"\n ---------------------------------------");

for(xi = xn; xi <= xk; xi += dx) /* заголовок цикла расчёта */

{

yi = k * xi;

py *= yi;

printf("\n | %4.1f | %4.1f | %20.1lf |", xi, yi, py);

}

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

printf("\n Py=%.1lf \n", py);

getch();

}

3.7 8.1 0.3 1.5

Под закрывающей скобкой программы приведены численные значения исходных данных для решения задачи.

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

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

Программирование задачи при использовании графического интерфейса предварим его разработкой. Для ввода начального и конечного значений сигнала, шага его изменения и коэффициента усиления сигнала планируем однострочные поля редактирования (EditXn, EditXk, EditDx, EditK). Вывод текущих расчетных значений сигнала и произведения значений сигнала реализуем в поля-списки (ListBoxYi, ListBoxPi).

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

ListBoxYi
ListBoxPi

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

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

void TSumprDlgClient::Ok()

{

// INSERT>> Your code here.

float xn, xk, dx, k, /* описание */

xi, yi; /* локальных */

double py; /* переменных */

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

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

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

EditXn->GetText(buf, 10); /*ввод начального*/

xn = atof(buf); /* значения сигнала*/

EditXk->GetText(buf, 10); /*ввод конечного*/

xk = atof(buf); /* значения сигнала*/

EditDx->GetText(buf, 10); /*ввод шага*/

dx = atof(buf); /* изменения сигнала*/

EditK->GetText(buf, 10); /*ввод коэффициента*/

k = atof(buf); /* усиления сигнала*/

py = 1.;/*формирование начального значения произведения*/

for(xi = xn; xi <= xk; xi += dx) /* заголовок цикла расчёта */

{

yi = k * xi;/*текущее значение сигнала на выходе*/

py *= yi; /*текущее значение произведения*/

sprintf(buf,"%11.1f",yi); /* вывод текущих*/

ListBoxYi->AddString(buf); /*значений yi*/

sprintf(buf,"%17.1f",py); /* вывод текущих*/

ListBoxPi->AddString(buf); /*значений pi*/

}

}

3.7 8.1 0.3 1.5

Под закрывающей скобкой программы приведены численные значения исходных данных для решения задачи.

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





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


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


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

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

Логика может привести Вас от пункта А к пункту Б, а воображение — куда угодно © Альберт Эйнштейн
==> читать все изречения...

2282 - | 2211 -


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

Ген: 0.007 с.