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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.10.2015, 17:36
bogdanzykov bogdanzykov вне форума
Прохожий
 
Регистрация: 08.10.2015
Сообщения: 6
Версия Delphi: delphi 8
Репутация: 10
По умолчанию Программа для нахождения кол-во цифр в границе

Мне нужна программа ,или может у кого есть готовая.
Суть программы.
Я пишу в мемо цифры,или едит как удобнее,такие цифры
9.72 11.68 7.57 6.28 4.91 5.50 и тд
далее я задаю границы ,например: 4.90;5.90
и программа должна посчитать сколько входят в цифр в эту границу или какие цифры.
Или что ни будь подобное подскажите,буду очень благодарен.
Ответить с цитированием
  #2  
Старый 08.10.2015, 17:42
bogdanzykov bogdanzykov вне форума
Прохожий
 
Регистрация: 08.10.2015
Сообщения: 6
Версия Delphi: delphi 8
Репутация: 10
По умолчанию

мой друг написал мне вот это ,но я не смог разобраться ,цитирую:
Кидаешь на форму два едита для границ и едит для чисел и кнопку, для старта программы
Дальше объявляешь переменную str типа string (туда скинем твой массив чисел), переменную типа a real (текущее обрабатываемое число), переменную типа k integer (количество чисел).
Код:
str: string;
a: real;
k: integer;

В событии кнопки OnClick пишешь код для обнуления переменной количества чисел.

Код:
k := 0;
Теперь в строковую переменную переносим массив и очищаем этот edit.

Код:
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  
Старый 08.10.2015, 19:40
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А я так понимаю, что все это вставлять в обработчик нажатия кнопки.
Ответить с цитированием
  #4  
Старый 09.10.2015, 09:53
bogdanzykov bogdanzykov вне форума
Прохожий
 
Регистрация: 08.10.2015
Сообщения: 6
Версия Delphi: delphi 8
Репутация: 10
По умолчанию

Код:
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  
Старый 09.10.2015, 10:21
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
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  
Старый 09.10.2015, 10:32
bogdanzykov bogdanzykov вне форума
Прохожий
 
Регистрация: 08.10.2015
Сообщения: 6
Версия Delphi: delphi 8
Репутация: 10
По умолчанию

этот код у вас работает?
у меня 8 версия
вставил скрипт,и он выделил красным это DecimalSeparator:='.';
Ответить с цитированием
  #7  
Старый 09.10.2015, 10:36
bogdanzykov bogdanzykov вне форума
Прохожий
 
Регистрация: 08.10.2015
Сообщения: 6
Версия Delphi: delphi 8
Репутация: 10
По умолчанию

или сможете сделать исходник,или саму программу?
Ответить с цитированием
  #8  
Старый 09.10.2015, 14:02
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Набранное вами сообщение слишком короткое. Увеличьте ваше сообщение до 10 символов.
Вложения
Тип файла: zip Project1.zip (276.9 Кбайт, 2 просмотров)
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #9  
Старый 09.10.2015, 14:21
bogdanzykov bogdanzykov вне форума
Прохожий
 
Регистрация: 08.10.2015
Сообщения: 6
Версия Delphi: delphi 8
Репутация: 10
По умолчанию

хорошая программа,вот почему скрипт у меня не хочет работать,вот почему интересно,у меня 8 версия
Ответить с цитированием
  #10  
Старый 09.10.2015, 16:17
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

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

А никто не видел, ее в природе похоже не существует. Видимо XE8 имеется ввиду, только вот XE8 это уже 22 версия
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #12  
Старый 10.10.2015, 00:55
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну я ее видел.
Та же семерка, только компайлер немного другой - под .Net собирает.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter