![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
murphy |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите пожалуйста написать програмку.
А то шас в голову ничего не лезит. Дан текст (массив строк) сформировать текст в котором все одинаковые символы стоят рядом. для одной строки я придумал короткий способ Код for i:=2 to l-1 do for j:=i+1 to l do if s[i-1]=s[j] then begin tmp:=s[i]; s[i]:=s[j]; s[j]:=tmp; end; А для текста только большой тупой вариант в голове крутится. Его даже писать не хочется. :p2: И еще может покритикуете ввод текста Код function readtx(var str:tx):byte; var i:byte; len: word; key:char; begin len:=0;i:=0; writeln('Please enter some text'); writeln(' > pressing Esc will clear line'); writeln(' > pressing Esc at the begining'); writeln(' of new line will end the entering.'); repeat i:=i+1; readln(str[i]); key:=readkey; until key=#27; readtx:=i; end; -------------------- collect the infotrons and find Exit
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
murphy
"Это" даже не надо было придумывать. То, что ты записал известно под названием сортировки пузырьком. А вот для массива строк могу предложить следующий алгоритм: 1. Описываешь массив из Char, в который поместятся все символы текста 2. Записываешь содержимое всех строк в этот массив и 3. Сортируешь его любым известным способом 4. Выводишь результат сортировки... Это САМЫЙ простой вариант... :yes: |
murphy |
![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата То, что ты записал известно под названием сортировки пузырьком. почти пузырьком За алгоритм бальшое спасибо. ![]() -------------------- collect the infotrons and find Exit
|
murphy |
![]()
Сообщение
#4
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: ![]() ![]() ![]() |
volvo
Я показал это учителю Код k:=0; for i:=1 to n do for j:=1 to length(s[i]) do begin k:=k+1; res[k]:=s[i][j]; end; for j:=1 to l do for i:=1 to l-1 do if res[i]>res[i+1] then begin tmp:=res[i]; res[i]:=res[i+1]; res[i+1]:=tmp; end; writeln('Длина текста: ', l); writeln; writeln('Pезультиующий текст:'); for i:=1 to k do write(res[i]); по вашему алгоритму так она на меня чуть не накричала ![]() Цитата Это САМЫЙ простой вариант Хотя я прикинул и думаю что это простой способ. :yes: Я не пойму что она от меня хочет ![]() Помогите пожалуйста :molitva: если я вас не сильно достал :p2: :p2: З.Ы. По моему денег хочет. -------------------- collect the infotrons and find Exit
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
murphy
Хочешь еще один алгоритм? Код var cnt: array[char] of integer; s: string; i: integer; ch: char; begin s := 'sdj;alskjdf;laskjdf;laksjd;lkjf;lsdk;gjlskd;jgskgf'; for i := 1 to length(s) do inc(cnt[s[i]]); for ch := #32 to #255 do for i := 1 to cnt[ch] do write(ch); end. Я думаю, переделать его для массива строк не составит труда :D |
murphy |
![]()
Сообщение
#6
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: ![]() ![]() ![]() |
volvo
![]() Хороший алгоритм. Мне понравился. Я его понял. У меня вопрос :p2: можно ли это Цитата cnt: array[char] of integer; заменить Код cnt: array[#0..#255] of integer; Переделать легко :yes: Спасибо? -------------------- collect the infotrons and find Exit
|
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
murphy
Код var cnt: array[char] of integer; {Аналогично} cnt: array[#0..#255] of integer; Так что меняй... :yes: А чем Char не нравится? Сообщение отредактировано: volvo - 17.12.2004 0:30 |
murphy |
![]()
Сообщение
#8
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: ![]() ![]() ![]() |
volvo
Цитата А чем Char не нравится? Нравиться просто хотел убедиться что я все правильно понял :D Спасибо -------------------- collect the infotrons and find Exit
|
Анютка |
![]()
Сообщение
#9
|
Гость ![]() |
Цитата Я думаю, переделать его для массива строк не составит труда А для меня составило :p2: |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Цитата А для меня составило Что именно? Добавить еще один внешний цикл? |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 19:29 |