Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 04.11.2015
Сообщений: 11

Переделать программу так, чтобы сортировка в ней осуществлялась альтернативным способом

05.11.2015, 15:04. Показов 1107. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Переделать программу так, чтобы сортировка в ней осуществлялась альтернативным способом (т.е. через поиск минимального числа и перемещение его в начало, как показано на рисунке 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
Program Sortirovka_vyborom;
uses crt;  // Подключение библиотеки для очистки экрана
const N=25;// Константа для максимального количества элементов в массиве
var i,j,   // Переменные счётчиков в циклах
    max,   // Переменная для поиска максимального числа в массиве
    posMax,// Переменная хранящая номер элемента с максимальным значением
    lastPos,//Переменная для остановки цикла
    temp   // Переменная для хранения временных данных
    : integer;  // Все они integer, т.е. целые числа
    Mass: array[1..N] of integer; // Массив из N элементов, тоже integer
 
begin          // Начало программы
    clrscr;    // Очистка экрана
    randomize; // Запуск полной рандомизации
 
    for i:=1 to N do   // Цикл заполняющий массив случайными числами
        Mass[i] := random(100); // i-тый элемент массива получает случайное значение (от 0 до 99)
 
    for i:=1 to N do   // Цикл выводящий массив на экран
        write (Mass[i]:3);  // Вывод на экран i-того элемента массива с отступом
 
    // ТЕПЕРЬ НАЧИНАЕТСЯ САМА СОРТИРОВКА
    for j:=1 to N do   // Внешний цикл. Задаёт количество полных проходов по массиву (совпадает с количеством его элементов)
    begin   // Начало внешнего цикла
        max := Mass[1]; // Устанавливаем первым кандидатом на максимальное число – первое число в массиве
        posMax := 1; // Задаём номер его позиции
        lastPos := N-j+1; // Исключаем отсортированные числа из проверки
        for i:=2 to lastPos do // Внутренний цикл. Задаёт количество проверяемых элементов массива за один проход (каждый следующий полный проход, проверяется на один элемент меньше)
        begin   // Начало внутреннего цикла
            if max < Mass[i] then // Проверка: если кандидат на максимальное число меньше i-того элемента массива, то...
            begin // Начало if
                max := Mass[i]; // Сделать кандидатом на максимальное число i-тый элемент массива
                posMax := i; // Запомнить номер нового кандидата на максимальное число
            end; //конец if
        end;  // Конец внутреннего цикла
        temp := Mass[posMax];  // Эта и последующие две строки – меняем местами значения максимально и «последнего» элемента
        Mass[posMax] := Mass[lastPos];
        Mass[lastPos] := temp;
    end;   // Конец внешнего цикла
    // КОНЕЦ СОРТИРОВКИ
    writeln; writeln;  // Переход на новую строку (и пропуск ещё одной) для отделения неотсортированного массива от уже отсортированного
    for i:=1 to N do   // Цикл выводящий массив на экран
        write (Mass[i]:3);  // Вывод на экран i-того элемента массива с отступом
 
    readln;  // Остановка перед закрытием программы
end.   // Конец программы
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.11.2015, 15:04
Ответы с готовыми решениями:

Массив. Переделать программу так, чтобы в ней использовались процедуры.
Доброго времени суток! Помогите пожалуйста переделать программу так, чтобы в ней использовались процедуры Заранее спасибо. Вот...

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

Превратить программу так, чтобы в ней использовалось отношение агрегации
Превратить программу обработки ведомости так, чтобы в ней использовалось отношение агрегации. при этом &quot;Целым&quot; должен быть...

1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
05.11.2015, 15:29
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const
  n=25;
var
  a: array [1..n] of Integer;
  i, j, k, s, t: Integer;
begin
  Randomize;
  for i:=1 to n do a[i]:=Random(100);
  for i:=1 to n do Write(a[i]:3); WriteLn;
  Write('Направление сортировки (1-возрастание, иначе убывание): ');
  ReadLn(s); if s<>1 then s:=-1;
  for i:=1 to n-1 do begin
    k:=i; for j:=k+1 to n do if s*a[j]<s*a[k] then k:=j;
    t:=a[k]; a[k]:=a[i]; a[i]:=t;
  end;
  for i:=1 to n do Write(a[i]:3); WriteLn;
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.11.2015, 15:29
Помогаю со студенческими работами здесь

Переделать программу так чтобы использовался цикл repet, а не for
Есть небольшая программка по подсчету суммы цифр от 1 до n (n=4, 1+2+3+4=10) Помогите пожалуйста переделать её так чтобы использовался...

Обращение к столбцу табличной формы альтернативным способом
Здравствуйте! У меня табличная форма, в которой имена столбцов постоянно изменяются. Подскажите пожалуйста, можно ли как-то обращаться...

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

Вывести на экран все объекты из ObjectInputStream альтернативным способом
private static &lt;T&gt; void PrintFile(File f) throws Exception { ObjectInputStream in = new ObjectInputStream(new FileInputStream(f)); ...

Переделать программу так, чтобы можно было вводить n-ое количество пациентов
Доброго времени суток уважаемые форумчане! Помогите пожалуйста модернизировать программу для работы со списками. Нам дана программа для...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru