Курсовые / Курсовые ЭТМО / 01 / курсач
.DOCМосковский институт электронной техники
Курсовая работа
по курсу
“ООП”
Решение алгебраических ур-ий
с действительными коэффициентами .
Выполнил:
Фролов С.С.
Проверил:
Солдатова А.Ф.
Москва, 2003
Оглавление:
-
Введение.............................................. 3
-
Инструкция пользователя............................... 3
-
Аппаратные и программные требования................... 3
-
Примеры программирования ................................. 4
-
Схема алгоритма....................................... 5
-
Описание алгоритма.................................... 6
-
Текст программы(и комментарии)........................ 7
-
Инструкция по эксплуатации............................ 9
-
Примеры............................................... 10
10)Заключение и выводы................................... 11
11) Список литературы.....................................12
-
Введение.
Целью данного курсового проекта является закрепление полученных знаний по изучению языка программирования СИ. В качестве темы выбрано решение алгебраических ур-ий с действительными коэффициентами методом Хичкока. При этом (вначале) итерационным методом из ур-ия выделяется квадратичный множитель (если n=3) и выч. Два его корня. Затем ур-ие делится на этот множитель, т.е. n уменьшается на 2, и процесс выполняется до выч. Всех корней.
-
Инструкция пользователя:
-
запустить компилятор CBuilder 3.0,
-
открыть файл проекта graph.bpr,
-
запустить программу на выполнение (ctrl + F9),
-
установить необходимые значения погрешности и количества точек,
-
в списке ввода функций выбрать необходимую зависимость.
-
для выхода из программы необходимо нажать кнопку ВЫХОД.
-
Аппаратные и программные требования:
Для запуска программы необходимо:
-
компьютер с процессором INTEL Pentium 100 и выше,
-
монитор, поддерживающий разрешение 800х600 точек,
-
1 Mb дискового пространства,
-
16 Mb оперативной памяти,
-
наличие операционной системы MS Windows 95 и выше,
-
наличие пакета Borland CBuilder версии 4.0
-
Примеры программирования:
Пример 1.
Написать программу нахождения действительных корней квадратного уравнения общего вида . При написании программы использовать функции управления экраном.
#include <conio.h>
#include <math.h>
#include <stdio.h>
void main ()
{
// Установить цвет экрана
textbackground (GREEN);
// Окрасить цвет экрана установленным цветом
clrscr();
// Задать окно
window (5,5,10,50);
// Задать цвет окна
textbackground (BLUE);
// Задать цвет символов
textcolor(RED);
// Окрасить окно установленным цветом
clrscr();
// Коэффициенты a, b, c
int a,b,c;
// Курсор в позицию (1,3)
gotoxy (1,3);
printf (“Введите коэффициенты a b c >”);
// Ввод данных
scanf (“%d%d%d”,&a&b&c);
// Вычисление дискриминанта
float d = b*b-4*a*c;
// Установить окно для вывода результатов
window (5,15,50,20);
textbackground(BLUE);
clrscr();
textcolor(RED); // Если дискриминант больше 0
if (d>0)
{ // Вычислить корни x1, x2
float x1 = (-b+sqrt(d))/(2*a),
x2 = (-b-sqrt(d))/(2*a);
gotoxy(1,3);
// Печать корней
printf(“Первый корень = %5.2f”,x1);
gotoxy(1,5);
printf(“Второй корень = %5.2f”,x2);
} // Если корней нет, то вывод сообщения “Корней нет”
else printf (“Корней нет”);
}
-
Схема алгоритма:
1 2
3
Да.
4
Нет.
7
5
8
6
Рис. 1.
6) Описание алгоритма:
-
создание графической части.
-
происходит ввод данных.
-
ввод коэффициентов при x^3,x^2,x.
-
задается массив, и с помощью массива решаем e=-g/2; m=(e*e)-1; f=sqrt(m); x’=x-k; x1=f+e; x2=e-f; x3=x’, по этим формулам вычисляются значения х1,х2,х3.
-
вывод полученного результата х1,х2,х3.
-
конец программы.
-
если ввод неправильный, программа сообщает вам об ошибке !!!
-
программа останавливается, затем вам следует вводить данные заново.
7) Текст программы:
#pragma hdrstop
#include <conio.h>
#include <iostream.h>
#include <fstream.h>
#include <math.h>
#include <stdio.h>
//---------------------------------------------------------------------------
#pragma argsused
//grafon---------------------------------------------------------------------
void main ()
{
textbackground (BLUE);
clrscr();
window (20,10,65,20);
textbackground (RED);
textcolor(11);
clrscr();
gotoxy (1,1);
printf (" Kursovoi proekt na temu:");
gotoxy (1,3);
printf (" Reshenie algebraicheskih");
gotoxy (1,5);
printf (" uravneniy s deistvitel'nimi koefficientami");
gotoxy (1,7);
printf (" koefficientami. Metodom Hichkoka !");
window (20,20,65,30);
textbackground (GREEN);
textcolor(11);
clrscr();
gotoxy (1,4);
printf (" Vipolnil:");
printf (" Gruppa:");
gotoxy (1,6);
printf (" Frolov S.S.");
printf (" ETMO-24");
getch();
textmode(2);
int i,num=1;
double massiv[10];
//ввод степени многочлена
//cout << "Vvedite stepen' mnogochlena (ne bol'she 10): ";
//cin >> num;
num=3;
//проверка степени на соответствие параметрам
if (num>10) {cout<<"Incorrect input data. Press any key";getch();return 0;}
//ввод коэффициентов многочлена
for (i=num;i>=0;i--){
cout<<"Vvedite stepen' pri x^"<<i<<": ";
cin>>massiv[i];
}
//=============================
ofstream file;
double x=0;
double k,g,l,e,m,f;
k=massiv[3]+1;
for (;;){
g=x+massiv[2];
l=g*x+massiv[1];
if (l*x+massiv[0]<0) {x=x+k;}
k=k/2;x=x-k;
if (k<=1e-10000) break;
}
e=-g/2;
m=(e*e)-l;
if (m<0){
if (e/2<1e-5) e=0;
cout<<"x1,2="<<e<<"+-j*"<<sqrt(-m)<<" x3="<<x<<endl;
file.open("result.txt");
file<<"x1,2="<<e<<"+-j*"<<sqrt(-m)<<" x3="<<x<<endl;
file.close();
}
else{
f=sqrt(m);
cout<<"x1="<<f+e<<" x2="<<e-f<<" x3="<<x<<endl;
file.open("result.txt");
file<<"x1="<<f+e<<" x2="<<e-f<<" x3="<<x<<endl;
file.close();
}
getch();
return 0;
}
//---------------------------------------------------------------------------
-
Инструкция по эксплуатации:
После запуска программы(kursovay.cpp) мы видим на табло разноцветную табличку. На ней написано, что программа может решать алгебраические уравнения с действительными коэффициентами методом Хичкока. Также указано кто выполнял работу.
Далее(после нажатия ENTER),программа просит ввести коэффициенты при Х.
После, программа производит расчет Х1,Х2,Х3 и выводит их на экран.
Все результаты программа помещает в файл RESULT.TXT.
Так что если надо будет их еще раз посмотреть достаточно посмотреть файл RESULT.TXT.
9) Примеры:
1) x^3-6x^2+11x-6=0
x1=3
x2=2
x3=1
2) x^3-6x^2+21x-52=0
x1,2=1+-j*3.464101615
x3=4
-
Вывод:
Язык программирования С++ имеет больше возможности для программирования и широко используется программистами. Его ресурсов хватает для решения множества практических заданий, в том числе и решение алгебраических уравнений с действительными коэффициентами методом Хичкока.
А ввиду особого значения и широкого применения алгебраических уравнений с действительными коэффициентами методом Хичкока третьего порядка полезно иметь специальную программу для их решения. Одной из таких программ является написанная мной, и представленная выше программа. Написав такую программу мы сможем решать подобные алгебраические уравнения с действительными коэффициентами методом Хичкока без особого труда!
Метод Хичкока хорош тем, что им можно довольно быстро получить правильный ответ, при этом (вначале) выделяется итерационным методом из уравнения выделяется квадратичный множитель и вычисляются два его корня. Затем ваше уравнение делится на этот множитель, т.е. n уменьшается на 2, и процесс повторяется до вычисления всех корней.
Этот метод намного проще чем Ньютона или метод «половинного деления».
Методом Хичкока можно быстрее получить результат.
-
Список литературы:
-
Х.М.Дейтел,П.Дж.Дейтел , Как программировать на С++ Москва-2000.
-
С.Бобровский , Самоучитель программирования на С++ Москва-2001.
-
Керниган Б., Ритчи Д. Язык программирования Си.-М.: Финансы и статистика, 1992.-272с.
-
Подбельский В.В., Фомин С.С. Программирование на языке Си.-М.:Финансы и статистика, 1998.-600с.
-
Тондо К., Гимпел С. Язык Си. Книга ответов.–М.: Финансы и статистика, 1994.-160с.
-
В.П.Дьяков. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ.