Проектирование циклических алгоритмов с заданным числом повторений и уравнением с условием
Расчет значений и построение графиков двух функций. Схема циклических алгоритмов. Разработка программы нахождения корней уравнения методами бисекции и хорд и программы вычисления определённого интеграла методами трапеций и серединных прямоугольников.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 22.12.2016 |
Размер файла | 554,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Федеральное государственное бюджетное образовательное учреждение высшего образования
Омский государственный технический университет
Кафедра Информатики и вычислительной техники
Направление 09.03.01 «Информатика и вычислительная техника»
РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА
на тему Проектирование циклических алгоритмов с заданным числом повторений и уравнением с условием
Студент группы ИВТ-163
Гергерт А.В.
Омск 2016
Оглавление
- 1. Задание к расчётно-графической работе
- 2. Математическая формулировка задачи
- 3. Текст программы
- 3.1 Файлы исходного кода
- 3.2 Заголовочные файлы
- Приложение
- 1. Задание к расчётно-графической работе
1. Разработать схему алгоритма, написать и отладить программу для расчета и построения графиков двух функций (результаты расчетов должны храниться в виде массивов и распечатываться в виде таблицы). Необходимо выделить наибольшее и наименьшее значения для каждой из функций. Добавить в нее решение нелинейного уравнения и вычисления приближенного значения определенного интеграла по заданию преподавателя.
2. Разработать программу нахождения корней уравнения =0 на интервале [a,b] с точностью e = 0.001(интервал подобрать или рассчитать самостоятельно). При реализации использовать метод половинного деления (бисекции) или метод хорд [в данной работе применены оба метода].
3. Разработать программу для вычисления определённого интеграла численными методами прямоугольников или трапеций [в работе используются метод трапеций и метод серединных прямоугольников]. Интервал интегрирования разбить равномерно на N>50 частей.
2. Математическая формулировка задачи
1. Для нахождения значений функции в равномерно распределённых в диапазоне от a до b точках диапазон делится на 15 частей. Затем в цикле вычисляются значения абсцисс, а также функций в заданных точках. Результаты сохраняются в трёхмерный массив, в той же функции выводятся на экран. Также производится определение максимального и минимального значений в отдельных функциях. Схема алгоритма приведена на рис. 1. Вычисления производятся для функций и .
2. Пусть задано уравнение и интервал [a, b]= [0, 2], где функция f(x) непрерывна, имеет разные знаки на концах интервала. Согласно теореме Больцано-Коши (непрерывная функция, принимающая на концах отрезка значения с разными знаками, обращается в ноль в некоторой точке этого отрезка), в интервале от a до b существует точка, являющаяся решением данного уравнения. Алгоритм нахождения корня на интервале методом бисекции сводится к следующей последовательности действий:
§ Вычисляется начальное значение ;
§ Если , где определяет требуемую погрешность вычислений, то c будет являться приближенным значением корня уравнения и выводиться как результат расчётов
§ Иначе сравниваются знаки функций и на концах отрезка [a, c], для чего определяется знак их произведения. Если полученное произведение отрицательное, то функции имеют разные знаки, корень находится на отрезке [a, c]. В этом случае интервал [a, b] заменяется [a, c], для чего присвоим b = c;
§ Иначе, если произведение положительное, корень уравнения находится на отрезке [c, b] и в расчётах интервал [a, b] заменяется на [c, b], для чего присвоим a = c;
§ Вычисления по схеме (п.a-п.d) повторяются в цикле до тех пор, пока не выполнится условие п.2.
В качестве метода для поиска второго корня текущего уравнения также применен метод хорд.
3. Приближенное значение определенного интеграла вычисляется как сумма площадей N трапеций, построенных на интервале интегрирования [a, b]. Интервал разбивается на N равных частей длиной , на каждой из которых строится трапеция с основаниями, равными и и высотой .
Формула интегрирования приобретает вид
Для сравнения точности также используется метод серединных прямоугольников.
Рисунок 1 - подпрограмма меню
Комментарий: в файле исходного кода и заголовочном файлах определён ряд констант, определяющих поведение подпрограммы. Так, например, числовые значения кода клавиш заменены на константы с понятными названиями. Перемещение выделяемого элемента меню циклическое: это означает, что по достижению numMenu-1 элемента следующим элементом будет TABLE (первый)
Информация о функциях, вызываемых в методах, хранится в перечислении и структуре.
Рисунок 2 - подпрограмма расчета таблиц функций
Для удобства отладки подпрограмма была разбита на ряд дискретных задач - сгенерировать таблицу значений (трёхмерный массив), определить максимальное и минимальное значение (в данной подпрограмме удобнее определять номер элемента в каждом ряде), выполнить вывод с учётом условия (необходимо выделить цветом минимальное и максимальное значения)
Рисунок 3 - подпрограмма поиска корней уравнения
В данной подпрограмме используются два метода - solve - метод бисекции, solve2 - метод хорд - из-за ограничений каждого из методов невозможно определить сразу два корня для уравнения
Рисунок 4 - подпрограмма вычисления определённого интеграла
Используются два метода - compute - метод трапеций, описанный в математическом представлении задачи, compute2 - метод серединных прямоугольников
программа уравнение интеграл функция
Рисунок 5 - подпрограмма построения графиков функций
Рисунок 6 - подпрограмма отображения заставки
Клавиша Esc в данном примере служит для выхода из функции draw()
Рисунок 7
3. Текст программы
Файлы исходного кода
РГР.cpp
#include "stdafx.h"
extern HANDLE hStdOut;
extern CONSOLE_SCREEN_BUFFER_INFO csbInfo;
extern SMALL_RECT consolRect;
int main() {
setlocale(LC_ALL, "RUS");
SetConsoleTitle(L"РГР вариант 3. Гергерт Андрей Владимирович, ИВТ-163");
hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hStdOut, &csbInfo);
consolRect = csbInfo.srWindow;
cls();
drawMenu();
}
void Exit() {
exit(0);
}
AuthorInfo.cpp
#include "stdafx.h"
extern HANDLE hStdOut;
void drawInfo() {
system("cls");
SetConsoleTextAttribute(hStdOut, 47);
printf("Автор программы:\nГергерт Андрей Владимирович\n");
SetConsoleTextAttribute(hStdOut, 79);
printf("Группа:\nИВТ-163\n");
SetConsoleTextAttribute(hStdOut, 160);
printf("Вариант: 3\n\n");
SetConsoleTextAttribute(hStdOut, 158);
}
definedIntegral.cpp
#include "stdafx.h"
void computeIntegral() {
system("cls");
double a, b;
lint slices;
printf("Введите левую границу: ");
scanf("%lf", &a);
printf("\nВведите правую границу: ");
scanf("%lf", &b);
printf("\nВведите количество разбиений: ");
scanf("%ld", &slices);
printf("\nИнтеграл равен:\n%.6lf (метод трапеций)\n%.6lf (метод прямоугольников)\n", compute(a, b, slices), compute2(a, b, slices));
}
double compute(double a, double b, lint slices) {
double sum = 0, x = a, dx = fabs(b - a) / slices;
while (x < b) {
sum += (functionI(x + dx) + functionI(x)) * dx / 2;
x += dx;
}
return sum;
}
double compute2(double a, double b, lint slices) {
double sum = 0, x = a, dx = (b - a) / slices;
while (x < b) {
sum += functionI(x - dx / 2);
x += dx;
}
sum *= dx;
return sum;
}
double functionI(double x) {
return 1 / sqrt(2 + pow(x, 3));
}
drawMenu.cpp
#include "stdafx.h"
#define KEY_ARROW_UP 72
#define KEY_ARROW_DOWN 80
#define KEY_ENTER 13
#define KEY_ESC 27
#define MAIN_X 5
#define MAIN_Y 6
typedef void(*FUN) (void);
typedef struct {
int x, y;
char *str;
FUN f;
} ITEM;
HANDLE hStdOut;
CONSOLE_SCREEN_BUFFER_INFO csbInfo;
SMALL_RECT consolRect;
COORD curspos = { 0,1 };
WORD workWindowAttributes = 158;
WORD inactiveItemAttributes = 31;
WORD activeItemAttributes = 160;
ITEM menu[numMenu] = {
{ MAIN_X, MAIN_Y, " ПОСТРОЕНИЕ ТАБЛИЦЫ ЗАДАННЫХ ФУНКЦИЙ ", doTable},
{ MAIN_X, MAIN_Y + 2," РЕШЕНИЕ НЕЛИНЕЙНОГО УРАВНЕНИЯ ", solveEquation},
{ MAIN_X, MAIN_Y + 4," ВЫЧИСЛЕНИЕ ОПРЕДЕЛЁННОГО ИНТЕГРАЛА ", computeIntegral},
{ MAIN_X, MAIN_Y + 6," ПОСТРОЕНИЕ ГРАФИКОВ ЗАДАННЫХ ФУНКЦИЙ", drawGraph},
{ MAIN_X, MAIN_Y + 8," ИНФОРМАЦИЯ ОБ АВТОРЕ ", drawInfo},
{ MAIN_X, MAIN_Y + 10," ГРАФИЧЕСКАЯ ЗАСТАВКА ", drawScreensaver},
{ MAIN_X, MAIN_Y + 12," ВЫХОД(доступно на нажатию ESC) ", Exit}
};
void getCursorPos(){
GetConsoleScreenBufferInfo(hStdOut, &csbInfo);
curspos = csbInfo.dwCursorPosition;
}
void showCursor(bool visible) {
CONSOLE_CURSOR_INFO ccInfo;
ccInfo.bVisible = visible;
ccInfo.dwSize = 20;
SetConsoleCursorInfo(hStdOut, &ccInfo);
}
void gotoXY(int x, int y) {
COORD cursorPos = { x, y };
SetConsoleCursorPosition(hStdOut, cursorPos);
}
void cls() {
system("cls");
}
void drawMenu() {
menuItems sel = TABLE;
prepare(sel);
itemMenu(sel, true);
fflush(stdin);
int iKey = 67;
while (true) {
if (_kbhit()) {
iKey = _getch();
switch (iKey) {
case KEY_ARROW_DOWN:
if (sel < numMenu - 1) {
itemMenu(sel, false);
sel = (menuItems)(sel + 1);
itemMenu(sel, true);
} else {
itemMenu(sel, false);
sel = TABLE;
itemMenu(sel, true);
}
showCursor(false);
break;
case KEY_ARROW_UP:
if (sel > 0) {
itemMenu(sel, false);
sel = (menuItems)(sel - 1);
itemMenu(sel, true);
}
else {
itemMenu(sel, false);
sel = EXIT;
itemMenu(sel, true);
}
showCursor(false);
break;
case KEY_ENTER:
gotoXY(curspos.X, curspos.Y);
SetConsoleTextAttribute(hStdOut, workWindowAttributes);
showCursor(true);
switch (sel) {
case TABLE:
doTable();
break;
case EQUATION:
solveEquation();
break;
case INTEGRAL:
computeIntegral();
break;
case GRAPH:
drawGraph();
break;
case AUTHOR:
drawInfo();
break;
case SCREENSAVER:
drawScreensaver();
break;
default:
Exit();
}
cout << "Нажмите любую клавишу для выхода в меню" << endl;
getch();
prepare(sel);
getCursorPos();
fflush(stdin);
gotoXY(menu[sel].x, menu[sel].y);
showCursor(false);
break;
case KEY_ESC:
gotoXY(0, 0);
cls();
Exit();
}
}
}
}
void itemMenu(int sel, bool activate) {
WORD itemAttributes;
if (activate) itemAttributes = activeItemAttributes;
else itemAttributes = inactiveItemAttributes;
gotoXY(menu[sel].x, menu[sel].y);
SetConsoleTextAttribute(hStdOut, itemAttributes);
cout << menu[sel].str;
}
void prepare(menuItems sel) {
SetConsoleTextAttribute(hStdOut, 0);
cls();
SetConsoleTextAttribute(hStdOut, inactiveItemAttributes);
for (int i = 0; i < numMenu; i++) {
gotoXY(menu[i].x, menu[i].y);
cout << menu[i].str;
}
itemMenu(sel, true);
}
equation.cpp
#include "stdafx.h"
#define precision 0.001
void solveEquation() {
system("cls");
printf("Корни уравнения \"5*x-exp(x)-2*x*sqrt(x)=0\"\nс точностью %lf=\nx1 = %.5lf(метод бисекции)\nx2 = %.5lf(метод хорд)\n", precision, solve(0.1, 0.8), solve2(1, 2));
}
double solve(double a, double b) {
double c;
while ((b - a) > 2 * precision) {
c = (a + b) / 2;
if (functionE(c) == 0)
break;
else if (functionE(a)*functionE(c) < 0)
b = c;
else
a = c;
}
return c;
}
double solve2(double a, double b) {
while (fabs(b - a) > precision)
{
a = b - (b - a) * functionE(b) / (functionE(b) - functionE(a));
b = a + (a - b) * functionE(a) / (functionE(a) - functionE(b));
}
return b;
}
double functionE(double x) {
return 5 * x - exp(x) - 2 * x * sqrt(x);
}
Graphics.cpp
#include "stdafx.h"
#define modX 75
#define modY 50
#define X0 100
#define Y0 200
HDC hdc;
extern HANDLE hStdOut;
extern CONSOLE_SCREEN_BUFFER_INFO csbInfo;
void drawGraph() {
hdc = GetDC(GetConsoleWindow());
GetConsoleScreenBufferInfo(hStdOut, &csbInfo);
system("cls");
drawAxis();
drawF1();
drawF2();
ReleaseDC(NULL, hdc);
}
void drawAxis() {
COLORREF whitePen = RGB(255, 255, 255);
HPEN axis = CreatePen(PS_SOLID, 2, whitePen);
SelectObject(hdc, axis);
MoveToEx(hdc, X0 - modX, Y0, NULL);
LineTo(hdc, X0 + 7 * modX, Y0);
MoveToEx(hdc, X0, Y0 - 4 * modY, NULL);
LineTo(hdc, X0, Y0 + 8 * modY);
DeleteObject(axis);
TextOutA(hdc, X0 + 7 * modX - 8, Y0 + 3, "x", 1);
TextOutA(hdc, X0 + 3, Y0 - 4 * modY + 24, "y", 1);
}
void drawF1() {
COLORREF penColor = RGB(0, 255, 0);
HPEN pen = CreatePen(PS_SOLID, 3, penColor);
SelectObject(hdc, pen);
MoveToEx(hdc, X0 + modX * -1, Y0 - modY * (4 * exp(-fabs(-1)) - 1), NULL);
for (double x = -1.0; x < 5 + 0.001; x += 0.01f) {
LineTo(hdc, X0 + modX * x, Y0 - modY * (4 * exp(-fabs(x)) - 1));
}
DeleteObject(pen);
SetBkColor(hdc, RGB(0, 255, 0));
TextOutA(hdc, X0 + 5 * modX, Y0 + modY, "F1(x) = 4 * exp(-|x|) - 1", 25);
}
void drawF2() {
COLORREF penColor2 = RGB(255, 0, 0);
HPEN pen2 = CreatePen(PS_SOLID, 3, penColor2);
SelectObject(hdc, pen2);
MoveToEx(hdc, X0 + modX * -1, Y0 - modY * cos(-1), NULL);
for (double x = -1.0; x < 5 + 0.001; x += 0.01f) {
LineTo(hdc, X0 + modX * x, Y0 - modY * cos(x));
}
DeleteObject(pen2);
SetBkColor(hdc, RGB(255, 0, 0));
TextOutA(hdc, X0 + 5 * modX, Y0 - modY / 1.5, "F2(x) = cos x", 13);
}
Screensaver.cpp
#include "stdafx.h"
extern HDC hdc;
extern HANDLE hStdOut;
extern CONSOLE_SCREEN_BUFFER_INFO csbInfo;
void drawScreensaver() {
GetConsoleScreenBufferInfo(hStdOut, &csbInfo);
system("cls");
draw();
}
void draw() {
srand(time(NULL));
int iKey = 0, i, j;
hdc = GetDC(GetConsoleWindow());
COLORREF color;
while (iKey != 27) {
i = 0;
while (i < 50) {
j = 0;
while (j < 30) {
color = RGB(rand() % 256, rand() % 256, rand() % 256);
SelectObject(hdc, CreatePen(PS_DASHDOTDOT, 3, color));
Rectangle(hdc, 10 + i * 10, 10 + 10 * j, 90 + i * 10, 90 + 10 * j);
Sleep(150);
if (_kbhit()) {
iKey = _getch();
if (iKey == 27)
goto END;
}
j += 10;
}
i += 15;
}
END:Sleep(500);
SetConsoleTextAttribute(hStdOut, rand() % 256);
cls();
}
ReleaseDC(NULL, hdc);
SetConsoleTextAttribute(hStdOut, 158);
cls();
}
table.cpp
#include "stdafx.h"
extern HDC hdc;
extern HANDLE hStdOut;
extern CONSOLE_SCREEN_BUFFER_INFO csbInfo;
void drawScreensaver() {
GetConsoleScreenBufferInfo(hStdOut, &csbInfo);
system("cls");
draw();
}
void draw() {
srand(time(NULL));
int iKey = 0, i, j;
hdc = GetDC(GetConsoleWindow());
COLORREF color;
while (iKey != 27) {
i = 0;
while (i < 50) {
j = 0;
while (j < 30) {
color = RGB(rand() % 256, rand() % 256, rand() % 256);
SelectObject(hdc, CreatePen(PS_DASHDOTDOT, 3, color));
Rectangle(hdc, 10 + i * 10, 10 + 10 * j, 90 + i * 10, 90 + 10 * j);
Sleep(150);
if (_kbhit()) {
iKey = _getch();
if (iKey == 27)
goto END;
}
j += 10;
}
i += 15;
}
END:Sleep(500);
SetConsoleTextAttribute(hStdOut, rand() % 256);
cls();
}
ReleaseDC(NULL, hdc);
SetConsoleTextAttribute(hStdOut, 158);
cls();
}
Заголовочные файлы
РГР.h
#pragma once
#ifndef RGR_H
#define RGR_H
int main(void);
void Exit(void);
#endif
AuthorInfo.h
#pragma once
#ifndef AUTHORINFO_H
#define AUTHORINFO_H
void drawInfo(void);
#endif
definedIntegral.h
#pragma once
#ifndef DEFINEDINTEGRAL_H
#define DEFINEDINTEGRAL_H
void computeIntegral(void);
double compute(double, double, lint);
double compute2(double, double, lint);
double functionI(double);
#endif
drawMenu.h
#pragma once
#ifndef DRAWMENU_H_
#define DRAWMENU_H_
const int numMenu = 7;
enum menuItems { TABLE, EQUATION, INTEGRAL, GRAPH, AUTHOR, SCREENSAVER, EXIT };
void drawMenu(void);
void gotoXY(int, int);
void itemMenu(int, bool);
void cls(void);
void getCursorPos(void);
void showCursor(bool);
void prepare(menuItems);
#endif
equation.h
#pragma once
#ifndef EQUATION_H_
#define EQUATION_H_
void solveEquation(void);
double solve(double, double);
double solve2(double, double);
double functionE(double);
#endif
Graphics.h
#pragma once
#ifndef GRAPHICS_H
#define GRAPHICS_H
void drawGraph(void);
void drawAxis(void);
void drawF1(void);
void drawF2(void);
#endif
screensaver.h
#pragma once
#ifndef SCREENSAVER_H_
#define SCREENSAVER_H_
void drawScreensaver(void);
void draw(void);
#endif
stdafx.h
#pragma once
// libraries
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
#include <math.h>
#include <locale>
#include <conio.h>
#include <iostream>
#include <Windows.h>
using namespace std;
typedef unsigned int uint;
typedef long int lint;
// own headers
#include "table.h"
#include "equation.h"
#include "definedIntegral.h"
#include "drawMenu.h"
#include "РГР.h"
#include "Graphics.h"
#include "AuthorInfo.h"
#include "screensaver.h"
table.h
#pragma once
#ifndef TABLE_H
#define TABLE_H
#define N 15
void doTable(void);
void generateMassive(void);
void drawMassive(double [3][N][N]);
int getMinNumber(double[3][N][N], int);
int getMaxNumber(double[3][N][N], int);
#endif
Приложение А
Таблица значений функций
X |
F1 |
F2 |
|
-1 |
0,471518 |
0,540302 |
|
-0,57143 |
1,258872 |
0,841129 |
|
-0,14286 |
2,467512 |
0,989813 |
|
0,285714 |
2,005909 |
0,959461 |
|
0,714286 |
0,958167 |
0,755561 |
|
1,142857 |
0,275626 |
0,414997 |
|
1,571429 |
-0,16901 |
-0,00063 |
|
2 |
-0,45866 |
-0,41615 |
|
2,428571 |
-0,64735 |
-0,75639 |
|
2,857143 |
-0,77027 |
-0,95982 |
|
3,285714 |
-0,85034 |
-0,98963 |
|
3,714286 |
-0,90251 |
-0,84044 |
|
4,142857 |
-0,93649 |
-0,53924 |
|
4,571429 |
-0,95863 |
-0,14049 |
|
5 |
-0,97305 |
0,283662 |
Приложение Б
Графики функций
Приложение В
Результаты выполнения
1. Интерфейс программы
2. «Построение таблицы заданных функций»
3. «Решение нелинейного уравнения»
4. «Вычисление определённого интеграла»
5. «Построение графиков заданных функций»
6. «Информация об авторе»
7. «Графическая заставка» - заставка динамическая, поэтому приведён единичный скриншот работы функции
Приложение Г
Дополнительные расчёты значений для каждой из функций
Корни нелинейного уравнения
Определённый интеграл
Решение было выполнено в среде научного языка Wolfram Language
Размещено на Allbest.ru
...Подобные документы
Описание особенностей программирования циклических алгоритмов на С/С++. Использование операторов цикла для организации повтора в программе определенных действий. Создание и реализация программы приближенного вычисления интеграла методом трапеций.
лабораторная работа [86,3 K], добавлен 25.03.2019Создание схем алгоритмов и составление программы на языке Pascal для вычисления значений заданных функций. Сущность и порядок нахождения значения определенного интеграла. Анализ работы подпрограмм. Разработка тестов для проверки правильности алгоритмов.
контрольная работа [831,0 K], добавлен 24.11.2013Разработка программы для нахождения корней нелинейных уравнений несколькими методами: методом хорд, касательных, половинного деления, итераций. Реализации программы с помощью системы программирования Delphi 7. Методика работы пользователя с программой.
курсовая работа [1,3 M], добавлен 11.02.2013Принципы разработки математических моделей, алгоритмов и программ. Составление программы вычисления функции с использованием нестандартных функций. Нахождение значения корней нелинейного уравнения по методу касательных. Программа для вычисления интеграла.
курсовая работа [568,3 K], добавлен 07.03.2015Метод хорд решения нелинейных уравнений. Вычисление интеграла методом Симпсона. Процесс численного решения уравнения. Окно программы расчета корней уравнения методом хорд. Алгоритм вычисления интеграла в виде блок-схемы. Выбор алгоритма для вычислений.
курсовая работа [832,6 K], добавлен 24.07.2012Составление алгоритмов и программ для вычисления значений неизвестных: программирование формул; операторы ввода и вывода; условный оператор; цикл с предусловием и с постусловием, с заданным числом повторений; графические средства; тестирование программы.
курсовая работа [1,5 M], добавлен 13.03.2011Использование нестандартных функций и подпрограмм (процедур) для составления алгоритмов вычислений. Программы для вычисления значение корней нелинейного уравнения по методу половинного деления. Составление алгоритма операций над матрицами и интегралами.
курсовая работа [580,0 K], добавлен 23.08.2015Численные методы. Создание программного продукта, использование которого позволит одновременно исследовать два метода вычисления определенных интегралов: метод трапеций и метод Симпсона. Рассмотрен ход вычисления интеграла в виде кода программы.
курсовая работа [834,6 K], добавлен 14.04.2019Разработка программы, выполняющей интегрирование методом входящих прямоугольников с кратностями и методом Симпсона. Расчет определённого интеграла приближенным и точным методами. Оценка погрешности при вычислении приблизительного значения интеграла.
контрольная работа [71,7 K], добавлен 13.02.2016Нахождение и расчет суммы первых N натуральных чисел. Алгоритм программы, тестовые наборы. Проектирование программы соответствия между челдронами и пеками при заданном начальном значении количества челдронов, шаге изменения и количестве значений.
лабораторная работа [1,0 M], добавлен 23.11.2014Методы левых и правых прямоугольников численного интегрирования для вычисления интегралов. Геометрический смысл определённого интеграла. Программная реализация, блок-схемы алгоритмов. Результат работы тестовой программы. Решение задачи с помощью ЭВМ.
курсовая работа [180,4 K], добавлен 15.06.2013Разработка с использованием приложения Mathcad алгоритма и программы решения нелинейного уравнения методами касательных, половинного деления и хорд. Решение с помощью ее заданных нелинейных уравнений. Создание графической иллюстрации полученных решений.
курсовая работа [665,7 K], добавлен 22.08.2013Исследование количества, характера и расположения корней. Определение их приближенных значений итерационными методами: половинного деления (дихотомии) и хорд. Тексты программ. Решение уравнений на языках программирования Borland Delfi и Turbo Pascal.
курсовая работа [500,3 K], добавлен 15.06.2013Разработка и анализ алгоритмов с использованием электронных таблиц и прикладных программ Smath Studio, Microsoft Excel. Проверка алгоритма ветвления или выбора. Реализация циклов на примере вычисления определённого интеграла с заданной точностью.
контрольная работа [1,0 M], добавлен 19.03.2016Решение циклических программ и программ вычисления функции с условием. Уравнение в табличном редакторе Microsoft Excel и в Turbo Pascal. Вычисление определенного интеграла методом прямоугольников, трапеции, Симпсона. Линейные и нелинейные уравнения.
курсовая работа [233,6 K], добавлен 27.12.2009Формулирование и создание программы по вычислению определенного интеграла по формуле трапеций с тремя десятичными знаками и по формуле Симпсона. Выбор Delphi как программного средства разработки программы. Создание алгоритма и листинг программы.
курсовая работа [990,9 K], добавлен 15.06.2009Методы и алгоритмы вычисления определенных интегралов: метод трапеций и метод Симпсона (метод парабол). Оформление функции вычисления заданного определённого интеграла на Visual Basic 6.0. Программный код функции. Создание приложения для вычисления.
курсовая работа [483,6 K], добавлен 25.06.2014Способы и методы нахождения значения определённого интеграла. Программные средства языка C. Программные средства языка Pascal (версия 7.0). Алгоритм программы вычисления определённого интеграла. Тестирование программы. Обработка результатов измерений.
курсовая работа [2,5 M], добавлен 01.06.2010Проверить условие сходимости и записать расчетные формулы для нахождения корня уравнения. Составить блок-схему алгоритма, программу решения задачи. Вычисления определенного интеграла методом Симпсона. Построить график функции Y=1/sqr(3sin(x)+2cos(x)).
курсовая работа [29,6 K], добавлен 02.10.2008Разработка программы, которая по заданной самостоятельно функции будет выполнять интегрирование методом прямоугольников. Блок-схема алгоритма вычисления интеграла (функция rectangle_integrate). Экспериментальная проверка программы, ее текст на языке C.
курсовая работа [232,0 K], добавлен 27.05.2013