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

Структура простейшего варианта записи программы имеет вид табл. 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

Обозначение в алгоритме Dдн Hст Ркр ПК
Обозначение в программе ddn hst rkr pk

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

k1 k2 Sдн Sст Sоб Ркрл Ркркг
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.

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