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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2009, 19:52   #1
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию Delphi не могу найти ошибку.....

Здраствуйте дорогие форумчанины..... Мне дана строка, состоящая из групп нулей и единиц. Нужно подсчитать количество единиц в группах с нечетным количеством символов.
Написал прогу, но она не пашит и я не могу найти ошибку.... помогите пожалуйста.....
Заранее спасибо.
Код:
unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm4 = class(TForm)
    ComboBox1: TComboBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label1: TLabel;
    Memo1: TMemo;
    procedure BitBtn1Click(Sender: TObject);
     procedure ComboBox1Click(Sender: TObject);
     procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.BitBtn1Click(Sender: TObject);
begin

  ComboBox1.Items.Add(ComboBox1.Text);
  ComboBox1.Text:='';

end;

procedure TForm4.ComboBox1Click(Sender: TObject);

var st : string;
    i,nst,pos,temp: integer;
    col: integer;
begin
  nst:=ComboBox1.ItemIndex;
  st:=ComboBox1.Items[nst];
   pos:=0;
   col:=0;
    for i:=1 to Length(st) do begin
      if not (st=#32) then begin
        pos:=pos+1;
        if (st[i]='1') then
           col:=col+1;
      end
      else begin
       temp:=pos mod 2;
      if temp<>0 then
        Memo1.Lines.Add(InttoStr(col));
       pos:=0;
        col:=0;
      end;
    end;

end;

procedure TForm4.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
    if (key in ['а'..'я','А'..'Я']) then
        key:=#0;
end;


end.
world12_tk вне форума Ответить с цитированием
Старый 10.10.2009, 12:11   #2
ViNcHeStEr
Delphi
Форумчанин
 
Регистрация: 12.06.2008
Сообщений: 137
По умолчанию

Вот мой вариант.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 i,j,chislo:byte;
 s:string;
begin
 for i:=0 to memo1.Lines.Count do
  begin
  s:=memo1.Lines.Strings[i];
  chislo:=0;
  for j:=1 to length(s) do
   begin
    if s[j]='1' then
     begin
      chislo:=chislo+1;
     end;
   end;
  if (chislo mod 2)<>0 then
   begin
    memo1.Lines.Strings[i]:=memo1.Lines.Strings[i]+' - '+inttostr(chislo);
   end;
  end;
end;
ViNcHeStEr вне форума Ответить с цитированием
Старый 10.10.2009, 15:19   #3
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

спасибо большое.... но у вас написано с помощью компонента TMemo, а мне нужно с помощью компонента TComboBox
world12_tk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. не могу найти ошибку world12_tk Помощь студентам 3 25.07.2009 10:47
Delphi. Не могу найти ошибку. Армана Помощь студентам 4 23.02.2009 23:34
Не могу найти ошибку(С++) Yura_n Помощь студентам 8 20.01.2009 12:36
Не могу найти ошибку. Picaso18 Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2009 17:05
Не могу найти ошибку . KVANTOM Общие вопросы Delphi 2 08.01.2009 17:15