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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.06.2011, 15:02   #1
Ellinishe
Новичок
Джуниор
 
Регистрация: 15.06.2011
Сообщений: 3
Печаль Пomogите создать последовательность

Дана последовательность содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами - не менее одного пробела, за последним словом - точка. Напечатать все слова, предварительно преобразовав каждое из них по следующему правилу: перенести первую букву в конец слова.

Программа должна быть написана на дельфи.
Ellinishe вне форума
Старый 15.06.2011, 16:14   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) подобных задач на форуме было множество!

2) это задача не "создать последовательность", а выделить из заданной последовательности слова и преобразовать их

3) задача разбивается на две части:
- разбить на отдельные слова. (и опять таки примеры на форуме есть)
- перенести первую букву в конец слова - буквально пара строк. примерно так :
Код:
  // пусть слово находится в переменной Slowo (типа : string)
// тогда
  if Length(Slowo)>1 then 
     Slowo := Copy(Slowo,2, Length(Slowo)-1)+Copy(Slowo,1,1);
Serge_Bliznykov вне форума
Старый 15.06.2011, 16:37   #3
Ellinishe
Новичок
Джуниор
 
Регистрация: 15.06.2011
Сообщений: 3
По умолчанию Спасибо

Мда...оченьто вы помогли девушке на экзамене.. Гавнофорум..
Ellinishe вне форума
Старый 15.06.2011, 16:40   #4
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

Цитата:
Гавнофорум
а вот это наглость(
Цитата:
оченьто вы помогли
а Serge_Bliznykov по вашему не помог?, халява и помощь это не одно и то же...

Последний раз редактировалось Летучий_СкилетиК; 15.06.2011 в 16:42.
Летучий_СкилетиК вне форума
Старый 15.06.2011, 16:55   #5
Ellinishe
Новичок
Джуниор
 
Регистрация: 15.06.2011
Сообщений: 3
По умолчанию

Пойми я не могу обыскать фесь форум мне тяжело с телефона
Ellinishe вне форума
Старый 15.06.2011, 16:58   #6
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

вот, простейший код.

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  Generics.Collections;

type
  TParsedList<T> = class(TList<T>)
  public
    //
    type
      TBreakProc = reference to function(const V: T; pos: Integer): Boolean;
      TCopyProc = reference to function(const V: T; pos, count: Integer): T;
      TRenderProc = reference to function(const V: T): T;
    //
    function parse(const V: T; len: Integer; breaker: TBreakProc; copy: TCopyProc): Integer;
    function foreach(render: TRenderProc): TParsedList<T>;
  end;


{ TParsedList<T> }

// --  --
function TParsedList<T>.foreach(render: TRenderProc): TParsedList<T>;
var
  i: Integer;
begin
  result := TParsedList<T>.Create(Self);
  //
  for i := 0 to Count - 1 do
    (result as TList<T>)[i] := render(Self[i]);
end;

// --  --
function TParsedList<T>.parse(const V: T; len: Integer; breaker: TBreakProc; copy: TCopyProc): Integer;
var
  pos, i: Integer;
begin
  pos := 0;
  for i := 0 to len - 1 do begin
    //
    if (breaker(V, i)) then begin
      //
      Add(copy(V, pos, i - pos));
      pos := i + 1;
    end;
  end;
  //
  if (pos < len) then
    Add(copy(V, pos, len - pos));
end;

// -- main --

var
  S: string;
begin
  ReadLn(S);
  //
  with (TParsedList<string>.Create()) do try
    //
    parse(S, length(S),
      (function(const V: string; pos: Integer): Boolean	begin
	 result := (' ' = V[pos + 1]) or ('.' = V[pos + 1]);
       end
      ),
      (function(const V: string; pos, len: Integer): string begin
	  result := copy(V, pos + 1, len);
       end
      )
    );
    //
    foreach(function(const V: string): string begin
	//
	result := copy(V, 2, MaxInt) + V[1];
      end
    ).foreach(
      function(const V: string): string begin
	//
	write(V, ' ');
      end
    ).Free();
    //
  finally
    Free();
  end;
end.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать форму на форме разработать меню и создать кнопки конец и о программе Андрей_И Помощь студентам 1 23.05.2011 23:42
Создать двоичный файл, записать n целых чисел. Из файла создать массив, элементы числа-палиндромы (на C) Simak63 Помощь студентам 0 30.03.2011 21:06
Последовательность Mister_bin Помощь студентам 6 14.12.2010 15:37
Последовательность в изучении материала, или как создать красивый сайт _PROGRAMM_ HTML и CSS 7 02.12.2010 09:40