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

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

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

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

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

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

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

Таблица 8.2

Обозначение в алгоритме i n x ai SPi
Обозначение в программе i n x a[i] sp[i]

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

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

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include <windows.h>

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

main( )

{

float x, a[N], sp[N];

int i, n;

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

clrscr( );

CharToOem(" Введите численные значения n и x: ",buf);

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

scanf("%d%f", &n, &x);

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

{

CharToOem(" Введите коэффициент а",buf);

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

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

}

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

"\n | i | ai | SPi |"

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

sp[0] = a[0];

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

{

sp[i] = sp[i-1] * x + a[i];

printf("\n | %2d | %8.2f|%15.1f|", i, a[i], sp[i]);

}

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

CharToOem(" Значение полинома SP =",buf);

printf("\n %s %.2f",buf,sp[n]);

CharToOem(" при n=",buf);

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

getch();

}

7 1.98

5 0.8 1.7 -3.2 12 0.1 63

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

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

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

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

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

Для ввода порядка и основания полинома планируем однострочные поля редактирования (EditN, EditX). Для ввода коэффициентов полинома – многострочное поле редактирования (EditAi). Вывод расчетных значений реализуем в поле-список (ListBoxSP).

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

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

#include<stdio.h>

#include<stdlib.h>

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

void TSumprDlgClient::Ok()

{

// INSERT>> Your code here.

float x, a[N], sp[N];

int i, n;

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

ListBoxSP->ClearList();

EditN->GetText(buf, 10);

n = atoi(buf); /* ввод значения порядка*/

EditX->GetText(buf,10);

x=atof(buf); /* ввод значения основания полинома*/

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

{

EditAi->GetLine(buf, 20, i);

a[i]=atof(buf); /* ввод значения массы*/

}

sp[0] = a[0];

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

{

sp[i] = sp[i-1] * x + a[i];

sprintf(buf,"%11.1f",sp[i-1]);

ListBoxSP->AddString(buf); /*вывод текущих значений sp*/

}

}

7 1.98

5 0.8 1.7 -3.2 12 0.1 63

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

Наши рекомендации