Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Программирование задачи. Идентификация переменных представлена в табл

Читайте также:
  1. C. ПРОГРАММИРОВАНИЕ БРЕЛКА С ДИСПЛЕЕМ
  2. I Цели и задачи изучения дисциплины
  3. II. Основные задачи и функции деятельности ЦБ РФ
  4. II. Основные задачи и функции медицинского персонала
  5. II. ОСНОВНЫЕ ЦЕЛИ И ЗАДАЧИ БЮДЖЕТНОЙ ПОЛИТИКИ НА 2011–2013 ГОДЫ И ДАЛЬНЕЙШУЮ ПЕРСПЕКТИВУ
  6. II. Основные цели и задачи, сроки и этапы реализации подпрограммы, целевые индикаторы и показатели
  7. II. ЦЕЛИ, ЗАДАЧИ И ПРИНЦИПЫ ПЕРВИЧНОЙ ПРОФСОЮЗНОЙ ОРГАНИЗАЦИИ УНИВЕРСИТЕТА

Идентификация переменных представлена в табл. 1.

Таблица 1

Обозначение в алгоритме t V Vопт Рбоч Пр1 Пр2 Fбо Fиск N
Обозначение в программе t v vopt rb pr1 pr2 fbo f n

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

Программа по левой условно-линейной схеме

Особенность левой условно-линейной схемы – сохранение естественного порядка расчета при невыполнении отдельных условий и нарушение этого порядка, когда условия выполняются. Программирование такого варианта требует использования укороченного if.

/* Сложное ветвление. Укороченный if */

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

main()

{

float t, v, vopt, rb, pr1, pr2, fbo, f;

int n;

scanf(“%f %f %f %f %f %f”, &t, &v, &vopt, &rb, &pr1, &pr2);

printf(“\n t=%.1f v=%.1f vopt=%.1f rb=%.1f”

“ pr1=%.1f pr2=%.1f ”, t, v, vopt, rb, pr1, pr2);

fbo=rb*t/60.; /* расход бензина при оптимальной скорости*/

if(vopt-0.01 <= v && v <= vopt+0.01) goto m1; /*переход */

/*к ветви 1*/

if(v<vopt) goto m2; /* переход к ветви 2 */

f = fbo + fbo * pr2/100.; /* ветвь 3 */

n=3;

goto m3;

m2: f = fbo + fbo * pr1/100.; /* ветвь 2 */

n=2;

goto m3;

m1: f = fbo; /* ветвь 1 */

n=1;

m3: printf(“\n fbo=%.2f f=%.2f n=%d ”, fbo, f, n);

}

5. 5. 5.

75.3 80. 91.2

80. 80. 80.

7.6 7.6 7.6

4.3 4.3 4.3

8. 8. 8.

Внимание! В программе впервые использован минимальный форматный ввод исходных данных – без указания общей длины каждого. Численные значения для обозначения окончания любого располагаются под программой, а затем вводятся столбцом (переход к следующей строке означает окончание ввода предыдущей). Три столбца численных значений вводимых переменных позволяют проверить все возможные вычислительные ветви (<, >, =).

Программа по правой условно-линейной схеме

Особенность правой условно-линейной схемы – сохранение естественного порядка расчета при выполнении отдельных условий и нарушение этого порядка, когда условия не выполняются. Программирование такого варианта требует использования полного if.

/* Сложное ветвление. Полный if */

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

main()

{

float t, v, vopt, rb, pr1, pr2, fbo, f;

int n;

scanf(“%f %f %f %f %f %f”, &t, &v, &vopt, &rb, &pr1, &pr2);

printf(“\n t=%.1f v=%.1f vopt=%.1f rb=%.1f”

“ pr1=%.1f pr2=%.1f ”, t, v, vopt, rb, pr1, pr2);

fbo=rb*t/60.; /* расход бензина при оптимальной скорости*/

if(vopt - 0.01 <= v && v <= vopt + 0.01)

{

f = fbo; /* ветвь 1 */

n=1;

}

else

{

if(v<vopt)

{

f = fbo + fbo * pr1/100.; /* ветвь 2 */

n=2;

}

else

{

f = fbo + fbo * pr2/100.; /* ветвь 3 */

n=3;

}

}

printf(“\n fbo=%.2f f=%.2f n=%d ”, fbo, f, n);

}

5. 5. 5.

75.3 80. 91.2

80. 80. 80.

7.6 7.6 7.6

4.3 4.3 4.3

8. 8. 8.

Три столбца значений вводимых переменных позволяют проверить все возможные вычислительные ветви (<, >, =).


Дата добавления: 2015-07-15; просмотров: 64 | Нарушение авторских прав


Читайте в этой же книге: Предмашинная подготовка задачи | Программирование задачи | Требования к отчету |
<== предыдущая страница | следующая страница ==>
Формирование математической модели| Выбор метода решения

mybiblioteka.su - 2015-2024 год. (0.007 сек.)