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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2009, 00:24   #11
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Второй пункт. Мой вариант со строковыми функциями:
Код:
uses crt;
var
s : string;
i,j,k,len : integer;

begin
clrscr;
writeln('enter s: ');
readln(s);

i := 0;
j := 1;
len := length(s);
repeat
i := pos('.',copy(s,j,len));
if i<>0 then
  begin
  j := j + i;
  if s[j+1] <> ' ' then insert(' ',s,j)
  else
    begin
    k:=1;
    while s[j+k] = ' ' do inc(k);
      if k<>1 then delete(s,j+1,k-1);
    end;
  k := 1;
  while s[j-k-1] = ' ' do inc(k);
  if k<>1 then delete(s,j-k,k-1);
  len := length(s);
  end
 else break;
if keypressed then break;

until j>=len;

writeln('-----');
writeln(s);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 15.01.2009, 00:26   #12
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Tkirill Посмотреть сообщение
а вы в каком паскале делаете?
Dev-pas (free pascal 2.2.2)
Сейчас спецом еще проверил в TP7. Результат везде один.

Видимо, дело вот в чем: вы везде пишете pos(' ',s)
При этом каждый раз начинаете поиск с первого символа строки.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 15.01.2009 в 00:28.
Sazary вне форума Ответить с цитированием
Старый 15.01.2009, 00:51   #13
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

1)Вот мой вариант: достаточно проверить строку на содержание двойного пробела и он удалит все последующие:
Код:
program capta1n;
var
 s : string;
 m : byte;
begin
  readln(s);

  repeat
    m:=pos('  ',s);
    if m>0 then delete(s,m+1,1)
  until m=0;
  writeln (s);

  readln
end.
Можно было вообще переменную m убрать и тогда из переменных осталась бы одна строка, но это ухудшило бы понимание программы на мой взгляд - просто постоянно записыва pos(...) как то бесит)))

Последний раз редактировалось capta1n; 15.01.2009 в 03:06.
capta1n вне форума Ответить с цитированием
Старый 15.01.2009, 16:26   #14
pomoshnic
Форумчанин
 
Аватар для pomoshnic
 
Регистрация: 16.11.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от Tkirill Посмотреть сообщение
а вы в каком паскале делаете?
Turbo pascal 7.0
pomoshnic вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что означает этот текст программы в Паскале? xxasb07 Помощь студентам 2 09.12.2008 19:19
Быстрый вызов программы с помощью мыши Патрон Win Api 3 17.07.2008 15:40
Открытие файла с помощью моей программы igroman Общие вопросы Delphi 3 09.06.2008 09:12
Проверьте пожалуйста текст программы Dim@ Помощь студентам 1 26.12.2007 19:53
Выбор программы или Открыть с помощью Умелец Свободное общение 7 14.07.2007 21:17