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

Подпрограмма сортировки массива по возрастанию среднего арифметического всех цифр в числе

11.02.2019, 22:34. Показов 2823. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан массив, заполненный случайными целыми числами в диапазоне от -30000 до 30000.

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

Например из массива: 1 22 33 4444 533 36, получим 1 22 33 533 4444 36.

Размер массива заранее задан константой N. Используйте заголовок:

procedure sort(var m: TMas);
Тип ТMas задан как array[1..N] of longint и может использоваться для описания параметров подпрограмм.

Используйте сортировку методом простого обмена ("пузырек").
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2019, 22:34
Ответы с готовыми решениями:

Подпрограмма: отсортировать элементы массива по возрастанию количества цифр, кратных трем, в числе
Дан массив, заполненный случайными целыми числами в диапазоне от -30000 до 30000. Напишите...

Вычисление среднего арифметического всех двузначных числе, оканчивающихся на цифру 9
Добрый вечер. Задания такое "Составить программу вычисления среднего арифметического всех...

Подсчитать количество чётных цифр, бильших среднего арифметического всех цифр
Подсчитать кол-во чётных цифр, бильших среднего арифметического всех цифр! Пожалуйсто решите,я...

Вычисление среднего арифметического всех цифр введенных чисел
Помогите исправить,вернее доделать,прогу.Прога считает среднее арифметическое цифр каждого числа,а...

4
5059 / 2633 / 2346
Регистрация: 10.12.2014
Сообщений: 9,996
12.02.2019, 04:25 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const n = 10;
function av(n : Integer) : Real;
begin
  var(count,sum):=(0,0);
  repeat
    count+=1;sum+=n mod 10;n:=n div 10;
  until n=0;
  Result:=sum/count;
end;
procedure sort(var a : array of Integer) := a := a.OrderBy(v->av(v)).ToArray;
begin
  var a := ArrRandomInteger(n, -30000, 30000);
  a.Println;
  sort(a);
  a.Println;
end.
0
2373 / 775 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
12.02.2019, 04:45 3
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
program sortmass;
// Программа сортировки массива по возрастанию среднего арифметического цифр элементов массива
 
const
n = 5; // Количество элементов массива.
type
Tmas = array[1..n] of longint; 
 
procedure sort(var m: Tmas);
var //Основная процедура, которая осуществляет сортировку по возрастанию среднего арифметического
    //цифр десятичных разрядов значений элементов массива.
Digit: Integer; // Переменная для найденной цифры из числа. 
k: integer;// Переменная счетчика количества разрядов.
p: longint;// Промежуточная переменная, нужная для сортировки элементов массива.
sum: longint;// Переменная для суммирования чисел разрядов.
areth: longint;// Переменная для среднего арифметического, вычисленного из разрядов чисел.
begin
 for var i:=1 to n do
 begin
  k:=0; // Присваеваем переменным нули перед каждым циклом.
  sum:=0;
  repeat 
    inc(k);
    m[i]:=abs(m[i]); // Отбрасываем знак значений элемента.
    Digit := m[i] mod 10;
    sum:=sum+digit; // Вычисляем сумму разрядов элемента массива.
    areth:=sum div k;// Вычисляем среднее арифметическое из разрядов элемента массива. Результат целочисленый!
    m[i] := m[i] div 10;
  until m[i] = 0;
  m[i]:=areth; //Вместо начальных значений элементов вставляем в массив значения среднего арифметического. 
end;
 
for var i := 1 to n-1 do // Сортируем массив по возрастанию.
        for var j := 1 to n-i do
            if m[j] > m[j+1] then 
             begin
                p := m[j];
                m[j] := m[j+1];
                m[j+1] := p
             end;
 
end;
 
var
b: Tmas; // Промежуточный массив.
 
begin // Тестовая часть программы.
randomize;
writeln('Массив случайных чисел:');
for var i:=1 to n do // Заполняем массив b случайными числами в диапазоне от - 30000 до 30000.
begin
b[i]:=random(60000)-30000;
write(b[i],' ');
end;
writeln();
sort(b);// Вызываем основную процедуру и передаем ей массив заполненный случайными числами.
writeln();
writeln('Массив отсортированного среднеарифметического значения чисел:');
for var i:=1 to n do // Выводим результаты работы процедуры на экран.
write(b[i],' ');
 
 
end.
0
2177 / 1306 / 497
Регистрация: 07.04.2017
Сообщений: 4,564
12.02.2019, 08:53 4
Цитата Сообщение от JuriiMW Посмотреть сообщение
v->av(v)
Зачем вы в ещё 1 функцию оборачиваете? Просто av.
0
5059 / 2633 / 2346
Регистрация: 10.12.2014
Сообщений: 9,996
12.02.2019, 13:44 5
ValentinNemo, у вас программа вообще о чём?

Sun Serega, чтобы sort была „красивой“…
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2019, 13:44
Помогаю со студенческими работами здесь

Написать программу подсчета среднего арифметического всех отрицательных цифр числа
Дано масив А. Скласти програму підрахунку середніх арифметичних всіх від’ємних та всіх додатніх...

Заменить все элементы массива, меньшие среднего арифметического, значением среднего арифметического
В одномерном массиве целых чисел заменить все элементы, меньшие среднего арифметического,значением...

Из массива удалить четные элементы, имеющие значение больше среднего арифметического всех элементов массива.
Из массива удалить четные элементы, имеющие значение больше среднего арифметического всех элементов...

Замена всех элементов массива, меньших среднего арифметического, на 0
Задание: напишите программу, которая организует ввод с клавиатуры одномерного масива целых чисел,...

Вычисление среднего арифметического чисел и запись всех чисел меньших среднего арифметического в файл
Написать программу, в которой происходит чтение целых чисел из файла А.txt (произвести проверку на...

Из массива удалить элементы, стоящие после максимального и имеющие значение меньше среднего арифметического всех элементов массива
Из массива удалить элементы, стоящие после максимального и имеющие значение меньше среднего...


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

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

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