Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Подскажите алгоритм (строки)


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

Подскажите алгоритм, в каком направлении двигаться..

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

Автор: Qu1nt 27.11.2009, 02:46
Как-нибудь так:
Код

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;

Автор: 586 27.11.2009, 02:48
Код
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.

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

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

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

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

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

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

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

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

Согласен. smile 

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

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)