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

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

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

 
Closed Topic Открыть новую тему 
> Поиск слов с окончаниями, из файла
Zloy student
сообщение 29.11.2005 12:44
Сообщение #1


Новичок
*

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

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


Найти слова из текстового файла с окончаниями -онок и -енок и вывести их на экран.Как искать слова по их началу я знаю, а вот как наоборот? Наработки приводить не буду т.к. вам этот бред скорее всего не пригодиться. Заранее спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
virt
сообщение 29.11.2005 12:56
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

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


pos('енок',s)


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Zloy student
сообщение 29.11.2005 13:07
Сообщение #3


Новичок
*

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

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


Код
uses crt;
var s:string;
   i,n,nah:integer;
begin
clrscr;
write('write text ';
readln(s);
n:=Length(s);
nah:=1;
for i:=1 to n do begin
if (s[i+1]=' ' or (i=n) then begin
if (copy(s,i-3,4)='онок' or  (copy(s,i-3,4)='енок'  then writeln(copy(s,nah,i-nah+1));
if s[i+2]<>' ' then nah:=i+2;
end;
end;
readln;
end.

Вот еще вариант но тут ввод строки. Как заменить на поиск из файла?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 29.11.2005 13:16
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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



...
var F: Text;
...

Assign(F, 'name.txt);
ReSet(F);
...
While not EOF(F) do
begin
ReadLn(F, S);
...
end;
...
Close(F);
...


Сообщение отредактировано: Ozzя - 29.11.2005 13:17
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 29.11.2005 13:33
Сообщение #5


Гость






Цитата
Вот еще вариант но тут ввод строки.

А ты этот "вариант" откомпилировать пробовал?
 К началу страницы 
+ Ответить 
Zloy student
сообщение 29.11.2005 13:59
Сообщение #6


Новичок
*

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

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


Код
program a;
var f : text;
s:string;
i,n,nah:integer;
begin
assign (f,'file.txt');
reset (f);
while not eof (f) do begin
n:=length(s);
nah:=1;
for i:=1 to n do begin
if (s[i+1]=' ' or i=n) then begin
if ((copy (s,i-3,4)='onok') or (copy(s,,i-3,4)='enok') then
writeln (copy(s,nah,i-nah+1));
if s[i+2]<>' ' then nah:=i+2;
end;
end;
readln;
end.

if (s[i+1]=' ' or i=n ) then begin - тут выдается ошибка о несовпадении типов.Что не так?

Сообщение отредактировано: Zloy student - 29.11.2005 14:01
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 29.11.2005 14:01
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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


(s[i+1]=' ') or (i=n)

Условия, разделяемые or/and/xor всегда должны заключаться в скобки.

Сообщение отредактировано: Ozzя - 29.11.2005 14:02
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 29.11.2005 14:03
Сообщение #8


Гость






Zloy student, я про это и говорил yes2.gif
Приоритеты надо расставлять (скобками):
for i:=1 to n do begin
if (s[i+1]=' ') or (i=n) then begin
if (copy(s,i-3,4)='onok') or (copy(s,i-3,4)='enok') then
writeln (copy(s,nah,i-nah+1));
if s[i+2]<>' ' then nah:=i+2;
end;
end;
 К началу страницы 
+ Ответить 
Ozzя
сообщение 29.11.2005 14:17
Сообщение #9


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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


Zloy student
Ты забыл вставить
ReadLn(F, S);
У тебя из файла строки НЕ читаются yes2.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Zloy student
сообщение 29.11.2005 14:35
Сообщение #10


Новичок
*

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

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


Спосибо! У меня еще вопрос. Что нужно поменять, чтобы выводились слова содержащие заглавные буквы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 29.11.2005 14:49
Сообщение #11


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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


...
if s[i] in ['А'..'Я'] then {Заглавная буква есть!}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Zloy student
сообщение 29.11.2005 15:16
Сообщение #12


Новичок
*

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

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


Тогда выводятся слова кончающиеся на заглавную.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 29.11.2005 15:24
Сообщение #13


Гость






Zloy student,
...
if (copy(StrUpper(s),i-3,4)=StrUpper('onok')) or (copy(StrUpper(s),i-3,4)=StrUpper('enok')) then
writeln (copy(s,nah,i-nah+1));
...

Реализация StrUpper - здесь: Модуль для работы со строками
 К началу страницы 
+ Ответить 
Zloy student
сообщение 29.11.2005 15:25
Сообщение #14


Новичок
*

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

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


А попроще никак нельзя? мне не поверят что это я писал smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Zloy student
сообщение 29.11.2005 15:27
Сообщение #15


Новичок
*

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

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


Нужно выводить слова содержащие заглавную букву!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 29.11.2005 15:34
Сообщение #16


Гость






Ну что за народ... Мало того, что даешь решение, так еще и попроще подавай nea.gif
Тогда делай сам, чтобы поверили, что это ты делал... Хотя я вообще не понимаю, что, твоя программа НЕ выведет слово

Lisenok
?

Тогда объясни, ЧТО ИМЕННО этому помешает?
 К началу страницы 
+ Ответить 
Zloy student
сообщение 29.11.2005 15:47
Сообщение #17


Новичок
*

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

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


Вот блин! Мне надо понятней выражаться. Забейте на окончания. Задание у меня такое: вывести из файла слова содержащие заглавную букву. Не создаю другую тему потому что задания похожие.Что в этой программе нужно поменять?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 29.11.2005 15:57
Сообщение #18


Гость






Правила прочти ВНИМАТЕЛЬНО !!! Свалку не надо из темы делать...
Сформулируй задачу как положено и создай новую тему...

Закрыто
 К началу страницы 
+ Ответить 

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

 



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