class Main { public static void main(String[] args) { ArrayList<Integer> a = new ArrayList();
/** * Заполнение */ for (int i = 0; i < 50; i++) a.add(i, new java.util.Random().nextInt(100));
/** * Пузырь */ for (int i = 0; i < 50; i++) for (int j = 0; j < 50-i-1; j++) if (a.get(j) > a.get(j+1)){ int b = a.get(j); a.set(j, j+1); a.set(j+1, b); }
for (int i = 0; i < 50; i++) System.out.print(a.get(i) + " "); System.out.println("\n---");
/** * Удаляем */ a.remove(0);
for (int i = 0; i < 50-1; i++) System.out.print(a.get(i) + " "); } }
//PascalABC.Net 3.0, сборка 1064 const nn=50; var a:array[1..nn] of integer; i,n,imin:integer; begin Write('Введите количество элементов в массиве: '); Read(n); Randomize; Writeln('Исходный массив'); imin:=1; for i:=1 to n do begin a[i]:=Random(51)-25; Write(a[i],' '); if a[i]<a[imin] then imin:=i; end; Writeln; for i:=imin to n-1 do a[i]:=a[i+1]; Writeln('Массив-результат'); for i:=1 to n-1 do Write(a[i],' '); Writeln end.
А это версия для тех, кто думает, что Паскалю пора давно "на свалку": //PascalABC.Net 3.0, сборка 1064 begin var n:=ReadInteger('Введите количество элементов в массиве'); var a:=SeqRandom(n,-25,25).ToArray(); Writeln('Исходный массив:',#13#10,a); Writeln('Результат:',#13#10,a.Where(x->x<>a.Min)); end.
Тестовое решение: Введите количество элементов в массиве 15 Исходный массив: [-10,-15,8,-19,9,21,-22,-11,12,14,2,19,-25,-5,-15] Результат: [-10,-15,8,-19,9,21,-22,-11,12,14,2,19,-5,-15]
Можно сравнить понятность кода и его размер как со "школьным" решением, так и с программой на Java, приведенной в предыдущем ответе.
1. 55
2. 21
Объяснение:
1.
for i:=1 to 10 do a[i]:=i; - заполнение массива (элемент равен своему индексу)
i = 1 a[1] = 1
i = 2 a[2] = 2
i = 3 a[3] = 3
i = 4 a[4] = 4
i = 5 a[5] = 5
i = 6 a[6] = 6
i = 7 a[7] = 7
i = 8 a[8] = 8
i = 9 a[9] = 9
i = 10 a[10] = 10
for i:=1 to 10 do write ('a[',i,']=',a[i],' '); - вывод элементов массива на экран (в одну строку в виде a[1]=1 a[2]=2 и т.д.)
s = 0
s = s + a[i] (считаем сумму элементов)
s = 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
2.
for i:=1 to 10 do a[i]:=i+1; - заполнение массива (элемент равен своему индексу плюс единица)
i = 1 a[1] = 1 + 1 = 2
i = 2 a[2] = 2 + 1 = 3
i = 3 a[3] = 3 + 1 = 4
i = 4 a[4] = 4 + 1 = 5
i = 5 a[5] = 5 + 1 = 6
for i:=1 to 10 do write ('a[',i,']=',a[i],' '); - вывод элементов массива на экран (в одну строку в виде a[1]=1 a[2]=2 и т.д.)
s = 1
s = s + a[i] (считаем сумму элементов, учитывая начальное значение s)
s = 1 + 2 + 3 + 4 + 5 + 6 = 21