Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 29.12.2019
Сообщений: 6

Сортировка массивов

06.02.2020, 12:56. Показов 1792. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно использовать 2 примера из учебника:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var 
   i, n, x: integer; 
   a: array [1..10] of integer;
begin
   randomise;
   for i:= 1 to 10 do
   begin
      a[i]:= random(100);
      writeln('a[', i, ']=', a[i])
   end;
   writeln('x=');
   readln(x);
   n:= 0;
   for i:= 1 to 10 do
      if a[i] = x then n:= i;
   if n = 0
      then writeln ('Элемента со значением, равный заданному, в массиве нет')
      else writeln ('Индекс элемента, равного заданному, ',n)
end.
и ещё один:

Pascal
1
2
3
4
5
6
7
8
for i:= 1 to n-1 do
begin
   imax:= i;
   for j:= i+1 to n do if a[j]>a[imax] then imax:= j;
   x:= a[i];
   a[i]:= a[imax];
   a[imax]:= x;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2020, 12:56
Ответы с готовыми решениями:

Вывод элементов массивов, сортировка массивов
вот ссылки program 1аЬ4; uses crt; const е=0.0010; d=l.Зе-7; var a, b, г, s, х, fa, fг, n, с : real; begin write('введите айв:...

Сортировка массивов
Помогите пожалуйста! Вводятся массивы А,В. Создать новай массив из элементов А, которых нет в массиве В. Заранее благодарен.

Сортировка Массивов
1. Дан массив А. Выполнить сортировку элементов массива по убыванию. Вывести новый массив на печать. Найти сумму всех элементов массива. ...

5
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
06.02.2020, 13:06
А что нужно-то?
0
0 / 0 / 0
Регистрация: 29.12.2019
Сообщений: 6
06.02.2020, 14:12  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
А что нужно-то?
программу для сортировки символов

Добавлено через 8 минут
Цитата Сообщение от Hornet44 Посмотреть сообщение
символов
массивов*
0
Модератор
10435 / 5724 / 3405
Регистрация: 17.08.2012
Сообщений: 17,429
08.02.2020, 13:19
В первом фрагменте ошибка: должно быть "randomize".

Вот так можно:
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
const
  n = 10;
var
  i, imax, j, x: integer;
  a: array [1..n] of integer;
begin
  randomize;
  writeln('Исходный массив:');
  for i := 1 to n do
    begin
      a[i]:= random(100);
      writeln('a[', i, ']=', a[i])
    end;
  for i := 1 to n - 1 do
    begin
      imax := i;
      for j := i + 1 to n do if a[j] > a[imax] then imax := j;
      if imax > i then
        begin
          x := a[i];
          a[i] := a[imax];
          a[imax] := x
        end
    end;
  writeln('Отсортированный массив');
  for i := 1 to n do writeln('a[', i, ']=', a[i]);
  readln
end.
Немного подправил сортировку: добавил проверку imax, поскольку, если максимальный элемент уже стоит на своём месте, незачем его обменивать с самим собой. Если желаете, чтобы было так же глупо, как в учебнике, уберите строки 18, 19 и 23, и подправьте форматирование, сместив строки 20, 21 и 22 на четыре позиции влево.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
09.02.2020, 11:26
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
добавил проверку imax, поскольку, если максимальный элемент уже стоит на своём месте, незачем его обменивать с самим собой. Если желаете, чтобы было так же глупо, как в учебнике
А глупо ли? Действительно ли сравнение+переход статистически дешевле обмена? Действительно ли всегда статистически дешевле обмена (включая побочные эффекты от перехода)?
Нет, я понимаю, что в разделе PascalABC эти вопросы смотрятся, кхм, не совсем уместно, но с точки зрения языка и доступных реализаций ответ вовсе не так очевиден...
0
Модератор
10435 / 5724 / 3405
Регистрация: 17.08.2012
Сообщений: 17,429
09.02.2020, 16:46
В FPC:
Assembler
  ;if imax > i then
  mov    0xda02(%rip),%eax        # 0x10000f010
  cmp    0xd9ec(%rip),%eax        # 0x10000f000
  jle    0x100001666 <main+502>
 
  ;x := a[i];
  mov    0xd9e4(%rip),%eax        # 0x10000f000
  lea    0xda1d(%rip),%rdx        # 0x10000f040
  mov    -0x4(%rdx,%rax,4),%eax
  mov    %eax,0xda03(%rip)        # 0x10000f030
  ;a[i] := a[imax];
  mov    0xd9cd(%rip),%ecx        # 0x10000f000
  mov    0xd9d7(%rip),%eax        # 0x10000f010
  lea    0xda00(%rip),%rdx        # 0x10000f040
  mov    -0x4(%rdx,%rax,4),%eax
  lea    0xd9f5(%rip),%rdx        # 0x10000f040
  mov    %eax,-0x4(%rdx,%rcx,4)
  ;a[imax] := x
  mov    0xd9bb(%rip),%edx        # 0x10000f010
  mov    0xd9d5(%rip),%ecx        # 0x10000f030
  lea    0xd9de(%rip),%rax        # 0x10000f040
  mov    %ecx,-0x4(%rax,%rdx,4)
Не знаю. По-моему, всё же глупо.

Добавлено через 1 час 44 минуты
Ладно, допустим, обмен происходит с использованием XCHG. Но тогда будет нечто такое:
Assembler
  lea edx, a
  mov esi, i
  mov x, esi
  mov eax, [edx+esi*4-4]
  mov esi, im
  xchg eax, [edx+esi*4-4]
  mov esi, i
  mov [edx+esi*4-4], eax
Один чёрт глупо. bormant, в чём подвох?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.02.2020, 16:46
Помогаю со студенческими работами здесь

Сортировка массивов.
Здравствуйте уважаемые программисты и обитатели форума. Помогите решить следующую задачу: Дана матрица. Упорядочить элементы...

Сортировка одномерных массивов
Дан целочисленный массив A(n) с элементами, сгенерированными случайными числами в диапазоне (-20, 20). Требуется: Отсортировать по...

Тема «Сортировка массивов»
В любом «длинном» числе &gt; 20 знаков расположить цифры числа по возрастанию.

Сортировка одномерных массивов
Может кто предоставить решение ?!? Дан целочисленный массив из 30 элементов. Массив заполняется случайным образом значениями в...

Сортировка одномерных массивов
у меня второй вариант.составьте пожалуйста программу. то что вычеркнула ,это не надо.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru