Программирование линейных процессов задания

Лабораторная работа № 2

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

Цель работы — освоить на практике программирование линейных вычислительных процессов, используя для этого, простейшие операторы ввода – вывода и присваивания, изучить построение и использование арифметических выражений, научиться отладке программ и подготовке с этой целью тестов.

Все варианты задания содержат по четыре задачи. Для каждой из них нужно выполнить действия, указанные в пунктах 1 — 7, и составить отчёт о работе.

1. Составить расчётные формулы для использования их в программе, вводя при необходимости обозначение промежуточных результатов.

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

3. Подготовить значения исходных данных для каждого теста.

4. Представить алгоритм решения задачи в виде блок — схемы.

5. Составить программу, согласуя её с блок — схемой.

6. Используя среду программирования Turbo Pascal, ввести программу в компьютер и сохранить в личном каталоге.

7. Отладить программу, используя подготовленные тесты.

Варианты задания помещены после примеров выполнения задания.

Линейные вычислительные процессы относятся к основным типам вычислительных процессов. В данных процессах расчётные формулы применяются последовательно по одному разу.

Линейный вычислительный процесс реализуется с помощью графической структуры, представленной на рис. 4.

Рис. 4. Базовая алгоритмическая структура Следование

Программы, реализующие линейные вычислительные процессы, содержат операторы ввода — вывода, операторы присваивания и операторы описания. Все вычисления и другие преобразования данных в программе записываются в виде выражений. При программировании линейных вычислительных процессов обычно выражение включает несколько арифметических операций: + (сложение), (вычитание), * (умножение), / (деление вещественное), div (деление целочисленное), mod (остаток целочисленного деления) – эти операции применяют к вещественным и целым числам, результат — также число.

При вычислении значений выражений важен порядок выполнения операторов. Приняты следующие правила выполнения операторов. Операторы *, /, div, mod имеют более высокий приоритет, чем операторы + и -. Операторы с более высоким приоритетом выполняются раньше операторов, приоритет которых ниже. Если приоритет операторов одинаков, то оператор, стоящий левее, выполняется раньше. Для задания любого нужного порядка выполнения операций в выражении можно использовать скобки.

В выражениях также допускается использование стандартных и определенных программистом функций. Им присваивается высший приоритет.

Основные стандартные функции:

Абсолютное значение аргумента

Округляет аргумент до ближайшего целого числа

Квадратный корень аргумента

При программировании линейных вычислительных процессов могут быть полезны следующие формулы для вычисления некоторых функций:

Запись выражений, содержащих арифметические операции, выполняется «в строку», порядок выполнения операций определяется скобками. Особенно внимательно следует программировать выражения, включающие операции различных приоритетов.

С помощью оператора присваивания в программе записываются действия, связанные с изменением значений переменных. На языке Pascal оператор присваивания в общем виде выглядит так:

Имя переменной := Выражение ;

где двоеточие и следующий за ним знак равенства это символ присваивания. При выполнении этого оператора вычисляется выражение, приведенное в правой части, и его результат заносится в переменную, имя которой указано слева. Если оператор присваивания записывается в последовательности операторов, то после него ставится точка с запятой.

Для корректного выполнения операции присваивания результат выражения и переменная, записанная в левой части оператора присваивания, должны иметь одинаковые или совместимые типы. Тип выражений определяется типом операндов, входящих в выражения и зависит от операций, выполняемых над ними. Тип константы определяется видом самой константы. Тип переменной задается в ее объявлении. Если хотя бы один операнд в операторах *, +, — имеет тип real, то и результат будет типа real. Если оба операнда в операторах *, +, — имеют тип integer, то и результат будет типа integer. Результат оператора / всегда является выражением типа real. Операнды в операторах div и mod всегда должны быть типа integer.

Для ввода значений с клавиатуры используют специальные процедуры Read и ReadLn (рис. 5). Эти процедуры позволяют вводить значения стандартных типов, кроме boolean, и строки (string).

Рис. 5 Синтаксическая диаграмма

Вводимые значения (кроме значений символов и строк) разделяют пробелами или записывают на разных строках. Отдельные символы и строки символов при вводе записывают подряд, так как пробел в этом случае также считается символом.

Физически операции ввода выполняются с использованием буфера, т.е. вводимая с клавиатуры последовательность символов сначала помещается в память, а затем, уже из памяти, читается программой. Последовательность передается в буфер ввода по нажатию клавиши Enter. При этом в буфер вместе с кодами введенных символов помещается и код Enter.

Если ввод осуществляется процедурой ReadLn, то буфер ввода после выполнения операции очищается, причем символы, оставшиеся не обработанными, игнорируются. Если ввод осуществляется процедурой Read, то очистка не выполняется и, следовательно, следующий оператор ввода начнет читать символы из той же строки.

Для вывода значений на экран используют процедуры Write и WriteLn (рис. 6). Эти процедуры предназначены для вывода значений стандартных типов и строк.

Рис. 6 Синтаксическая диаграмма

Целочисленный литерал интерпретируется как ширина поля, в которое выводится значение, причем выводимые значения прижимаются к правой границе. Если указанной ширины поля недостаточно, то она автоматически увеличивается до нужного значения. Если не указано, то его значение определяется количеством выводимых символов.

Целочисленный литерал указывается только для вещественных чисел: он определяет количество цифр дробной части числа. Если указано равным 0, то ни дробная часть числа, ни десятичная точка не выводятся. Если и не указаны, то вещественные числа выводятся в виде мантиссы и порядка, причем ширина поля вывода по умолчанию принимается равной 17, а количество дробных цифр – 14.

После вывода значений процедурой WriteLn курсор переводится на следующую строку.

Пример выполнения работы.

Задача 1. Составить программу для вычисления y при заданном значении x = 0,13 по формуле

Напечатать x, sinx, cosx, y.

2. Тест для отладки программы:

x = — 0,13 , c = cos(-0,13) = 0,9916,

3. Исходные данные: x = — 0,13==> -0.13.

вычислительного процесса >

Источник

Линейное программирование. Решение задач

Ниже представлены примеры решения задач линейного программирования.

Линейное программирование. Решение задач графическим способом

Симплексный метод решения задач линейного программирования

  1. Метод искусственного базиса
  2. Задача оптимального производства продукции
  3. Пример решения симлекс-методом
    Решить следующую задачу ЛП в неканонической форме симплекс-методом:
    f(x) = x1 – x2 – 3x3 → min
  4. М-метод. Решить задачу М-задачу.
  5. Пример нахождения максимума функции симплексным методом
  6. Пример нахождения минимума функции симплексным методом
  7. Пример решения модифицированным симплекс-методом
  8. Пример решения симплекс-методом в столбцовой форме записи
  9. Симплекс-метод в строчечной форме записи. Пример решения
  10. Пример решения задачи симплексным методом в Excel
  11. Линейное программирование в Excel

Решение двойственной задачи линейного программирования

  1. Двойственная задача ЛП
    Необходимо выполнить в указанном порядке следующие задания.
    1. Найти оптимальный план прямой задачи:
    а) графическим методом;
    б) симплекс-методом (для построения исходного опорного плана рекомендуется использовать метод искусственного базиса).
    2. Построить двойственную задачу.
    3. Найти оптимальный план двойственной задачи из графического решения прямой, используя условия дополняющей нежесткости.
  2. Двойственная задача в Excel
  3. Оценка целесообразности выпуска новой продукции

Двойственный симплекс-метод

Методы линейного программирования применяются для решения многих экстремальных задач, с которыми довольно часто приходится иметь дело в экономике. Решение таких задач сводится к нахождению крайних значений (максимума и минимума) некоторых функций переменных величин. Линейное программирование основано на решении системы линейных уравнений (с преобразованием в уравнения и неравенства), когда зависимость между изучаемыми явлениями строго функциональна. Для него характерны математическое выражение переменных величин, определенный порядок, последовательность расчетов (алгоритм), логический анализ. Применять его можно только в тех случаях, когда изучаемые переменные величины и факторы имеют математическую определенность и количественную ограниченность, когда в результате известной последовательности расчетов происходит взаимозаменяемость факторов, когда логика в расчетах, математическая логика, совмещаются с логически обоснованным пониманием сущности изучаемого явления. Методом линейного программирования решается транспортная задача, т.е. задача рационального прикрепления предприятий-потребителей к предприятиям-производителям.

Источник

Читайте также:  Системные языки программирования примеры
Оцените статью