A841

Задача. «Исправление ошибок». Пусть по некоторому каналу связи передается сообщение, имеющее вид последовательностей нулей и единиц (или, аналагично, точек и тире). Из-за помех, возможен ошибочный прием некоторых сигналов: нуль может быть воспринят как единица и наоборот. Можно передавать каждый сигнал трижды, заменяя, например, последовательность 1, 0, 1 последовательностью 1, 1, 1, 0, 0, 0, 1, 1, 1. Три последовательные цифры при расшифровке заменяются той цифрой, которая встречается среди них по крайне мере дважды. Такое утраивание сигналов существенно повышает вероятность правильного приема сообщения. Написать программу расшифровки.

1 0 1 0 0 1 1 1 0 1 0 1
0 0 0 1 1 1 0 0 0 0 1 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Записываем входные данные в вектор. Делим вектор на части по три символа. Пробегаем по этим трем символам, увеличивая счетчик, если символ «1». Если единиц больше, чем нулей, то записываем «1». Если нулей больше, чем единиц, то записываем «0». Удаляем фрагмент вектора, для удобства, и пробегаем по следующим трем символам.

Код программы можно посмотреть тут

A699

A699. Даны квадратные матрицы [latex]A[/latex] и [latex]B[/latex] порядка [latex]n[/latex].Получить матрицу [latex]AB-BA[/latex].
Размер матрицы Матрица А Матрица В Результат
3 1 2 3
4 5 6
7 8 9
9 8 7
6 5 4
3 2 1
-60 -90 -120
30     0   -30
120   90  60
2 3  13
21 8
7 9
2 4
-163 -84
73   163

Создаем матрицы [latex]A, B, C, D, E,[/latex] где [latex]A[/latex]-первая матрица, [latex]B[/latex]- вторая матрица, [latex]C[/latex]-матрица [latex]AB[/latex], [latex]B[/latex]- матрица [latex]BA[/latex], а [latex]E[/latex]- матрица [latex]AB-BA[/latex]. Вводим с клавиатуры матрица [latex]A[/latex] и [latex]B[/latex], а остальные заполняем нулями. Находим матрицу [latex]C[/latex] и [latex]D[/latex], после чего находим матрицу [latex]E[/latex].

Код программы можно посмотреть тут

AA14

Задача. В заданной строке удалить первый символ «.», который найдется в строке.

17.05.2015 1705.2015
.РЛ. РЛ.
Удачи, мистер Горски Нет точек

Вводим строку. Ищем первое вхождение символа «.», после чего выходим из цикла и удаляем этот символ. И добавляем условие, когда точек нет.

Код программы можно посмотреть тут 

М6a

а) Чётные числа из стандартного потока ввода поместить в хранилище с именем [latex]Even[/latex], а нечётные —[latex]Odd[/latex]. Во входном потоке неизвестное количество целых чисел через пробел.

Поток ввода Результат
4 8 15 16 23 42 4 8 16 4215 23
0 1 1 2 3 5 8 13 21 34 55 89 144 0 2 8 34 1441 1 3 5 13 21 55 89

Код программы:

Создаем два вектора [latex] Odd [/latex] и [latex]Even[/latex]. С помощью цикла [latex]while[/latex] вводим неопределенное количество элементов. Внутри цикла с помощью [latex]push[/latex]_[latex]back[/latex] четные числа помещаем в [latex]Even[/latex] , а нечетные в [latex]Odd[/latex].

Код программы можно посмотреть тут

Ю3.19

Для заданных [latex]a[/latex] и  [latex]p[/latex] вычислить [latex]\sqrt[p]{a}[/latex], используя рекуррентную формулу:

[latex]x_{n+1}=\frac{x_{n}}{p^{2}}[(p^{2}-1)+\frac{1}{2}(p+1)\frac{a}{x_{n}^{p}}-\frac{1}{2}(p-1)\frac{x_{n}^{p}}{a}][/latex];

Сколько итераций надо выполнить, чтобы для заданной погрешности [latex]\varepsilon[/latex] было справедливо соотношение [latex]\mid x_{n+1}-x_{n} \mid [/latex] [latex] \leq[/latex][latex]\varepsilon[/latex]?При каких начальных приближениях [latex]x_{0}[/latex] процесс сходится?

a p xz eps i xn x Комментарий
16 4 1 0.000001 5 4 4
17 2 2 0.01 3 4.12311 4.12311
26 4 12 0.1 Превышено ограничение на время

Код программы:

Код на Java:

 

Вводим с клавиатуры [latex]a[/latex], [latex]p[/latex], [latex]xz[/latex], [latex]eps[/latex], где [latex]xz[/latex]- наше приближение [latex]x_{0}[/latex], а [latex]eps[/latex] заданная погрешность.
С помощью цикла и рекуррентно заданной формулы получаем [latex]xn[/latex].С помощью счетчика [latex]i[/latex] получаем количество итераций.
Если программа вычисляет слишком долго, то мы можем сказать, что процесс не сходится.

Код программы можно посмотреть тут

Код программы можно посмотреть тут

А413в

Таблица футбольного чемпионата задана квадратной матрицей порядка [latex]n[/latex], в которой все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не принадлежащий главной диагонали, равен  [latex]2[/latex],  [latex]1[/latex] или  [latex]0[/latex] (числу очков, набранных в игре:  [latex]2 -[/latex] выигрыш,  [latex]1 -[/latex] ничья,   [latex]0 -[/latex] проигрыш).

в)Выяснить, имеется ли хотя бы одна команда, выигравшая более половины игр.

Матрица Результат
0 1 0
1 0 0
2 2 0
Yes
0 1 1 1
1 0 1 2
1 1 0 2
1 0 0 0
No
0 2 2 1 1
0 0 1 1 2
0 1 0 2 0
1 1 0 0 1
1 0 2 1 0
No

Код программы:

 

Зададим квадратную матрицу [latex]a[n][n][/latex]. С помощью счетчика [latex]s[/latex] посчитаем сколько у каждой команды побед. Если побед больше, чем половина от всех игр(всего игр [latex]n-1[/latex]), то выведем «Yes», в ином случае  «No» .

Надо отметить, что неравенство строгое.

Код программы можно посмотреть тут

Ю4.32

Суммы по косой. Просуммировать элементы матрицы [latex]A(n,n)[/latex] по каждой из линий , параллельных главной диагонали. Напечатать полученные суммы.

Матрица Суммы
1 2 3
4 5 6
7 8 9
7 12 15 8 3
-1 2 -3 4
10 5 11 6
-7 8 -9 2
12 5 13 6
12 -2 31 1 15 3 4
0 0
0 0
0 0 0

Код программы:

Сначала вводим размер квадратной матрицы —  [latex]n[/latex]. Создаем одномерный массив [latex]b[/latex] в который будет результат. В нем будет [latex]2n-1[/latex] элементов, которые мы заполняем нулями.После чего в цикле будем накапливать суммы [latex]b[i-j+n-1]+=a[i][j].[/latex].

При  [latex]i=j[/latex], мы записываем сумму диагоналей в  [latex]b[n-1][/latex], который находиться в середине нашего массива  [latex]b[/latex], как нам и нужно.
Если  [latex]i>j[/latex], мы записываем суммы в элементы после середины нашего массива [latex]b[/latex].
Если  [latex]i<j[/latex], мы записываем суммы в элементы до середины нашего массива [latex]b[/latex].
Константу, которая нам нужна, будем искать по формуле [latex] max(j) — min(i)[/latex], которая равна [latex]n-1[/latex].

Код программы можно посмотреть тут

А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]a_1,\ldots,a_n[/latex]

Последовательность Среднее геометрическое
2 2 2 -3 4 2
3 6 8 -9 4 5 5.24148
3 4 5 6 -2 4.35588
15 12 13 -1 2 13.2761
2 -1 2

Код программы:

Считывать числа с потока ввода. Умножаем числа пока не встретится отрицательное.После чего извлекаем корень используя данные счетчика.

Код программы можно посмотреть тут

A106

Даны действительные числа [latex]a, b[/latex], натуральное число  [latex]n(b>a) [/latex]. Получить [latex](f_1+…+f_n)h[/latex], где

[latex]h=\frac{b-a}{n}[/latex],      [latex]f_i=\frac{a+(i-\frac{1}{2})h}{1+(a+(i-\frac{1}{2})h)^{2}}[/latex]

a b n h f Комментарий
5 7 0 Введенное ‘n’ не натуральное
17 10 15 Первое введенное число больше второго
47.421 57.421 5 2 1.912507e-01 Пройден
3 12 6 1.5

1.330323e+00

Пройден
1 5 1 4 1.2 Пройден
2 14 2 6 1.694830e+00 Пройден

Код программы:

Код на Java:

 

Дано [latex]a,b,n[/latex]. Если [latex]n<1[/latex] или [latex]a=b[/latex], то выведем ошибку. Если [latex]a>b[/latex], то выведем ошибку.
По формуле вычислим [latex]h=\frac{b-a}{n}[/latex]  и с помощью цикла по формуле [latex]f_i=\frac{a+(i-\frac{1}{2})h)}{1+(a+(i-\frac{1}{2})h)^{2})}[/latex] вычислим сумму. Домножим сумму на [latex]h[/latex].

Код программы на С++ можно посмотреть тут
Код программы на Java можно посмотреть тут

А56

Даны действительные числа  [latex]a,b,c,x,y.[/latex] Выяснить,пройдет ли кирпич с ребрами [latex]a,b,c[/latex] в прямоугольное отверстие со сторонами [latex]x[/latex]и [latex]y[/latex]. Просовывать кирпич в отверстие разрешается только так,чтоб каждое из его ребер было параллельно или перпендикулярно каждой из сторон отверстия.

a b c x y Комментарий
78 1 1 2 2 Yes
-2 15 1 23 63  The task is not correct
 2.123  5.189  1.56  7  5  Yes
 13.213 4815162342  666  7  12  No

Код программы:

Код на Java:

 

Сначала проверим корректность входных данных,потом проверим условие «входимости» каждой из граней. Если условие верно,то выводим «Yes»,если нет- «No».

Условие «входимости» заключается в том ,что мы сравниваем длины сторон прямоугольника и ребер кирпича.
Если кирпич имеет хотя бы одну общую точку с прямоугольником,то он не пройдет,поэтому неравенство строгое.

Запустить код и проверить тесты можно тут.
Запустить код и проверить тесты можно тут.

А35б

Даны действительные числа [latex]x,y,z[/latex].Вычислить [latex]min^2(x+y+\frac{z}{2},xyz)+1[/latex]

x y z m
4.8 5.7 2.1 134.40250
0 0 0 1
-3.21 2.89 4.25 1555.47453

Код программы:

Код на Java:

 

Вводим числа [latex]x,y,z[/latex]. Вычисляем [latex]a=x+y+\frac{z}{2}[/latex]. Вычисляем [latex]b=xyz[/latex].Сравниваем два числа и присваиваем [latex]min[/latex] минимальное из значений.
Вычисляем  [latex]m=min^2+1[/latex].

Запустить код на С++ и проверить тесты можно тут.
Запустить код на Java и проверить тесты можно тут.

Ю1.10

Задача Ю1.10. Квадратное уравнение. Найти корни квадратного уравнения, заданного своими коэффициентами, с положительным дискриминантом; подстановкой в уравнение убедиться в погрешности вычислений.

a b c x1 x2 p1 p2 Комментарий
15 36 -25  0.56257  -2.96257  -2e-15  -7e-15 Пройден
0 0 0 Уравнение не квадратное
0 0 16 Уравнение не квадратное
1 2 3 Дискриминант не положителен
1.1112 2.2316 6.6345 Дискриминант не положителен
-24.182 15.77 36.2  -0.94015  1.59228  -3e-15  3e-15 Пройден

Код программы:

Код на Java:

Даны коэффициенты [latex]a[/latex], [latex]b[/latex] , [latex]c[/latex]. У задачи есть несколько разных путей решения в зависимости от введенных коэффициентов.

  1. Уравнение в случае [latex] a=0. [/latex] В случаи ввода нулевого коэффициента при старшем члене программа должна вывести на экран «Уравнение не квадратное».
  2. Уравнение в случае   [latex] a\neq 0. [/latex] при [latex] D<=0. [/latex]  В данном случае программа должна вывести на экран «Дискриминант не положителен «.
  3. Уравнение в случае   [latex] a\neq 0. [/latex] при [latex] D>0. [/latex]..Если дискриминант положительный,то  уравнение имеет два корня равных [latex]x_1=\frac{-b+\sqrt{D}}{2a}[/latex] и  [latex]x_2=\frac{-b-\sqrt{D}}{2a}[/latex]   . Подставив корни в уравнение получим погрешность [latex]p_1[/latex]  и [latex] p_2. [/latex]

 

Запустить код на С++ и проверить тесты можно тут
Запустить код на Java и проверить тесты можно тут