Разделить слово пополам

Модератор: Модераторы

Разделить слово пополам

Сообщение Tuberwer » 01.05.2014 15:10:28

Всем привет.
В программе есть три стринга.
В первый стринг записывается введення строчка.
Дальше мне нужно поделить слово пополам, и первую половину занести во второй стринг, а вторую половину в третий стринг.
Алгоритм придумал такой:
Добавляем еще переменную интеджер, назовем i для понятности.
В нее заносим длину первого стринга(все слово)
Потом делим i на 2.
И если i четное, то первые i букв первого стринга заносятся в второй стринг. а следующие i букв заносятся в третий стринг.
Можете с кодом помочь?

var in, first, second : string;
i : integer;
...
begin
read(in);
i := length(in);
if (i/2 mod 2 = 0) then first := первые i символов от in; second := оставшиеся i символов от in; // как сделать?
end.
Tuberwer
незнакомец
 
Сообщения: 1
Зарегистрирован: 01.05.2014 13:15:09

Re: Разделить слово пополам

Сообщение скалогрыз » 02.05.2014 02:13:39

привет!
отличное начинание кода.
а вот так его можно дополнить:
Код: Выделить всё
var
  in, first, second : string;
  i : integer;
  j : integer;
begin
  read(in);
  i := length(in);
  if (i/2 mod 2 = 0) then begin
    j:=1;
    while j<=i do begin
      if (j<=i/2 mod 2) then
        first:=first+in[j]
      else
        second:=second+in[j];
      j:=j+1;
    end;
  end;
  writeln(first);
  writeln(second);
end.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Разделить слово пополам

Сообщение sign » 02.05.2014 06:02:23

Вот весело будет, когда символ пополам поделится!
Tuberwer, не всегда символ занимает один байт.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Разделить слово пополам

Сообщение footballer » 06.05.2014 15:53:16

:shock:
Я на бурных праздниках пропустил что и length, leftstr/rightstr в паскале отменили?
footballer
незнакомец
 
Сообщения: 4
Зарегистрирован: 30.12.2013 16:39:03

Re: Разделить слово пополам

Сообщение Лекс Айрин » 06.05.2014 18:03:25

footballer, почти. Просто в Lazarus чаще используется UTF8 -- соответственно результат применения к подобной строке указанных функций не будет корректным. А преобразования туда/сюда не очень хорошее дело.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Разделить слово пополам

Сообщение footballer » 06.05.2014 23:28:00

Лекс Айрин писал(а):footballer, почти. Просто в Lazarus чаще используется UTF8 -- соответственно результат применения к подобной строке указанных функций не будет корректным. А преобразования туда/сюда не очень хорошее дело.

Utf8Copy тоже отменили, что ли?
footballer
незнакомец
 
Сообщения: 4
Зарегистрирован: 30.12.2013 16:39:03

Re: Разделить слово пополам

Сообщение sign » 07.05.2014 05:34:39

Не, не отменили, просто не зная о том, что нужно применять LazUTF8, можно долго мучиться.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Разделить слово пополам

Сообщение скалогрыз » 07.05.2014 06:24:37

есть мнение, что автор статьи просто бот, собирающий решения для школьников/студентов начальных курсов =)

вопрос utf8 - не utf8 тут вообще поднимать не за чем - не тот уровень.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48


Вернуться в Помощь за вознаграждение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru