
- •Технология программирования ветвящихся процессов
- •Программирование простых ветвлений
- •Программирование ветвления с элементарным условием
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Оператор безусловной передачи управления
- •Правила составления и использования
- •Операторы условной передачи управления
- •Укороченный оператор условного перехода
- •Правила записи и выполнения
- •Полный оператор условного перехода
- •Правила записи и использования
- •Составление программы по условно-линейной схеме варианта 1
- •Составление программы по условно-линейной схеме варианта 2
- •Программирование ветвлений с составными условиями
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Правила составления и выполнения логических выражений
- •Составление программы по условно-линейной схеме варианта 1
- •Составление программы по условно-линейной схеме варианта 2
- •Программирование сложных ветвлений
- •Программирование сложных многоузловых ветвлений
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Программа по левой условно-линейной схеме
- •Программа по правой условно-линейной схеме
- •Программирование сложных однооузловых ветвлений
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Правила составления и использования
- •Программа по левой условно-линейной схеме «множественное ветвление»
- •Программа по центральной условно-линейной схеме «множественное ветвление»
- •Программа по правой условно-линейной схеме «последовательное ветвление на два»
- •Заключение
- •Вопросы для контроля
Составление программы по условно-линейной схеме варианта 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 (а, б, в).
Составление программ завершает этап создания программного продукта задачи о нагрузках на основания.