IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

3 страниц V < 1 2 3 >  
 Ответить  Открыть новую тему 
> Перенос слова, перенести слова, используя 3 правила
Lapp
сообщение 10.12.2006 17:31
Сообщение #21


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Вот, есть первый ощутимый результат smile.gif.
Я реализовал первое правило. Получается не так просто, чтобы объяснить в двух словах. Давай, лучше ты посмотришь и станешь задавать вопросы - по сделанному, а не "как дальше".. Я немного подозреваю, что ты смотришь на сделанное, как на пройденный этап, к которому нет смысла возвроащаться.. А это неправильно, так как именно в этом и состоит твой прогресс. Если можешь, развей мои подозрения smile.gif.

В принципе, реализация остальных правил может быть проведена по образу и подобию первого. Так что если ты действительно разберешься, ты сможешь это сделать. Извини за отстутствие комментариев, могу добавить позже..

> Более или менее все понятно, а вот куда впихнуть буквы "й, ь, ъ"
> для них просто массив создать в начале, да?
Я вообще несколько переделал организацию ввода алфавита. Ну, увидишь, как. Это для простоты, компактности и лучшей читаемости (да и писаемости тоже smile.gif) кода, особенно когда несколько кодировок.

> P. S. Дальше не могу продвинуться, никак не составлю условие для переноса wacko.gif
Вот, я его составил smile.gif. Enjoy! smile.gif

Последние замечания:
- вывод пока идет только на экран;
- длина строки задается 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.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gold_Fish
сообщение 10.12.2006 19:41
Сообщение #22


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Женский
Реальное имя: Марина

Репутация: -  0  +


Цитата
Я немного подозреваю, что ты смотришь на сделанное, как на пройденный этап, к которому нет смысла возвроащаться.. А это неправильно, так как именно в этом и состоит твой прогресс. Если можешь, развей мои подозрения smile.gif

Сейчас разберусь в проге и попробую развеять smile.gif))
И спасибо Сударь, благодаря Вам я плавно приближаюсь к окончанию первого семестра моего учения, благодаря Вашей бескорыстной помощи give_rose.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gold_Fish
сообщение 10.12.2006 20:50
Сообщение #23


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Женский
Реальное имя: Марина

Репутация: -  0  +


Что-то не очень понимаю вот это место:
Цитата
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 unsure.gif
Что тогда значит "i" ? wacko.gif
Ещё вот это можно пояснить:
Цитата
s:=s+Copy(t,1,Ord(Map[i]))+'-';

Что такое тут Copy(t,1,Ord(Map[i])) ? blink.gif

Сообщение отредактировано: Gold_Fish - 10.12.2006 21:05
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 11.12.2006 1:52
Сообщение #24


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


> И почему-то перед [i] ошибка №121 unsure.gif
TP этого действительно не пропускает. Я думал, что ты уже перешла на FPC..
Для того, чтобы это скомпилить в TP, добавь тип string в определение конмтант, вот так:
  VowDOS='АаЕеЁёИиОоУуЫыЭэЮюЯя';
ConDOS='БбВвГгДдЖжЗзКкЛлМмНнПпРрСсТтФфХхЦцЧч';
IShDOS='Йй';
SHzDOS='ЪъЬь';


> Что-то не очень понимаю вот это место:
> for i:=1 to Length(VowDOS) do Include(Vow,VowDOS[i]);
> ...
Это заполнение множеств. Раньше я задавал их непосредственно (см. старый вариант проги), а сейчас через строчку-константу. Так удобнее, согласись. Правда, требует лишних операторов (вот этих).

> Что тогда значит "i" ? wacko.gif
Это переменная цикла. См. описание цикла FOR в документации. Рекомендую описание:
http://download.excode.ru/download277.html

> Что такое тут Copy(t,1,Ord(Map[i])) ? blink.gif
Копирование части строки. В указанном документе см. Приложение 4, Модуль System, П 4.1.3.

Давай, Рыбка - барахтайся, а то утонешь! smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gold_Fish
сообщение 11.12.2006 8:37
Сообщение #25


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Женский
Реальное имя: Марина

Репутация: -  0  +


Барахтаюсь lol.gif
В FPC я тоже пробовала эту прогу, да он пропускает это место, но в результате непонятно что мне выдает, вот так nea.gif
Цитата
Для того, чтобы это скомпилить в TP, добавь тип string в определение конмтант

А можно попроще для меня сказать еще раз? rolleyes.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 11.12.2006 11:06
Сообщение #26


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


> В 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, то переноса получается аж два! Тут, конечно, есть ошибки, если заметишь - скажи. Это же еще не релиз.. smile.gif
А что она выдает тебе?.. blink.gif

> А можно попроще для меня сказать еще раз?
Фу, я в своем репертуаре... каким-то образом выпустил главное.. извинишь? smile.gif Вот как надо:
  VowDOS:srting='АаЕеЁёИиОоУуЫыЭэЮюЯя';
ConDOS:srting='БбВвГгДдЖжЗзКкЛлМмНнПпРрСсТтФфХхЦцЧч';
IShDOS:srting='Йй';
SHzDOS:srting='ЪъЬь';

Давай, плыви дальше smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gold_Fish
сообщение 11.12.2006 13:49
Сообщение #27


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Женский
Реальное имя: Марина

Репутация: -  0  +


В общем-то ничего и не выдает smile.gif)) ( может быть я не туда смотрю конечно: надо в сам файл чтоли заглядывать потом? unsure.gif )
Вот смотри что пишет:
Цитата
Program c:\document and setting\fomin\desctop\cool\marinochka.exe
exited with
exitcode = 2

nea.gif
Где тогда результат смотреть??? rolleyes.gif
Цитата
>А можно попроще для меня сказать еще раз?
Фу, я в своем репертуаре... каким-то образом выпустил главное.. извинишь? Вот как надо:


VowDOS:srting='АаЕеЁёИиОоУуЫыЭэЮюЯя';
ConDOS:srting='БбВвГгДдЖжЗзКкЛлМмНнПпРрСсТтФфХхЦцЧч';
IShDOS:srting='Йй';
SHzDOS:srting='ЪъЬь';

Спасибки give_rose.gif

Сообщение отредактировано: Gold_Fish - 11.12.2006 13:52
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 11.12.2006 14:01
Сообщение #28


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


> В общем-то ничего и не выдает smile.gif))
> ...
> Вот смотри что пишет:
> exitcode = 2
И это нынче называется "ничего не выдает"?.. Подруга подводоплавающая, это как раз и есть самая главная выдача! И значит она, что файл не найден.. Ты какой файл вводишь по запросу? мы, кажется, договорились на имена d.txt и w.txt. Пока прога работает только с досовской кодировкой, так что давай ей d.txt. И он должен быть в этой директории.. Ясно? smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gold_Fish
сообщение 11.12.2006 14:04
Сообщение #29


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Женский
Реальное имя: Марина

Репутация: -  0  +


Теперь вообще FPC другую штуку пишет (типа ошибки, наверное, в новом окошке внизу) unsure.gif
А TP выдает ошибку №3 перед типом String, в штуке которую мы изменили.
nea.gif

Цитата(Lapp @ 11.12.2006 14:01) *

> В общем-то ничего и не выдает smile.gif))
> ...
> Вот смотри что пишет:
> exitcode = 2
И это нынче называется "ничего не выдает"?.. Подруга подводоплавающая, это как раз и есть самая главная выдача! И значит она, что файл не найден.. Ты какой файл вводишь по запросу? мы, кажется, договорились на имена d.txt и w.txt. Пока прога работает только с досовской кодировкой, так что давай ей d.txt. И он должен быть в этой директории.. Ясно? smile.gif

Ну я вводила d.txt точно smile.gif))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Алена
сообщение 11.12.2006 14:06
Сообщение #30


Гость






Цитата
А TP выдает ошибку №3 перед типом String, в штуке которую мы изменили.


sTRing попробуй набрать, вместо того, что сейчас ...
 К началу страницы 
+ Ответить 
Lapp
сообщение 11.12.2006 14:10
Сообщение #31


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Алена @ 11.12.2006 15:06) *

sTRing попробуй набрать, вместо того, что сейчас ...

Спасибо, Алена smile.gif
Gold_Fish, еще раз извини.. sad.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gold_Fish
сообщение 11.12.2006 14:10
Сообщение #32


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Женский
Реальное имя: Марина

Репутация: -  0  +


УРА!!! Заработало lol.gif
Там просто вместо string было srting написано, а я не проверила ...
Воть, честенько я невнимательностью страдаю к сожалению wacko.gif
Спасибки Алена smile.gif
Lapp, хватит уже извиняться-то smile.gif)) если бы не ты мне бы ноль в скором будущем поставили наверное smile.gif Поэтому спасибки большое give_rose.gif

Сообщение отредактировано: Gold_Fish - 11.12.2006 14:13
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 11.12.2006 14:13
Сообщение #33


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Gold_Fish @ 11.12.2006 15:04) *

Ну я вводила d.txt точно smile.gif))

Против сверхъестественных явлений я пас.. Ошибка однозначная - файл не найден. Ищи.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gold_Fish
сообщение 11.12.2006 14:15
Сообщение #34


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Женский
Реальное имя: Марина

Репутация: -  0  +


Цитата(Lapp @ 11.12.2006 14:13) *

Против сверхъестественных явлений я пас.. Ошибка однозначная - файл не найден. Ищи.

Теперь уже TP работает smile.gif , а FPC прежнюю штучку пишет unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 11.12.2006 14:26
Сообщение #35


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Gold_Fish @ 11.12.2006 15:15) *

Теперь уже TP работает smile.gif , а FPC прежнюю штучку пишет unsure.gif

Что ТР работает - это хорошо, но хотелось бы узнать, что за штучка.. Она при компиляции или при работе? Если при компиляции, то пойди в Options - Compiler - Code Generation и проставь там Turbo Pascal Compatible. И вообще, постарайся быть поконкретнее в сообщениях об ошибках.. иначе мы уйму времени потратим впустую.

В любом случае можешь продолжать в ТР. Вернись к мессаджу 21 и продолжай в духе того, что там написано.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gold_Fish
сообщение 11.12.2006 14:37
Сообщение #36


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Женский
Реальное имя: Марина

Репутация: -  0  +


Цитата(Lapp @ 11.12.2006 14:26) *

Что ТР работает - это хорошо, но хотелось бы узнать, что за штучка.. Она при компиляции или при работе? Если при компиляции, то пойди в Options - Compiler - Code Generation и проставь там Turbo Pascal Compatible. И вообще, постарайся быть поконкретнее в сообщениях об ошибках.. иначе мы уйму времени потратим впустую.

В любом случае можешь продолжать в ТР. Вернись к мессаджу 21 и продолжай в духе того, что там написано.


Штучку прежнюю, где
Цитата
exited with
exitcode = 2

написано. unsure.gif
Попробую продолжить в духе мессаджа #21 smile.gif Не думаю, конечно, что получится, но надо попробовать rolleyes.gif

Сообщение отредактировано: Gold_Fish - 11.12.2006 14:39
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 11.12.2006 14:55
Сообщение #37


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


> Штучку прежнюю, где
> exited with
> exitcode = 2
> написано. unsure.gif
Файл лежит в той же директории и не читается?.. чудеса..


> Попробую продолжить в духе мессаджа #21 smile.gif
> Не думаю, конечно, что получится, но надо попробовать rolleyes.gif
Обязательно надо smile.gif. Кроме шуток smile.gif

Заметил еще одну квазиошибку в том своем тексте..
Закомментируй, плз, строчки:
  Assign(fOu,'tst-ou-w.txt');
ReWrite(fOu);

Ну, давай. Девиз всех Рыбок: плавать в море, чтоб не плавать на зачете! smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gold_Fish
сообщение 11.12.2006 15:01
Сообщение #38


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Женский
Реальное имя: Марина

Репутация: -  0  +


Цитата(Lapp @ 11.12.2006 14:55) *

Заметил еще одну квазиошибку в том своем тексте..
Закомментируй, плз, строчки:
  Assign(fOu,'tst-ou-w.txt');
ReWrite(fOu);


Что сделать? unsure.gif
> Ну, давай. Девиз всех Рыбок: плавать в море, чтоб не плавать на зачете! smile.gif
Спасибки smile.gif))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 11.12.2006 15:05
Сообщение #39


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Gold_Fish @ 11.12.2006 16:01) *

Что сделать? unsure.gif

Заключить в фигурные скобки smile.gif))))))))


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Gold_Fish
сообщение 11.12.2006 15:10
Сообщение #40


Новичок
*

Группа: Пользователи
Сообщений: 28
Пол: Женский
Реальное имя: Марина

Репутация: -  0  +


Цитата(Lapp @ 11.12.2006 15:05) *

Заключить в фигурные скобки smile.gif))))))))

Ну не надо смеятся, я же не такая умная как Вы, дорогой друг Lapp, и не знала что это такое rolleyes.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

3 страниц V < 1 2 3 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 14:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"