В массиве действительных чисел найти сумму квадратов восьми наименьших...

0 голосов
55 просмотров

В массиве действительных чисел найти сумму квадратов восьми наименьших елементов(упорядочение масивов)


Информатика (37 баллов) | 55 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1467 от 02.06.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-99,99).Select(x->x/10).ToArray;
  a.Println;
  Writeln('s=',a.OrderBy(x->x).Take(8).Select(x->x*x).Sum)
end.

Пример
n= 13
2.6 1.7 6.9 -9.1 -5.2 -2.3 -5.3 -1.1 -1.7 -2.5 7.6 -3.4 3.6
s=165.14
(150k баллов)
0

треба через упорядкування масивів

0

а подлиннее програму можно сделать?

0

Можно, в 31 строку=)

0 голосов

Const
   N = 13;
Var
   A:array[1..N] of real;
   S:real;
   i,j,Min:integer;
Begin
Write('Исходный массив:     ');
For i:= 1 to N do
    Begin
    A[i]:=random*(N+1)-N;
    Write(' ',A[i]:0:1)
    End;
WriteLn;
Write('Упорядоченный массив:');
For i:= 1 to N do
    Begin
    Min:=i;
    For j:= i+1 to N do
        if A[j] < A[Min] then Min:=j;
    S:=A[i];
    A[i]:=A[Min];
    A[Min]:=S;
    Write(' ',A[i]:0:1)
    End;
S:=0;
For i:= 1 to 8 do
    S:=S+A[i]*A[i];
WriteLn;
Write('S = ',S);
End.

(6.6k баллов)
0

почему так много минусовых чисел

0

Потому что хотел написать:
"A[i]:=random*(N*2+1)-N;"
а написал так:
"A[i]:=random*(N+1)-N;"

0

то мне поменять?

0

Да, если хотите, чтобы поровну было

0

сортировка по в порядке возрастания методом пузырька?

0

Как конкретно этот метод называется - не знаю.