![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
-Fly- |
![]()
Сообщение
#1
|
Гость ![]() |
Привет!
Мне необходимо довести до ума эти 2 задания я набросала в пределах своих возможностей но дальше никак не могу вникнуть. Может кто подсобит. Вот 2 задания. Это просто методы сортировки массива шейкером и прямым выбором, но мне надо кроме того что создать и упорядочить массив выполнить эти задания. 1. Создать массив N=10 заполнить буквами a e r t d w t z, используя метод прямого выбора определить на каждом шаге в методе прямого выбора номера перемещаемых элементов 2. Создать массив N=10 заполнить буквами a e r t d w t z используя шейкерную сортировку определить на каждом шаге в методе шейкерной сортировки левую и правую границы сортируемой части массива (L и R). //Это к первому заданию сортировка массива методом прямого выбора чтото напутала с переменными и не знаю как выполнить задание. Код var a: array[1..10] of char; j,tmp: char; i,n,m:integer; begin n:='10'; a[1]:='a'; a[2]:='e'; a[3]:='r'; a[4]:='t'; a[5]:='d'; a[6]:='w'; a[7]:='t'; a[8]:='z'; a[9]:='y'; a[10]:='q'; for i:=1 to n do write(a[i]:5); for i:=1 to N-1 do begin m:=i; for j:=i+1 to N do begin if a[j]<a[m] then m:=j; end; if m<>i then begin tmp:=a[m]; a[m]:=a[i]; a[i]:=tmp; end; End. //Это к 2му заданию проблемы с ним те же Код var a: array[1..10] of char; var i,j,k,l,r,x: integer; begin n:='10'; a[1]:='a'; a[2]:='e'; a[3]:='r'; a[4]:='t'; a[5]:='d'; a[6]:='w'; a[7]:='t'; a[8]:='z'; a[9]:='y'; a[10]:='q'; for i:=1 to n do write(a[i]:5); begin l:=2; r:=n; k:=n; repeat for j:=r downto l do begin if a[j-1]>a[j] then begin x:=a[j-1]; a[j-1]:=a[j]; a[j]:=x; k:=j; end; end; l:=k+1; for j:=l to r do begin if a[j-1]>a[j] then begin x:=a[j-1]; a[j-1]:=a[j]; a[j]:=x; k:=j; end; end; r:=k-1; until l>r; end; End. |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 12:54 |