Разработка алгоритмов различной структуры и их реализация с помощью компьютерных программных средств
Практическое использование языка программирования Бейсик и среды разработки Basic-256. Поиск среднего арифметического всех положительных чисел одномерного массива. Отделение корней графическим способом. Графический метод изоляции корней уравнения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 16.12.2019 |
Размер файла | 1,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Муромский институт (филиал)
федерального государственного бюджетного образовательного учреждения высшего образования
«Владимирский государственный университет
Имени Александра Григорьевича и Николая Григорьевича Столетовых»
(МИ ВлГУ)
Курсовая работа
По: Теории алгоритмов
Тема: Разработка алгоритмов различной структуры и их реализация с помощью компьютерных программных средств
Голубин П.С.
Содержание
Введение
1. Решение первой задачи
1.1 Постановка первой задачи
1.2 Математическая модель решения первой задачи
1.3 Схема алгоритма решения первой задачи
1.4 Исходный текст первой программы
1.5 Руководство пользователя для первой задачи
2. Решение второй задачи:
2.1 Постановка второй задачи
2.2 Математическая модель решения второй задачи
2.3 Схема алгоритма решения второй задачи
2.4 Руководство пользователя для второй задачи
2.5 Результаты работы для различных исходных данных второй задачи
Вывод
Список используемой литературы
Приложение
Введение
Тематика заданий данной курсовой работы (КР) связана с разработкой алгоритмов различной структуры и их реализацией с помощью программных средств среды программированию Бейсик-256.
Целью курсового проектирования является расширение и закрепление знаний, полученных в процессе изучения дисциплины “Теория алгоритмов“, а также приобретение практических навыков по разработке , написанию и отладки алгоритмов и программ. Кроме того в процессе работы над проектом студенты приобретают навыки самостоятельной работы с научно-технической и справочной литературой.
Задачами курсового проектирования являются:
- подбор, изучение и анализ специализированной, учебно-методической и другой литературы, посвящённой тематике курсового проектирования;
- закрепление, углубление, расширение и систематизация знаний, полученных при изучении алгоритмов различной структуры и их реализацией с помощью программных средств;
- практическое использование языка программирования Бейсик и среды разработки Basic-256.
В соответствии с заданием в данной работе требуется выполнить две задачи.
Задача 1.Найти среднее арифметическое всех положительных чисел одномерного массива X(N), заполненного с помощью функции rand (функция случайных чисел) и вывести все числа большие этого среднего. Результаты работы программы в текстовом окне среды Basic-256: - исходный массив, среднее арифметическое и все числа большие этого среднего.
Задача 2. Для нелинейного уравнения: произвести графический способом отделение его корней и уточнить их с помощью разработанных алгоритмов и программ (с заданной абсолютной погрешностью Eps). Отделение корней уравнения - выделение таких отрезков [a, b], в каждом из которых находится только один корень уравнения. Программу протестировать при различных значениях Eps.
Согласно заданию требуется провести анализ поставленных задач и на основании проведенного анализа разработать для каждой задачи математическую модель её решения и блок-схему алгоритма её решения.
Далее необходимо написать и отладить текст программы на языке среды программирования Basic-256. Разработанную программу протестировать для различных значений исходных данных и проанализировать полученные результаты тестирования.
В соответствии с заданием требуется также для каждой разработанной программы написать руководство пользователя.
Последний раздел пояснительной записки должен содержать выводы по курсовой работе. корень уравнение бейсик массив
Актуальность данной темы состоит в том, что характерной чертой современной научно-технической революции является широкое использование компьютеров в различных отраслях хозяйственной деятельности человека. Постоянно расширяющаяся сфера применения ЭВМ обеспечивает более интенсивное развитие науки и техники, что ставит большие и ответственные задачи в области разработки, производства и применения средств электронной вычислительной техники.
Сфера применения ЭВМ постоянно расширяется. Непрерывно улучшаются основные технико-экономические характеристики ЭВМ, например такие, как быстродействие, надёжность в работе и удобства эксплуатации. Всякая вычислительная машина рассматривается как определённый преобразователь информации. При этом под информацией понимаются различные сведения о тех или иных событиях общественной жизни или процессах.
Простота и удобство реализации процесса работы пользователя - это цель любого специализированного функционального программного продукта.
1. Решение первой задачи
1.1 Постановка первой задачи
Требуется разработать программу, реализующую следующие возможности:
-Ввод исходного массива данных X(N).
- Вывод среднего арифметического всех положительных чисел одномерного массива X(N), заполненного с помощью ф-цииRAND и вывести все числа большие этого среднего.
Задача 1. Найти среднее арифметическое всех положительных чисел одномерного массива X(N), заполненного с помощью функции rand (функция случайных чисел) и вывести все числа большие этого среднего. Результаты работы программы в текстовом окне среды Basic-256: - исходный массив, среднее арифметическое и все числа большие этого среднего.
1.2 Математическая модель решения первой задачи
Возьмем массив A длиною N, массив заполняется при помощи ф-ции случайных чисел (random).
Если A[i] > 0, то выводим положительные числа массива на экран, находим сумму положительных чисел с помощью формулы b = b + A и их кол-во с помощью формулы с = с + 1 в каждой итерации цикла.
Находим среднее арифметическое число с помощью раннее полученных суммы b и кол-ва c: b/c.
Если A[i] > b/c, то выводим этот элемент на экран.
1.3 Блок- схема алгоритма решения первой задачи
Рис.1 - блок-схема алгоритма к первой задачи
Рис.2 Продолжение блок-схемы к первому заданию
1) Начало алгоритма.
2) Ввод значений N.
3) Объявляем и выделяем пространство для массива (dimA(N)),
назначаем B и C = 0.
4) Начало цикла: i := 0...N-1. Переход к шагу 5.
5) Вычисление следующего значения параметра цикла: A[i] = (rand()*100)-50. Переход к шагу 6.
6) Вывод информации: (A[i]) элемент массива. Переход к шагу 7.
7) Конец цикла. Переход к шагу 8.
8) Начало цикла: i := 0...N-1. Переход к шагу 9.
9) Сравниваем A[i] и 0: Если A[i] > 0, то переход к шагу 10, иначе к шагу 8.
10) Находим сумму положительных чисел массива: b = b + A[i]. Переход к шагу 11.
11) Находим количество положительных чисел массива: c = c + 1. Переход к шагу 12.
12) Вывод информации: (A[i]) элемент массива. Переход к шагу 13.
13) Находим Среднее арифметическое число: b/c. Переход к шагу 14.
14) Вывод информации: сумму делим на кол-во (b/c). Переход к шагу 15.
15) Начало цикла: i := 0...N-1. Переход к шагу 16.
16) Сравниваем A[i] и b/c: Если A[i] >b/c, то переход к шагу 17, иначе к шагу 15.
17) Вывод информации: Выводим значения. Переход к шагу 18.
18) Конец алгоритма.
1.4 Исходный текст первой программы
input N
dim a(N)
b = 0
c = 0
print "Массив случайных чисел"
fori=0 to N-1
a[i] = int(rand()*100)-50
print a[i] + " ";
nexti
print "Положительные числа массива"
for i=0 to N-1
if a[i] > 0 then
b = b + a[i]
c = c + 1
print a[i] + " ";
end if
nexti
print "Среднееарифметическое (ср)"
print b/c
print "Положительные числа массива >ср"
fori=0 to N-1
if a[i] > b/c then
print a[i] + " ";
end if
nexti
Результаты работы программы
Рис.3 - Результат работы программы для первой задач
1.5 Руководство пользователя для первой задачи
Первая программа в курсовой работе заполняет массив `a'рандомными числами, а затем, перебрав их, вычисляет Положительные числа массива большие этогоСреднего Арифметического. От пользователя требуется только открыть файл «Program 1» с программой,написанной в Basic-256 и запустить, нажав кнопку «старт» на панели инструментов или сочетание клавишCtrl + F5. Затем в окне ввода/вывода увидеть полученный массив и Положительные числа массива > ср. Вне среды basic-256 программа не будет работать.
2. Решение второй задачи
Задача 2. Для нелинейного уравнения: произвести графический способом отделение его корней и уточнить их с помощью разработанных алгоритмов и программ (с заданной абсолютной погрешностью Eps). Отделение корней уравнения - выделение таких отрезков [a, b], в каждом из которых находится только один корень уравнения. Программу протестировать при различных значениях Eps.
2.1 Постановка задачи
Требуется разработать программу, реализующую следующие возможности:
-отделение корней графическим способом;
-уточнение корней с помощью разработанных алгоритмов и программ с заданной абсолютной погрешностью Eps:
-вывод графики в среде Basic-256:
- результаты работы программы вывести в текстовое окно среды Basic-256.
Таким образом, на первом этапе решения этой задачи требуется разработать программу, которая построит график функции, заданной по условию задачи, а также произведёт графическим способом отделение его корней. На втором этапе разработать алгоритм и соответствующую программу для уточнения корней с заданной абсолютной погрешностью Eps.
2.2 Математическая модель (описание)
Математическим решением второй задачи по курсовой является уравнение, представленное в виде:2^x = 4*x + 3, где - независимая переменная, - первая функция,- вторая функция.
Рис.4 Графический метод изоляции корней уравнения.
Корнем данного уравнения является -координата точек пересечения графиков функций y2=и (рис.4). Искомый корень находится между точками:
Подробнее о других численных методах решения нелинейных уравнений представлены в книге из списка используемой литературы.
2.3 Схема алгоритма решения второй задачи
Рис.5-Блок-схема алгоритма решения ковторой задачи (отделение корней уравнения).
Рис.6 - Продолжение блок-схемы алгоритма решения ко второй задачи (уточнение корней уравнения).
1) Начало алгоритма.
2) Ввод осей графика синим цветом и значений Eps.
3) Начало цикла: x:= -10...10 с шагом Eps. Переход к шагу 4.
4) Вычисление следующего значения параметра цикла: Y = -4 * X - 3, X1 = X * 5 + 150, Y1 = 150 - Y. Переход к шагу 5.
5) Объявляем цвет Красный. Переход к шагу 6.
6) Объявляем координаты функции (x1, y1). Переход к шагу 3.
7) Конец цикла. Переход к шагу 7.
8) Начало цикла: x := -10...10 с шагом 0,001. Переход к шагу 8.
9) Вычисление следующего значения параметра цикла: y = 2 ^ x, x2 = x*5 + 150, y2 = 150 - y. Переход к шагу 9.
10) Объявляем цвет Оранжевый. Переход к шагу 10.
11) Объявляем координаты функции (x2, y2). Переход к шагу 7.
12) Конец цикла. Переход к шагу 11.
13) Объявляем максимальное и минимальное значения диапазона графика, погрешность, начальное значение счетчика итераций. Переход к шагу 12.
14) Находим средний диапазон. Переход к шагу 13.
15) Начало цикла: Do ... Until: Задаем буферную переменную и с помощью преобразованной функции выражаем x и табулируем значение функции. Переход к шагу 14.
16) Задаем счетчик итераций. Переход к шагу 15.
17) Делаем проверку на погрешность. Переход к шагу 13.
18) Выводим информацию: "Корень уравнения x3="+x3;"Количество итераций = "+n.
19) Конец алгоритма.
2.4 Исходя из результатов разработанных алгоритмов напишем исходный текст для программы:
clg
color blue
line 0, 150, 300, 150#задаемлиниюоси x
line 150, 0, 150, 300#задаемлиниюоси y
for x = -10 to 10 step 0.01
y = -4 * x - 3#задаем значения для первого графика
x1 = x*5 + 150#Задаем координаты x для первого графика
y1 = 150 - y#Задаем координаты y для первого графика
colorred#Задаем цвет линии графика
plot x1, y1#выводим значения координат для первого графика
next x
for x = -10 to 10 step 0.01
y = 2 ^ x#задаем значения для второго графика
x2 = x*5 + 150#задаем координаты x для второго графика
y2 = 150 - y#задаем координаты y для второго графика
colorgreen
plot x2, y2#выводим значения координат для второго графика
next x
refresh#Обновляет содержимое окна графического вывода
Cls
A=-1.5 #минимальное значение диапазона графика
B=1 #максимальное значение диапазона графика
Eps=0.0001 #погрешность
n=1 # начальное значение счетчика итераций
x3=(A+B)/2 #находим средний диапазон
do
x0=x3 #буферная переменная
x3=(2 ^ x0 - 3)/4 #с помощью преобразованной функции выражаем x и табулируем значение функции
n=n+1 #счётчик итераций
untilabs (x3-x0)<Eps#делаем проверку на погрешность
PRINT "Корень уравнения x3="+x3
PRINT "Количество итераций = "+n
end
Результаты работы программы.
Рис.7-Результат работы программы для второй задачи.
2.5 Руководство пользователя для второй задачи
Вторая программа курсовой работы решает уравнение: методом итерации. От пользователя требуется только открыть файл «Задание 2» с программой,написанный в Excel, уже готовый график и найденным корням уравнения. Проверить работоспособность программы можно, подставив значение переменной в уравнение, при условии, что будет меньше 0. Стоит добавить, что вне среды basic-256 программа работать не будет.
Результаты работы для различных исходных данных второй задачи
[-0.8,-1]
Выводы
Результаты данной работы:
- проведён анализ поставленных задач и на основании проведенного анализа разработаны для каждой задачи математическая модель её решения и блок-схема алгоритма её решения
-разработан и отлажен текст программы на языке среды программирования Basic-256
-текст программы протестирован для различных значений исходных данных
-написано руководство пользователя на примере заданий по данной курсовой работе
-результаты тестирования разработанных программ:
Для первой программы был произведён один тест, так как решение задачи не требует от пользователя ввода исходных данных.
Для второй программы был произведён один тест, так как решение задачи не требует от пользователя ввода исходных данных, и уравнение имеет только один корень.
Опыт данной курсовой работы был полезен, благодаря ему я закрепил свои практические навыки по работе со средой программирования BASIC-256, так же получил новые знания, и окончательно закрепил пройденный материал по дисциплине "Теория алгоритмов".
Все пункты задания на КР выполнены полностью.
Используемая литература
1. Свободное программное обеспечение. BASIC-256 для школы. Никитенко С.Г.
2. Джеймс М. Рено, М.С. Хотите научиться программировать? - Copyright ©2010.
3. Теория алгоритмов: учеб. пособие для студ. сред. проф. учеб. заведений / В.И. Игошин. - М.: Издательский центр «Академия», 2013. - 320 с.
4. Методические указания к лабораторным и самостоятельным работам по курсам «Информатика» и «Вычислительная математика». Численные методы. Часть 1. / Казанский государственный архитектурно-строительный университет. Сост.: Ф.Г. Ахмадиев, Ф.Г. Габбасов, Р.Ф. Гиззятов, И.В. Маланичев. Казань, 2011. - 32 с.
Информационные источники:
5) [https://ru.wikipedia.org/wiki/BASIC-256]
6) [https://dic.academic.ru/dic.nsf/ruwiki/1421799]
7) [https://lumpics.ru/tabulation-of-functions-in-excel/]
Приложение
Приложение 1. Блок-схема к первому заданию
Приложение 2.ПродолжениеБлок-схемы к первому заданию
Приложение 3.Блок-схема ко второму заданию
Приложение 4.ПродолжениеБлок-схемы ко второму заданию
Размещено на Allbest.ru
...Подобные документы
Определение корней заданного уравнения графическим методом с применением прикладного программного средства MathCAD. Построение графика при помощи программы MS Excel. Геометрическая интерпретация метода для данного уравнения, определение интервалов.
контрольная работа [93,0 K], добавлен 20.08.2013Графический и аналитический методы отделения корней при решении уравнения. Уточнение отдельных корней уравнения: метод половинного деления, последовательных приближений, метод Ньютона. Расчет в программах Excel, MathCAD, на языке программирования Pascal.
курсовая работа [3,2 M], добавлен 29.05.2010Реализация решения нелинейного уравнения с заданными параметрами в виде процедуры-подпрограммы. Графический метод отделения корней уравнения. Основные методы уточнения корней уравнения. Описание процедур и функций, общий алгоритм и текст программы.
курсовая работа [1,7 M], добавлен 27.03.2011Отделение действительных корней нелинейного уравнения. Метод хорд и касательных (Ньютона), геометрическая интерпретация. Графическая схема алгоритма. Описание реализации базовой модели в MathCAD. График сравнения числа итераций в зависимости от точности.
курсовая работа [2,0 M], добавлен 16.05.2013Системы линейных алгебраических уравнений. Решение систем уравнений графическим способом. Разработка программного кода модуля, реализующего приближенное решение систем линейных уравнений графическим способом. Отладка программного модуля "Метод Гаусса".
курсовая работа [858,5 K], добавлен 01.12.2013Разработка программы для нахождения корней нелинейных уравнений несколькими методами: методом хорд, касательных, половинного деления, итераций. Реализации программы с помощью системы программирования Delphi 7. Методика работы пользователя с программой.
курсовая работа [1,3 M], добавлен 11.02.2013Основная теорема существования корней в С+, ее доказательство с помощью нескольких лемм. Распределение корней на плоскости комплексной переменной. Распределение вещественных корней полинома с вещественными коэффициентами. Приближенное вычисление корней.
контрольная работа [469,4 K], добавлен 06.03.2013Понятие алгоритма, его свойства и способы описания. Схемы алгоритмических конструкций: линейная, разветвляющаяся, циклическая. Особенности и применение электронных таблиц Excel. Задачи, решаемые с помощью системы Mathcad. История создания языка Pascal.
курсовая работа [601,9 K], добавлен 20.11.2010Программирование нестандартных функций, задач оптимизации, дифференциального уравнения и аппроксимации с помощью языка Паскаль. Алгоритм и программа операций над матрицами. Нахождение значения корней нелинейного уравнения по методу половинного деления.
курсовая работа [1,1 M], добавлен 12.08.2011Математический алгоритм вычисления корней нелинейного уравнения и его решение методом касательных. Особенности программной реализации решения таких уравнений. Процедура подготовки и решения задачи на ЭВМ, характеристика алгоритма и структуры программы.
курсовая работа [96,6 K], добавлен 02.06.2012Разработка программы, которая выявляет в прямоугольной матрице все подматрицы, состоящие только из m-значных целых чисел. Использование компилируемого языка программирования общего назначения C/C++. Обработка алгоритмов, кодирование программных средств.
курсовая работа [980,1 K], добавлен 05.03.2015Составление программы для нахождения минимального и максимального элементов массива. Программа вычисления корней квадратных алгебраических уравнений. Ранжирование одномерного массива по заданному признаку. Формирование массивов с помощью функции random.
контрольная работа [1,0 M], добавлен 30.04.2013Нахождение с заданной погрешностью корней уравнения. Оценка скорости сходимости. Нахождение промежутка, в котором содержится какой-либо корень уравнения для методов итераций и Ньютона. Разработка текста компьютерных программ для решения данных уравнений.
лабораторная работа [253,9 K], добавлен 19.12.2012Решение нелинейного уравнения. Отделение корней - исследование количества, характера и расположения корней, нахождение их приближенных значений. Уточнение корня до заданной степени точности. Численное интегрирование и квадратурные формулы прямоугольников.
курсовая работа [51,9 K], добавлен 04.02.2009Этапы численного решения нелинейных уравнений заданного вида: отделение (изоляция, локализация) корней уравнения аналитическим или графическим способами, уточнение конкретного выделенного корня методом касательных (Ньютона). Решение в системе MathCad.
курсовая работа [271,6 K], добавлен 22.08.2012Модификация и сравнения двух текстовых файлов. Программа, написанная на языке программирования Cи и работоспособна на IBM совместимых компьютерах. Псевдографический и графический интерфейсы. Анализ программы методом сортировки одномерного массива.
курсовая работа [116,2 K], добавлен 21.02.2008Понятие и свойства алгоритма, виды, характеристики. Роль алгоритма в построении программы, представление и запись. Словесный, графический, табличный способ. Псевдокод. Примеры известных алгоритмов. Операции над массивами. Уточнение корней уравнения.
курсовая работа [1,1 M], добавлен 10.11.2016Язык программирования как система обозначений, применяемая в описании алгоритмов для ЭВМ. Разработка программы на языке программирования Бейсик. Освоение приемов работы с электронными таблицами MS Excel. Создание базы данных с помощью СУБД MS Access.
контрольная работа [2,6 M], добавлен 15.02.2010Программы линейной структуры. Составление программы, которая по заданному номеру и значению соответствующего элемента вычисляет значение всех остальных элементов треугольника. Формулирование одномерного массива с помощью генератора случайных чисел.
отчет по практике [1,2 M], добавлен 01.12.2012Описание методов дихотомии (половинного деления) и касательных. Их применение для решения нелинейных уравнений. Графическое отделение корней. Блок-схемы алгоритмов. Тексты (листинги) программ на языке Delphi. Тестовый пример решения задачи с помощью ЭВМ.
курсовая работа [944,6 K], добавлен 15.06.2013