![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Lapp |
![]()
Сообщение
#21
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Вот, есть первый ощутимый результат
![]() Я реализовал первое правило. Получается не так просто, чтобы объяснить в двух словах. Давай, лучше ты посмотришь и станешь задавать вопросы - по сделанному, а не "как дальше".. Я немного подозреваю, что ты смотришь на сделанное, как на пройденный этап, к которому нет смысла возвроащаться.. А это неправильно, так как именно в этом и состоит твой прогресс. Если можешь, развей мои подозрения ![]() В принципе, реализация остальных правил может быть проведена по образу и подобию первого. Так что если ты действительно разберешься, ты сможешь это сделать. Извини за отстутствие комментариев, могу добавить позже.. > Более или менее все понятно, а вот куда впихнуть буквы "й, ь, ъ" > для них просто массив создать в начале, да? Я вообще несколько переделал организацию ввода алфавита. Ну, увидишь, как. Это для простоты, компактности и лучшей читаемости (да и писаемости тоже ![]() > P. S. Дальше не могу продвинуться, никак не составлю условие для переноса ![]() Вот, я его составил ![]() ![]() Последние замечания: - вывод пока идет только на экран; - длина строки задается Lx, поварьируй ее.. Ну пока и все. { Hyphenation
Version 0.4
- rule #1
- getting the last w in a line
- reading the file
for Gold_Fish by Lapp }
const
Lx=37;
VowDOS='АаЕеЁёИиОоУуЫыЭэЮюЯя';
ConDOS='БбВвГгДдЖжЗзКкЛлМмНнПпРрСсТтФфХхЦцЧч';
IShDOS='Йй';
SHzDOS='ЪъЬь';
var
fIn:file of char;
fOu:text;
fName,s,t,w,Map:string;
c,d:char;
i:integer;
Vow,Con,ISh,SHz,Let:set of char;
Gap,Start:boolean;
begin
Write('Введите имя файла для форматирования: ');
ReadLn(fName);
{fName:='d.txt';}
Assign(fIn,fName);
ReSet(fIn);
Assign(fOu,'tst-ou-w.txt');
ReWrite(fOu);
Vow:=[];
Con:=[];
Ish:=[];
for i:=1 to Length(VowDOS) do Include(Vow,VowDOS[i]);
for i:=1 to Length(ConDOS) do Include(Con,ConDOS[i]);
for i:=1 to Length(IShDOS) do Include(ISh,IShDOS[i]);
for i:=1 to Length(SHzDOS) do Include(SHz,SHzDOS[i]);
Let:=Vow+Con+ISh+SHz;
s:='';
repeat
d:=#0;
while (Length(s)<Lx)and((d<>#$D)or(c<>#$A))and not EoF(fIn) do begin
if s=' ' then s:='';
d:=c;
Read(fIn,c);
if not (c in [#$D,#$A]) then s:=s+c;
end;
t:='';
if Length(s)=Lx then repeat
d:=c;
Read(fIn,c);
if not (c in [' ',#$D,#$A]) then t:=t+c;
until (c=' ')or((d=#$D)and(c=#$A))or(EoF(fIn));
if t<>'' then while not (s[Length(s)]=' ')or(Length(s)=0) do begin
Insert(s[Length(s)],t,1);
Delete(s,Length(s),1)
end;
{Rule #1}
if Length(t)>=4 then begin
for i:=1 to Length(t) do Map[i]:=Chr(i);
w:=t;
for i:=Length(t) downto 2 do {убираем Й после гласных в слове}
if (w[i] in ISh)and(w[i+1] in Vow) then begin
Delete(w,i,1);
Delete(Map,i,1)
end;
for i:=Length(w)-2 downto 2 do
if (w[i+1] in Vow)and(w[i] in Vow)and(w[i+2] in Let)and(w[i-1] in Con) then
if Length(s)+Ord(Map[i])<Lx then begin
s:=s+Copy(t,1,Ord(Map[i]))+'-';
Delete(t,1,Ord(Map[i]))
end;
end;
WriteLn(s);
s:=t;
if c=' ' then s:=s+' ';
{WriteLn(fOu,s)}
until EoF(fIn);
Close(fIn);
{ Close(fOu); }
;ReadLn
end.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Gold_Fish |
![]()
Сообщение
#22
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Цитата Я немного подозреваю, что ты смотришь на сделанное, как на пройденный этап, к которому нет смысла возвроащаться.. А это неправильно, так как именно в этом и состоит твой прогресс. Если можешь, развей мои подозрения ![]() Сейчас разберусь в проге и попробую развеять ![]() И спасибо Сударь, благодаря Вам я плавно приближаюсь к окончанию первого семестра моего учения, благодаря Вашей бескорыстной помощи ![]() |
Gold_Fish |
![]()
Сообщение
#23
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Что-то не очень понимаю вот это место:
Цитата for i:=1 to Length(VowDOS) do Include(Vow,VowDOS[i]); for i:=1 to Length(ConDOS) do Include(Con,ConDOS[i]); for i:=1 to Length(IShDOS) do Include(ISh,IShDOS[i]); for i:=1 to Length(SHzDOS) do Include(SHz,SHzDOS[i]); И почему-то перед [i] ошибка №121 ![]() Что тогда значит "i" ? ![]() Ещё вот это можно пояснить: Цитата s:=s+Copy(t,1,Ord(Map[i]))+'-'; Что такое тут Copy(t,1,Ord(Map[i])) ? ![]() Сообщение отредактировано: Gold_Fish - 10.12.2006 21:05 |
Lapp |
![]()
Сообщение
#24
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
> И почему-то перед [i] ошибка №121
![]() TP этого действительно не пропускает. Я думал, что ты уже перешла на FPC.. Для того, чтобы это скомпилить в TP, добавь тип string в определение конмтант, вот так: VowDOS='АаЕеЁёИиОоУуЫыЭэЮюЯя';
ConDOS='БбВвГгДдЖжЗзКкЛлМмНнПпРрСсТтФфХхЦцЧч';
IShDOS='Йй';
SHzDOS='ЪъЬь';
> Что-то не очень понимаю вот это место: > for i:=1 to Length(VowDOS) do Include(Vow,VowDOS[i]); > ... Это заполнение множеств. Раньше я задавал их непосредственно (см. старый вариант проги), а сейчас через строчку-константу. Так удобнее, согласись. Правда, требует лишних операторов (вот этих). > Что тогда значит "i" ? ![]() Это переменная цикла. См. описание цикла FOR в документации. Рекомендую описание: http://download.excode.ru/download277.html > Что такое тут Copy(t,1,Ord(Map[i])) ? ![]() Копирование части строки. В указанном документе см. Приложение 4, Модуль System, П 4.1.3. Давай, Рыбка - барахтайся, а то утонешь! ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Gold_Fish |
![]()
Сообщение
#25
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Барахтаюсь
![]() В FPC я тоже пробовала эту прогу, да он пропускает это место, но в результате непонятно что мне выдает, вот так ![]() Цитата Для того, чтобы это скомпилить в TP, добавь тип string в определение конмтант А можно попроще для меня сказать еще раз? ![]() |
Lapp |
![]()
Сообщение
#26
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
> В FPC я тоже пробовала эту прогу, да он пропускает это место,
> но в результате непонятно что мне выдает, вот так Попытайся все же пердать словами, что именно она выдает.. Мне, например, она выдает примерно следующее: Цитата C:\Home\home\ak\_pas\_t\t056_Gold_Fish>t056-4.exe Введите имя файла для форматирования: d.txt Милейшая исполнительница желаний безумных старух, Вы создали, извиня- юсь-с - doc-файл?.. Дружок, пойди в неказистый синенький Фар, создай там в рабочей твоей директории новый файл - назови, скажем, d.txt. Убедись, однако, что кодировка состоит DOS и сокопируй туда вот этот самовый бред.. сорри, вот эти мои заумные мысли - да, да, прямо отсюда. Да и сохрани его, да и закрой степенно.. Затем, нимало не отдыхаша, открой на редактирование еще один новый файл - и нареки имя ему w.txt. Закокококо.. кхм-кхм.. закопируй туда то же самое, но только в этот раз да вразумит тебя святой Пингвин, покровитель всех программеров, соблюсти кодировку при значении Win (рубильник F8 на твоем распределительном щитке) - да установи оное значение ДО копирования, противу сказать опосля.. И етути двое фалОв да будут отныне для тя тестовыми, ако в транслейшне - попробовательными.. А о сатнинском Word'е - и думать забудь, и трогать его не смей, и выброси его в геенну огненную, и - самое главное - НИКОГДА НЕ смотри в нутро поганое файла того, что создала ты в нем (переключатель F3 (просмотр файла в Фаре) и не трогай даже! ну, если тронешь - ну, сходи руки помой Тут есть один перенос, подпавший под правило №1 (слово "извиняюсь") , и он выполнен. Если задать длину строки 39, то переноса получается аж два! Тут, конечно, есть ошибки, если заметишь - скажи. Это же еще не релиз.. ![]() А что она выдает тебе?.. ![]() > А можно попроще для меня сказать еще раз? Фу, я в своем репертуаре... каким-то образом выпустил главное.. извинишь? ![]() VowDOS:srting='АаЕеЁёИиОоУуЫыЭэЮюЯя';
ConDOS:srting='БбВвГгДдЖжЗзКкЛлМмНнПпРрСсТтФфХхЦцЧч';
IShDOS:srting='Йй';
SHzDOS:srting='ЪъЬь';
Давай, плыви дальше ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Gold_Fish |
![]()
Сообщение
#27
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
В общем-то ничего и не выдает
![]() ![]() Вот смотри что пишет: Цитата Program c:\document and setting\fomin\desctop\cool\marinochka.exe exited with exitcode = 2 ![]() Где тогда результат смотреть??? ![]() Цитата >А можно попроще для меня сказать еще раз? Фу, я в своем репертуаре... каким-то образом выпустил главное.. извинишь? Вот как надо: VowDOS:srting='АаЕеЁёИиОоУуЫыЭэЮюЯя'; ConDOS:srting='БбВвГгДдЖжЗзКкЛлМмНнПпРрСсТтФфХхЦцЧч'; IShDOS:srting='Йй'; SHzDOS:srting='ЪъЬь'; Спасибки ![]() Сообщение отредактировано: Gold_Fish - 11.12.2006 13:52 |
Lapp |
![]()
Сообщение
#28
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
> В общем-то ничего и не выдает
![]() > ... > Вот смотри что пишет: > exitcode = 2 И это нынче называется "ничего не выдает"?.. Подруга подводоплавающая, это как раз и есть самая главная выдача! И значит она, что файл не найден.. Ты какой файл вводишь по запросу? мы, кажется, договорились на имена d.txt и w.txt. Пока прога работает только с досовской кодировкой, так что давай ей d.txt. И он должен быть в этой директории.. Ясно? ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Gold_Fish |
![]()
Сообщение
#29
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Теперь вообще FPC другую штуку пишет (типа ошибки, наверное, в новом окошке внизу)
![]() А TP выдает ошибку №3 перед типом String, в штуке которую мы изменили. ![]() > В общем-то ничего и не выдает ![]() > ... > Вот смотри что пишет: > exitcode = 2 И это нынче называется "ничего не выдает"?.. Подруга подводоплавающая, это как раз и есть самая главная выдача! И значит она, что файл не найден.. Ты какой файл вводишь по запросу? мы, кажется, договорились на имена d.txt и w.txt. Пока прога работает только с досовской кодировкой, так что давай ей d.txt. И он должен быть в этой директории.. Ясно? ![]() Ну я вводила d.txt точно ![]() |
Алена |
![]()
Сообщение
#30
|
Гость ![]() |
Цитата А TP выдает ошибку №3 перед типом String, в штуке которую мы изменили. sTRing попробуй набрать, вместо того, что сейчас ... |
Lapp |
![]()
Сообщение
#31
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
sTRing попробуй набрать, вместо того, что сейчас ... Спасибо, Алена ![]() Gold_Fish, еще раз извини.. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Gold_Fish |
![]()
Сообщение
#32
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
УРА!!! Заработало
![]() Там просто вместо string было srting написано, а я не проверила ... Воть, честенько я невнимательностью страдаю к сожалению ![]() Спасибки Алена ![]() Lapp, хватит уже извиняться-то ![]() ![]() ![]() Сообщение отредактировано: Gold_Fish - 11.12.2006 14:13 |
Lapp |
![]()
Сообщение
#33
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Ну я вводила d.txt точно ![]() Против сверхъестественных явлений я пас.. Ошибка однозначная - файл не найден. Ищи. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Gold_Fish |
![]()
Сообщение
#34
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
Lapp |
![]()
Сообщение
#35
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Теперь уже TP работает ![]() ![]() Что ТР работает - это хорошо, но хотелось бы узнать, что за штучка.. Она при компиляции или при работе? Если при компиляции, то пойди в Options - Compiler - Code Generation и проставь там Turbo Pascal Compatible. И вообще, постарайся быть поконкретнее в сообщениях об ошибках.. иначе мы уйму времени потратим впустую. В любом случае можешь продолжать в ТР. Вернись к мессаджу 21 и продолжай в духе того, что там написано. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Gold_Fish |
![]()
Сообщение
#36
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Что ТР работает - это хорошо, но хотелось бы узнать, что за штучка.. Она при компиляции или при работе? Если при компиляции, то пойди в Options - Compiler - Code Generation и проставь там Turbo Pascal Compatible. И вообще, постарайся быть поконкретнее в сообщениях об ошибках.. иначе мы уйму времени потратим впустую. В любом случае можешь продолжать в ТР. Вернись к мессаджу 21 и продолжай в духе того, что там написано. Штучку прежнюю, где Цитата exited with exitcode = 2 написано. ![]() Попробую продолжить в духе мессаджа #21 ![]() ![]() Сообщение отредактировано: Gold_Fish - 11.12.2006 14:39 |
Lapp |
![]()
Сообщение
#37
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
> Штучку прежнюю, где
> exited with > exitcode = 2 > написано. ![]() Файл лежит в той же директории и не читается?.. чудеса.. > Попробую продолжить в духе мессаджа #21 ![]() > Не думаю, конечно, что получится, но надо попробовать ![]() Обязательно надо ![]() ![]() Заметил еще одну квазиошибку в том своем тексте.. Закомментируй, плз, строчки: Assign(fOu,'tst-ou-w.txt');
ReWrite(fOu);
Ну, давай. Девиз всех Рыбок: плавать в море, чтоб не плавать на зачете! ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Gold_Fish |
![]()
Сообщение
#38
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
Lapp |
![]()
Сообщение
#39
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Gold_Fish |
![]()
Сообщение
#40
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 4:08 |