У меня есть программа, где пользователь может задать число массива (например 5) и заполнить его (например 12345). У меня есть функция добавления в этот массив числа ДО или ПОСЛЕ заданного со сдвигом вправо (например добавить число 9 ДО 3 и число 7 ПОСЛЕ 3, должно получиться: 12937). Ошибка в том, что в моей программе добавление ПОСЛЕ получается как нужно, со сдвигом вправо, а при добавлении числа ДО заданного у меня он без сдвига заменяет предыдущее число на заданное.
исправить код. Думаю, ошибка где-то в функции Dobavleniesosdvigomvlevo.
Пришлите кодом, а не словами!
import java.util.Scanner;
public class Mass {
int[] mass;
int size;
Scanner in = new Scanner(System.in);
int kolvo;
Mass(int s) {
this.size = s;
this.mass = new int[size];
}
public void Vivod() {
for (int i = 0;i i;j--)
{
mass[j]=mass[j-1];
}
mass[i+1]= el;
kolvo++;
}
}
public boolean isFull() {
return(kolvo==size);
}
public boolean isEmpty(){return (kolvo==0);}
}
// Внимание! Если программа не работает, обновите версию!
begin
var P:=new real[3,2]; // массив координат вершин
for var i:=0 to 2 do
(P[i,0],P[i,1]):=ReadReal2('Введите x и y вершины '+(i+1));
// длины сторон
var L:(real,real)->real:=(x,y)->Sqrt(x**2+y**2);
var a:=L(P[1,0]-P[0,0],P[1,1]-P[0,1]);
var b:=L(P[2,0]-P[1,0],P[2,1]-P[1,1]);
var c:=L(P[0,0]-P[2,0],P[0,1]-P[2,1]);
if (a+b>c) and (a+c>b) and (b+c>a) then // треугольник существует
if (a=b) or (a=c) or (b=c) then Writeln('Треугольник равнобедренный')
else Writeln('Треугольник не равнобедренный')
else Writeln('Треугольник построить невозможно')
end.
Замечание: для сборок ниже 1603 от 30.12.2017 необходимо заменить
Sqrt(x**2+y**2) на Sqrt(x*x+y*y)