![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Zloy student |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Козел настоящий Репутация: ![]() ![]() ![]() |
Найти слова из текстового файла с окончаниями -онок и -енок и вывести их на экран.Как искать слова по их началу я знаю, а вот как наоборот? Наработки приводить не буду т.к. вам этот бред скорее всего не пригодиться. Заранее спасибо!
|
virt |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
pos('енок',s)
-------------------- |
Zloy student |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Козел настоящий Репутация: ![]() ![]() ![]() |
Код 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. Вот еще вариант но тут ввод строки. Как заменить на поиск из файла? |
Ozzя |
![]()
Сообщение
#4
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
...
var F: Text;
...
Assign(F, 'name.txt);
ReSet(F);
...
While not EOF(F) do
begin
ReadLn(F, S);
...
end;
...
Close(F);
...
Сообщение отредактировано: Ozzя - |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата Вот еще вариант но тут ввод строки. А ты этот "вариант" откомпилировать пробовал? |
Zloy student |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Козел настоящий Репутация: ![]() ![]() ![]() |
Код 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 - |
Ozzя |
![]()
Сообщение
#7
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
(s[i+1]=' ') or (i=n)
Условия, разделяемые or/and/xor всегда должны заключаться в скобки. Сообщение отредактировано: Ozzя - |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Zloy student, я про это и говорил
![]() Приоритеты надо расставлять (скобками): 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я |
![]()
Сообщение
#9
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
Zloy student
Ты забыл вставить ReadLn(F, S); У тебя из файла строки НЕ читаются ![]() |
Zloy student |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Козел настоящий Репутация: ![]() ![]() ![]() |
Спосибо! У меня еще вопрос. Что нужно поменять, чтобы выводились слова содержащие заглавные буквы?
|
Ozzя |
![]()
Сообщение
#11
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
...
if s[i] in ['А'..'Я'] then {Заглавная буква есть!} |
Zloy student |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Козел настоящий Репутация: ![]() ![]() ![]() |
Тогда выводятся слова кончающиеся на заглавную.
|
volvo |
![]()
Сообщение
#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 |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Козел настоящий Репутация: ![]() ![]() ![]() |
А попроще никак нельзя? мне не поверят что это я писал
![]() |
Zloy student |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Козел настоящий Репутация: ![]() ![]() ![]() |
Нужно выводить слова содержащие заглавную букву!
|
volvo |
![]()
Сообщение
#16
|
Гость ![]() |
Ну что за народ... Мало того, что даешь решение, так еще и попроще подавай
![]() Тогда делай сам, чтобы поверили, что это ты делал... Хотя я вообще не понимаю, что, твоя программа НЕ выведет слово Lisenok ? Тогда объясни, ЧТО ИМЕННО этому помешает? |
Zloy student |
![]()
Сообщение
#17
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Реальное имя: Козел настоящий Репутация: ![]() ![]() ![]() |
Вот блин! Мне надо понятней выражаться. Забейте на окончания. Задание у меня такое: вывести из файла слова содержащие заглавную букву. Не создаю другую тему потому что задания похожие.Что в этой программе нужно поменять?
|
volvo |
![]()
Сообщение
#18
|
Гость ![]() |
Правила прочти ВНИМАТЕЛЬНО !!! Свалку не надо из темы делать...
Сформулируй задачу как положено и создай новую тему... Закрыто |
![]() ![]() |
![]() |
Текстовая версия | 18.04.2025 20:30 |