|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Программа для нахождения кол-во цифр в границе
Мне нужна программа ,или может у кого есть готовая.
Суть программы. Я пишу в мемо цифры,или едит как удобнее,такие цифры 9.72 11.68 7.57 6.28 4.91 5.50 и тд далее я задаю границы ,например: 4.90;5.90 и программа должна посчитать сколько входят в цифр в эту границу или какие цифры. Или что ни будь подобное подскажите,буду очень благодарен. |
#2
|
|||
|
|||
мой друг написал мне вот это ,но я не смог разобраться ,цитирую:
Кидаешь на форму два едита для границ и едит для чисел и кнопку, для старта программы Дальше объявляешь переменную str типа string (туда скинем твой массив чисел), переменную типа a real (текущее обрабатываемое число), переменную типа k integer (количество чисел). Код:
str: string; a: real; k: integer; В событии кнопки OnClick пишешь код для обнуления переменной количества чисел. Код:
k := 0; Код:
str := edit3.text; edit3.text := ''; дальше будем резать строку Код:
while pos(' ',str) <> 0 do //если у нас есть пробелы в строке begin a := strtofloat(copy(str,1,pos(' ',str)-1)); //Записываем в переменную а новое число if (a >= strtofloat(edit1.text)) and (a <= strtofloat(edit2.text)) then //проверяем вхождение в рамки edit1 - для минимального значение edit2 - для максимального значения begin edit3.text := edit3.text + a + ' '; //выводим подходящие числа в edit3 inc(k); //Считаем количество попаданий в рамки end; end; у нас осталось последнее число в переменной str (если в конце строки не было пробела) проверяем его Код:
if (strtofloat(str) >= edit1.text) and (strtofloat(str) <= edit2.text) then begin edit3.text := edit3.text + str; inc(k); end; можно использовать showmessage, но я сделаю так: Код:
edit3.text := 'Кол-во чисел ='+ inttostr(k) + ' числа: '+ edit3.text; 1 и 2 скрипт я написал,а вот что ниже вставлять не пойму куда |
#3
|
|||
|
|||
А я так понимаю, что все это вставлять в обработчик нажатия кнопки.
|
#4
|
|||
|
|||
Код:
procedure TForm7.Button1Click(Sender: TObject); begin k := 0; str := edit3.text; edit3.text := ''; while pos(' ',str) <> 0 do //если у нас есть пробелы в строке begin a := strtofloat(copy(str,1,pos(' ',str)-1)); //Записываем в переменную а новое число if (a >= strtofloat(edit1.text)) and (a <= strtofloat(edit2.text)) then //проверяем вхождение в рамки edit1 - для минимального значение edit2 - для максимального значения begin edit3.text := edit3.text + a + ' '; //выводим подходящие числа в edit3 inc(k); //Считаем количество попаданий в рамки end; end; if (strtofloat(str) >= edit1.text) and (strtofloat(str) <= edit2.text) then begin edit3.text := edit3.text + str; inc(k); end; edit3.text := 'Кол-во чисел ='+ inttostr(k) + ' числа: '+ edit3.text; end; end. вот так вот? |
#5
|
||||
|
||||
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var s: string; i: Integer; f: Real; f1, f2: Real; n: Integer; begin DecimalSeparator:='.'; f1:=StrToFloat(Edit2.Text); f2:=StrToFloat(Edit3.Text); n:=0; s:=Edit1.Text; while s<>'' do begin i:=Pos(' ', s); if i>0 then begin f:=StrToFloat(Trim(Copy(s, 1, i))); s:=Trim(Copy(s, i, Length(s))); end else begin f:=StrToFloat(s); s:=''; end; if (f>=f1) and (f<=f2) then Inc(n); end; Edit4.Text:=IntToStr(n); end; end. изначально: Edit1 = 9.72 11.68 7.57 6.28 4.91 5.50 Edit2 = 4.90 Edit3 = 5.90 Edit4 = пятница Пишу программы за еду. __________________ |
#6
|
|||
|
|||
этот код у вас работает?
у меня 8 версия вставил скрипт,и он выделил красным это DecimalSeparator:='.'; |
#7
|
|||
|
|||
или сможете сделать исходник,или саму программу?
|
#8
|
||||
|
||||
Набранное вами сообщение слишком короткое. Увеличьте ваше сообщение до 10 символов.
Пишу программы за еду. __________________ |
#9
|
|||
|
|||
хорошая программа,вот почему скрипт у меня не хочет работать,вот почему интересно,у меня 8 версия
|
#10
|
||||
|
||||
ну разберись, я версию 8 и в глаза не видел
Пишу программы за еду. __________________ |
#11
|
||||
|
||||
А никто не видел, ее в природе похоже не существует. Видимо XE8 имеется ввиду, только вот XE8 это уже 22 версия
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#12
|
|||
|
|||
Ну я ее видел.
Та же семерка, только компайлер немного другой - под .Net собирает. |