Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function task3_3(X)
- % ПУНКТ 3
- X = [-2.9, 0.01, 4.915, -15.05, 0, -0.35, -0.364, 67, 0.6, -0.22, -0.192, 1, 0, -0.04, 0.092, -37.6, 0];
- len = length(X);
- printf(' Входной массив X:\n\n');
- disp(X);
- k = 0;
- for i = 1:len
- ifNotZero(X(i)); % формируем массив из ненулевых элементов и при этом подсчитываем количество нулей
- endfor
- X = sorting(Y, len-k); % сортируем массив из ненулевых элементов
- while k > 0
- X = [0, X]; % добавляем столько нулей в начало отсортированного массива X, сколько насчитали функцией ifNotZero
- k -= 1;
- endwhile
- printf('\n Отсортированный массив X с нулями в начале:\n\n');
- disp(X);
- %___________________________________________________________________
- function ifNotZero(x) % т.к. эта функция объявляется внутри основной фукнции, передавать Y и k необязательно
- if x ~= 0
- Y(end+1) = x; % Y - массив, наполняющийся ненулевыми элементами
- else
- k += 1; % считаем количество нулей
- endif
- endfunction
- %___________________________________________________________________
- endfunction
- function X = sorting(X, len) % сортировка пузырьком; на вход: массив и его длина
- for j = 1:len-1
- for i = 1:len-1
- if X(i) > X(i+1)
- temp = X(i);
- X(i) = X(i+1);
- X(i+1) = temp;
- endif
- endfor
- endfor
- endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement