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

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

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

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


Новичок
*

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

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


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


Знаток
****

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

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


pos('енок',s)


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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я -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






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

А ты этот "вариант" откомпилировать пробовал?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гуру
*****

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

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


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

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

Сообщение отредактировано: Ozzя -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гуру
*****

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

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


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


Новичок
*

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

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


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


Гуру
*****

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

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


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


Новичок
*

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

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


Тогда выводятся слова кончающиеся на заглавную.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 - здесь: Модуль для работы со строками
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

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

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


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


Новичок
*

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

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


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


Гость






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

Lisenok
?

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


Новичок
*

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

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


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


Гость






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

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

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

 



- Текстовая версия 18.04.2025 20:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name