Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
 Аватар для Аника
1 / 1 / 0
Регистрация: 22.12.2012
Сообщений: 159

Выполнить сортировку массива, заполненного случайными числами, методом "пузырька"

20.05.2014, 16:34. Показов 4525. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан одномерный массив C. 1) Заполнить массив с помощью генератора случайных чисел. 2) Выполнить сортировку массива методом "пузырька". Кол-во элементов массива выбирает пользователь с помощью SpinEdit.
Начала писать часть кода про генератор случайных чисел. Операторы знаю, а как написать так чтобы работало - не знаю. Помогите, пожалуйста.
Delphi
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
var
  Form1: TForm1;
  k:integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
k:=strtoint(SpinEdit1.Text);
StringGrid1.ColCount:=k;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
k:=strtoint(SpinEdit1.Text);
StringGrid1.ColCount:=k;
randomize;
StringGrid1.ColCount:=random(500);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
 
end;
 
end.
Так выглядит форма в этой программе.
Миниатюры
Выполнить сортировку массива, заполненного случайными числами, методом "пузырька"  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.05.2014, 16:34
Ответы с готовыми решениями:

Выполнить сортировку массива методом "пузырька"
Подруга не может решить задачу.Буду рад помощи. Условие: Дан одномерный массив. Выполнить сортировку массива методом...

Составить программу, которая для массива, заполненного случайными целыми числами, проводит сортировку по не убыванию методом выбора (выделения)
Помогите пожалуйста решить задачу,завтра сдавать нада а у меня уже мозги не варят: Составить программу, которая для массива, ...

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

17
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,239
Записей в блоге: 15
20.05.2014, 19:07
Лучший ответ Сообщение было отмечено Аника как решение

Решение

Delphi
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
// Заполнение массива
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
setlength(a, stringgrid1.ColCount);
 
for i := 0 to high(a) do
a[i]:=random(500);
for i := 0 to high(a) do
stringgrid1.Cells[i,0]:=inttostr(a[i]);
end;
 
// Сортировка массива
procedure TForm1.Button2Click(Sender: TObject);
var i,k,j:integer;
begin
k:=0;
 
begin
  for I := 0 to spinedit1.Value - 2 do
    for j := 0 to spinedit1.Value - 2 do
      if a[j] > a[j+1] then
        begin
          k := a[j+1];
          a[j+1] := a[j];
          a[j] := k;
        end;
  end;
 
for i := 0 to high(a) do
stringgrid1.Cells[i,0]:=inttostr(a[i]);
end;
 
// установка размерности stringgrid
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
stringgrid1.ColCount:=spinedit1.Value;
end;
И если нужно - прога:
Вложения
Тип файла: rar Сортировка пузырьком.rar (533.0 Кб, 91 просмотров)
2
 Аватар для Аника
1 / 1 / 0
Регистрация: 22.12.2012
Сообщений: 159
20.05.2014, 22:47  [ТС]
long399, спасибо за труд, но есть проблема. Я - студент, нас учат мыслить шаблонами, типа того кода, который я написала. Это курсовой, и чтобы не было лишних вопросов со стороны преподавателя, лучше придерживаться шаблонов. Если у вас есть возможность помочь мне превратить ваш код в подобие моего шаблоного, буду благодарна.
0
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,239
Записей в блоге: 15
20.05.2014, 22:51
Цитата Сообщение от Аника Посмотреть сообщение
Если у вас есть возможность помочь мне превратить ваш код в подобие моего шаблоного
Куда еще проще?? Тот код, который я написал, это самое простое, что можно написать ! Что именно не понятно по коду?
0
 Аватар для Аника
1 / 1 / 0
Регистрация: 22.12.2012
Сообщений: 159
20.05.2014, 22:52  [ТС]
Дело не в простоте, а в шаблоне. Но если так проще, я могу указать слова, которые мне не понятны в вашем коде.
0
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,239
Записей в блоге: 15
20.05.2014, 22:53
Цитата Сообщение от Аника Посмотреть сообщение
шаблоне
А что именно вас смутило в моем коде? Там 50-ти строк даже нету, и все проще некуда сделано...
Что вы под шаблоном подразумеваете? Может следует мне код поподробнее откомментировать?
0
 Аватар для Аника
1 / 1 / 0
Регистрация: 22.12.2012
Сообщений: 159
20.05.2014, 22:55  [ТС]
Шаблон - определенный стандарт написания кода. (приемлемый для преподавателя)
Цитата Сообщение от long399 Посмотреть сообщение
setlength(a, stringgrid1.ColCount);
Начну с этой строки. Что за setlength? Мы его не проходили, но интуитивно я догадываюсь что это установка длины. Вопрос длины чего?
0
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,239
Записей в блоге: 15
20.05.2014, 23:03
Цитата Сообщение от Аника Посмотреть сообщение
Что за setlength?
Это мы задаем размерность динамическому массиву. Первый параметр - сам массив (a).
Второй параметр - размерность массива (количество ячеек stringgrid)

Добавлено через 2 минуты
Цитата Сообщение от Аника Посмотреть сообщение
стандарт написания кода
не стоит писать код "под преподавателя". Это неправильный подход. Надо узнавать, что-то новое и писать не как НУЖНО, а как БЫСТРО И УДОБНО

Добавлено через 1 минуту
Цитата Сообщение от Аника Посмотреть сообщение
Вопрос длины чего?
Динамического массива. Мы же не знаем сколько ячеек stringgrid задаст пользователь... 10 или 100.. поэтому статический массив тут не подойдет
0
 Аватар для Аника
1 / 1 / 0
Регистрация: 22.12.2012
Сообщений: 159
20.05.2014, 23:05  [ТС]
Что такое high(a)?
0
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,239
Записей в блоге: 15
20.05.2014, 23:06
Цитата Сообщение от Аника Посмотреть сообщение
high(a)
индекс последнего значения массива а
0
 Аватар для Аника
1 / 1 / 0
Регистрация: 22.12.2012
Сообщений: 159
20.05.2014, 23:10  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
begin
  for I := 0 to spinedit1.Value - 2 do       //что за Value и почему -2
    for j := 0 to spinedit1.Value - 2 do
      if a[j] > a[j+1] then
        begin
          k := a[j+1];
          a[j+1] := a[j];
          a[j] := k;
        end;
  end;
0
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,239
Записей в блоге: 15
20.05.2014, 23:14
Цитата Сообщение от Аника Посмотреть сообщение
что за Value
Это текст, который находится в spinedit, но сразу в формате integer, а не string.
Цитата Сообщение от Аника Посмотреть сообщение
почему -2
Это ввиду работы с динамическим массивом, а также из-за того, что в алгоритме сравниваются значения текущего элемента(j) со следующим(j+1). Поэтому достаточно выполнять цикл до spinedit1.Value - 2
1
 Аватар для Аника
1 / 1 / 0
Регистрация: 22.12.2012
Сообщений: 159
20.05.2014, 23:18  [ТС]
Остальное мне вроде понятно. Последний вопрос: ваша программа выдает ошибку в этой строке
Delphi
1
Application.MainFormOnTaskbar := True;
[Error] Project1.dpr(11): Undeclared identifier: 'MainFormOnTaskbar'
Что делать?
0
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,239
Записей в блоге: 15
20.05.2014, 23:20
Цитата Сообщение от Аника Посмотреть сообщение
Что делать?
закомментировать попробуйте
0
 Аватар для Аника
1 / 1 / 0
Регистрация: 22.12.2012
Сообщений: 159
20.05.2014, 23:21  [ТС]
Объясните, пожалуйста, малограмотной, как это сделать?
0
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,239
Записей в блоге: 15
20.05.2014, 23:22
Цитата Сообщение от Аника Посмотреть сообщение
Это как?
Delphi
1
// Application.MainFormOnTaskbar := True;
0
 Аватар для Аника
1 / 1 / 0
Регистрация: 22.12.2012
Сообщений: 159
20.05.2014, 23:24  [ТС]
Работает! long399, огромное спасибо!
0
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,239
Записей в блоге: 15
20.05.2014, 23:27
Цитата Сообщение от Аника Посмотреть сообщение
огромное спасибо!
Приятно было помочь
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.05.2014, 23:27
Помогаю со студенческими работами здесь

Выполнить сортировку массива методом пузырька
Одномерный массив из 10 элементов инициализировать случайными значениями от -3 до 15 (начальное значение генератора случайных чисел...

Выполнить сортировку массива методом пузырька
Дан массив А. Выполнить сортировку с помощью метода пузырьком

Выполнить сортировку массива по убыванию методом пузырька
Задан одномерный массив из 7 случайных чисел .Выполнить сортировку массива по убыванию методом пузырька

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

Выполнить сортировку массива чисел по возрастанию методом пузырька
Из файла числа вводит, сортировку по возрастанию делает, но почему-то выводит мусор в файл. Подскажите пожалуйста, в чем проблема ...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru