![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
setare |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: ![]() ![]() ![]() |
Здравствуйте! Я написала программу сортировки массива букв шейкерной сортировкой! Но у меня программа не компилируется и ошибку выдает на for downto. Не могли бы вы сказать в чем дело! Вот код! Заранее благодарю!
Код program Sheikernaya_sortirovka; const N=10; type mas=array[0..N] of integer; procedure sheiker(var J,L:integer;var a:mas); var x,K,R:integer; begin L:=2; R:=N; K:=N; repeat for J:=R downto L do if a[J-1]>a[J] then begin x:=a[J-1]; a[J-1]:=a[J]; a[J]:=x; K:=J end; L:=K+1; for J:=L to R do if a[J-1]>a[J] then begin x:=a[J-1]; a[J-1]:=a[J]; a[J]:=x; K:=J end; R:=K-1 until L>R; end; var J,L,K,R,X,N,I:integer; s:string[50]; begin writeln('Vvedite stroku'); readln(s); for I:=1 to N do read(a[I]); sheiker(J,L,a); writeln('Result:'); for I:=1 to N do write(a[I],' ') end. -------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата(setare @ 29.04.05 19:04) Но почему у меня при запускнии программы она не сортировала цифру 6? Все отсортировала, но 6 оставила там где она сейчас написана? Не цифру 6, а строку со значением '6' ... Вот что программа выдает: "12 18 42 44 55 6 67 94", то есть с точки зрения сортировки строк все абсолютно правильно... Как сортируются строки? Сначала - по первому символу, потом (если первый символ у обеих строк одинаковый - по второму), и т.д. Так что массив строк отсортирован как положено... :yes: Цитата(setare @ 29.04.05 19:13) Ведь мне нужно строку ввести! Или это не правильно? :no: Не строку, а массив строк !!! Замените основную программу вот на это: { это для проверки работы со строками } |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 15:01 |