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