А165к

Задача А165к. Даны действительные числа [latex]a_{1}, a_{2}, \ldots[/latex]. Известно, что [latex]a_{1} < 0[/latex] и что среди [latex]a_{2}, a_{3}, \ldots[/latex] есть хотя бы одно отрицательное число. Пусть
[latex]a_{1}, \ldots, a_{n}[/latex] – члены данной последовательности, предшествующие
первому отрицательному члену ( [latex]n[/latex] заранее неизвестно).  Получить: [latex]\left|a_{1}-a_{n} \right|[/latex].

Введённые данные. [latex]\left|a_{1}-a_{n} \right|[/latex] Комментарий.
1 2 6 4 -8 0 6 8 -7 3 Пройден.
0,65 3,2 4 0 -3 2 0,65 Пройден.
0 -5 8 9 0 Пройден.
0,8 3 6 9 7,2 0 4 -2 3,2 Пройден.
1 -3 6 0 Пройден.

Код программы (C++):

Java:

 

Так как в моей формуле присутствует первый член последовательности, который, согласно условию, всегда больше 0, я вынесла его из общего ряда, поэтому его ввод с клавиатуры осуществляется вне цикла.

Затем мне нужно было найти n-ый член моей последовательности. Для этого я создала 2 переменных, в одной из которых хранится настоящее значение n-ого члена независимо от его знака. Если этот член  — число не отрицательное, то вспомогательной переменной присваивается его значение и цикл повторяется вновь. Если же условие неравенства не выполняется, то цикл заканчивается, и у нас остаётся значение нашей вспомогательной переменной (не отрицательное).

В том случае, если первый член последовательности является в то же время и n-ым, [latex]a_{n}[/latex] и вспомогательной переменной присваивается значение [latex]a_{1}[/latex]. И в этом случае модуль разницы будет равен 0.

После программа выводит модуль [latex]\left|a_{1}-a_{n} \right|[/latex].

Ознакомиться с кодом можно здесь (C++) и здесь (Java).

Related Images: