Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
интегрирование Глава 4.doc
Скачиваний:
6
Добавлен:
12.11.2018
Размер:
1.08 Mб
Скачать

Составление программы по условно-линейной схеме варианта 1

Анализ первого варианта условно-линейной схемы, в которой под блоком проверки условия расположена ветвь «ДА», а затем ветвь «НЕТ», и структур полного и укороченного оператора if позволяет сделать вывод, что для программирования можно применять только полный if с аналогичным расположением ветвей.

Вариант программы может выглядеть следующим образом:

/* Задача 4.1. Простое ветвление. Полный if */

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

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

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

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

main( )

{

float vc, roc, mkr, l, doc, k1, pi=3.1416, mc, f;

int n;

scanf(“%3f%5f%5f%4f%4f%4f”, &vc, &roc, &mkr, &l, &doc, &k1);

printf(“\n vc=%5.2f roc=%5.3f mkr=%5.2f l=%5.1f” “doc=%5.2f k1=%4.2f\n”, vc, roc, mkr, l, doc, k1);

mc=vc*roc;

if(mc<=mkr) /* полный вариант оператора if */

{

f=mc/pow(l*k1,2); /* операторы */

n=1; /* ветви “ДА” */

}

else

{

f=mc/(pi*pow(doc,2)/4.); /* операторы */

n=2; /* ветви “НЕТ” */

}

printf(“\n mc=%9.3f f=%9.3f n=%6d\n", mc, f, n);

}

15.0.96314.85296.2.650.01 – данные для проверки ветви 1

15.1.15014.85296.2.650.01 – данные для проверки ветви 2

15.0.98014.85296.2.650.01 – данные для расчёта

Несколько строк значений исходных данных при одном операторе ввода показывают необходимость последовательного троекратного выполнения программы. Это нужно для того, чтобы перед решением задачи с указанными в ней значениями, убедиться в работоспособности каждой из ветвей. Отладочные просчёты ведутся со специально подобранными значениями вводимых величин, как правило, граничными в заданном диапазоне. После отладки программы выполняется решение задачи с истинными исходными данными.

Первые две строки численных значений вводимых переменных позволяют провести отладку (проверку работоспособности) программы по каждой из ветвей. При roс=0.963 (первая строка), проверяемое условие выполняется и рассчитывается ветвь «ДА». Для roc=1.15 (вторая строка), условие не выполняется и решение должно пройти по ветви «НЕТ». Третья строка позволяет получить конкретные результаты для реально заданного значения плотности.

Результаты счета представлены в приложении 4.1 (а, б, в).

Составление программы по условно-линейной схеме варианта 2

Анализ второго варианта условно-линейной схемы, в которой под блоком проверки условия расположена ветвь «НЕТ», а затем ветвь «ДА», и структур полного и укороченного оператора if позволяет сделать вывод, что для программирования требуется применить структуру с использованием укороченного if и двух goto.

Вариант программы может иметь вид:

/* Задача 4.1. Простое ветвление. Неполный if */

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

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

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

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

main( )

{

float vc, roc, mkr, l, doc, k1, pi=3.1416, mc, f;

int n;

scanf(“%3f%5f%5f%4f%4f%4f”, &vc, &roc, &mkr, &l, &doc, &k1);

printf(“\n vc=%5.2f roc=%5.3f mkr=%5.2f l=%5.1f”

“doc=%5.2f k1=%4.2f\n”, vc, roc, mkr, l, doc, k1);

mc=vc*roc;

if(mc<=mkr) goto M1; /*укороченный вариант оператора if*/

f=mc/(pi*pow(doc,2)/4.); /* операторы */

n=2; /* ветви “НЕТ” */

goto M2;

M1: f=mc/pow(l*k1,2); /* операторы */

n=1; /* ветви “ДА” */

M2:printf(“\n mc=%9.3f f=%9.3f n=%6d\n", mc, f, n);

}

15.0.96314.85296.2.650.01 – данные для проверки ветви 1

15.1.15014.85296.2.650.01 – данные для проверки ветви 2

15.0.98014.85296.2.650.01 – данные для расчёта

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

Результаты счета представлены в приложении 4.2 (а, б, в).

Составление программ завершает этап создания программного продукта задачи о нагрузках на основания.