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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2012, 20:30   #1
Lilen
Пользователь
 
Регистрация: 04.10.2012
Сообщений: 20
По умолчанию Строки

Из строки удалить слова с нечетными номерами/ помогите с кодом программы, сижу сообразить ничего не могу..
Lilen вне форума Ответить с цитированием
Старый 19.11.2012, 22:28   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Только как пример:
Имеем исходную строку si и строку результата - sr.
Пусть переменная n - номер слова и вначале равна 1.
пусть m - номер символа в результирующей строке и вначале равен 1.
1. Присматриваем исходную строку в цикле и символы четных слов переносим в результирующую строку.
Не забываем добавлять пробел.

Код:
sr :=  ''; {Очистим результирующую строку}
n := 1; {первое слово нечетное}
m := 1; 
for k := 1 to length(s1) do {до конца исходной строки}
   if ((n mod 2) = 0) then {четное слово}
      if si[k] <>' ' then {не конец слова}
         begin
            sr[m] := si[k]; {копируем символы слова}
             m := m + 1;
         end
      else            {конец слова}
      begin
         sr[m] := ' '; {добавим пробел}
         m := m + 1;
         n : = n + 1; {следующее слово}
      end;

Что-то в этом роде ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 29.11.2012, 15:59   #3
Lilen
Пользователь
 
Регистрация: 04.10.2012
Сообщений: 20
По умолчанию

Может быть я что-то не понимаю, написала код, не работает...

Код:
var i,k,m,n:integer;
s,sr,s1,si:string;
begin
writeln('введите строку слов');
readln(si);
sr :=' '; {Очистим результирующую строку}
n := 1; {первое слово нечетное}
m := 1;
for k := 1 to length(si) do {до конца исходной строки}
   if ((n mod 2) = 0) then {четное слово}
      if si[k] <>' ' then {не конец слова}
         begin
            sr[m]:= si[k]; {копируем символы слова}
             m := m + 1;
         end
      else            {конец слова}
      begin
         sr[m]:=' '; {добавим пробел}
         m:= m + 1;
         n:= n + 1; {следующее слово}
      end;
writeln(sr);
readln;
end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 29.11.2012 в 16:21.
Lilen вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки Алексей_2012 Помощь студентам 1 05.04.2012 11:26
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности kris__tina БД в Delphi 1 09.06.2011 15:31
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10