ForeverStrong

Wypok_Task_Three

May 1st, 2020
547
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.37 KB | None | 0 0
  1. function [] = task_three(a, b, c)
  2.  
  3.     input(1,:)= {'a', 'b', 'c'};
  4.     if nargin == 0
  5.         a = randn();
  6.         b = randn();
  7.         c = randn();
  8.         input(2,:) = {num2str(a),  num2str(b),  num2str(c)};
  9.     end
  10.     if nargin == 1
  11.         b = randn();
  12.         c = randn();
  13.         input(2,:) = {'',  num2str(b), num2str(c)};
  14.     end
  15.     if nargin == 2
  16.         c = randn();
  17.         input(2,:) = {'', '', num2str(c)};
  18.     end
  19.     if nargin == 3
  20.         input = {};
  21.     end
  22.     if nargin > 3
  23.         error('To many argumnts to parse')
  24.     end
  25.  
  26.     delta = calculate_delta(a, b, c);
  27.     roots = calculate_roots(a, b, delta);
  28.  
  29.     disp(['Delta: ' , num2str(delta)])
  30.     disp(['Roots: ', num2str(length(roots))])
  31.     for i=1:length(roots)
  32.         fprintf('X%s: %s\n',  num2str(i),  num2str(roots(1,i)));
  33.     end
  34.     for i=1:length(input)
  35.         if ~strcmp(input(2, i), '')
  36.             fprintf('%s: %s\n', input{1, i}, input{2, i})
  37.         end
  38.     end
  39.  
  40. end
  41.  
  42. function delta = calculate_delta(a, b, c)
  43.     delta = (b^2) - (4*a*c);
  44. end
  45.  
  46. function roots = calculate_roots(a, b, delta)
  47.  
  48.     if delta < 0
  49.         roots = [];
  50.         % not real roots
  51.     end
  52.     if delta == 0
  53.         roots = -b / 2*a;
  54.     end
  55.     if delta > 0
  56.         x1 = (-b + sqrt(delta))/ (2*a);
  57.         x2 = (-b - sqrt(delta))/ (2*a);
  58.         roots = [x1,x2];
  59.     end
  60. end
Add Comment
Please, Sign In to add comment