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

Ограничить ввод чисел

26.03.2012, 19:40. Показов 3447. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как ограничить ввод чисел от 1 и до 31 включительно в данной задаче:
Выяснить, имеется ли среди школьников учащийся, день рождения которого совпадает со средним арифметическим дней рож¬дения всех школьников.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  mas  : Array[1..100] of integer;
  i:integer;
 
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if  (key = ' ') then
  exit;
 if (key<'0') or (key<'9') then key:=#0;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
 var
 ws,s,wsdop:string;
 ind,mase,cod,i: integer;
 z,b,a:real;
begin
 ws:=edit1.text;
 if ws='' then
  begin
   showmessage('введите массив');
   edit1.SetFocus;
   exit;
  end;
  ws:=trim(ws);
  i:=0;
 repeat
  ind:= pos(' ',ws);
  wsdop:= copy(ws,1,ind-1);
  val(wsdop,mase,cod);
  inc(i);
  mas[i]:=mase;
  ws:=copy(ws,ind+1,length(ws)-ind);
  ws:=trimleft(ws);
 until (ind=0);
  val(ws,mase,cod);
  mas[i]:=mase;
  ind:=i;
   ws:='';
  a:=0;
  z:=0;
  b:=0;
    for i:=1 to ind do
   begin
    a:=mas[i]+a;
    b:=b+1;
    z:=a/b;
      end;
 
   for i:=1 to ind do
   begin
   IF mas[i]=z THEN begin
   a:=i;
   str(a,wsdop);
    label2.caption:='да его номер'+wsdop;EXIT;end;
   if  mas[i]<>z  then begin label3.caption:='нет'; EXIT;
    end;end;
 
 
end;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.03.2012, 19:40
Ответы с готовыми решениями:

Ограничить ввод символов в поле типа Currency
Всем Привет! Подскажите пожалуйста кто знает как можно в компоненте DGGridEh ограничить ввод символов в поле типа Currency.

Ввод чисел в Компоненте Edit
Мир всем и привет помогите пожалуйста, как в едите исключит неким буквы, например если в едите есть такой код 'id00032423' то...

Разрешить ввод в DbEdit только чисел от 1 до 5
нужно что-бы в DBEdit вводились только числа 1,2,3,4,5. т.е. с 1 до 5.

10
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
26.03.2012, 21:35
Цитата Сообщение от MY_MY Посмотреть сообщение
Как ограничить ввод чисел от 1 и до 31 включительно
Можно использовать компонент SpinEdit с вкладки Samples.
minvalue=1, maxvalue=31.
1
60 / 60 / 10
Регистрация: 27.10.2011
Сообщений: 185
26.03.2012, 21:36
Вначале edit1 должен быть пустым (или из цифр), иначе ругнётся. Также следует отдельно обработать Backspace
Delphi
1
2
3
4
5
6
7
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if (key<'0') or (key>'9') then key:=#0
 else
 if StrToInt(edit1.Text+key)>31 then
  key:=#0;
end;
1
1 / 1 / 0
Регистрация: 28.11.2010
Сообщений: 29
26.03.2012, 22:20  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Можно использовать компонент SpinEdit с вкладки Samples.
minvalue=1, maxvalue=31.
А можно поподробней где он находиться или как записать (з.ы. у меня только 2 занятия по delphi было),а то способом TwiX зависает delphi.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
26.03.2012, 22:26
Цитата Сообщение от MY_MY Посмотреть сообщение
поподробней где он находиться
Так я и написал где, на вкладке Samples
1
1 / 1 / 0
Регистрация: 28.11.2010
Сообщений: 29
26.03.2012, 23:17  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Так я и написал где, на вкладке Samples
о дошло))) короче нажал ввел minvalue=1, maxvalue=31. ну и шаг.появилось это маленькое окошечто но зачем мне оно???.мне нужно что бы когда я ввожу массив оно проверяло входит ли число в интервал [0,31] а оно хз что делает.может я что нитак сделал?
0
60 / 60 / 10
Регистрация: 27.10.2011
Сообщений: 185
26.03.2012, 23:55
MY_MY, из него также можно получить значение:
Delphi
1
ws:=IntToStr(SpinEdit1.value);
P.s. оно там типа Integer
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
27.03.2012, 07:03
Цитата Сообщение от MY_MY Посмотреть сообщение
мне нужно что бы когда я ввожу массив оно проверяло входит ли число в интервал [0,31]
Так зачем проверять если Вы не сможете ввести числа не попадающие в интервал.
Вводите число, нажимаете кнопку, добавляете его в массив.
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
27.03.2012, 07:36
Вот пример решения.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin;
 
type
  TForm1 = class(TForm)
    SpinEdit1: TSpinEdit;
    Button1: TButton;
    Memo1: TMemo;
    SpinEdit2: TSpinEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  n,i,s:integer;
  a:array of byte;
implementation
 
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
SpinEdit1.MinValue:=1;
SpinEdit1.MaxValue:=100;
SpinEdit2.MinValue:=1;
SpinEdit2.MaxValue:=31;
end;
procedure TForm1.Button1Click(Sender: TObject);
var j,j1:integer;
begin
n:=SpinEdit1.Value;
setlength(a,n);
i:=i+1;
a[i-1]:=SpinEdit2.Value;
s:=s+a[i-1];
Memo1.Lines.Add(inttostr(a[i-1]));
SpinEdit2.Clear;//готовим поле для ввода нового числа
SpinEdit2.SetFocus;
if i=n then//ввели все
 begin
  Button1.Enabled:=false; //кнопку отключаем, выводим результат
  s:=round(s/n);
  j1:=-1;
  j:=0;
  while(j<n)and(j1=-1) do
  if a[j]=s then j1:=j
  else j:=j+1;
  Memo1.Lines.Add('Средний день рождения='+IntToStr(s));
  if j1=-1 then Memo1.Lines.Add('Нет ученика с днем рождения=среднему')
  else Memo1.Lines.Add('Есть ученик с днем рождения=среднему '+'его номер='+IntToStr(j1+1));
 end;
 
end;
 
 
 
end.
Вложения
Тип файла: zip Ввод в SpinEdit.zip (210.2 Кб, 16 просмотров)
1
1 / 1 / 0
Регистрация: 28.11.2010
Сообщений: 29
27.03.2012, 21:57  [ТС]
Puporev, СПАСИБО КОНЕЧНО, НО Я ТАКОГО СПОСОБА НЕ ПРОХОДИЛ)))
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
27.03.2012, 22:11
Цитата Сообщение от MY_MY Посмотреть сообщение
Я ТАКОГО СПОСОБА НЕ ПРОХОДИЛ)
Так проходи, или будешь ждать когда тебе все расскажут, так этого и не будет.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.03.2012, 22:11
Помогаю со студенческими работами здесь

Ограничить ввод больших чисел, отрицательных чисел и символов
Доброго времени суток. помогите пожалуйста, есть программа, нужно ограничить ввод больших чисел, отрицательных чисел и символов... Заранее...

Ограничить InputBox: ввод только вещественных чисел
Достаточно сложный вопрос по-моему,как ограничить ввод в InputBox,чтобы можно было вводить только вещественные числа? Есть кнопка при...

Ограничить ввод в едит
как ограничить ввод в едит областью если кидаете код то с описанием Добавлено через 40 минут решил проблему гениально, я ввел там...

Ограничить ввод символа
Как сделать в StringGrid так , чтобы после ввода 0 нельзя было ввести другие символы ?

Ограничить ввод букв в InputBox
Здравствуйте, помогите пожалуйста, мне нужно ограничить ввод букв английских и русских в InputBox.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru