Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ] > Код на шару!
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.03.2013, 23:52
Black Dahlia Black Dahlia вне форума
Прохожий
 
Регистрация: 26.03.2013
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Вводится строка из нескольких слов и чисел,разделенных неопределенным числом пробелов

На форме 1 кнопка,1 надпись,1 едит и 1 мемо.Вводится строка из нескольких слов
и чисел,разделенных неопределенным числом пробелов.Выбрать 1 встретившееся в строке
число и вывести в мемо таблицу умножения этого числа на 1-10.Результат умножения
двух 1х в строке чисел вывести в надпись.Отдельная кнопка - очистка мемо.

Вводится в едит строка.
Пример строки:
Const ! 56 q wert 765.3 -5 tyr.
Надо считать 56 и закинуть знач. в переменную.
И в мемо через цикл от 1 до 10 произвести умнож. данного числа.
Пример:
56*1=56
56*2=112
56*3=268
...
56*9=504
56*10=560
И в напдись вывести 2 первых числа.
Пример:
56 102
И сделать отдельную кнопку - очистка мемо.


Вот мой неполный набросок кода. А как дальше доделать ?



Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    btn1: TButton;
    lbl1: TLabel;
    mmo1: TMemo;
    edt1: TEdit;
    procedure edt1Enter(Sender: TObject);
    procedure lbl1Click(Sender: TObject);
  private
     s: string;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  i,chislo,x,n: Integer;

implementation

{$R *.dfm}

procedure TForm1.edt1Enter(Sender: TObject);
begin
   s:=edt1.text;
   x:=strtoint(s);
   for i:=1 to n do
   if x in [0..9] then x:=chislo;
   ord(chislo);

end;

procedure TForm1.lbl1Click(Sender: TObject);
begin
caption:=chislo;
end;

end.
Ответить с цитированием
  #2  
Старый 27.03.2013, 00:13
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. Тебе надо парсить введенную строку, а не пытаться всю ее преобразовать в число.
2. Всю обработку надо делать в одном обработчике нажатия кнопки, например.
3. Вывод в Memo: Memo1.Lines.Add(строка), соответсвенно, после умножения надо конвертировать результат в строку.
4. n у тебя не инициализированно.
5. Очистка Memo: Memo1.Lines.Clear;

6. И вообще, в коде у тебя какой-то бред написан.
Ответить с цитированием
  #3  
Старый 27.03.2013, 00:20
Black Dahlia Black Dahlia вне форума
Прохожий
 
Регистрация: 26.03.2013
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Ок, а как с нуля начать ?
Ответить с цитированием
  #4  
Старый 27.03.2013, 00:47
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну вот вам код на шару
Код:
unit Unit7;

interface

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

type
  TForm7 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Memo1: TMemo;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
  end;

var
  Form7: TForm7;

implementation

{$R *.dfm}

procedure TForm7.Button1Click(Sender: TObject);
begin
 Memo1.Clear;
end;

procedure TForm7.Edit1Exit(Sender: TObject);
Var
  i: Integer;
  Num: String;
begin
 for i := 1 to Length(Edit1.Text)
 do if Edit1.Text[i] in ['0'..'9']
    then Break;
 Num := '';
 for i := i to Length(Edit1.Text)
 do if Edit1.Text[i] in ['0'..'9']
    then Num := Num + Edit1.Text[i]
    else Break;
 if Num = '' then Exit;
 Label1.Caption := '';
 for i := 1 to 10
 do begin
    Memo1.Lines.Add(Format('%s*%d=%d',[Num,i,StrToInt(Num)*i]));
    if i in [1,2]
    then Label1.Caption := Label1.Caption + IntToStr(StrToInt(Num)*i)+' ';
    end;
end;

end.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 27.03.2013, 01:49
Black Dahlia Black Dahlia вне форума
Прохожий
 
Регистрация: 26.03.2013
Сообщения: 4
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Премного вам благодарен
Ответить с цитированием
  #6  
Старый 27.03.2013, 08:11
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Да не за что.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 27.03.2013 в 08:19.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter