Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Задача 1
- % 1,1,2,3,5,8,13 вывести первые N используя while и не используя cat либо "[ , ]"
- clear
- clc
- N = 10; % количество чисел в массиве
- Arr = [1,1];
- while N > length(Arr)
- Arr(end + 1)=Arr(end - 1) + Arr(end); % Arr(end)посследний элемент массив
- end
- % Задача 2
- % С помощью разложения в ряд определить значение числа Эилера "e"
- % a) с заданной точностью Et
- % b) с известным колличеством слогаемых
- % Ряд Тейлора Мклорена exp(x)=((x^n)/n!) ряд от 1 до бесконечности
- % a % Задача 2
- clear
- clc
- N = 7; % количество чисел в массиве
- expX = 0; % exp(x)=((x^n)/n!)
- for N = 0:N
- Nfak = factorial( N );
- expX = expX + 1/(Nfak);
- end
- %b % Задача 2
- clear
- clc
- k = 0; % счетчик
- expX = 0; % exp(x)=((x^n)/n!)
- eps = 10^(-10); % желаемая точность
- X = 2; % степень в которую возводим e^x
- EXPnative=exp(X); % настоящая реальная экспонента
- while true % бесконечный цикл
- Nfak = factorial( k );
- expX = expX + (X^k)/(Nfak); % вычисляемая экспонента
- Tochnost = abs((EXPnative-expX)/EXPnative);
- Proverka = eps > Tochnost;
- if Proverka % условие выхода из цикла
- break;
- end
- k = k+1;
- end
- % Задача 3
- % Определить является ли числовой массив монотонным (убывающим, возростающим)
- % sin(x) = x / |x|;
- clear
- clc
- %N = [2,3,4,5,7,1,9]; % заданный массив не монотонный
- %N = [2,3,4,5,7,8,9,10]; % заданный массив монотонный
- N = [3,2,2,1]; % заданный массив монотонный с подвохом где подряд идут равные числа
- Ndiff = diff(N); % вычитание порядковых чисел массива
- NdiffMax = max(Ndiff); % максимал число
- NdiffMin = min(Ndiff);
- markMax = sign(NdiffMax); % sign(NdiffMax) определяет знак максимального числа
- markMin = sign(NdiffMin); % sign(NdiffMax) определяет знак минимального числа
- chek = markMax == markMin; % проверяем равны ли знаки
- if chek
- disp('Монотонный ряд');
- else
- if prod(Ndiff)==0 % проверка на равные числа в массиве подрят prod(Ndiff) - это произведение чисел подряд
- disp('Монотонный ряд');
- else
- disp('Не монотонный ряд');
- end
- end
- % Задача 4
- % В первый день лыжник пробежал 10 км, каждый день лыжник увеличивал пробег
- % на 10%. Определить: a) в какой по счёту день лыжник пробежал >= 20км;
- % b) В какой день суммарный пробег превысит 100км;
- % Задача 4 первый вариант решения
- clear
- clc
- Probeg = 10;
- Probeg20km = 20;
- Day = 1; % первый день
- ProbegSum = Probeg;
- a=0;
- while true % бесконечный цикл начинаем со второго дня
- chek20km = Probeg >= Probeg20km;
- if chek20km
- disp(['Пробежал более 20км в день = ',num2str(Day)]);
- if a == 1 % a - контроль выхода из цыкла
- break;
- end
- a=1;
- end
- Probeg = Probeg * 1.1;
- ProbegSum = ProbegSum + Probeg;
- chekProbegSum = ProbegSum > 100;
- if chekProbegSum
- disp(['Пробежал более 100км всего в день= ', num2str(Day)]);
- if a == 1 % a - контроль выхода из цыкла
- break;
- end
- a=1;
- end
- Day = Day + 1;
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement