С Новым годом! Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
 Аватар для mr_free
73 / 7 / 0
Регистрация: 08.08.2012
Сообщений: 223
Записей в блоге: 1

Поиск двух совпадающих символов в строке

09.03.2015, 14:01. Показов 1607. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Необходимо решить задачу, но моя реализация не работает. (Exitcode - 201). И я не знаю как это исправить.
Условие:
Дана символьная строка. Определить есть ли в данной строке 2-а любых одинаковых символа и вывести соответствующее сообщение.
Моё решение:
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
program z2;
 
uses
    crt;
procedure Search (s : string);
var
   i, j, k : byte;
 
begin
   k := 0;
   writeln(s);
   for i := 1 to length(s) do
   for j := i + 1 to length(s) do
   begin
      if (s[i] = s[j]) then
      begin
        writeln ('Successful! Symbol = ', s[i]);
        inc(k);
      end
      else
        dec(k);
   end;
   if (k <= 0) then
      writeln('Not found.');
end;
 
var
   str : string;
 
BEGIN
     clrscr;
     writeln('Your string :');
     read(str);
     Search(str);
     write('Press key to continue...');
     readkey;
END.
Заранее благодарен за помощь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2015, 14:01
Ответы с готовыми решениями:

В двух строках подсчитать число не совпадающих символов
Процессор Intel: 8086; MASM версия 4.0. Задать с клавиатуры две строки символов по 10 символов в каждой строке и подсчитать число не...

Поиск совпадающих значений двух матриц А и Б
Добрый день! У меня возник такой вопрос: есть ли в MathCADе функция для поиска совпадающих значений в двух матрицах или нужно написать...

Поиск совпадающих значений из двух таблиц
Здравствуйте форумчане :) У меня стоит задача: есть два файла excel, где имеются данные о людей: фио, день рождения, образование и т.д. ...

6
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33369 / 21495 / 8234
Регистрация: 22.10.2011
Сообщений: 36,892
Записей в блоге: 12
09.03.2015, 14:07
Цитата Сообщение от mr_free Посмотреть сообщение
Pascal
1
2
var
* *i, j, k : byte;
Цитата Сообщение от mr_free Посмотреть сообщение
Pascal
1
2
if (k <= 0) then
* * * writeln('Not found.');
Ничего странного не замечаешь? Как переменная типа byte может иметь отрицательное значение?
1
 Аватар для mr_free
73 / 7 / 0
Регистрация: 08.08.2012
Сообщений: 223
Записей в блоге: 1
09.03.2015, 15:44  [ТС]
volvo, действительно не заметил. Осталось только алгоритм оптимизировать исходя из условия.

Добавлено через 1 час 4 минуты
Я исправил. Поиск работает верно, но я не пойму как избавится от повторов в массиве, который содержит повторяющиеся символы из строки ? Вероятно можно было сделать проще и мой алгоритм очень плох.
По-этому прошу помощи или пояснений. Спасибо
Решение:
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
44
program z2;
 
uses
    crt;
 
procedure Search (s : string);
var
   i, j : byte;
   k : integer;
   b : string;
 
begin
   k := 0;
   for i := 1 to length(s) do
   for j := i + 1 to length(s) do
   begin
      if (s[i] = s[j]) then
      begin
        inc(k);
        b[k] := s[i];
      end;
   end;
   if k <= 0 then
        writeln('Not found!')
   else
   begin
        writeln('Successful! Symbol :');
        for i := 1 to k do
               write(b[i], ' ');
        writeln;
   end;
end;
 
var
   str : string;
 
BEGIN
     clrscr;
     writeln('Your string :');
     read(str);
     Search(str);
     write('Press key to continue...');
     readkey;
END.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33369 / 21495 / 8234
Регистрация: 22.10.2011
Сообщений: 36,892
Записей в блоге: 12
09.03.2015, 16:09
Такой вариант тебя устроит?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure Search (s : string);
var
   i, j : integer;
   found : boolean;
begin
   writeln(s);
 
   found := false;
 
   for i := 1 to length(s) - 1 do
   for j := i + 1 to length(s) do
   if not found then
   begin
      if (s[i] = s[j]) then
      begin
        writeln ('Successful! Symbol = ', s[i]);
        found := true;
        // можно сразу exit, чтобы не крутить лишние итерации цикла, один дубликат уже был найден
      end
   end;
   if not found then
      writeln('Not found.');
end;
0
 Аватар для mr_free
73 / 7 / 0
Регистрация: 08.08.2012
Сообщений: 223
Записей в блоге: 1
09.03.2015, 18:00  [ТС]
volvo, увы нет. Ведь он находит только первую букву, что повторяется. А мне нужно найти их все + вывести без повторов.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33369 / 21495 / 8234
Регистрация: 22.10.2011
Сообщений: 36,892
Записей в блоге: 12
09.03.2015, 18:05
Цитата Сообщение от mr_free Посмотреть сообщение
А мне нужно найти их все + вывести без повторов.
Если что - об этом в изначальном задании нет ни слова:
Цитата Сообщение от mr_free Посмотреть сообщение
Определить есть ли в данной строке 2-а любых одинаковых символа
Мой код определяет, есть ли повторы. Задание выполнено, но тебя это не устраивает по какой-то причине. Так вот приведи сначала пример, как должна работать программа, а потом я посмотрю, что так, а что - нет.

Вот, например, строки:
1) Привет, меня зовут Петя
2) Раз, Пять

Каков должен быть результат в обоих случаях?
0
 Аватар для mr_free
73 / 7 / 0
Регистрация: 08.08.2012
Сообщений: 223
Записей в блоге: 1
09.03.2015, 19:30  [ТС]
volvo, ок.
Вывод:
1)Successful! Symbol = П в е т я + пробелы (как повторяющиеся символы)
2)Not found.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.03.2015, 19:30
Помогаю со студенческими работами здесь

Поиск совпадающих слов в двух текстовых файлах
Даны два текстовых файла. Найти совпадающие слова, входящие в оба файла

Поиск совпадающих полей в двух хеш-массивах
Захотел реализовать следующую задачку. Создать 2 хеш-массива с именами полей val1, val2, val3. Заполнить случайными значения от 0 до 10 по...

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

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

Поиск слова по 3 или более подряд совпадающих символов текстовой строки в списке с учетом регистра
Надо найти в таблице нужное слово и вывести его по 3 и более символам с учетом регистра.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru