![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Vigame |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
вот задача
Цитата Дан текстовый файл. Считая, что количество букв в одном слове не превосходит 20, определить, сколько в файле имеется слов, состоящих из одного, двух, трех и т.д. символов. Результат вывести в другой текстовый файл. помогите пожалуйста нечего не получается смог смастерить программу для подсчета слов в фаиле и больше нечего паскаль идет всего неделю и нужно срочно сдать задачу Заранее спасибо |
![]() ![]() |
Айра |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
Ну по сути большую часть ты сделал)) только интересно, по какому алгоритму)
А так, есть такие мысли: описываем массив из 20 элементов, номер элемента соответствует количеству букв в слове, заполняем его сначала нулями.. Затем просматриваем файл, считываем символы и загоняем их в строку s:=s+ch, пока очередной не будет пробелом (или какие там еще могут быть символы разделители), собрали слово, посчитали его длину через length(s), и увеличили значение соответствующего элемента массива.. Очистили строку s:='', и пошли выделять слова дальше.. Как-то так) |
Vigame |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
в общем от что у меня получилась но дальше не могу уже 8 часов мучаюсь
Код Uses crt; var MyFile: Text; i,n: integer; s: String; x,y,yItog: integer; begin clrscr; x:=0; y:=0; Assign(MyFile,'Text1.txt'); ReSet(MyFile); while not EOF(myFile) do begin ReadLn(MyFile,s); n:= Length(s); for i:=1 to n do begin if s[i]=' ' then x:=x+1; end; y:=x+1; x:=0; yItog:=yItog+y; end; Close(MyFile); Assign(MyFile,'Text2.txt'); ReWrite(MyFile); Write(MyFile,yItog); Close(MyFile); end. |
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
... и загоняем их в строку Зачем вообще тут строка? Сохранять символы - лишняя работа, и место лишнее нужно ... Очистили строку ... ![]() Скорее, как-то так: const -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Vigame |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
спасибо работает но нужно сделать сохранение в другой фаил....
делал вот так Assign(f,'Text2.txt'); но что-то не получается помогите пожалуйста за всех нужно форматировать... Сообщение отредактировано: Lapp - 16.12.2008 12:56 |
Lapp |
![]()
Сообщение
#6
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Если ты делаешь форматированный вывод, то файл должен быть типа text Заведи еще один файл:
g: text; - и выводи в него. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Vigame |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
вот сделал
Код for i:=1 to 20 do begin WriteLn(i,':',a[i]:10); Assign(g,'text2.txt'); Append(g); Write(g,i, ' - ',a[i]); Close(g); end; а как сделать чтобы в тексте выводилось с новой страки у меня вот что получилось Код 01 - 12 - 43 - 84 - 135 - 16 - 77 - 08 - 09 - 310 - 011 - 012 - 013 - 014 - 015 - 016 - 017 - 018 - 019 - 020 - 0 а мне надо Код 01 - 12 02 - 43 03 - 84 04 - 135 ..... можно такое сделать??? Добавлено через 7 мин. ура все сделал вначале ступил))))) вот код если кому интересно Код const Letters=['A'..'Z','a'..'z']; var f: file of char; g: text; 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]); Assign(g,'text2.txt'); Append(g); for i:=1 to 20 do begin WriteLn(i,':',a[i]:10); Writeln(g,i, ' - ',a[i]:10); end; Close(g); end. Lapp спасибо тебе огромное если хочешь за помощь магу рублеф 50 кинуть на вебмани токо вечером ![]() |
Lapp |
![]()
Сообщение
#8
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
магу рублеф 50 кинуть на вебмани токо вечером Ну нет, браток, извиняй.. ![]() ![]() Но спасибо, я понимаю, что это от чистого сердца ![]() В то же время надеюсь, что была польза не только сдаче задания, но и твоим знаниям ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Vigame |
![]()
Сообщение
#9
|
Группа: Пользователи Сообщений: 5 Пол: Мужской Репутация: ![]() ![]() ![]() |
да я уже все понял как делать огромное пасибо!!!!
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 14:11 |