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

Тематика Информатика
Уровень 10 - 11 классы
программирование алгоритмы строки цифры повторяющиеся символы Pascal ABC пример кода обработка текста задачи на строки
0

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

Входные данные

Входная строка может содержать содержит цифры, пробелы и латинские буквы.

Выходные данные

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

Примеры

входные данные

asd12gh23

выходные данные

2

входные данные

t1y2u3i4o5

выходные данные

NO Pascal ABC 1.8

avatar
задан 2 месяца назад

3 Ответа

0

Программа на языке Pascal ABC 1.8:

program DigitsRepeat;

var
  str: string;
  digits: array[0.9] of Boolean;
  i: Integer;
  repeatDigits: Boolean;

begin
  repeatDigits := False;
  for i := 0 to 9 do
    digits[i] := False;

  readln(str);

  for i := 1 to Length(str) do
  begin
    if (str[i] >= '0') and (str[i] 

avatar
ответил 2 месяца назад
0

program DigitsInString;

var str: string; digits: array[0.9] of boolean; i, count: integer; hasDuplicates: boolean;

begin hasDuplicates := false; for i := 0 to 9 do

digits[i] := false;

readln(str);

for i := 1 to length(str) do begin

if (str[i] >= '0') and (str[i] 

avatar
ответил 2 месяца назад
0

Для решения этой задачи на языке программирования Pascal ABC 1.8 можно воспользоваться следующими шагами:

  1. Пройти по входной строке и подсчитать количество вхождений каждой цифры.
  2. Проверить, какие цифры встречаются больше одного раза.
  3. Отсортировать эти цифры в порядке возрастания.
  4. Вывести результат.

Вот как это можно реализовать:

program FindRepeatedDigits;

uses SysUtils;

var
  input: string;
  count: array['0'.'9'] of integer;
  i: integer;
  hasRepeatedDigits: boolean;
  output: string;
begin
  // Инициализируем массив подсчета количества вхождений цифр
  for i := 0 to 9 do
    count[Chr(Ord('0') + i)] := 0;

  // Читаем входную строку
  ReadLn(input);

  // Подсчитываем количество вхождений каждой цифры
  for i := 1 to Length(input) do
    if input[i] in ['0'.'9'] then
      Inc(count[input[i]]);

  // Ищем цифры, которые встречаются больше одного раза
  hasRepeatedDigits := False;
  output := '';

  for i := 0 to 9 do
    if count[Chr(Ord('0') + i)] > 1 then
    begin
      hasRepeatedDigits := True;
      output := output + Chr(Ord('0') + i);
    end;

  // Выводим результат
  if hasRepeatedDigits then
    WriteLn(output)
  else
    WriteLn('NO');
end.

Объяснение кода:

  1. Инициализация массива count:

    • Мы создаем массив count размером 10 для подсчета количества вхождений каждой цифры от '0' до '9'.
    • Инициализируем все элементы массива нулями.
  2. Чтение входной строки:

    • Используем ReadLn для чтения входной строки.
  3. Подсчет количества вхождений цифр:

    • Проходим по каждому символу входной строки и, если это цифра, увеличиваем соответствующее значение в массиве count.
  4. Поиск цифр, встречающихся больше одного раза:

    • Проходим по массиву count и проверяем, какие цифры встречаются больше одного раза.
    • Если такие цифры найдены, добавляем их в строку output.
  5. Вывод результата:

    • Если найдены цифры, встречающиеся больше одного раза, выводим их в порядке возрастания.
    • Если таких цифр нет, выводим 'NO'.

Таким образом, программа выполняет все необходимые шаги для решения поставленной задачи.

avatar
ответил 2 месяца назад

Ваш ответ

Вопросы по теме