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

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

16.02.2013, 22:52. Показов 6660. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
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,474
Записей в блоге: 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
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,445
21.10.2014, 19:46 5
Зосима, Здравствуй. Мне тоже понадобился, решение квадратное уравнения на M-файлах пожалуйста помогите.
Например такой уравнения https://www.cyberforum.ru/cgi-bin/latex.cgi?x^2+5x-6=0
0
Модератор
Эксперт по математике/физике
 Аватар для VSI
5277 / 4059 / 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
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,445
21.10.2014, 20:27 7
VSI, Спасибо за запоминания. Но я хочу что написать программу т.е. D>0, D<0, D=0 ну все условие выполнялись.
0
 Аватар для Зосима
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,474
Записей в блоге: 17
22.10.2014, 19:59 8
Maikl2020, с ООП или просто? неужели ты сам не в состоянии?
0
Всегда онлайн
 Аватар для Maikl2020
49 / 49 / 10
Регистрация: 13.04.2014
Сообщений: 1,445
23.10.2014, 11:32 9
Зосима, В каком смысле.
0
 Аватар для Зосима
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,474
Записей в блоге: 17
23.10.2014, 12:10 10
Maikl2020, неужели без посторонней помощи не можешь написать ввод коэфф-тов, вычисление дискриминанта и корней по известным формулам?

Добавлено через 6 минут
Maikl2020, кстати, в соседней теме есть уже готовое! https://www.cyberforum.ru/post6385445.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.10.2014, 12:10
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Исследование байт-кода Python: подключаем дизассемблер
stackOverflow 19.02.2025
Многие знают, что Python - интерпретируемый язык, но мало кто задумывается о том, что происходит между написанием кода и его выполнением. На самом деле Python использует промежуточное представление. . .
Исследование байт-кода Python: компиляторы против интерпретаторов
stackOverflow 19.02.2025
Понимание байт-кода Python - основополагающий аспект для разработчиков, стремящихся глубже понять внутренние механизмы языка и оптимизировать производительность своих программ. Байт-код представляет. . .
Comprehensions в Python - что это такое?
stackOverflow 19.02.2025
Когда речь заходит о Python, одной из его самых красивых и мощных возможностей являются списковые включения или comprehensions. Это особые синтаксические конструкции, позволяющие создавать новые. . .
Python правда такой медленный? Развенчиваем миф о медлительности
stackOverflow 19.02.2025
Когда речь заходит о выборе языка программирования для нового проекта, вопрос производительности часто становится одним из ключевых факторов. Python, несмотря на свою популярность и простоту. . .
Динамические формы в Flask
stackOverflow 19.02.2025
Работа с веб-формами часто требует гибкости в отношении количества полей, которые пользователь может заполнить. Представьте ситуацию, когда вам нужно создать форму для ввода контактных данных, где у. . .
Обнаружение объектов в реальном времени на Raspberry Pi с OpenCV и Movidius NCS
stackOverflow 19.02.2025
Технология обнаружения объектов в реальном времени становится все более востребованной в различных областях - от систем безопасности до автономных транспортных средств. Особый интерес представляет. . .
где chromium хранит пароли и как их обнулить в пожарном варианте
jigi33 19.02.2025
Where is the chromium browser stores passwords for a sites где chromium-подобный браузер хранит пароли и как их обнулить в пожарном варианте (see screenshot)
howto get access to external internet resources with kinit
jigi33 19.02.2025
Решение проблемы с необходимостью доп. авторизации по Керберос для автоотработки аутентификации на прокси-сервер (see screenshot)
Отслеживание автомобилей и определение скорости с OpenCV и Python на Raspberry Pi
stackOverflow 19.02.2025
В этой статье мы рассмотрим создание системы отслеживания транспортных средств и определения их скорости с использованием компьютерного зрения и библиотеки OpenCV. Наше решение основано на принципе. . .
ENV (environments) valid paths in linux
jigi33 19.02.2025
Environments paths (see screenshot)
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru