В команде есть: 1. Синьерестый аналитик
2. 2 разработчика: джун и сеньор
3. Мидл тестировщик
Аналитик разговаривает с заказчиком, после чего пишет спецификацию. Эта спецификация попадает разработчикам, которые пишут код. А после этого тестировщик проверяет, что всё сделано в соответствии с требованиями.
Каждый раз, когда задача уходит на прод (после каждой итерации разработки), заказчик оценивает своё недовольство по шкале от 0 до 10. Где 0 - это, всё замечательно, а 10 - ужасно.
Аналитик с вероятностью 0.1 допускает ошибку в требованиях, что приводит к повышению недовольства заказчика на 4.
С вероятностью 0.4 задачу делает джун разработчик. При этом, после разработки джун генерирует задачу на техдолг с вероятностью 0.5, а синьор с вероятностью 0.2.
Тестировщик пропускает баг на прод с вероятностью 0.2, что повышает недовольство заказчика на 3. Если баг был найден, то задача остаётся на следующую итерацию. С задачей всё ок в 60% случаев.
Сейчас в бэклоге есть 10 задач. В одну итерацию от анализа до разработки берется 2 задачи. Если есть задачи на тех-долг, то хотя бы одна задача должна быть сделана в итерации. Каждый раз, когда задача заказчика не берётся из бэклога в работу это приводит к росту недовольства на 1.
Нужно определить:
1. Количество итераций за которые будут сделаны все задачи в самом хорошем случае и какова вероятность наступления этого события. То же самое для самого плохого случая.
2. Общий уровень недовольства заказчика в самом плохом случае по 5 итераций и какова вероятность наступления этого события.
PascalABC.NET 3.2, сборка 1382 от 06.02.2017
Если программа не работает, обновите версию!
№1
begin
var a:=ReadArrInteger('Вводите числа:',ReadInteger('n='));
var im:=a.IndexMax;
Writeln('Максимальный элемент номер ',im+1,' равен ',a[im])
end.
Пример
n= 6
Вводите числа: 13 8 -15 0 16 -24
Максимальный элемент номер 5 равен 16
№2
begin
var a:=ReadArrInteger('Вводите числа:',ReadInteger('n='));
Sort(a,(x,y)->x>y);
a.Println
end.
Пример
n= 5
Вводите числа: 5 -4 6 0 5
6 5 5 0 -4
№3
begin
var a:=ArrRandom(ReadInteger('n='),-54,33); a.Println;
Sort(a,(x,y)->x>y); a.Println
end.
Пример
n= 14
-2 2 -10 17 18 -3 24 -30 -42 12 -11 -53 13 21
24 21 18 17 13 12 2 -2 -3 -10 -11 -30 -42 -53
№4
begin
var a:=ReadArrInteger('Вводите числа:',ReadInteger('n='));
var b:=a.Where(x->x>0); b.Println
end.
Пример
n= 14
Вводите числа: -2 2 -10 17 18 -3 24 -30 -42 12 -11 -53 13 21
2 17 18 24 12 13 21