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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2008, 14:25   #1
Katovski
Дружусь с Delphi
Пользователь Подтвердите свой е-майл
 
Аватар для Katovski
 
Регистрация: 02.05.2008
Сообщений: 33
Вопрос Простенькая задача Делфи

Люди, помогите пожалуйста. Понимаю, задача элементарная, но я только-только начала изучать Делфи. итак:
Даны натуральное число n, символы s1, s2...sn. Преобразовать последовательность s1, s2...sn, заменив в ней каждую точку многоточием, т.е. тремя точками.
Заранее спасибо
Katovski вне форума Ответить с цитированием
Старый 02.05.2008, 14:57   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Какие уже есть наработки?
В поиске были?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 02.05.2008, 16:47   #3
Katovski
Дружусь с Delphi
Пользователь Подтвердите свой е-майл
 
Аватар для Katovski
 
Регистрация: 02.05.2008
Сообщений: 33
По умолчанию

Это ваще моя можно сказать первая задача, которую нада на оценку решить. Я плохо соображаю, получилось так
procedure TForm1.FormCreate(Sender: TObject);
var
x:integer;
begin
x := random(11);
Edit1.Text := IntToStr(x);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:=Edit2.Text;
if(length(s)=0) and (s[length(s)]='.')
then Label4.Caption:=Edit2.Text;
//or if pos ('.', s)>0 then Label3.Caption:='...';
//Edit1.SetFocus;
end;

Однако, я не могу придумать как сделать так, чтоб он точки менял на три... вот на форуме у вас же было подобное, но там наоборот надо было три точки удалять...
Может, объясните как в таких задачах думать
Katovski вне форума Ответить с цитированием
Старый 02.05.2008, 16:49   #4
Katovski
Дружусь с Delphi
Пользователь Подтвердите свой е-майл
 
Аватар для Katovski
 
Регистрация: 02.05.2008
Сообщений: 33
По умолчанию

типа так было
for i:=length(s) downto 1 do
while pos('...',s)>0 do delete(s,pos('...',s),2);
Katovski вне форума Ответить с цитированием
Старый 02.05.2008, 17:03   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
типа так было
for i:=length(s) downto 1 do
while pos('...',s)>0 do delete(s,pos('...',s),2);
Код:
d:=1;
repeat
  if copy(s, d, 1)='.' then begin
    insert('..', s, d);
    inc(d,2);
  end;
  inc(d)
until d>length(s)
eoln вне форума Ответить с цитированием
Старый 02.05.2008, 17:06   #6
Katovski
Дружусь с Delphi
Пользователь Подтвердите свой е-майл
 
Аватар для Katovski
 
Регистрация: 02.05.2008
Сообщений: 33
По умолчанию

ой, щас попробую! спасибо!
Katovski вне форума Ответить с цитированием
Старый 02.05.2008, 17:09   #7
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Реагирует только на одиночную точку. Двоеточие, троеточия и т.д. не обрабатывает. Найдя одиночную точку заменяет её на 3.

Код:
procedure TForm1.Button1Click(Sender: TObject);
Var S, Temp : String;
    i : Integer;

begin
S := Edit1.Text;
Temp := '';
For i := 1 To Length(S) Do
  Begin
    Temp := Temp + S[i];
    If (S[i-1] <> '.') and (S[i] = '.') and (S[i+1] <> '.') Then
      Temp := Temp + '..';
  End;
Edit1.Text := Temp;
end;
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 02.05.2008, 17:11   #8
Katovski
Дружусь с Delphi
Пользователь Подтвердите свой е-майл
 
Аватар для Katovski
 
Регистрация: 02.05.2008
Сообщений: 33
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Код:
d:=1;
repeat
  if copy(s, d, 1)='.' then begin
    insert('..', s, d);
    inc(d,2);
  end;
  inc(d)
until d>length(s)
______________

А я совсем глупая, он у меня на "d" ругается, может подскажете куда его поточнее вставлять? плз.
Katovski вне форума Ответить с цитированием
Старый 02.05.2008, 17:17   #9
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Цитата:
Сообщение от Katovski Посмотреть сообщение
______________

А я совсем глупая, он у меня на "d" ругается, может подскажете куда его поточнее вставлять? плз.
ну, наверное, его сначала нужно объявить (после слова var).
Если переменная эта у вас объявлена, то напишите поточнее, как конкретно ругается.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать

Последний раз редактировалось ACE Valery; 02.05.2008 в 17:21.
ACE Valery вне форума Ответить с цитированием
Старый 02.05.2008, 17:19   #10
Katovski
Дружусь с Delphi
Пользователь Подтвердите свой е-майл
 
Аватар для Katovski
 
Регистрация: 02.05.2008
Сообщений: 33
По умолчанию

Спасибо, Карась. Только я не пойму куда он ответ показывает. А что такое Temp?
Katovski вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по Делфи IGoDoVaN Фриланс 7 12.06.2008 12:42
Задача на Делфи evrey Общие вопросы Delphi 3 09.06.2008 09:01
задача Делфи - поиск нужного и замена Katovski Помощь студентам 8 30.05.2008 21:28
Задача на Делфи по теории голосования Alex2008 Фриланс 4 24.04.2008 20:17
CGI на Делфи AntonK8 PHP 3 12.04.2008 10:44