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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2014, 23:38   #11
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Вот и дай пример автору, а она уж пусть выбирает какой ей наиболее светит )
Я ведь не против.
попросит - напишу.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.10.2014, 10:38   #12
Donald Ervin Knuth
Пользователь
 
Аватар для Donald Ervin Knuth
 
Регистрация: 15.10.2014
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Руслана17 Посмотреть сообщение
Есть строка, состоящая из слов, разделенных одним или несколькими
пробелами. Вывести строку, содержащую эти же слова , но разделенные одним
пробелом.
Код:
program prog27;
var
sl,vodstr,vivodstr:string[255];
k,col,d:integer;
begin
writeln('Введите заданную строку');
readln(vodstr);
col:=ord(vodstr[0]);
sl:=' '; k:=1;vivodstr:='';
  for d:=1 to col do
    begin
        if vodstr[d]<>sl 
        then
           vivodstr:=vivodstr+vodstr[d]
        else 
            begin
              if (vodstr[d]=sl)and (vodstr[d+1]<>sl)
                then
                  begin
                  vivodstr:=vivodstr+sl;
                  k:=k+1;
                 end
                 else
                 k:=k;
             end;
     end;
             writeln(vivodstr);
end.
g25092011
Donald Ervin Knuth вне форума Ответить с цитированием
Старый 20.10.2014, 17:33   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
нафига что-то удалять? можно выводить строку посимвольно, пропуская лишние пробелы и всё.
золотые слова.

Код:
var i : integer;
  S : string;
begin
  WriteLn('Input string:');
  ReadLn(S);
  for i:=1 to Length(S) do
    if i=1 then Write(S[1])
    else
      if (S[i]<>' ') or ((S[i]=' ') and (S[i-1]<>' ')) then Write(S[i]);
end.

Последний раз редактировалось Serge_Bliznykov; 20.10.2014 в 17:41.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.10.2014, 17:36   #14
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

А если первый пробел? Да и в таком случае Write(S[1]) лучше вынести за цикл, а цикл от 2 начать.
Arigato вне форума Ответить с цитированием
Старый 20.10.2014, 17:47   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
А если первый пробел?
а если первый пробел - это нужно вывести, нам же только дублирующие пробелы нужно убрать. про одиночные ничего не сказано, значит, надо их выводить!

Цитата:
Да и в таком случае Write(S[1]) лучше вынести за цикл, а цикл от 2 начать.
Думал об этом. Решил, что нет, не лучше. Тогда нужно ставить проверку на длину строки, которая может быть равна нулю (пустая строка).

Впрочем, как уже писалось выше - я дал пример, теперь автору темы есть что посмотреть, что доработать до нужного состояния
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.10.2014, 18:00   #16
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Спорный вопрос. Сказано, что вывести слова через одинарные пробелы. Пробелы вначале строки никакие слова не отделяют, то есть по идеи их надо убрать, как и в конце строки.

На счет длины, то ее можно проверить до цикла. Во всяком случае лучше if до цикла, чем if внутри цикла.
Arigato вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строки в паскале.Задача,помогите решить Настя33 Помощь студентам 1 21.02.2014 19:18
Помогите! Задача на списки в паскале Kinkl Помощь студентам 2 12.04.2011 14:30