Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 22.01.2014
Сообщений: 99

В заданном тексте, найти номер первой по порядку группы цифр, начинающейся цифрой 2.

22.09.2016, 18:29. Показов 1906. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан текст, найти номер первой по порядку группы цифр (группой цифр будем называть такую совокупность последовательно расположенных цифр, которой непосредственно не предшествует и за которой непосредственно не следует цифра), начинающейся цифрой 2.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.09.2016, 18:29
Ответы с готовыми решениями:

Ввести строку символов. Найти в строке номер первой по порядку группы цифр, начинающейся цифрой 2
Всем привет! Прошу помощи у опытных программистов. Есть вот такая задачка Ввести строку символов. Найти в строке номер...

Найти во введенной строке номер первой по порядку группы цифр, начинающейся цифрой "2"
Ввести строку символов. Найти в строке номер первой по порядку группы цифр, начинающейся цифрой ‘2’. Нужна сама функция программы. Не могу...

Найти номер первой по порядку строки, содержащий наибольшее число цифр
Помогите написать код программы.(Новичок) Дана символьная матрица размера 13х18. Найти номер первой по порядку строки, содержащий...

7
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
22.09.2016, 21:49
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
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
const
    NUMBERS: Set Of Char = ['0'..'9'];
function Clip(var s: String): String;
var
    Result: String;
begin
    Result := '';
    while (s[1] in NUMBERS) do
    begin
        Result := Result + s[1];
        Delete(s, 1, 1);
    end;
    while ((Length(s) > 0) And Not(s[1] in NUMBERS)) do
        Delete(s, 1, 1);
    Clip := Result;
end;
var
    s, si: String;
    currId: Byte;
    flag: Boolean;
begin
    Write('Input string: '); ReadLn(s);
    s := s + ' '; currId := 0;
    while ((Length(s) > 0) And Not(s[1] in NUMBERS)) do
        Delete(s, 1, 1);
    if (Length(s) > 0)
    then
    begin
        flag := False;
        repeat
            si := Clip(s);
            flag := (si[1] = '2');
            Inc(currId);
        until ((flag) Or (Length(s) = 0));
        if (flag)
        then
            Write(currId)
        else
            Write('No one!');
    end
    else
        Write('No one!');
end.

Не по теме:

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

0
1 / 1 / 0
Регистрация: 22.01.2014
Сообщений: 99
22.09.2016, 22:03  [ТС]
Спасибо за программу, но можете объяснить её? Текст сложный. Как она работает? И можно ввод и вывод на русском сделать?
0
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
22.09.2016, 22:21
Вова59, можно. делайте.
по поводу алгоритма - вырезаем последовательность цифр, "запоминаем" какая эта последовательность по счёту, заканчиваем поиск, если нашли последовательность, начинающуюся с двойки или когда пролистали всю строку.
0
1 / 1 / 0
Регистрация: 22.01.2014
Сообщений: 99
22.09.2016, 22:25  [ТС]
Понятно, спасибо.
0
охотник
 Аватар для vint-81
1011 / 535 / 650
Регистрация: 29.09.2014
Сообщений: 1,083
23.09.2016, 06:30
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var s:string;
    i,k:byte;
    f:boolean;
begin
 write('s = ');readln(s);
 i:=1;k:=0;f:=false;
 while (i<=length(s))and(not f) do
  begin
   if s[i] in ['0'..'9']
    then
     begin
      if s[i]='2' 
       then f:=true
       else
        begin
         inc(k);
         while (s[i] in ['0'..'9'])and(i<length(s)) do inc(i)
        end
     end;   
   inc(i);
  end; 
 if f then writeln('номер первой по порядку группы цифр, начинающейся цифрой 2: ',k+1) 
      else writeln('нет группы цифр, начинающейся цифрой 2')
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
23.09.2016, 08:36
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Можно чуть изменить
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
  s: String;
  i, k: Integer;
begin
  Write('s = '); ReadLn(s); i:=1; {k:=0;}
  while i<=Length(s) do
    if s[i] in ['0'..'9'] then begin
      Inc(k);
      if s[i]<>'2' then while (i<=Length(s)) and (s[i] in ['0'..'9']) do Inc(i)
      else Break;
    end else Inc(i);
  if i<=Length(s)
  then WriteLn('номер первой по порядку группы цифр, начинающейся цифрой 2: ',k) 
  else WriteLn('нет группы цифр, начинающейся цифрой 2');
end.
или даже
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  s: String;
  i, k: Integer;
begin
  Write('s = '); ReadLn(s); i:=1; {k:=0;}
  while i<=Length(s) do
    if not (s[i] in ['0'..'9']) then Inc(i)
    else begin
      Inc(k);
      if s[i]<>'2' then while (i<=Length(s)) and (s[i] in ['0'..'9']) do Inc(i)
      else Break;
    end;
  if i<=Length(s)
  then WriteLn('номер первой по порядку группы цифр, начинающейся цифрой 2: ',k) 
  else WriteLn('нет группы цифр, начинающейся цифрой 2');
end.
Добавлено через 1 минуту
vint-81,
что было только форматированием, а что недочетом или ошибкой, можете посмотреть сами.
0
охотник
 Аватар для vint-81
1011 / 535 / 650
Регистрация: 29.09.2014
Сообщений: 1,083
23.09.2016, 16:01
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

bormant,
break не использую...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var s:string;i,k:byte;f:boolean;
begin
 write('s = ');readln(s);
 i:=1;k:=0;f:=false;
 while (i<=length(s))and(not f) do begin
   if s[i] in ['0'..'9'] then begin
      if s[i]='2' then f:=true
      else begin inc(k); while (s[i] in ['0'..'9'])and(i<length(s)) do inc(i)end
   end;   
 inc(i);
 end; 
 if f then writeln('номер первой по порядку группы цифр, начинающейся цифрой 2: ',k+1) 
      else writeln('нет группы цифр, начинающейся цифрой 2')
end.
и еще, я за 'читабельный код'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.09.2016, 16:01
Помогаю со студенческими работами здесь

Найти номер первой по порядку строки массива, содержащей наибольшее количество цифр
найти номер первой по порядку строки массива содержащей наибольшее количество цифр

Дана символьная матрица. Найти номер первой по порядку строки, содержащей наибольшее число цифр
Помогите пожалуйста! Дана символьная матрица. Найти номер первой по порядку строки, содержащей наибольшее число цифр.

Определить номер первой по порядку строки, содержащей наибольшее число цифр
Дана квадратная символьная матрица порядка n. Определить номер первой по порядку строки, содержащей наибольшее число цифр.

Определить номер первой по порядку строки, содержащей наибольшее число символов-цифр
Элементы матрицы вводятся либо пользователем вручную с клавиатуры либо генерируются с помощью генератора случайных чисел. Выбор одного из...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru