Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/33: Рейтинг темы: голосов - 33, средняя оценка - 4.55
0 / 0 / 1
Регистрация: 04.10.2012
Сообщений: 27
1

ООП: функция, которая решает квадратные уравнения.

16.02.2013, 22:52. Показов 6641. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,начал только знакомиться с данной средой,написал простенькую программу,почему то не работает(
Помогите пожалуйста разобраться в структуре кода.Заранее благодарен!
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
classdef 1st
    properties
        D;
        X1;
        X;
    end
    methods
        function value = get.X(this)
            value = this.X; 
         end    
       
          function this = set.X(this,value)
             this.X = value; 
          end    
         
          function value = get.X1(this)
            value = this.X1; 
         end    
          function this = set.X1(this,value)
             this.X1 = value; 
          end    
 
    end
    methods
        function object=Untitled(varargin)
        A = input('Введите  А:');
        B = input('Введите  В:');
        C = input('Введите  С:');
        object.X1=(B+(B^2+4*A*C)^(0.5))/(2*A);
        object.X=(B-(B^2+4*A*C)^(0.5))/(2*A);
        fprintf('%s Корни уравнения: %s\n',object.X, object.X1);
        end
    end
       
end
Показывает в командном окне следующее:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
uran
 
ans = 
 
  uran
 
  Properties:
     D: []
    X1: []
     X: []
 
  Methods
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2013, 22:52
Ответы с готовыми решениями:

Программа, которая решает дифференциальные уравнения
Братцы, слышал что есть программа которая сама решает диффиренциальные уравнения. То есть вводишь...

Написать программу,которая решает квадратные уравнения
Написать программу,которая решает квадратные уравнения.

Программа, решает квадратные уравнения
Я только вчера, после Паскаля начал изучать Delphi. Появился вопрос Мне надо составить программу...

Программа, которая генерирует квадратные уравнения
В общем, ребята, вопрос отчисления из универа. Нужна программа, которая сама генерирует уравнения и...

9
17 / 17 / 5
Регистрация: 27.11.2011
Сообщений: 141
18.02.2013, 01:16 2
Aplisen , попробуй сначала разобраться с такой функцией))))
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function [x1,x2]=korni(a,b,c)
 
if (a==0)&&(b==0)
    fprintf('eto ne yravnenie!')
    x1 = [];
    x2 = [];
else
if (a==0)&&(b~=0)
    fprintf('yravnenie ne kvadratnoe')
    x1 = -c/b;
    x2 = x1;
else
 
d = (b^2 - 4*a*c);
if (d<0)
    fprintf('discriminant otricatelnui, korni kompleksnue');
end
d=sqrt(d);
x1 = (-b + d)/2*a;
x2 = (-b - d)/2*a;
end
end
x=[(x1+x2)/2-10:0.1:(x1+x2)/2+10];
y=a*x.^2+b*x+c;
plot(x,y)
end
она делает то же самое что и твоя программа, но является функцией))
Я думаю, не сложно будет её переписать под классдэф, ну с proprties поколдавать придёться, а потом скинешь что получиться, и можно будет разные варианты класса рассмотреть

Добавлено через 5 минут
Про вот это почитай еще))
Matlab M
1
this.a=a;this.b=b;this.c=c;
0
0 / 0 / 1
Регистрация: 04.10.2012
Сообщений: 27
12.03.2013, 19:55  [ТС] 3
Доброго времени суток!
Написал программу которая решает квадратные уравнения в самом простом виде.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
classdef Kalk_1 < hgsetget
    properties
        A;
        B;
        C;
        D;
    end
    methods
         function value = get.A(this)
            value = this.A; 
         end    
          function set.A(this,value)
             this.A = value; 
          end    
         
          function value = get.B(this)
            value = this.B; 
         end    
          function  set.B(this,value)
             this.B = value; 
          end    
 
         function value = get.C(this)
            value = this.C; 
         end    
          function  set.C(this,value)
             this.C = value; 
          end    
         
          % Вычислимое свойство.Дискриминант
          function value = get.D(this)
             value = sqrt(this.B*this.B*this-4*this.A*this.C); 
          end 
    end
    methods
       function Vvod(this)
           this.A=input('Введите значение параметра А:');
       end
    end
 methods
       function Vvod2(this)
           this.B=input('Введите значение параметра B:');
       end
    end methods
       function Vvod1(this)
           this.C=input('Введите значение параметра C:');
       end
    end
    methods(Static)
        function [x1,x2]=Raschet(this)
 
if (this.A==0)&&(this.B==0)
    fprintf('Не квадратное уравнение')
    x1 = [];
    x2 = [];
else
if (this.A==0)&&(this.B~=0)
    fprintf('Не квадратное уравнение')
    x1 = -this.C/this.B;
    x2 = x1;
    formatSpec = 'Корень %4.2f';
    fprintf(formatSpec,x1)
else
if (this.D<0)
    fprintf('Дискриминант отрицательный');
end
this.D=sqrt(this.D);
x1 = (-this.B + this.D)/2*this.A;
x2 = (-this.B - this.D)/2*this.A;
formatSpec = 'Первый корень %4.2f второй %8.3f ';
fprintf(formatSpec,x1,x2)
end
end
x=((x1+x2)/2-10:0.1:(x1+x2)/2+10);
y=this.a*x.^2+this.b*x+this.c;
plot(x,y)
end
    end
    
end
Поэтапно запускаю,сначала создаю объект класса,потом от его имени вызываю три функции ввода коэффициентов, но потом пытаюсь запустить функцию C.Raschet...(Не знаю как правильно вызвать) и в итоге она не работает, говорит что неизвестно что на входе.
Скажи пожалуйста, как правильно организовать передачу коэффициентов А B C в функцию Raschet и как правильно её вызвать?
Заранее благодарен!
0
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
13.03.2013, 11:49 4
Цитата Сообщение от Aplisen Посмотреть сообщение
...в самом простом виде.

Дружочек, а тебе именно нужно заморачиваться с классами, методами и прочими прелестями объектно-ориентированного программирования?
Просто чтобы решить квадратное уравнение в матлабе достаточно одной строки:
Matlab M
1
roots([1 2 -3]) %где 1 2 -3 - коэффициенты, x^2+2x-3
PS: внутри каждой функции (function) вставь строку:
Matlab M
1
global A B C D
, тогда переменные станут глобальными и видимыми во всех функциях.
0
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,440
21.10.2014, 19:46 5
Зосима, Здравствуй. Мне тоже понадобился, решение квадратное уравнения на M-файлах пожалуйста помогите.
Например такой уравнения https://www.cyberforum.ru/cgi-bin/latex.cgi?x^2+5x-6=0
0
Модератор
Эксперт по математике/физике
5275 / 4057 / 1389
Регистрация: 30.07.2012
Сообщений: 12,429
21.10.2014, 19:53 6
Цитата Сообщение от Maikl2020
...Например такой уравнения
Matlab M
1
roots([1 5 -6]) %где 1 5 -6 - коэффициенты, x^2+5x-6
(с) Зосима
1
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,440
21.10.2014, 20:27 7
VSI, Спасибо за запоминания. Но я хочу что написать программу т.е. D>0, D<0, D=0 ну все условие выполнялись.
0
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
22.10.2014, 19:59 8
Maikl2020, с ООП или просто? неужели ты сам не в состоянии?
0
Всегда онлайн
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,440
23.10.2014, 11:32 9
Зосима, В каком смысле.
0
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
23.10.2014, 12:10 10
Maikl2020, неужели без посторонней помощи не можешь написать ввод коэфф-тов, вычисление дискриминанта и корней по известным формулам?

Добавлено через 6 минут
Maikl2020, кстати, в соседней теме есть уже готовое! https://www.cyberforum.ru/post6385445.html
0
23.10.2014, 12:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2014, 12:10
Помогаю со студенческими работами здесь

ООП. Класс квадратные матрицы
Ребята! Help me!!! Очень надеюсь на вашу помощь. с ООП очень туго:( может у кого-то есть эта прога,...

Функция, которая вычисляет корень уравнения
помогите написать функцию которая вычисляет корень уравнения ax+b=0 (a≠0).:sorry:

Рекурсивная функция, которая методом деления отрезка пополам находит корень уравнения
Разработать и испытать рекурсивную функцию Root (а, b, ε), которая методом деления отрезка пополам...

Квадратные уравнения
Написал программу: type TForm1 = class(TForm) a1: TEdit; b1: TEdit; c1: TEdit; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru