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

Выделить подстроку, которая соответствует записи вещественного числа

31.05.2012, 18:57. Показов 1755. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана строка символов, состоящая из букв, цифр, запятых, точек, знаков "+" и "-". Выделить подстроку, которая соответствует записи вещественного числа с фиксированной точкой.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2012, 18:57
Ответы с готовыми решениями:

Выделить подстроку, которая соответствует записи вещественного числа
Дана строка символов, состоящая из букв, цифр, запятых, точек, знаков “+” и “-“. Выделить...

Выделить подстроку, которая соответствует записи вещественного числа
Дана строка символов, состоящая из букв, цифр, запятых, точек, знаков “+” и “-“. Выделить...

Выделить подстроку, которая соответствует записи вещественного числа
Дана строка символов, состоящая из букв, цифр, запятых, точек, знаков «+» и «–». Выделить...

Выделить подстроку, которая соответствует записи вещественного числа
Как выделить подстроку, которая соответствует записи вещественного числа с плавающей точкой? Мне...

2
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
01.06.2012, 15:34 2
Лучший ответ Сообщение было отмечено федос как решение

Решение

Вот тебе функция, котрая ищет такую подстроку в строке:
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
//Выделение из строки подстроки - реального числа с фиксированной точкой
//Предполагаем, что точка должна быть обязательно
//На входе в PosAfter - позиция начала проверки строки
//на случай, если нужно выделять несколько подстрок
//На выходе в PosAfter - позиция за выбранной подстрокой
Function RealSubString(s:String;Var PosAfter:Integer):String;
Var
  i,j : Integer;
  b,b1 : Boolean;
Label EndPStr,FindBeg;
Begin
  Result:='';  //Если не найдём - на выходе пустая строка
  b:=False;    //Признак, что уже найдена точка
  b1:=False;   //Признак, что уже найден знак
  j:=0;        //Начальная позиция подстроки
  s:=s+' ';
  For i:=PosAfter To Length(s) Do
  If (s[i] In ['0'..'9',DecimalSeparator,'-']) Then
  Begin
    If s[i]=DecimalSeparator Then
    If b Then
    Goto EndPstr //Если найдена точка, и точка уже была
    Else b:=True; //Отметим нахождение точки
    If (s[i]='-') Then //Найден знак
    If (b1 Or (j<>0)) Then
    Goto EndPstr //Если найден знак и знак уже был или не первый символ
    Else Begin b1:=True; Continue; End; //Отметим нахождение знака
    If j=0 Then j:=i;
  End Else
EndPStr:
  If j<>0 Then
  //Начало подстроки уже определялось
  If b Then
  Begin
    If (i-j)>1 Then
    Begin
      If b1 Then
      //Был знак
      j:=Pred(j); //Включим его тоже
      //Выделим подстроку
      Result:=Copy(s,j,i-j);
      PosAfter:=i; //Позиция за подстрокой на выход
      Break;
    End Else
    //Кроме точки больше ничего небыло
    Begin
      j:=0;
      b:=False;
      b1:=False;
      If (s[i] In [DecimalSeparator,'-']) Then Goto FindBeg;
    End;
  End Else
  //Точки небыло
  Begin
    j:=0;
    b:=False;
    b1:=False;
    If (s[i] In [DecimalSeparator,'-']) Then Goto FindBeg;
  end Else
FindBeg:
  //Начало подстроки ещё не определялось
  If s[i]=DecimalSeparator Then
  Begin b:=True; j:=i; End Else
  If s[i]='-' Then b1:=True Else
  Begin b:=False; b1:=False; End;
 
end;
Я сделал, что подстроки вида:
Код
,548
-,2144
Тоже считаются. При необходимости можешь такие варианты убрать - доработать функцию.
В архиве отладочная программа.
Вложения
Тип файла: rar Новая папка.rar (167.3 Кб, 63 просмотров)
1
1 / 1 / 0
Регистрация: 14.12.2011
Сообщений: 43
11.06.2012, 11:21  [ТС] 3
спасибо за помощь
0
11.06.2012, 11:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2012, 11:21
Помогаю со студенческими работами здесь

Выделить подстроку, которая соответствует записи вещественного числа с фиксированной точкой
Ребята помогите написать программу для этого условия. Или подскажите как стрку посимвольно загнать...

Выделить из заданной строки подстроку, которая соответствует записи вещественного числа с плавающей точкой
Дана строка символов, состоящая из букв, цифр, запятых, точек, знаков &quot;+&quot; и &quot;-&quot;. Выделить...

Выделить подстроку, которая соответствует записи целого числа
Необходимо написать программу в делфи: Дана строка, состоящая из букв, цифр, запятых, точек,...

Выделить подстроку, которая соответствует записи целого числа
Дана строка, состоящая из букв, цифр, запятых, точек, знаков “+” и “-“. Выделить подстроку, которая...


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

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