Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
17.04.2013
Размер:
75.78 Кб
Скачать

Московский институт электронной техники

Курсовая работа

по курсу

“ООП”

Решение алгебраических ур-ий

с действительными коэффициентами .

Выполнил:

Фролов С.С.

Проверил:

Солдатова А.Ф.

Москва, 2003

Оглавление:

  1. Введение.............................................. 3

  2. Инструкция пользователя............................... 3

  3. Аппаратные и программные требования................... 3

  4. Примеры программирования ................................. 4

  5. Схема алгоритма....................................... 5

  6. Описание алгоритма.................................... 6

  7. Текст программы(и комментарии)........................ 7

  8. Инструкция по эксплуатации............................ 9

  9. Примеры............................................... 10

10)Заключение и выводы................................... 11

11) Список литературы.....................................12

  1. Введение.

Целью данного курсового проекта является закрепление полученных знаний по изучению языка программирования СИ. В качестве темы выбрано решение алгебраических ур-ий с действительными коэффициентами методом Хичкока. При этом (вначале) итерационным методом из ур-ия выделяется квадратичный множитель (если n=3) и выч. Два его корня. Затем ур-ие делится на этот множитель, т.е. n уменьшается на 2, и процесс выполняется до выч. Всех корней.

  1. Инструкция пользователя:

  • запустить компилятор CBuilder 3.0,

  • открыть файл проекта graph.bpr,

  • запустить программу на выполнение (ctrl + F9),

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

  • в списке ввода функций выбрать необходимую зависимость.

  • для выхода из программы необходимо нажать кнопку ВЫХОД.

  1. Аппаратные и программные требования:

Для запуска программы необходимо:

  • компьютер с процессором INTEL Pentium 100 и выше,

  • монитор, поддерживающий разрешение 800х600 точек,

  • 1 Mb дискового пространства,

  • 16 Mb оперативной памяти,

  • наличие операционной системы MS Windows 95 и выше,

  • наличие пакета Borland CBuilder версии 4.0

  1. Примеры программирования:

Пример 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. Схема алгоритма:

1

2

3

Да. 4

Нет.

7

5

8

6

Рис. 1.

6) Описание алгоритма:

  1. создание графической части.

  2. происходит ввод данных.

  3. ввод коэффициентов при x^3,x^2,x.

  4. задается массив, и с помощью массива решаем e=-g/2; m=(e*e)-1; f=sqrt(m); x’=x-k; x1=f+e; x2=e-f; x3=x’, по этим формулам вычисляются значения х1,х2,х3.

  5. вывод полученного результата х1,х2,х3.

  6. конец программы.

  7. если ввод неправильный, программа сообщает вам об ошибке !!!

  8. программа останавливается, затем вам следует вводить данные заново.

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;

}

//---------------------------------------------------------------------------

  1. Инструкция по эксплуатации:

После запуска программы(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

  1. Вывод:

Язык программирования С++ имеет больше возможности для программирования и широко используется программистами. Его ресурсов хватает для решения множества практических заданий, в том числе и решение алгебраических уравнений с действительными коэффициентами методом Хичкока.

А ввиду особого значения и широкого применения алгебраических уравнений с действительными коэффициентами методом Хичкока третьего порядка полезно иметь специальную программу для их решения. Одной из таких программ является написанная мной, и представленная выше программа. Написав такую программу мы сможем решать подобные алгебраические уравнения с действительными коэффициентами методом Хичкока без особого труда!

Метод Хичкока хорош тем, что им можно довольно быстро получить правильный ответ, при этом (вначале) выделяется итерационным методом из уравнения выделяется квадратичный множитель и вычисляются два его корня. Затем ваше уравнение делится на этот множитель, т.е. n уменьшается на 2, и процесс повторяется до вычисления всех корней.

Этот метод намного проще чем Ньютона или метод «половинного деления».

Методом Хичкока можно быстрее получить результат.

  1. Список литературы:

  1. Х.М.Дейтел,П.Дж.Дейтел , Как программировать на С++ Москва-2000.

  2. С.Бобровский , Самоучитель программирования на С++ Москва-2001.

  3. Керниган Б., Ритчи Д. Язык программирования Си.-М.: Финансы и статистика, 1992.-272с.

  4. Подбельский В.В., Фомин С.С. Программирование на языке Си.-М.:Финансы и статистика, 1998.-600с.

  5. Тондо К., Гимпел С. Язык Си. Книга ответов.–М.: Финансы и статистика, 1994.-160с.

  6. В.П.Дьяков. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ.

12

Соседние файлы в папке 01