![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Nutcase |
![]()
Сообщение
#1
|
Гость ![]() |
Имеется файл, элементами которого являются отдельные слова. Если слово в файле начинается на букву 'k', то заменить ее на 'K'.
Знаю, что для того чтобы заменить ВСЕ 'k' буквы в файле, программа будет выглядеть примерно так: var f:file of char; а вот что исправить, чтобы заменялось только если буква находится в начале слова? ![]() Спасибо. Сообщение отредактировано: volvo - 2.11.2006 18:52 |
![]() ![]() |
Гость |
![]()
Сообщение
#2
|
Гость ![]() |
Смотрел faq, не нашел.
Помогите! |
APAL |
![]()
Сообщение
#3
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
-------------------- |
TR@N |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Реальное имя: YUra Репутация: ![]() ![]() ![]() |
А вот мой вариант программы (работает безотказно-ПРОВЕРЯЛ ![]() правда может чуть не стандартный (писал быстро) Код program bukva_k; uses crt; const max=20; var f :text; str :string; i,j,i_max:integer; mas:array [1..max] of string; begin assign (f, 'c:\a.txt'); reset (f); i:=1; while (not EOF(f)) do begin readln (f,mas[i]); for j:=1 to length(mas[i]) do begin if (j=1) and (mas[i][j]='k') then mas[i][j]:='K' else if (mas[i][j]=' ') and (mas[i][j+1]='k') then mas[i][j+1]:='K'; end; i_max:=i; i:=i+1; end; for i:=1 to i_max do writeln(mas[i]); close(f); end. Прикрепленные файлы ![]() |
F.I.A.T. |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата(TR@N @ 23.03.2006 0:41) А вот мой вариант программы (работает безотказно-ПРОВЕРЯЛ Уважаемый TR@N! Вот это ваше заявление вызывает по меньшей мере 2 вопроса: если (как Вы утверждаете, что еще не доказано, об этом поговорим чуть позже), Ваш вариант работает безотказно, то стало быть, по-Вашему, вариант из FAQ работает с ошибками? Очень опрометчиво... Я видела, КАК тестируются те программы, которые приводятся в FAQ-е, не Вам искать в них ошибки. Объясняю - почему:Цитата(TR@N @ 23.03.2006 0:41) readln (f,mas[ i ]); А скажите-ка мне, уважаемый, ЧТО произойдет, если последний (J) символ строки будет равен пробелу? Не приведет ли это: mas[ i ][j+1]='k'к попытке читать символ ЗА концом строки, и соответственно, к результату, которому нельзя верить? FPC, напрмер, на это моментально выдаст Segmentation Fault, результат работы в TP/BP будет зависеть от настроек среды программирования/опций компилятора... Так что, я бы порекомендовала Вам в следующий раз более внимательно тестировать приводимые программы, и, соответственно, тщательно выбирать выражения... |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 10:16 |