Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 15.05.2013
Сообщений: 64
1

Как упростить последовательный ввод цифр?

31.05.2013, 23:25. Показов 706. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят, спасайте!
можно ли как то 2 if поднять в 1?? упростить выражение, чтобы условия сохранились?!
Спасибо.


Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.DigitClick(Sender: TObject);
var
  kn:TButton;
begin
  Kn:=Sender as TButton;
  If Kn.Caption<>'0' then
    if r=0 then
      begin
        Edit1.Text:=Kn.Caption;
        r:=1;
      end
   else Edit1.Text:=Edit1.Text+Kn.Caption;
   If Kn.Caption='0' then
    if Edit1.Text<>'0'then
        if r=0 then
      begin
        Edit1.Text:=Kn.Caption;
        r:=1;
      end
   else Edit1.Text:=Edit1.Text+Kn.Caption;
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2013, 23:25
Ответы с готовыми решениями:

Последовательный ввод данных
Добрый день, подскажите, пожалуйста, как можно макросом запретить вводить данные в столбцах B и C,...

Последовательный ввод двух строк
мне нужно ввести две строки одна за другой,но у меня сразу предлагается ввод двух строк string...

Последовательный ввод в командной строке
Всем привет хочу перезагружать роутер через батник. вот что пишу в нём: @echo off telnet...

Последовательный ввод данных в датагрид
Здравствуйте. У меня такой вопрос. У меня многопользовательская программа, в которой каждый...

4
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 35
31.05.2013, 23:37 2
В смысле поднять в одно?!
Может if условие_первое and условие_второе then //Будет выполнятся проверка первого условие и второго,если они оба правильны.
Так-же можно место and,использовать or.
Если же используем or,тогда если первое значение или второе правильно выполняем действие.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (условие_первое) and (условие_второе) then begin
 
... Если оба правильны 
 
end else begin
 
... Если оба не правильны 
 
end
 
if (условие_первое) or (условие_второе) then begin
 
... Если одно из них правильно
 
end else begin
 
...Если одно из них не правильно
 
end
0
2 / 2 / 0
Регистрация: 29.11.2011
Сообщений: 25
31.05.2013, 23:37 3
if (Kn.Caption <> '0') and (r=0 ) по-моему только так
1
0 / 0 / 1
Регистрация: 15.05.2013
Сообщений: 64
31.05.2013, 23:55  [ТС] 4
Цитата Сообщение от Evgen11 Посмотреть сообщение
if (Kn.Caption <> '0') and (r=0 ) по-моему только так
Спасибо!

Добавлено через 5 минут
i368 и вам спасибо.
0
134 / 133 / 22
Регистрация: 29.08.2012
Сообщений: 353
01.06.2013, 01:12 5
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.DigitClick(Sender: TObject);
var
  kn:TButton;
begin
  Kn:=Sender as TButton;
  If Kn.Caption<>'0' then
    if r=0 then
      begin
        Edit1.Text:=Kn.Caption;
        r:=1;
      end
   else Edit1.Text:=Edit1.Text+Kn.Caption;
   If Kn.Caption='0' then
    if Edit1.Text<>'0'then
        if r=0 then
      begin
        Edit1.Text:=Kn.Caption;
        r:=1;
      end
   else Edit1.Text:=Edit1.Text+Kn.Caption;
end;
как я тут смотрю у нас условие
Delphi
1
else Edit1.Text:=Edit1.Text+Kn.Caption;
выполняется только если не (Kn.Caption='0') and(Edit1.Text<>'0')and(r=0)

Delphi
1
2
        Edit1.Text:=Kn.Caption;
        r:=1;
выполнется если выеуказанное верно,при этом if Edit1.Text<>'0'then не влияет абсолютно никак на выполнение программы, потому как при первом условии эта проверка опущена и при любом содержимом едита результат не будет зависить от содержимого эдита, а при второй проверке(после того как выполнена первая) такого варианта просто не может наступить, следовательно можно писать так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.DigitClick(Sender: TObject);
var
  kn:TButton;
begin
  Kn:=Sender as TButton;
If (Kn.Caption<>'0')and(r=0) then
      begin
        Edit1.Text:=Kn.Caption;
        r:=1;
      end
   else Edit1.Text:=Edit1.Text+Kn.Caption;
Edit1.Text:=Edit1.Text+Kn.Caption;
end;
думаю неигде не ошибся

Добавлено через 20 минут
бурду написал в прошлом посте.
1. первая проверка если Kn.Caption='0' ничего не будет, переход на вторую проверку, при второй проверке тоже ничего не изменится.
2. если Kn.Caption<>'0' и r=0 тогда r=1 и Edit1.text<>'0', значит вторая проверка не изменит результат
3. если Kn.Caption<>'0' и r=1 тогда Edit1.text<>'0' и вторая проверка не изменит результат
Вывод: вторая проверка не нужна, первая не изенятся:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.DigitClick(Sender: TObject);
var
  kn:TButton;
begin
  Kn:=Sender as TButton;
  If Kn.Caption<>'0' then
    if r=0 then
      begin
        Edit1.Text:=Kn.Caption;
        r:=1;
      end
   else Edit1.Text:=Edit1.Text+Kn.Caption;
end;
Добавлено через 13 минут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.DigitClick(Sender: TObject);
var
  kn:TButton;
begin
  Kn:=Sender as TButton;
  If Kn.Caption<>'0' then
    if r=0 then
      begin
        Edit1.Text:=Kn.Caption;
        r:=1;
      end
   else Edit1.Text:=Edit1.Text+Kn.Caption;
   If Kn.Caption<>'0' then Edit1.Text:=Edit1.Text+Kn.Caption;
end;
p.s. во намудрил, как все стереть и начать жизнь заного вторая проверка все таки нужна, и только ее и можно сократить, из-за порядка скобок if then else все что я писал до этого можно считать бредом сумасшедщего в пятницу ночью
0
01.06.2013, 01:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2013, 01:12
Помогаю со студенческими работами здесь

Последовательный ввод в консоль ключа и значения и запись в хеш-таблицу
только начал изучать с#. Подскажите как подправить алгоритм, мне нужно чтобы в консольном режиме я...

Последовательный ввод данных в форму, основанную на одной таблице через обновляющиеся поля со списками
Здравствуйте! Скажите пожалуйста, возможно ли создание последовательного ввода данных в форму,...

Последовательный вывод цифр в одно место экрана со сменой темпа вывода
Помогите пожалуйста,assembler дали на самостоятельное изучение,не могу с заданием справиться =(...

В диалоговом режиме последовательный запрос ввод 2-х чисел.Вывести их в документ.Сравнить числа между собой .
&lt;html&gt; &lt;head&gt; &lt;Title&gt; &lt;/Title&gt; &lt;/head&gt; &lt;body bgcolor=lightgray&gt;&lt;hr&gt; &lt;script...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru