Технический форум

Технический форум (http://www.tehnari.ru/)
-   Форум программистов (http://www.tehnari.ru/f22/)
-   -   Memo (http://www.tehnari.ru/f22/t104911/)

Nataaa 23.10.2015 17:58

Memo
 
Помогите пожалуйста с заданием!!!
Определить количество чисел в тексте (пример в следующем тексте «12df7y 21g2 34 5» находится 6 чисел);

MagentaTiger 23.10.2015 18:04

Огласите все условия задачи.
Где текст находиться, в переменной ? в файле , Вводится вручную ? Однострочный ? Многострочный ?
Язык программирования (ЯП) ?

Nataaa 23.10.2015 18:13

язык программирования делфи, текст вводится в ручную многострочный

Nataaa 23.10.2015 18:15

и текст ввожу в одном мемо, а во втором его преобразую

MagentaTiger 23.10.2015 18:48

Цитата:

Сообщение от Nataaa (Сообщение 1171762)
а во втором его преобразую

Что значит "во втором преобразую" ? Во второе мемо выводите число 6 (для вашего примера) ?

Nataaa 23.10.2015 18:53

да, мне бы кусочек выполнения этого задания , а там я сама справлюсь))

Vladimir_S 23.10.2015 20:14

Уж не знаю, сколь это Вам поможет, но на Паскале это можно решить, например, так:
Код:

Const
 S='12df7y 21g2 34 5';

Var
 S1:String;
 i,N:Byte;

Begin
 N:=0;
 i:=0;
 Repeat
  repeat
  Inc(i);
  until ((Ord(S[i])>47) and (Ord(S[i])<58)) or (i=Length(S));
  if (Ord(S[i])>47) and (Ord(S[i])<58) then
  begin
    Inc(N);
    S1:='';
    S1:=S1+S[i];
    repeat
    if i<Length(S) then
      begin
      Inc(i);
      if (Ord(S[i])>47) and (Ord(S[i])<58) then S1:=S1+S[i];
      end;
    until (Ord(S[i])<48) or (Ord(S[i])>57) or (i=Length(S));
    Writeln(S1);
  end;
 Until i=Length(S);
 Writeln('N = ',N);
 Readln
End.


poiu 23.10.2015 20:19

а не проще ли сделать
Код:

for i:= 0 to length(s)-1 do
 begin
  case s[i] of
  0..9: n:= n+1;
  end;
 end;


Vladimir_S 23.10.2015 22:58

Цитата:

Сообщение от poiu (Сообщение 1171780)
а не проще ли сделать

Проще-то проще, да жаль только, что кругом неправильно:
1. Требуется сосчитать не количество цифр, а количество чисел, т.е. если, напрмер, в тексте идёт последовательность 4763, то это одно число (четыре тысячи семьсот шестьдесят три), а не четыре.
2. s[i] - это величина типа Char, а не Byte. Требуется перевод через оператор Val, а с ним лучше без необходимости не связываться.
3. А Case-то тут зачем? По смыслу достаточно If.

DiM 24.10.2015 00:44

Цитата:

Сообщение от Nataaa (Сообщение 1171770)
да, мне бы кусочек выполнения этого задания , а там я сама справлюсь))

Типа демо версии или трейлер к фильму :)
Скромный студент, обычно тут в разделе выкладывают фотки и требуют решить даже не здороваясь :)


Часовой пояс GMT +4, время: 01:39.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.