Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2008, 14:39   #1
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию Замена многоточия одной точкой в строке S.

Сообщение от Xeon332.
Цитата:
Приветствую.
Посмотрите пожалуста задачу:

Var
I: string;
A: array[1..255] of char;
Begin
For i:=length(a) downto 1 do
Begin
While pos('..',a)>0 do
Delete (a,pos('..',a),1);
Writeln;
End;
Writeln;
End.

Условие: 1) Дана строка S. Преобразовать строку, заменив в ней каждое многоточие одной точкой.



вЫДАЕТ ПОЧЕМУ ТО ОШИБКУ ПРИ ТАКОМ РЕШЕНИИ... Не подскажете в чём ошибка?
Ответ от меня:
Желательно для получения ответов на такие вопросы не пользоваться личкой. Не потому, что мне или комуто лень отвечать, а потому, что:
- можно быть очень занятым и не заходить на форум неделями.
- никто не может "поругать" мой ответ.
- я могу просто незнать ответа.
- некоторые пользуются поиском и может быть в этой задаче они найдут для себя что нибудь интересное.
[/off]

1. Непонятно зачем обьявлен массив...
2. i := length(a) Значение i заданно в разделе var как String.
3. Возможное решение этой задачи:

Код:
Var S : String;
      i : Byte;

BEGIN
Readln (S);
 For i := Length(S) DownTo 1 Do
   If (S[i] = '.') And (S[i - 1] = '.') Then Delete (s, i, 1);
Writeln(S);
Readln;
END.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 15.01.2008, 14:55   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
никто не может "поругать" мой ответ.
Хыхы Чесный человек ))
Поругаю. Можно?

Многоточие это три а не две точки.

И предложу свой вариант:
Код:
var s:string;i:integer;
begin
s:='qwqwq...ere..erere...ertrtr...wr...ere';
repeat
 i:=pos('...',s);
 if i<>0 then delete(s,i,3);
until i=0;
writeln(s);
readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.01.2008, 14:58   #3
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Хм..... я предполагал что Многоточие это много точек....
Тобишь всё что больше одной точки это многоточие.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 15.01.2008, 15:03   #4
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Многоточие это три а не две точки.
Не факт
Многото́чие (…) — знак препинания в виде нескольких (в русском языке трёх) поставленных рядом точек.
Alex21 вне форума Ответить с цитированием
Старый 15.01.2008, 15:45   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Лана, убедили.
Пусть автор теперь выбирает
Оффтоп: я никогда и в других языках не видел в многоточии больше или менбше трех точек
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.01.2008, 15:54   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Чтобы заменить три точки на одну нужно написать так
for i:=length(s) downto 1 do
while pos('...',s)>0 do delete(s,pos('...',s),2);
две точки удаляем, а одна остается.
puporev вне форума Ответить с цитированием
Старый 15.01.2008, 16:27   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

а-а-а точно. Провтыкал )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.01.2008, 00:59   #8
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

StringReplace чем не подходит ??
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 18.01.2008, 08:16   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

По умолчанию требовалось решение в Паскале.
puporev вне форума Ответить с цитированием
Старый 18.01.2008, 18:13   #10
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
Радость

Цитата:
Сообщение от puporev Посмотреть сообщение
По умолчанию требовалось решение в Паскале.
Ясно. Если бы требовалось решение в делфи то данная функция незаменима.
---
GAGARIN-NEW вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Числа с плав. точкой или запятой? dx+ Общие вопросы Delphi 1 08.05.2008 16:47
Сравнение чисел с плавающей точкой ? Ulex Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 12.04.2008 21:14
Как избавиться от многоточия в TsListView dimfil Компоненты Delphi 5 03.12.2007 09:57
Числа с плавающей точкой Blondinka Общие вопросы Delphi 8 21.09.2007 11:32