Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интегрирование Глава 3.doc
Скачиваний:
3
Добавлен:
12.11.2018
Размер:
986.62 Кб
Скачать
        1. Тело программы

Тело – основная конструкция программы, реализующая требования алгоритма (взаимосвязанных алгоритмов) решения.

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

В простейшем варианте решение состоит из одного (основного) алгоритма. При этом тело программы есть одна (главная) пользовательская функция.

Структуры возможных вариантов тела программы представлены на рис. 3.12.

Рис. 3.12. Варианты структур тела программы

Заголовок пользовательской функции определяется ее структурой (см. разд. 3.5.2.4).

Для главной функции в качестве имени используется идентификатор main (главная) и список параметров не указывается.

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

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

Тело функции детализируется последовательностью элементов (рис. 3.13).

Структуры и правила описания переменных, операторов (ввода-вывода, присваивания и т. п.) и комментариев изложены ранее.

Рис. 3.13. Структура тела функции

        1. Поэлементная структура простейшей программы

Структура простейшего варианта записи программы имеет вид табл. 3.18:

Таблица 3.18

Общий вид

Пример

Многострочный

заголовочный

комментарий

Директива 1

. . .

Директива N

Описатель гл. пер. 1

. . .

Описатель гл. пер. M

main( )

{

Описатель лок. пер. 1

. . .

Описатель лок. пер. K

Оператор 1

. . .

. . .

/* Первая программа. */

/* Линейный */

/* вычислительный процесс. */

#include<stdio.h> /*директивы*/

. . .

#include<math.h>

int I=3; /*глобальные */

float A, B;

double TOK=6.7E+2; /*переменные*/

main( ) /*заголовок функции*/

{

float d2,k1; /* локальные*/

double z;

int k,j=5; /* переменные*/ scanf("%5f%5f%7e", &A, &B, &d2);

z=0.5*A+pow(TOK,2);

k=I+j;

Окончание табл. 3.18

Общий вид

Пример

. . .

. . .

Оператор S

}

Значения ввод. перем.

k1=k/B*log10(d2);

k1=k/B*log10(d2);

printf("z=%9.2e k=%4d k1=%9.2f", z, k, k1);

}

37.620.058104.7e4

  • Внимание! Строка численных значений вводимых переменных в программу не входит.

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

В соответствии с общей методикой выполним программирование в два шага:

  • идентификация переменных;

  • разработка программы (ее исходного модуля).

Переменную опишем как глобальную, все остальные как локальные.

Идентификацию переменных в алгоритме и программе представим табл. 3.19.

Таблица 3.19

Обозначение в алгоритме

1

Dдн

Hст

Ркр

ПК

Обозначение в программе

2

ddn

hst

rkr

pk

Окончание табл. 3.19

1

k1

k2

Sдн

Sст

Sоб

Ркрл

Ркркг

2

PI

k1

k2

sdn

sst

sob

rkrl

rkrkg

С учётом таблицы идентификации на основании схемы алгоритма (рис. 3.2) составим программу решения задачи. В качестве элементов программы используем рассмотренные конструкции Си/Си++ в соответствии с правилами их использования.

/* Программа расчёта массы красителя */

/* Линейный вычислительный процесс */

/* Разработал студент гр. А031 Попов И.П. */

#include<stdio.h> /* включающие */

#include<stdlib.h> /* директивы */

#include<math.h> /* препроцессора */

float PI; /* описание глобальной переменной */

main( )

{

float ddn, hst, rkr, pk, k1, k2, /* описание локальных */

sdn, sst, sob, rkrl, rkrkg; /* переменных */

scanf(“%3f%5f%6e%3f”, &ddn, &hst, &rkr, &pk);

printf(“\n ddn=%3.1f fhst=%5.0f rkr=%6.1e pk=%3.1f”,

ddn,hst,rkr,pk);

scanf(“%6f%5e%4f”, &PI, &k1, &k2);

printf(“\n PI=%6.4f k1=%7.2e k2=%4.0f \n”, PI, k1, k2);

sdn=PI*pow(ddn,2)/4.;

sst= PI*ddn*hst*k1;

sob=(sdn+sst)*k2;

rkrl=rkr*sob;

rkrkg=rkrl*pk;

printf(“\n sdn=%8.2f sst=%8.2f sob=%8.2f rkrl=%8.2f” “rkrkg=%8.2f \n”, sdn, sst, sob, rkrl, rkrkg);

}

3.26780.5.2e-31.4

3.14161.e-3100.

Последними строками, под закрывающей программу фигурной скобкой, записаны численные значения вводимых (двумя операторами scanf) переменных.

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

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