Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскажите алгоритм (строки) 
:(
    Опции темы
floopless
Дата 27.11.2009, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 18.10.2008

Репутация: нет
Всего: нет



Дана строка символов, состоящая из произвольных десятичных чисел, разделенных пробелами. Вывести четные числа этой строки

Подскажите алгоритм, в каком направлении двигаться..
PM MAIL   Вверх
Данкинг
Дата 27.11.2009, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Разбить строку на условное количество "слов" ("слово" = часть строки, отделённая от соседних слов пробелами). Далее делаем цикл по количеству таких слов. Ну и если слово делится на два без остатка, то его и выводим.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Qu1nt
Дата 27.11.2009, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 22
Всего: 50



Как-нибудь так:
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  Stream: TStringStream;
begin
  Stream := TStringStream.Create('10 3 21 22 40 0 -2');
  try
    with TParser.Create(Stream) do
    try
      repeat
        if not Odd(TokenInt) then
          ShowMessage(TokenString);
      until NextToken = toEOF;
    finally
      Free;
    end;
  finally
    Stream.Free;
  end;
end;


Это сообщение отредактировал(а) Qu1nt - 27.11.2009, 02:51
PM MAIL   Вверх
586
Дата 27.11.2009, 02:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 2
Всего: 146



Код
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils, Classes;

var
  words: String;
  list: TStringList;
  i: Integer;

begin
  write('Input numbers: ');
  readln(words);

  list := TStringList.Create;
  list.Delimiter := ' ';
  list.DelimitedText := words;
  for i := 0 to list.Count-1 do
    if((StrToInt(list.Strings[i]) mod 2) = 0) then
      Write(list.Strings[i], ' ');

  list.Free;

  writeln;
  writeln('Press enter for exit...');
  readln;
end.

PM   Вверх
Rrader
  Дата 27.11.2009, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 18
Всего: 191



Цитата(Данкинг @  27.11.2009,  07:40 Найти цитируемый пост)
Ну и если слово делится на два без остатка

Надо отучиваться от такого.
Код

if A and 1 = 0 then
  // Число A - четное



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Frees
Дата 27.11.2009, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



Цитата(Rrader @  27.11.2009,  14:24 Найти цитируемый пост)
Надо отучиваться от такого.

ИМХО читабельность кода хуже


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Данкинг
Дата 27.11.2009, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Rrader @  27.11.2009,  11:24 Найти цитируемый пост)
Надо отучиваться от такого.

Я к такому ещё в школе привык, думаю, уже не переучусь. smile 

Цитата(Frees @  27.11.2009,  11:37 Найти цитируемый пост)
ИМХО читабельность кода хуже 

Согласен. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Rrader
  Дата 27.11.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 18
Всего: 191



Пропишите строчку из and 1, как в первом классе, и читабельность улучшится. И писать кода меньше smile

Функцию Odd тоже рекомендую, не зря же ее ввели в Delphi (она сделана через and 1). smile 


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.