Основы программирования
Составление математической модели и блок-схемы для решения линейного и разветвляющегося алгоритма. Определение понятия циклического алгоритма как содержащего многократное выполнение одних и тех же операторов при различных значениях промежуточных данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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