• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Memo

  • Автор темы Автор темы Nataaa
  • Дата начала Дата начала

Nataaa

Ученик
Регистрация
23 Окт 2015
Сообщения
4
Реакции
0
Баллы
0
Помогите пожалуйста с заданием!!!
Определить количество чисел в тексте (пример в следующем тексте «12df7y 21g2 34 5» находится 6 чисел);
 
Огласите все условия задачи.
Где текст находиться, в переменной ? в файле , Вводится вручную ? Однострочный ? Многострочный ?
Язык программирования (ЯП) ?
 
язык программирования делфи, текст вводится в ручную многострочный
 
и текст ввожу в одном мемо, а во втором его преобразую
 
да, мне бы кусочек выполнения этого задания , а там я сама справлюсь))
 
Уж не знаю, сколь это Вам поможет, но на Паскале это можно решить, например, так:
Код:
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.
 
а не проще ли сделать
Код:
for i:= 0 to length(s)-1 do
 begin
  case s[i] of
   0..9: n:= n+1;
  end;
 end;
 
а не проще ли сделать
Проще-то проще, да жаль только, что кругом неправильно:
1. Требуется сосчитать не количество цифр, а количество чисел, т.е. если, напрмер, в тексте идёт последовательность 4763, то это одно число (четыре тысячи семьсот шестьдесят три), а не четыре.
2. s - это величина типа Char, а не Byte. Требуется перевод через оператор Val, а с ним лучше без необходимости не связываться.
3. А Case-то тут зачем? По смыслу достаточно If.
 
да, мне бы кусочек выполнения этого задания , а там я сама справлюсь))

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