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

Вывести на печать все имеющиеся в строке пары стоящих рядом одинаковых символов

26.11.2014, 15:50. Показов 3522. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вывести на печать все имеющиеся в строке пары стоящих рядом одинаковых символов.
Без удаления пробелов.
Программа выводит не только одинаковые символы,стоящие рядом, но и одинаковые символы, стоящие через пробел. Например в строке "мышь и инеей" программа выведет
"и-и е-е"
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2014, 15:50
Ответы с готовыми решениями:

Вывести на печать все имеющиеся в тексте пары стоящих рядом одинаковых символов.
Всем привет. Помогите пожалуйста с задачей.:Вывести на печать все имеющиеся в тексте пары стоящих рядом одинаковых символов.(сохранить в...

Найти и вывести все имеющиеся пары стоящих рядом одинаковых символов
Помогите решить пожалуйста: Среди данного массива символов, найти и вывести все имеющиеся пары стоящих рядом одинаковых символов. Все...

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

10
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
26.11.2014, 16:23
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Var
  S : String;
  i : Byte;
 
Function CutSpace(ss : String) : String;
Begin
  If Length(ss)>0 then
    If ss[1]=' ' then CutSpace:=CutSpace(Copy(ss,2,Length(ss)-1))
    else CutSpace:=ss[1]+CutSpace(Copy(ss,2,Length(ss)-1))
  else CutSpace:='';
end;
 
Begin
  S:='мышь и инеей';
  For i:=2 to Length(CutSpace(S)) do
    If CutSpace(S)[i]=CutSpace(S)[i-1] then Writeln(CutSpace(S)[i],'-',CutSpace(S)[i]);
  Writeln(S);
end.
0
1 / 1 / 0
Регистрация: 05.09.2014
Сообщений: 57
26.11.2014, 16:36  [ТС]
а если без функций и процедур?
0
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
26.11.2014, 16:49
Тогда уточните что такое
Цитата Сообщение от natascha Посмотреть сообщение
Без удаления пробелов.
т.к. в моем коде формально удаления не происходит, я просто собирал строку заново "пропуская" пробелы и полученное значение уже использовал далее.

А если я заведу временную строковую переменную и удалю в ней пробелы, а потом по ней и выведу результаты - это уже будет считаться удалением и подпадает под запрет?

Добавлено через 5 минут
имеется ввиду: как воспринимать ограничение? Как недопустимую операцию "в принципе" или как "сохранить начальное значение строки"?
0
1 / 1 / 0
Регистрация: 05.09.2014
Сообщений: 57
26.11.2014, 16:49  [ТС]
Надо как то через 2 переменные. Одна i, а за ней идет j. Сравниваются i и j. Если равны, то эта пара выводится. Если j=' ', то j "перескакивает" на следующий элемент и потом они сравниваются, и если равны, то выводится пара. А если i=' ', то... не знаю.
А можно ещё тем же принципом, но выводить не пары одинаковых символов через тире, а символ звездочку на позиции этой пары, в остальных случаях выводить тире. Я просто не знаю как записать это в код.
0
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
26.11.2014, 16:54
В общем-то у Вас уже есть алгоритм.
Как я понял, "удаление" не рассматривается "в принципе" и требуется жестко придерживаться алгоритма.
0
1 / 1 / 0
Регистрация: 05.09.2014
Сообщений: 57
26.11.2014, 16:58  [ТС]
Ну вот, алгоритм то есть. А вот как это в код записать?
0
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
26.11.2014, 17:00
Цитата Сообщение от natascha Посмотреть сообщение
А вот как это в код записать?
Скажите прямо, Вы не знаете Паскаля и хотите, чтобы Вам дали сразу готовый рабочий код или Вам нужна помощь в написании этого кода? Если второе, то давайте конкретные вопросы.
0
1 / 1 / 0
Регистрация: 05.09.2014
Сообщений: 57
26.11.2014, 17:07  [ТС]
Моя главная проблема - это то, что я понимаю, как это делать. Я не понимаю как записать это в код. Например, как записать, что если j=' ', то j "перескакивает" на следующий?
if s[j]=' ' then
s[j]:=s[j+1];
или
s[j]:=s[j]+1; ?
И как выводить символ "*"
if s[i]<>s[j] then write('-') else write('*');
или
if s[i]=s[j] then write('*'); ?
Но когда выводим,позиции сдвигаются что ли и вообще путаница
0
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
26.11.2014, 17:08
В качестве обучения и понимания будет как-то так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Var
  S   : String;
  i,j : Byte;
 
Begin
  S:='  мышь и инеей  ';
  i:=1; While (i<Length(S)) and (S[i]=' ') do Inc(i);
  j:=i+1; While (j<=Length(S)) and (S[j]=' ') do Inc(j);
  While j<=Length(S) do
  Begin
    If S[i]=S[j] then Writeln(S[i],'-',S[j]);
    Inc(i); While (i<Length(S)) and (S[i]=' ') do Inc(i);
    Inc(j); While (j<=Length(S)) and (S[j]=' ') do Inc(j);
  end;
end.
0
1 / 1 / 0
Регистрация: 05.09.2014
Сообщений: 57
26.11.2014, 17:25  [ТС]
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.11.2014, 17:25
Помогаю со студенческими работами здесь

Сосчитать пары рядом стоящих одинаковых элементов массива
Есть 20-ти значный массив с индексами, надо функцию для каждого массива которая будит вывод ответ на экран. Функция: сосчитать пары рядом...

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

Вывести все пары совпадающих одинаковых символов последовательности
Для заданной последовательности символов: выдать все пары совпадающих одинаковых символов

Количество пар рядом стоящих одинаковых символов строки
Задание на 7 лабораторную работу Написать программу, которая принимает от пользователя одну или строки, в зависимости от задачи....

Вывести пары отрицательных чисел, стоящих рядом в массиве
Дан одномерный массив из 10 целых чисел. Вывести пары отрицательных чисел, стоящих рядом.


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru