![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 10.03.2008
Сообщений: 3
|
![]()
Народ, помогите чем можете.
задание: В текстовом файле хранится текст или вводится с консоли (около 10 предложений), с пунктунционными ошибками - после точки новое предложение начинается с маленькой буквы, написать программу исправляющую эту ошибку. ![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
![]()
можно делать так
создадим 2 переменных: temp и all типа string 1. Считал строку 2. проверяем каждый символ в строке если это не '.' то дописать этот символ в строку temp если '.', то следующий символ записать большим (поднять регистр) all := temp; temp := ''; и так далее |
![]() |
![]() |
![]() |
#3 |
Регистрация: 10.03.2008
Сообщений: 3
|
![]()
спасибо, попробую.
а каким оператором счиать каждый символ? я в дельфи тока 2 день сижу. и не знаешь какой сайт где хорошо описаны большенство переменных? |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
![]()
можно функцией вырезания подстроки
Copy(строка, первый символ, длина вырезания) или к каждому символу можно обратиться как к массиву. Допустим, есть переменная str:string; первый символ - str[0], второй - str[1], третий - str [2] (не помню, первый символ под индексом 0 или 1) |
![]() |
![]() |
![]() |
#5 |
программист
Пользователь
Регистрация: 08.03.2008
Сообщений: 19
|
![]()
Под индексом 1.
Программист-Антиламер со стажем
|
![]() |
![]() |
![]() |
#6 | |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
![]() Цитата:
Как вариант это создать две строки. 1 - малые буквы(Mal), 2 - заглавные(Big). Начинаем перебор текста. При встрече точки ставим флаг. Теперь при дальнейшем "сканировании" мы смотрим не попалась ли нам буква. Как только она попалась начинаем в цикле проверять эту букву в строке Mal. Найдя такую букву мы узнаём номер большой буквы. И просто делаем замену. Если буква не встретилась, значит там стоит заглавная. Сбрасываем флаг и снова ищем точку.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 10.03.2008
Сообщений: 3
|
![]()
я имел в виду не переменные, а процедуры и типы
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 266
|
![]()
Купи какую-нибудь книжку по Delphi, она лучше, чем самоучители в интернете (правда, не всегда)
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 02.02.2007
Сообщений: 29
|
![]()
Есть еще вариант, без создания строк типа temp:
... var boolean prevDot; Spacer: set of char; ... prevDot := false; Spacer := [#$09, #$20, #$0D, #$0A]; // символы, пропускаемые после точки for i := 1 to length(text) do if text[i] = '.' then prevDot := true; else if (prevDot) and (not (text[i] in Spacer)) then begin text[i] := UpCase(text[i]); prevDot := false; end;
Быстро пойманный эксепшн исключением не считается
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблемы с контролами в новом окне | Karrde | Qt и кроссплатформенное программирование С/С++ | 1 | 13.10.2008 19:09 |
Получить сообщение о новом диске | Comer_Jus | Общие вопросы Delphi | 2 | 11.08.2008 15:26 |
Нужна помощь с алгоритмом расстановки ударения в предложении. | Gauss | Общие вопросы Delphi | 10 | 14.04.2008 15:31 |
В введенном предложении удалить все повторяющиеся слова | Алена | Помощь студентам | 5 | 21.11.2007 14:12 |
Открытие ссылки в новом окне | илья too | HTML и CSS | 1 | 14.07.2007 13:31 |