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

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

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

 
 Ответить  Открыть новую тему 
> задание с файлом, подготовка к экзамену
сообщение
Сообщение #1


Пионер
**

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

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


Дан файл, содержащий русский текст. Найти в тексте 4 самых длинных
слова, оканчивающихся заданной буквой. Записать найденные слова в текстовый файл. Все найденные слова должны быть разными!


просьба помочь написать программу smile.gif


--------------------
Удачи.
Катерина
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






"Помочь написать" и "написать от начала до конца" - немного разные вещи... Ты бы говорила конкретно, что именно не получается, готовиться к экзамену должна ты, а не мы...

Вот так я бы делал первую программу:
uses crt;
const
delimiters = [' ', '.', ',']; { это - разделители между словами }
letter = 's'; { та самая буква, которая должна быть последней }

const
amount = 4; { столько слов, оканчивающихся буквой lettter надо найти }
type
str_array = array[1 .. amount] of string;
const
long_words: str_array =
('', '', '', '');
min_len: integer = 0;

{
это дополнительная проц-ра для сортировки массива
(пузырек, взято из FAQ...)
}
procedure sort_array(var ar: str_array; n: integer);
var
i, j: integer;
T: string;
begin
For i := 1 To n Do
For j := n DownTo i+1 Do
If length(ar[Pred(j)]) > length(ar[j]) Then Begin
T := ar[Pred(j)]; ar[Pred(j)] := ar[j]; ar[j] := T
End
end;

{
процедура проверяет, нужно ли включать слово S в массив,
и если нужно - слово запоминается, при этом самое короткое
из ранее запомненных слов "выталкивается" из массива...
}
procedure check_word(s: string);
var
i: integer;
begin
if (length(s) > min_len) and (s[length(s)] = letter) then begin
sort_array(long_words, amount);

for i := 1 to amount do
if long_words[i] = s then exit;
long_words[1] := s;

sort_array(long_words, amount);
end;
end;

var
f: text;
s, next_word: string;
i: byte;

begin
assign(f, 'katusha_1.txt'); { файл, с которым я прогонял программу }
reset(f);

while not eof(f) do begin
readln(f, s);

i := 1;
while i <= length(s) do begin
while (s[i] in delimiters) and (i <= length(s)) do inc(i);
next_word := '';

while not (s[i] in delimiters) and (i <= length(s)) do begin
next_word := next_word + s[i]; inc(i)
end;

{ в этом месте в next_word хранится очередное найденное слово }
check_word(next_word);
end;
end;

close(f);

{ здесь замени вывод на экран выводом в файл }
for i := 1 to amount do
if long_words[i] <> '' then writeln(long_words[i]);
end.

(проверь, я не компилировал ее в TurboPascal, только в FPC)... И для русских символов тоже. Ну нет у меня кириллицы...


Прикрепленные файлы
Прикрепленный файл  katusha_1.txt ( 70 байт ) Кол-во скачиваний: 309
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


пыталась скачать файл - не вышло..

текст скопировала. буду разбирацца :D

что такое пузырек тоже буду разбираться

распаковку текста заметила.. но торгознула.. тож разбирусь


--------------------
Удачи.
Катерина
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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