Автор Artishka задал вопрос в разделе Другие языки и технологии
Пузырьковый метод. Паскаль , Хелп и получил лучший ответ
Ответ от Жанна Кузнецова[гуру]
мне не нравится, что if односторонний.
давай полную форму!!
Ответ от Влад Симкин[гуру]
ну насколько я понял это метод сортировки одномерного массива!
тогда и нужно выводить сам отсортированный массив!
write(' ',t); -удали
за циклами процесса сортировки введи вот этот цикл вывода
...
for i:=1 to n do writeln(a [ i ] );
readkey;
end.
ну насколько я понял это метод сортировки одномерного массива!
тогда и нужно выводить сам отсортированный массив!
write(' ',t); -удали
за циклами процесса сортировки введи вот этот цикл вывода
...
for i:=1 to n do writeln(a [ i ] );
readkey;
end.
Ответ от Алексей пупкин[гуру]
program garbage;
{$APPTYPE CONSOLE}
type
x = array [1 .. 100] of integer;
var
a: x;
i, j, n, t: integer;
Begin
Randomize;
readln(n);
for i := 1 to n do
begin
a[ i ] := random(20);
write(a[ i ], ' ');
end;
writeln;
for i := 1 to n do
begin
for j := 1 to (n - 1) do
if a[ j + 1 ] < a[j] then
begin
t := a[ j + 1 ];
a[ j + 1 ] := a[ j ];
a[ j ] := t;
end;
end;
for i := 1 to n do
write(a[ i ], ' ');
readln;
end.
Вот так будет работать нормально. Примечание: работает в делфи.
Что было не так:
1) Надо инициализировать генератор случайных чисел
2) Внутренний цикл должен перебирать все элементы
3) Количество итераций внешнего цикла должно быть равно количеству элементов
4) Бессмысленно выводить временную переменную внутри циклов, она не покажет новый массив 🙂
program garbage;
{$APPTYPE CONSOLE}
type
x = array [1 .. 100] of integer;
var
a: x;
i, j, n, t: integer;
Begin
Randomize;
readln(n);
for i := 1 to n do
begin
a[ i ] := random(20);
write(a[ i ], ' ');
end;
writeln;
for i := 1 to n do
begin
for j := 1 to (n - 1) do
if a[ j + 1 ] < a[j] then
begin
t := a[ j + 1 ];
a[ j + 1 ] := a[ j ];
a[ j ] := t;
end;
end;
for i := 1 to n do
write(a[ i ], ' ');
readln;
end.
Вот так будет работать нормально. Примечание: работает в делфи.
Что было не так:
1) Надо инициализировать генератор случайных чисел
2) Внутренний цикл должен перебирать все элементы
3) Количество итераций внешнего цикла должно быть равно количеству элементов
4) Бессмысленно выводить временную переменную внутри циклов, она не покажет новый массив 🙂
Ответ от Виктор Фадеев[гуру]
У тебя t - временная (или вспомогательная, что не суть как важно) переменная, т. е. в нее заносятся данные элемента массива. Ее вывод на экран не иначе как бред. Ты сортируешь массив, его и нужно выводить.
Сам метод "пузырьковой сортировки" заключается в том, что задействованы два цикла. Один цикл выполняет продвижение по массиву, при этом значение текущего элемента "передается" во второй цикл, дальше в этом цикле уже текущий элемент сравнивается с остальными, не отсортированными элементами массива, если выполняется условие, то этот элемент всплывает ( аля пузырек воздуха в воде ну или у кого там какие ассоциации еще) и происходит обмен текущего со сравниваемым или же переходим к следующему элементу.
У тебя сам процесс описан неверно.
var a:array[1..100] of integer;
k,j,tmp,n:integer;
begin
randomize;
write('vvedite razmernost'': '); readln(n);
for k:=1 to n do
begin
a[k]:=random(10);
writeln(a[k])
end;
for k:=1 to n-1 do
for j:=k to n-1 do
if a[k]>a[j+1] then
begin
tmp:=a[k];
a[k]:=a[j+1];
a[j+1]:=tmp
end;
writeln('novii massiv: ');
for k:=1 to n do
writeln(a[k]);
readln
end.
У тебя t - временная (или вспомогательная, что не суть как важно) переменная, т. е. в нее заносятся данные элемента массива. Ее вывод на экран не иначе как бред. Ты сортируешь массив, его и нужно выводить.
Сам метод "пузырьковой сортировки" заключается в том, что задействованы два цикла. Один цикл выполняет продвижение по массиву, при этом значение текущего элемента "передается" во второй цикл, дальше в этом цикле уже текущий элемент сравнивается с остальными, не отсортированными элементами массива, если выполняется условие, то этот элемент всплывает ( аля пузырек воздуха в воде ну или у кого там какие ассоциации еще) и происходит обмен текущего со сравниваемым или же переходим к следующему элементу.
У тебя сам процесс описан неверно.
var a:array[1..100] of integer;
k,j,tmp,n:integer;
begin
randomize;
write('vvedite razmernost'': '); readln(n);
for k:=1 to n do
begin
a[k]:=random(10);
writeln(a[k])
end;
for k:=1 to n-1 do
for j:=k to n-1 do
if a[k]>a[j+1] then
begin
tmp:=a[k];
a[k]:=a[j+1];
a[j+1]:=tmp
end;
writeln('novii massiv: ');
for k:=1 to n do
writeln(a[k]);
readln
end.
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Пузырьковый метод. Паскаль , Хелп
спросили в 10 класс Randomness
задача по информатике 10 класс!программирование в паскале
Сам учусь в 8 классе знаю пока что только как найти наименьшеее =)
Делаешь с помощью операторов
подробнее...
задача по информатике 10 класс!программирование в паскале
Сам учусь в 8 классе знаю пока что только как найти наименьшеее =)
Делаешь с помощью операторов
подробнее...
Паскаль: пузырьковый метод(сортировка).
выборка происходит не катого и джитого элементов, а J и J+1, сравниваются два
подробнее...
Люди, кто знает, как решеть задачи по програмированию методом пузырька? и вообще что такое метод пузырька?
ну это когда покупаешь пузырь пива и идешь к знающему человеку, что бы он
подробнее...
спросили в Напитки
Вино из помидоров. Что известно о производстве этого удивительного вина?
#yaimg589304#
Можно ли изготовить вино из нетрадиционного материала – винограда, а, например,
подробнее...
Вино из помидоров. Что известно о производстве этого удивительного вина?
#yaimg589304#
Можно ли изготовить вино из нетрадиционного материала – винограда, а, например,
подробнее...