Версия для печати
Убрать все задачи
Дан массив. Требуется вставить в него на место номер B элемент, равный C,
сдвинув все последующие элементы (включая элемент, стоящий на B-ом месте)
вправо.
Входные данные
Во входном файле записано сначала число N - количество элементов массива
(2<=N<=100), затем N чисел из диапазона Integer - элементы массива,
затем число B (1<=B<=N) и число C (из диапазона Integer).
Выходные данные
В выходной файл выведите N+1 число - элементы массива с вставленным элементом.
Примечание
Вы должны вставить элемент непосредственно в массив, а не сделать
вид при выводе данных, что у вас появился такой элемент. Также вы не
должны для этого заводить в программе дополнительный массив.
То есть ввод данных осуществляется следующим фрагментом:
read(fi,n);
for i:=1 to n do read(fi,a[i]);
read(fi,b,c);
А вывод - следующим:
for i:=1 to n+1 do write(fo,a[i],' ');
Необходимые фрагменты вы можете найти в файле P129.PAS
Пример входного файла
5
1 3 5 6 7
2 10
Пример выходного файла
1 10 3 5 6 7
Текст программы P129.PAS
const nmax=100;
var a:array[1..nmax] of integer;
n:integer;
i:integer;
b,c:integer;
fi,fo:text;
begin
assign(fi,'input.txt');
reset(fi);
assign(fo,'output.txt');
rewrite(fo);
read(fi,n);
for i:=1 to n do read(fi,a[i]);
read(fi,b,c);
{Вы должны писать здесь}
for i:=1 to n+1 do write(fo,a[i],' ');
close(fi);
close(fo);
end.

Решение
Докажите, что для любого натурального числа $n\geqslant 2$ и для любых действительных чисел $a_1, a_2, \ldots, a_n$,
удовлетворяющих условию $a_1+a_2+\ldots+a_n\ne 0$, уравнение
\begin{align*}
&a_1(x-a_2)(x-a_3)\ldots(x-a_n)+\\+&a_2(x-a_1)(x-a_3)\ldots(x-a_n)+\ldots\\
\ldots+&a_n(x-a_1)(x-a_2)\ldots(x-a_{n-1})=0
\end{align*}
имеет хотя бы один действительный корень.

Решение