0 / 0 / 0
Регистрация: 10.05.2021
Сообщений: 2
1

Сортировка по абсолютной величине

23.03.2022, 17:43. Показов 464. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
PLS Help.
Доброго времени суток. Большая просьба, может ли кто-то помочь с сортировкой?
Есть программа которая рассчитывает значения с по введенным значениям х и р. Нужно отсортировать по абсолютной величине (х - р) в порядке убывания.

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

Вот сам код.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
program Lab_9;
uses crt;
var i,n,d,k:integer;
x:array[1..100] of real;
p:array[1..100] of real;
c:array[1..100] of real;
sort:array[1..100] of integer;
r:array[1..100] of integer;
begin
clrscr;
writeln('Введите количество пар');
readln(n);
for i:=1 to n do begin
    writeln('Введите x и p');
    write('x[i]=');readln(x[i]);
    write('p[i]=');readln(p[i]);
end;
clrscr;
for i:=1 to n do
   begin
    sort[i]:= round(abs(x[i] - p[i]));
   end;
   for i:= 1 to n - 1 do
   for d:= 1 to n - i do
    begin
     if sort[d] < sort[d+1] then
      begin
       k:= sort[d];
       sort[d]:= sort[d+1];
       sort[d+1]:= k;
      end;
    end;
for i:=1 to n do
    if sqr(p[i])<>0 then
     if (sqr(x[i])+p[i]+6.5)>0 then
      if (x[i]+1)>=0 then
       if (abs(p[i])-sqrt(sqrt(x[i]+1)))*(sin(abs(p[i])-abs(x[i]))+1.5)<>0 then
       c[i]:=((exp(sqr(x[i])/sqr(p[i]))+sqr(ln(sqr(x[i])+p[i]+6.5))))/((abs(p[i])-sqrt(sqrt(x[i]+1)))*(sin(abs(p[i])-abs(x[i]))+1.5))
       else r[i]:=1
      else r[i]:=2
     else r[i]:=3
    else r[i]:=4;
if i>0 then
begin
     writeln('--------------------------------------');
     writeln('| S| X | P | C |  Примечание |');
     writeln('--------------------------------------');
end;
for i:=1 to n do
    begin
         if r[i]=0 then
            begin
                 writeln('| ',sort[i]:2,'|',x[i]:2:2,'|',p[i]:2:2,'|',c[i]:0:2,'| Примечаний нет|');
                 writeln('--------------------------------------');
            end;
         if r[i]=1 then
            begin
                 writeln('| ',sort[i]:2,'| ',x[i]:2:3,' |',p[i]:2:3,'|    На ноль делить нельзя  |');
                 writeln('--------------------------------------');
            end;
         if r[i]=2 then
            begin
                 writeln('| ',sort[i]:2,'| ',x[i]:2:2,'| ',p[i]:2:2,'|  Подкоренное выражение <=0 |');
                 writeln('--------------------------------------');
            end;
         if r[i]=3 then
            begin
                 writeln('| ',sort[i]:2,'| ',x[i]:2:2,'| ',p[i]:2:2,'|  Н.У. ОДЗ ln |');
                 writeln('--------------------------------------');
            end;
         if r[i]=4 then
            begin
                 writeln('| ',sort[i]:2,'| ',x[i]:2:2,'| ',p[i]:2:2,'| На ноль делить нельзя |');
                 writeln('--------------------------------------');
            end;
     end;
writeln('Нажмите любую кнопку для выхода');
readkey;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2022, 17:43
Ответы с готовыми решениями:

Найти наибольший по абсолютной величине элемент из отрицательных элементов массива R(N)
Здраствуйте,помогите решить. Из отрицательных элементов массива R(N) найти наибольший по...

Найти наименьшее по абсолютной величине отрицательный элемент каждого столбца матрицы
Здрасте! Помогите пожалуйтса. Очень прошу Найти наименьшее по абсолютной величине отрицательный...

Найти найменьшие по абсолютной величине элементы каждой строки матрицы E(m,m), находящиеся над главной диагональю
Нужна помощь в задаче. Найти найменьшие по абсолютной величине элементы каждой строки матрицы...

Дан массив размером М. Заменить в массиве все отрицательные числа на равные по абсолютной величине положительные
Здравствуйте! Решите задачку. Дано целое положительное число М и массив целых чисел А1,А2,...Аm....

1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,076
Записей в блоге: 1
24.03.2022, 14:21 2
Pascal
19
20
21
22
23
24
25
26
  for i:=1 to n do sort[i]:=i;
  for i:=1 to n-1 do for d:=1 to n-1 do
    if Abs(x[sort[d]]-p[sort[d]])<Abs(x[sort[d+1]]-p[sort[d+1]]) then begin
      k:=sort[d]; sort[d]:=sort[d+1]; sort[d+1]:=k;
    end;
. . .
  for i:=1 to n do
    WriteLn(x[sort[i]],' ',p[sort[i]]);
Добавлено через 2 минуты
Либо физическая сортировка x и p:
Pascal
19
20
21
22
23
  for i:=1 to n-1 do for d:=1 to n-1 do
    if Abs(x[d]-p[d])<Abs(x[d+1]-p[d+1]) then begin
      t:=x[d]; x[d]:=x[d+1]; x[d+1]:=t;
      t:=p[d]; p[d]:=p[d+1]; p[d+1]:=t;
    end;
1
24.03.2022, 14:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2022, 14:21
Помогаю со студенческими работами здесь

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

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

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

Определить номер наименьшего по абсолютной величине
Дан одномерный массив А из n элементов. Определить номер наименьшего по абсолютной величине...

Произведение элементов массива по абсолютной величине
Определить с помощью FUCTION для каждого массива Произведение элементов по абсолютной величине...

Найти минимальное значение по абсолютной величине
Задача. Дан двумерный массив m. Найти минимальный элемент по абсолютной величине и его...

Найти минимальный по абсолютной величине элемент массива
Нужно обработать одномерный массив из существующих и найти минимальный по абсолютной величине ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru