• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Сделайте, пожалуйста, сортировку пузырьковым методом по возрастанию

kostyawasd

Ученик
Регистрация
27 Мар 2012
Сообщения
8
Реакции
0
Баллы
0
Сделайте, пожалуйста, сортировку пузырьковым методом по возрастанию

завтра сдать надо
сделайте пожалуйста сортировку пузырьковым методом по возростанию

program A1;
const n=5;
var a:array[1..n,1..n] of integer;
m:array[1..n] of integer;
i,j,sg,sp,t:integer;
p:boolean;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(5);
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;
writeln;
sg:=0;
sp:=0;
for i:=1 to n do
begin
sg:=sg+a[i,i];
sp:=sp+a[i,n-i+1];
end;
writeln(sg);
writeln(sp);
if sg=sp then
begin
for i:=1 to n do
for j:=1 to n do
if a[i,j]>3 then
a[i,j]:=3;
end
else
begin
for i:=1 to n do
for j:=1 to n do
if a[i,j]>3 then a[i,j]:=0;
end;
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;

begin
for j:=1 to n do
begin
m[3]:=a[1,3];
for i:=2 to n do
if a[i,3]>m[3]
then m[3]:=a[i,3];
write(m[3]:3);
end;
writeln;
repeat
p:=true;
for j:=1 to n-1 do
begin
if m[j]>m[j+1] then
begin
p:= false;
t:= m[j];
m[j]:=m[j+1];
m[j+1]:=t;
for i:= 1 to n do
begin
t:=a[i,j];
a[i,j]:=a[i,j+1];
a[i,j+1]:=t;
end;
end;
end;
until p;
writeln;
for i:=1 to n do
begin
for j:= 1 to n do
write(a[i,j]:3);
writeln;
end;
end;
readln;
end.:tehnari_ru_837::tehnari_ru_837:
 
for i:=n-1 downto 1 do {n - размер массива M[]}
for j:=1 to i do
if M[j]>M[j+1] then
begin
tmp:= M[j];
M[j]:= M[j+1];
M[j+1]:= tmp;
end;
write('вывод значений M[]: ');
for i:=1 to n do
write(M:4);
writeln;
Усовершенствованный алгоритм сортировки пузырьком:
P:=True; {есть перестановка?}
K:=1; {Номер просмотра}
While P Do
Begin
P:=false;
For i:=1 To n-k Do
If X > X[i+1] Then
Begin
A:=X;
X:=X[i+1];
X[i+1]:=A;
P:=true;
End;
k:=k+1;
End;

если это паскаль Примеры реализации сортировки пузырьком — Викиучебник
 
for i:=n-1 downto 1 do {n - размер массива M[]}
for j:=1 to i do
if M[j]>M[j+1] then
begin
tmp:= M[j];
M[j]:= M[j+1];
M[j+1]:= tmp;
end;
write('вывод значений M[]: ');
for i:=1 to n do
write(M:4);
writeln;
Усовершенствованный алгоритм сортировки пузырьком:
P:=True; {есть перестановка?}
K:=1; {Номер просмотра}
While P Do
Begin
P:=false;
For i:=1 To n-k Do
If X > X[i+1] Then
Begin
A:=X;
X:=X[i+1];
X[i+1]:=A;
P:=true;
End;
k:=k+1;
End;

если это паскаль Примеры реализации сортировки пузырьком — Викиучебник


мне бы уже скомпанованную программу
я уже делал по этому алгоритму, либо не работает, либо ошибку выдаёт
 
забыл, надо только 3й столбик отсортировать
 
В массиве c[1..5,1..5], заполненном случайным образом, найдите сумму главной и побочной диагоналей, если эти суммы равны, то элементы большие 3 замените на 3, иначе эти элементы заменить на 0 и напечатать новый массив. Отсортируйте третий столбец пузырьковым методом по возрастанию.
 
ещё такая проблемка, когда создаётся второй массив, получается так што последняя строчка массива заменяется на строчку одного и тогоже случайного числа, не понимаю из за чего...
 
ещё такая проблемка, когда создаётся второй массив, получается так што последняя строчка массива заменяется на строчку одного и тогоже случайного числа, не понимаю из за чего...
Да уж... Ну тут:
for j:=1 to n do
begin
m[3]:=a[1,3];
for i:=2 to n do
if a[i,3]>m[3]
then m[3]:=a[i,3];
write(m[3]:3);
end;
Вы чего-то такого накрутили, что без русского допинга не разобрать... Да и с пузырьком что-то мало понятное. В общем, вот работающий код:
Код:
const
 n=5;
var
 a:array[1..n,1..n] of integer;
 i,j,sg,sp,t:integer;

begin
 randomize;
 for i:=1 to n do
  for j:=1 to n do
   a[i,j]:=random(5);
 for i:=1 to n do
  begin
   for j:=1 to n do
    write(a[i,j]:3);
   writeln;
  end;
 writeln;
 sg:=0;
 sp:=0;
 for i:=1 to n do
  begin
   sg:=sg+a[i,i];
   sp:=sp+a[i,n-i+1];
  end;
 writeln('sg= ',sg);
 writeln('sp= ',sp);
 writeln;

 for i:=1 to n do
  for j:=1 to n do
   if a[i,j]>3 then
    begin
     if sg=sp then a[i,j]:=3 else a[i,j]:=0;
    end;

 for i:=1 to n do
  begin
   for j:=1 to n do
    write(a[i,j]:3);
   writeln;
  end;
 writeln;

 for i:=1 to n do
  for j:=1 to n-i do
   if a[j,3]>a[j+1,3] then
    begin
     t:=a[j,3];
     a[j,3]:=a[j+1,3];
     a[j+1,3]:=t;
    end;

 for i:=1 to n do
  begin
   for j:=1 to n do
    write(a[i,j]:3);
   writeln;
  end;
 readln
end.
 
не сортируется ничего:tehnari_ru_121:
 
и элементы не заменяются, но это не важо
напишите ктонибудь рабочий пузырьковый метод, яуже дофига разных перепробовал, не работают
 
не сортируется ничего
и элементы не заменяются, но это не важо напишите ктонибудь рабочий пузырьковый метод, яуже дофига разных перепробовал, не работают

Нет, это уже положительно черт-те что! То есть Вы, сударь, изволите обвинять меня в том, что я выложил нерабочую неоттестированную программу? Ну что же - в таком случае катитесь... вот именно туда! Стараешься помочь лоботрясам, так вместо спасибо еще и всякие оскорбления получаешь.
А для особо одаренных - поясняю. Ниже представлены результаты работы программы в двух случаях: когда суммы диагоналей НЕ совпадают и когда (после серии запусков) они совпали. На экране - три матрицы: исходная, после замен элементов (четверок на нули или тройки) и после упорядочения ТРЕТЬЕГО СТОЛБЦА сверху вниз по возрастанию (прочие элементы не трогаются). Так какого беса лысого Вам еще надо?!!
В общем, понойте подольше - авось какая-нибудь добрая душа найдется! Но это буду точно не я.
 

Вложения

  • bes_1.webp
    bes_1.webp
    7.5 KB · Просмотры: 59
  • bes_2.webp
    bes_2.webp
    7.4 KB · Просмотры: 45
извеняюсь, это оказывается моя ошибка, сейчас проверил, всё заработало
а на самам деле огромное спасибо
 
Назад
Сверху