Основы программирования

Составление математической модели и блок-схемы для решения линейного и разветвляющегося алгоритма. Определение понятия циклического алгоритма как содержащего многократное выполнение одних и тех же операторов при различных значениях промежуточных данных.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 03.01.2012
Размер файла 56,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

1. ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ

Линейным называется алгоритм, в котором результат получается путем однократного выполнения заданной последовательности действий при любых значениях исходных данных. Операторы программы выполняются последовательно, один за другим, в соответствии с их расположением в программе. Задание. Определить расстояние на плоскости между двумя точками с заданными координатами M1(x1,y1) и M2(x2,y2).

Решение задачи.

Проведем полный разбор решения задачи.

Математическая модель: расстояние на плоскости между двумя точками M1(x1,y1) и M2(x2,y2) высчитывается по формуле:

Составим схему алгоритма, а затем уточним содержимое блоков "Вычисление расстояния" и "Вывод расстояния" (рис.1):

Рис. 1

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

program example1;

var x1, x2, y1, y2: Integer;

d:Real;

begin

Writeln('Эта программа вычисляет расстояние между двумя точками на плоскости');

Writeln('Введите координаты двух точек:');

Write('x1= '); Readln(x1);

Write('y1= '); Readln(y1);

Write('x2= '); Readln(x2);

Write('y2 ='); Readln(y2);

d:=sqrt(sqr(x2-x1)+sqr(y2-y1));

Writeln('d= ',d:6:2);

Writeln('нажмите Enter для завершения работы программы');

Readln;

end.

Проверим работу программы на нескольких тестах:

Набор данных

Результаты вычислений

x1

y1

x2

y2

Ручных

Машинных

0

0

-4

3

5

5.00

0

0

0

0

0

0.00

10

3

7

8

5,83095

5.83

-23

5

-4

1

19,41649

19.42

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

2. ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ

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

Задание. Дано действительное x. Для функции f, график которой представлен на рисунке, вычислить f(x).

Решение задачи.

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

Составим схему алгоритма, детализировав все блоки (рис. 2).

Дальнейшая детализация не требуется. Переводим алгоритм на язык Паскаль.

Program example1;

var x, f:Real;

begin

Write('Введите x: '); Readln(x);

if x<-1 then f:= -x-1 else

if (x>=-1) and (x<0) then f:= x-1 else

if (x>=0) and (x<1) then f:= -x+1 else f:= x+1;

Writeln('F= ',f:6:2);

Readln;

end.

Рис. 2

3. ОПЕРАТОРЫ ЦИКЛА

линейный алгоритм циклический оператор

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

Задание: На промежутке от 1 до M найти все числа Армстронга. Натуральное число из n цифр называется числом Армстронга, если сумма его цифр, возведенных в степень n, равна самому числу. Например, число 153 (153=13+53+33).

Решение. После организации ввода данных программа будет содержать цикл с параметром i (от 1 до М) с двумя вложенными циклами. Первый предназначен для подсчета количества цифр n, второй - для вычисления суммы s степеней цифр числа i. Если числа i и s равны, то i - число Армстронга, его необходимо вывести на экран.

PROGRAM Primer_1;

var i,k,s,p,n,M: Integer;

begin

Write('Введите M '); Readln(M);

for i:=1 to M do

begin

s:=0; k:=i; n:=0;

while k<>0 do

begin k:=k div 10; n:=n+1 end;

k:=i;

While k<>0 do

begin p:=k mod 10; k:=k div 10;

if p<>0 then s:=s+ Round(Exp(n*Ln(p)))

end;

if s=i then Writeln(i);

end;

Readln;

end.

Размещено на Allbest.ru


Подобные документы

  • Особенности задач линейного программирования. Симплексный метод решения задач линейного программирования. Обоснование выбора языка, инструментария программирования, перечень идентификаторов и блок-схема алгоритма. Логическая схема работы программы.

    дипломная работа [2,4 M], добавлен 13.08.2011

  • Выполнение арифметических операций, этапы решения задач с помощью ЭВМ - постановка задачи, составление алгоритма решения, программная реализация алгоритма в среде Qbasic. Решение систем линейных уравнений по формулам Крамера. Графический режим Qbasic.

    курсовая работа [101,7 K], добавлен 29.09.2009

  • Изучение понятия и свойств алгоритма. Определение сущности технологии Robson. Исполнитель, а также блок-схема алгоритма или его графическое представление, в котором он изображается в виде последовательности связанных между собой функциональных блоков.

    реферат [155,9 K], добавлен 19.10.2013

  • Обзор алгоритмов методов решения задач линейного программирования. Разработка алгоритма табличного симплекс-метода. Составление плана производства, при котором будет достигнута максимальная прибыль при продажах. Построение математической модели задачи.

    курсовая работа [266,4 K], добавлен 21.11.2013

  • Теоретическая основа линейного программирования. Задачи линейного программирования, методы решения. Анализ оптимального решения. Решение одноиндексной задачи линейного программирования. Постановка задачи и ввод данных. Построение модели и этапы решения.

    курсовая работа [132,0 K], добавлен 09.12.2008

  • Критерий эффективности и функции в системе ограничений. Общая постановка задачи линейного программирования. Составление математической модели задачи. Алгоритмы решения задачи симплексным методом. Построение начального опорного решения методом Гаусса.

    курсовая работа [232,4 K], добавлен 01.06.2009

  • Составление алгоритма сортировки линейной вставкой. Понятие однонаправленного циклического списка символов, реализация процедуры подсчета суммы элементов и составление алгоритма. Прямое представление дерева, алгоритм работы с ним на абстрактном уровне.

    контрольная работа [32,8 K], добавлен 20.01.2012

  • Алгоритм симплекс-метода. Задача на определение числа и состава базисных и свободных переменных, построение математической модели. Каноническая задача линейного программирования. Графический метод решения задачи. Разработки математической модели в Excel.

    курсовая работа [1,1 M], добавлен 18.05.2013

  • Математическое программирование. Линейное программирование. Задачи линейного программирования. Графический метод решения задачи линейного программирования. Экономическая постановка задачи линейного программирования. Построение математической модели.

    курсовая работа [581,5 K], добавлен 13.10.2008

  • Транспортная задача как одна из самых распространенных специальных задач линейного программирования: понятие, основное назначение. Формальное описание метода минимального элемента. Характеристика этапов разработки алгоритма решения поставленной задачи.

    курсовая работа [713,3 K], добавлен 19.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.