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

Обработка последовательностей символов

15.12.2015, 18:31. Показов 1852. Ответов 10

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста решить задачку
Дана строка символов s1,...,sn.
Преобразовать последовательность s1,...,sn заменив в ней каждую из групп стоящих рядом точек одной точкой.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.12.2015, 18:31
Ответы с готовыми решениями:

Обработка последовательностей символов
Обработка последовательностей символов

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

Обработка последовательностей символов
Удалите из заданного текста все символы, не являющиеся буквами и замените каждую большую букву одноимённой малой.

10
охотник
 Аватар для vint-81
1011 / 535 / 650
Регистрация: 29.09.2014
Сообщений: 1,083
15.12.2015, 18:38 2
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Pascal
1
2
3
4
5
6
var s:string;
begin
 write('s = ');readln(s);
 while pos('..',s)>0 do delete(s,pos('..',s),1);
 writeln('s'' = ',s);
end.
1
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 16
15.12.2015, 18:46  [ТС] 3
Пасибо большое, а можно ли как-то решить эту задачу без процедур и функций?
0
Модератор
10140 / 5476 / 3370
Регистрация: 17.08.2012
Сообщений: 16,730
17.12.2015, 11:10 4
Имеете ввиду без стандартных подпрограмм работы со строками pos и delete? Можно, конечно. Только не понимаю, зачем. Например, так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var s, t: string;
    i: integer;
begin
  t := '';
  writeln('Введите строку:');
  readln(s);
  s := ' ' + s;
  for i := length(s) downto 2 do
    if (s[i] <> '.') or (s[i - 1] <> '.')
      then t := s[i] + t;
  s := t;
  writeln('Преобразованная строка:');
  write(s);
  readln
end.
Если Вам нужно ещё и без функции length, то в Turbo Pascal можно так:
Pascal
8
  for i := byte(s[0]) downto 2 do
В других диалектах паскаля такой фокус не пройдёт.

Добавлено через 7 минут

Не по теме:

Ах, да. Я вот что подумал... Может быть, Вам просто лень изучать, как работают стандартные подпрограммы паскаля? Если так, то хотя бы становится ясна причина Вашего неприятия стандартных подпрограмм... Совсем без стандартных подпрограмм обойтись практически нереально. И, если, к примеру, Вам нужно решение ещё и без процедур read, readln и write, writeln... То Вам придётся изучить не только стандартные подпрограммы паскаля... И не только паскаль... И не только языки программирования...

0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7801 / 4623 / 2832
Регистрация: 22.11.2013
Сообщений: 13,132
Записей в блоге: 1
17.12.2015, 11:39 5
Cyborg Drone,
одной строковой переменной достаточно:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  s: String;
  i, j: Integer;
begin
  Write('Строка: '); ReadLn(s); j:=1;
  for i:=2 to Length(s) do begin
    if (s[i-1]<>'.') or (s[i]<>'.') then Inc(j);
    s[j]:=s[i];
  end;
  {TP: s[0]:=Chr(j);}
  {FPC: SetLength(s,j);}
  s:=Copy(s,1,j); {универсально}
  WriteLn(s);
end.
Добавлено через 8 минут
Или:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{$IFDEF VER55}{$DEFINE TP}{$ENDIF}{$IFDEF VER60}{$DEFINE TP}{$ENDIF}
{$IFDEF VER70}{$DEFINE TP}{$ENDIF}{$IFDEF TP}
procedure SetLength(var s: String; l: Byte); begin s[0]:=Char(l) end;
{$ENDIF}
var
  s: String;
  i, j: Integer;
begin
  Write('Строка: '); ReadLn(s); j:=1;
  for i:=2 to Length(s) do begin
    if (s[i-1]<>'.') or (s[i]<>'.') then Inc(j);
    s[j]:=s[i];
  end;
  SetLength(s,j);
  WriteLn(s);
end.
Добавлено через 7 минут
Или вообще без строк, только последовательность символов:
Pascal
1
2
3
4
5
6
7
var p, q: Char;
begin
  Write('Строка: '); {p:=' ';}
  while not EoLn do begin
    Read(q); if (p<>'.') or (q<>'.') then Write(q); p:=q;
  end; WriteLn;
