![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
mumu |
![]()
Сообщение
#1
|
Гость ![]() |
Помогите. пожалуйса решить следующую задачу:
Дан неотсортированный массив из определённого количества слов. Нужно отсортировать их по окончаниям быстрой сортировкой (т.е. не по превым. а по последним буквам). Отсортированные слова помещаются в новый массив. Как это решить? |
![]() ![]() |
Altair |
![]()
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Код Program SortQuckString; Uses Crt; Const nn=10; {¬ Єб. Є®«-ў® н«-в®ў ў ¬ ббЁўҐ} Type atype=array[1..nn] of string; {вЁЇ ¬ ббЁў} Procedure Vec(var a:atype; var n:integer); {ўў®¤ ¬ ббЁў } var c,i:integer; begin repeat writeln('‚ўҐ¤ЁвҐ n= '); readln(n) until (n>0) and (n<=nn); For i:=1 to n do begin write('‚ўҐ¤ЁвҐ a[',i,']= '); readln(a[i]) end End; Procedure SortQuick(var x:atype; left, right:integer); {б®авЁа®ўЄ } var l,r,i:integer; a:string; Begin { ЇҐаҐўҐаҐ¬ ўбҐ бва®ЄЁ } l:=left; r:=right; a:=x[l]; repeat while (x[r]>=a) and (l<r) do r:=r-1; x[l]:=x[r]; while (x[l]<=a) and (l<r) do l:=l+1; x[r]:=x[l]; until r=l; x[l]:=a; If left<l-1 then SortQuick(x,left,l-1); If r+1<right then SortQuick(x,r+1,right) end; Procedure Print(a:atype; n:integer); Var I:integer; Begin For i:=1 to n do writeln(a[i]:6); writeln End; Procedure PEREVOROT(var a:atype; n:integer); var i,k:integer; s,ts:string; begin for i:=1 to n do begin s:=''; s:=a[i]; for k:=1 to Ord(s[0]) do begin ts:=''; ts[k]:=s[(ORD(s[0])-k+1)] end; for k:=1 to Ord(s[0]) do ts:=ts+ts[k]; a[i]:=ts; ts:=''; end; end; Var A:Atype; n:integer; Begin Clrscr; vec(a,n); Writeln('‚ и ¬ ббЁў:'); Print(a,n); {ЇҐаҐў®а зЁў Ґ¬ бва®ЄЁ ў ¬ ббЁўҐ} PEREVOROT(a,n); SortQuick(a,1,n); PEREVOROT(a,n); writeln('‚ и ®вб®авЁа®ў л© ¬ ббЁў ( зЁ п б Є®Ґзле ЎгЄў)'); Print(a,n); readkey End. Цитата А как полностью реализовать на Паскале. Мне для универа. Ни фига не понимаю... А как учиться дальше собираетесь? Цитата здесь есть объяснение и программа.. правда на си.. в общем можно поковыряться..) Если товарищ не может на пасе, то с СИ он точно не разберется! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 20:17 |