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

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

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

> задача на строки, здравствуйте, помогите с задачкой
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 5)
сообщение
Сообщение #2


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

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

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


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


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





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

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


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


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



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

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


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

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

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


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


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





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

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


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

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


так надо по условию unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

 





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