end.
0
Модератор
10140 / 5476 / 3370
Регистрация: 17.08.2012
Сообщений: 16,730
17.12.2015, 13:46 6
Цитата Сообщение от bormant Посмотреть сообщение
одной строковой переменной достаточно
bormant, ясен день, достаточно. Просто писал максимально
Цитата Сообщение от FlayGlam Посмотреть сообщение
без процедур и функций
, с одной стороны, и
Цитата Сообщение от FlayGlam Посмотреть сообщение
Преобразовать последовательность
, с другой стороны.
0
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 16
21.12.2015, 17:09  [ТС] 7
я знаю, как они работают и я знаю, как решить эту задачу с помощью процедур и функций, но мой преподаватель очень не любит процедуры и функции)
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7801 / 4623 / 2832
Регистрация: 22.11.2013
Сообщений: 13,132
Записей в блоге: 1
21.12.2015, 17:19 8
Покажите мне решение без процедур, в том числе без
- процедуры Write и WriteLn
- процедуры Read и ReadLn
очень интересно, жду с нетерпением
А так вон выше есть вариант со строками без процедур/функций (не считая ввода/вывода) и даже без строк
0
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 16
21.12.2015, 19:36  [ТС] 9
Вы совсем меня не поняли, без этих процедур - уж точно не решить задачу я не очень понимаю строковый тип, а мой преподаватель не одобряет использование функций в какой-либо задаче, поэтому я и спросила, есть ли вариант решения без функции pos и процедуры delete.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7801 / 4623 / 2832
Регистрация: 22.11.2013
Сообщений: 13,132
Записей в блоге: 1
21.12.2015, 21:05 10
Цитата Сообщение от FlayGlam Посмотреть сообщение
совсем меня не поняли
Совсем не понял, а где же в сообщении #5 функция Pos или процедура Delete?
0
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 16
21.12.2015, 22:14  [ТС] 11
Потому и не поняли, потому что к концу диалога подключились, а не к началу)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2015, 22:14
Помогаю со студенческими работами здесь

Обработка последовательностей
Уважаемые ребята прошу помощь по решению задачки: Дано целое число N и набор из N нулевых целых чисел. Вывести в том же порядке все...

Обработка последовательностей
Люди добрые, нужна помощь... Немного не справляюсь по времени. Видимо задачка и лёгкая, но нужна срочная помощь... Дано целое число...

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

Обработка и преобразование числовых последовательностей
Обработать и преобразовать числовые последовательности.

Обработка последовательностей символов
Выполнить задания для строки символов. Удалить в строке все вхождения «abc».


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class - средства для работы с неизменяемыми структурами данных, каждое из которых предлагает свой уникальный подход к решению этой задачи. История их появления весьма. . .
Создание производительны­­х API с Java и gRPC
Wired 04.03.2025
В разработке производительность и масштабируемость микросервисных приложений играют ключевую роль. Традиционные REST API, несмотря на свою популярность и простоту, не всегда способны обеспечить. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 знаменует собой значительный скачок в развитии Java, внося фундаментальные улучшения в производительность, безопасность и удобство разработки. Релиз включает множество революционых изменений,. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Современная блокчейн-разработка на Java предоставляет разработчикам широкий спектр возможностей. В отличие от Solidity, который ограничен экосистемой Ethereum, Java позволяет создавать как. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
Tестирование Pull Request в Kubernetes с помощью vCluster
stackOverflow 03.03.2025
При работе с микросервисной архитектурой критически важно обеспечить качественное тестирование каждого изменения перед его слиянием в основную кодовую базу. Однако тестирование Pull Request в. . .
Использование пакета Context в Golang
bytestream 03.03.2025
Управление параллельными процессами в современных приложениях - сложная задача, особенно когда речь идет о микросервисной архитектуре и распределенных системах. Пакет context в Go - это гибкое. . .
WebAssembly и Go: Работа с DOM и обработка ошибок
bytestream 03.03.2025
WebAssembly представляет собой технологию, позволяющую запускать низкоуровневый код в браузере практически на нативной скорости. Особенно интересные возможности открываются при использовании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru