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

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

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

 
 Ответить  Открыть новую тему 
> задача на строки, здравствуйте, помогите с задачкой
gin
сообщение 23.11.2006 10:20
Сообщение #1





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

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


Дан файл, в котором записана строка, состоящая из слов, разделенных пробелом. Слова даны в виде записи. Надо найти и распечатать все слова длиною в 5 символов и слова, начинающиеся и заканчивающиеся на одну и ту же букву.
с оычной строкой еще могу сделать, а с записью - никак.

сделала только это:

program words;
type n = set of char;
const n = 29;
letters: n = ['a'..'z', 'A'..'Z'];
var w: record
r: array [1..n] of char;
i: 0..n
end;
c: char;
dat: text;
begin
assign(dat, 'dat.txt'); reset(dat);
while not eof(dat) do
begin
w.i := 0;
read(dat, c);
while c in letters do
begin
w.i := w.i + 1;
w.r[w.i] := c;
read(dat, c)
end;
if (w.i =5) then writeln (w.r);




помогите, пожалуйста.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 23.11.2006 11:02
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


что значит "слова даны в виде записи"? это типизированный файл?
у тебя описан текстовый, то есть в нем обычные строки...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
gin
сообщение 23.11.2006 11:20
Сообщение #3





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

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


да нет, не типизированный. это чтобы сложнее было, слова еще представлены в виде записи:


var w: record
r: array [1..n] of char;
i: 0..n
end;



слово - массив символов+его длина.

вот с этим и проблема, теоретичесли вроде ясно, как найти слово опред. длины, а практически...увы.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 23.11.2006 15:49
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


но в файле же они записаны как обычные строки?
то есть ты должна считать строку, разбить на слова-записи, а потом анализировать?
(это и должен делать написанный кусочек?)
я думаю, тебе имеет смысл создать array[1..m] of w, и туда записать все слова-записи. а потом идти в цикле по массиву и смотреть, нужной ли длины слово (это если ты по каким-то причинам не хочешь его выводить сразу после разбиения, как в приведенном фрагменте).


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
gin
сообщение 23.11.2006 18:57
Сообщение #5





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

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


Цитата(мисс_граффити @ 23.11.2006 15:49) *

но в файле же они записаны как обычные строки?
то есть ты должна считать строку, разбить на слова-записи, а потом анализировать?
(это и должен делать написанный кусочек?)
я думаю, тебе имеет смысл создать array[1..m] of w, и туда записать все слова-записи. а потом идти в цикле по массиву и смотреть, нужной ли длины слово (это если ты по каким-то причинам не хочешь его выводить сразу после разбиения, как в приведенном фрагменте).


так надо по условию unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.11.2006 19:10
Сообщение #6


Гость






gin, ну начала же почти правильно... Почему остановилась?

program words;

const
n = 29;
letters = ['a'..'z', 'A'..'Z'];

var
w: record
r: array [1..n] of char;
i: 0..n
end;

i: integer;
c: char;
dat: text;

begin

assign(dat, 'dat.txt'); reset(dat);
while not eof(dat) do begin

read(dat, c);
if c in letters then begin
w.i := w.i + 1;
w.r[w.i] := c;
end
else begin
if (w.i = 5) or (w.r[1] = w.r[w.i]) then begin
for i := 1 to w.i do write(w.r[i]);
writeln;
end;
w.i := 0;
end;

end;
close(dat);

end.
 К началу страницы 
+ Ответить 

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

 



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