Так что надо сначала все просмотреть и определить его. А потом на втором проходе уже печатать.
Первые три человека, приславшие мне в PM (чтобы топикстартера не отвлекать от решения задачи) программу, которая выполняет задание за один проход (нет двух явных проходов - первого для нахождения indent-а, и второго - для печати), получают +1 в репутацию (слабонервным даже не браться за это). Все дополнительные вопросы - тоже в PM...
Я очень извиняюсь за вторжение, но я взял на себя смелость выделить этот разговор в отдельную тему. В основном, чтобы не мешать автору решать свои изначальные проблемы. В оригинальной теме также делаю ссылку на эту ветку.. - Lapp
volvo
5.12.2010 18:30
Все "ова" выровнены, одно под другим.
-TarasBer-
5.12.2010 20:37
За один проход (то есть прямо во время считки с клавиатуры, не запоминая слова) вывести все слова ровно невозможно. А хранить массив сдвигов, а потом при выводе его учитывать - это уже 2 прохода. Volvo, может ты просто в условии кой-чего мелким шрифтом написал, чего мы не заметили, типа что-то считается двойным проходом, а что-то нет? Юридические игры мне не интересны, если что.
volvo
5.12.2010 20:42
Цитата
За один проход (то есть прямо во время считки с клавиатуры, не запоминая слова) вывести все слова ровно невозможно
Если кто-то чего-то не умеет - это не значит, что оно в принципе невозможно. С тобой разговор окончен.
P.S. Задачка выходит за рамки сортировки пузырьком, да, TarasBer? Ну ничего, скоро очередной наплыв студентов и школьников, кто-нибудь да задаст тот вопрос, который даже ты сможешь решить...
-TarasBer-
6.12.2010 0:56
> P.S. Задачка выходит за рамки сортировки пузырьком, да, TarasBer? Ну ничего, скоро очередной наплыв студентов и школьников, кто-нибудь да задаст тот вопрос, который даже ты сможешь решить...
Не понял, это ты подначиваешь так? Не, не поведусь...
Ааа, я понял, это всё шутка в стиле Сэма Лойда (который обещал 1 000 000 баксов тому, кто поменяет 14 и 15 в игре в 15, не поменяв остальные фишки)...
Unconnected
6.12.2010 1:10
Соорудил прогу, по немного другому принципу.. volvo в ЛС не ответил что-то, наверное, она не подходит под критерии, поэтому кладу сюда )
const mc=60;
var words:array[1..mc] of string; s,sam,buf:string; i,p,d,bd,j,k:integer; lets:set of char=['a'..'z']+['A'..'Z']; begin writeln('Type in a text'); readln(s); writeln('Type in a sample'); readln(sam); p:=0; d:=0; bd:=0; buf:=''; s:=s+' '; for i:=1 to length(s) do begin if (s[i] in lets) then buf:=buf+s[i] else begin d:=pos(sam,buf); if d>0 then begin inc(p); words[p]:=buf; if d>bd then begin for j:=1 to p do for k:=1 to (d-pos(sam,words[j])) do words[j]:=' '+words[j]; bd:=d; end else begin for k:=1 to bd-d do words[p]:=' '+words[p]; end; buf:=''; end; end; end; for i:=1 to p do writeln(words[i]); readln; end.
(подразумевается, что слова разделены только пробелами. Писал в делфи, но в паскале тоже должно работать.)
-TarasBer-
6.12.2010 1:19
> наверное, она не подходит под критерии
Для последовательности
Код
ова аова ааова аааова ааааова
итд
у тебя будет даже не 2 прохода, а целых n
Unconnected
6.12.2010 1:20
Цитата
(нет двух явных проходов - первого для нахождения indent-а, и второго - для печати),
У меня нет двух явных проходов - поиска максимального indent-а и печати. Не думаю, что тут имеется в виду сделать все в одном цикле.
-TarasBer-
6.12.2010 1:48
Ну, слушай, явный, неявный... Я же сказал, что в юридические игры не играю. К тому же у тебя алгоритмическая сложность квадратом стала.
Unconnected
6.12.2010 1:53
Никаких игр, тут жирным шрифтом было выделено, в чем соль) А дело не в сложности (скорости выполнения), а алгоритме.
PS: эмм, извиняюсь за дезинформацию, сейчас получил ЛС от другого пользователя, и во входящих увидел мессагу от volvo, ещё днем пришедшую. Но оповещения не было, блин!
Lapp
6.12.2010 5:20
Володь, уточни, плз: за один проход без использования массивов?
Надо бы эту тему все же разделить. Негоже мешать человеку. Я сделаю сегодня попозже, OK?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.