БЕСПЛАТНАЯ ПОДГОТОВКА К ЕГЭ ПО ПРОФИЛЬНОЙ МАТЕМАТИКЕ
Подготовься к ЕГЭ-2025 по профильной математике самостоятельно с помощью сервиса "1С:Репетитор"!
Понятная теория и эффективные тренажеры с объяснением! Вы успеете подготовиться к экзамену! Начните занятия прямо сейчас!
design_arrow
Количество чисел в строке

Количество чисел в строке

В данном материале мы подробно разберем одну из наиболее часто встречающихся задач, где надо поработать с массивами и типами данных. Как выбрать число из строки, как определить, что это вообще число и сколько в нем знаков – все это будет рассмотрено в рамках данного материала. Сперва приведем пример массива. Пусть один будет символьный, а другой – числовой.

Пример:

var

  numbers: array[1..5] of integer;

Здесь numbers — массив из пяти целых чисел. Индексация начинается с 1, и к элементам можно обращаться так: numbers[1], numbers[2] и т.д.

В ЕГЭ часто используется массив символов, особенно при анализе строк:

var

  chars: array[1..255] of char;

Строки и массивы символов

В языке Паскаль строки представляют собой специальные структуры, которые в некотором смысле можно воспринимать как массивы символов. Однако между строкой и массивом char есть разница.

Тип данных

Описание

Особенности

string

Готовый тип данных для работы со строками

Длина хранится автоматически

array of char

Массив символов

Длину нужно обрабатывать вручную

Строка в Паскале — это последовательность символов с длиной до 255 символов (в стандартном типе string). Она хранит количество символов и сами символы. Мы можем обращаться к символам строки по индексам, как к элементам массива:

s := 'Привет';

writeln(s[1]); // Печатает 'П'

А вот массив char:

var

  a: array[1..10] of char;

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

Разница между строкой, символом и числом

Для понимания задания по подсчёту чисел в строке важно чётко различать:

  • Символ (char) — один знак: буква, цифра, пробел, точка и т.п.

  • Число (integer) — последовательность символов, представляющая числовое значение.

  • Строка (string) — последовательность символов, в которой могут встречаться как буквы, так и цифры.

Примеры:

Значение

Тип

Комментарий

'A'

char

Одна буква

'7'

char

Символ-цифра, не число!

7

integer

Число

'Привет 42'

string

Строка, содержащая и буквы, и число

Задача. Подсчитать количество целых чисел в строке

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

Существует несколько вариантов от простых до сложных.

Вариант 1: Простая строка, числа разделены пробелами

program CountSimpleNumbers;

var

  s: string;

  i, count: integer;

  insideNumber: boolean;

begin

  readln(s);

  count := 0;

  insideNumber := false;

  for i := 1 to length(s) do

  begin

    if s[i] in ['0'..'9'] then

    begin

      if not insideNumber then

      begin

        insideNumber := true;

        count := count + 1;

      end;

    end

    else

      insideNumber := false;

  end;

  writeln('Количество чисел: ', count);

end.

Объяснение:

  1. Проходим по всем символам строки.

  2. Если текущий символ — цифра, и до этого мы не были внутри числа — увеличиваем счётчик.

  3. Если символ — не цифра, завершаем текущее число.

Вариант 2: Числа могут быть окружены знаками препинания

program CountNumbersAdvanced;

var

  s: string;

  i, count: integer;

  insideNumber: boolean;

begin

  readln(s);

  count := 0;

  insideNumber := false;

  for i := 1 to length(s) do

  begin

    if s[i] in ['0'..'9'] then

    begin

      if not insideNumber then

      begin

        count := count + 1;

        insideNumber := true;

      end;

    end

    else

      insideNumber := false;

  end;

  writeln('Количество чисел в строке: ', count);

end.

Что учитывается:

Алгоритм считает последовательности цифр числом даже если между ними знаки препинания: Пример: 2, 30 и 7. — результат будет 3.

Примеры и тесты

Входная строка

Ожидаемый результат

У меня 3 яблока и 7 груш

2

12 45, 7. А ещё 8

4

Без цифр вообще

0

1 2 3 4 5

5

Цена: 300р, скидка: 20

2

НеВредные советы для заданий ЕГЭ

  1. Не считайте символ '5' как число. Это символ, а не число.

  2. Число — это непрерывная цепочка цифр. 123 — одно число, а не три.

  3. Обрабатывайте строку посимвольно. Это универсально.

  4. Игнорируйте пробелы, знаки препинания и буквы. Главное — найти цифры.

  5. Внимание: числа могут быть большими. Не нужно преобразовывать их в integer, если задача — просто подсчитать их количество.

Итого

  1. Массивы, особенно массивы char, лежат в основе строковой обработки.

  2. Строки — это, по сути, массивы символов, и к ним применим посимвольный анализ.

  3. Символ ≠ число. Даже если символ выглядит как цифра ('3'), это не число, а элемент строки.

  4. В заданиях ЕГЭ важно уметь обрабатывать строку в цикле, выявляя границы чисел и не перепутать отдельные цифры с числами.

  5. Закончив с изучением теории, можно перейти на решение теоретических заданий для подготовки к ЕГЭ.

Вопрос 1.

Что считается числом при подсчёте чисел в строке?

Ответы:
А) Любой символ-цифра
Б) Последовательность цифр, идущих подряд
В) Любое слово, содержащее хотя бы одну цифру
Г) Числа, записанные через пробелы

Вопрос 2.

Сколько чисел в строке:
На улице -5, в комнате +22, всего 3 градуса разницы.

Ответы:
А) 2
Б) 3
В) 4
Г) 5

Вопрос 3.

Какой тип данных используется для одного символа в языке Паскаль?

Ответы:
А) integer
Б) char
В) string
Г) byte

Вопрос 4.

Какой тип данных лучше всего использовать для хранения целой строки текста?

Ответы:
А) char
Б) array
В) string
Г) word

Вопрос 5.

Какое из утверждений верно?

Ответы:
А) Массив char и строка — это одно и то же
Б) Строка — это число, если в ней есть хотя бы одна цифра
В) Последовательность цифр считается одним числом
Г) Каждая цифра в строке — отдельное число

Вопрос 6.

Сколько чисел в строке:
Температура: +3 +5 -10.

Ответы:
А) 2
Б) 3
В) 4
Г) 5