27.03.2012, 23:10 | #1 (permalink) |
Новичок
Регистрация: 27.03.2012
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Сделайте, пожалуйста, сортировку пузырьковым методом по возрастанию
сделайте пожалуйста сортировку пузырьковым методом по возростанию 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. |
27.03.2012, 23:10 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Если обратить внимание на похожие темы, то процесс решения вашей проблемы должен пойти быстрее Вычислить методом тарапеции в VBA Сделайте печатную плату Определение плана продаж игровым методом |
27.03.2012, 23:42 | #2 (permalink) |
Member
Регистрация: 15.02.2012
Сообщений: 97
Записей в дневнике: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
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[i]:4); writeln; Усовершенствованный алгоритм сортировки пузырьком: P:=True; {есть перестановка?} K:=1; {Номер просмотра} While P Do Begin P:=false; For i:=1 To n-k Do If X[i] > X[i+1] Then Begin A:=X[i]; X[i]:=X[i+1]; X[i+1]:=A; P:=true; End; k:=k+1; End; если это паскаль Примеры реализации сортировки пузырьком — Викиучебник |
27.03.2012, 23:58 | #3 (permalink) | |
Новичок
Регистрация: 27.03.2012
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
я уже делал по этому алгоритму, либо не работает, либо ошибку выдаёт |
|
28.03.2012, 10:06 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
28.03.2012, 13:15 | #6 (permalink) |
Новичок
Регистрация: 27.03.2012
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
В массиве c[1..5,1..5], заполненном случайным образом, найдите сумму главной и побочной диагоналей, если эти суммы равны, то элементы большие 3 замените на 3, иначе эти элементы заменить на 0 и напечатать новый массив. Отсортируйте третий столбец пузырьковым методом по возрастанию.
|
28.03.2012, 13:17 | #7 (permalink) |
Новичок
Регистрация: 27.03.2012
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
ещё такая проблемка, когда создаётся второй массив, получается так што последняя строчка массива заменяется на строчку одного и тогоже случайного числа, не понимаю из за чего...
|
28.03.2012, 14:42 | #8 (permalink) | ||
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Цитата:
Код:
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. |
||
28.03.2012, 22:29 | #10 (permalink) |
Новичок
Регистрация: 27.03.2012
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
и элементы не заменяются, но это не важо
напишите ктонибудь рабочий пузырьковый метод, яуже дофига разных перепробовал, не работают |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|