Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [] = task_three(a, b, c)
- input(1,:)= {'a', 'b', 'c'};
- if nargin == 0
- a = randn();
- b = randn();
- c = randn();
- input(2,:) = {num2str(a), num2str(b), num2str(c)};
- end
- if nargin == 1
- b = randn();
- c = randn();
- input(2,:) = {'', num2str(b), num2str(c)};
- end
- if nargin == 2
- c = randn();
- input(2,:) = {'', '', num2str(c)};
- end
- if nargin == 3
- input = {};
- end
- if nargin > 3
- error('To many argumnts to parse')
- end
- delta = calculate_delta(a, b, c);
- roots = calculate_roots(a, b, delta);
- disp(['Delta: ' , num2str(delta)])
- disp(['Roots: ', num2str(length(roots))])
- for i=1:length(roots)
- fprintf('X%s: %s\n', num2str(i), num2str(roots(1,i)));
- end
- for i=1:length(input)
- if ~strcmp(input(2, i), '')
- fprintf('%s: %s\n', input{1, i}, input{2, i})
- end
- end
- end
- function delta = calculate_delta(a, b, c)
- delta = (b^2) - (4*a*c);
- end
- function roots = calculate_roots(a, b, delta)
- if delta < 0
- roots = [];
- % not real roots
- end
- if delta == 0
- roots = -b / 2*a;
- end
- if delta > 0
- x1 = (-b + sqrt(delta))/ (2*a);
- x2 = (-b - sqrt(delta))/ (2*a);
- roots = [x1,x2];
- end
- end
Add Comment
Please, Sign In to add comment