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

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

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

> задача "файлы" помогите решить, задали задачку уже 8 часов голову ломаю((((
Vigame
сообщение 16.12.2008 2:11
Сообщение #1





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

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


вот задача

Цитата
Дан текстовый файл. Считая, что количество букв в одном слове не превосходит 20, определить, сколько в файле имеется слов, состоящих из одного, двух, трех и т.д. символов. Результат вывести в другой текстовый файл.


помогите пожалуйста нечего не получается смог смастерить программу для подсчета слов в фаиле и больше нечего паскаль идет всего неделю и нужно срочно сдать задачу

Заранее спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Айра
сообщение 16.12.2008 3:22
Сообщение #2


Профи
****

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

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


Ну по сути большую часть ты сделал)) только интересно, по какому алгоритму)

А так, есть такие мысли:
описываем массив из 20 элементов, номер элемента соответствует количеству букв в слове, заполняем его сначала нулями.. Затем просматриваем файл, считываем символы и загоняем их в строку s:=s+ch, пока очередной не будет пробелом (или какие там еще могут быть символы разделители), собрали слово, посчитали его длину через length(s), и увеличили значение соответствующего элемента массива.. Очистили строку s:='', и пошли выделять слова дальше..
Как-то так)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 16.12.2008 5:58
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Айра @ 16.12.2008 3:22) *
... и загоняем их в строку
... Очистили строку ...
Зачем вообще тут строка? Сохранять символы - лишняя работа, и место лишнее нужно smile.gif

Скорее, как-то так:
const
Letters=['A'..'Z','a'..'z'];

var
f: file of char;
a: array[1..20]of integer;
i: integer;
c: char;

begin
Assign(f,'text1.txt');
ReSet(f);
i:=0;
while not EoF(f) do begin
Read(f,c);
if c in Letters then Inc(i) else if i>0 then begin
Inc(a[i]);
i:=0
end
end;
Close(f);
if c in Letters then Inc(a[i]);
for i:=1 to 20 do WriteLn(i,':',a[i]:10)
end.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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