Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 19

Обработка символьных строк

26.04.2021, 21:41. Показов 2086. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вывод неправильный и не понимаю что именно неправильно.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
x: string;
n, d: integer; //n - номер позиции, d - длина строки
a: char;
begin;
readln(x);
d:= length(x);
for n := 1 to d do begin;
a:=x[n];
if ord(a) > 191 then insert('-', x, n + 1);
d:= length(x);
end;
writeln(x);
end.
Миниатюры
Обработка символьных строк  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.04.2021, 21:41
Ответы с готовыми решениями:

Обработка символьных данных
Всем привет. Помогите пожалуйста с задачей. "Обработка символьных данных. Определить, входит ли буква "с" в группу символов,...

Обработка символьных данных
Обьеденить две исходные строки и удалить повторяющиеся слова ) var s1, s2, s :string; i,j:integer; st:array of string; begin ...

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

8
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
27.04.2021, 00:15
Лучший ответ Сообщение было отмечено RedDevil_021 как решение

Решение

Цитата Сообщение от RedDevil_021 Посмотреть сообщение
ord(a) > 191
Ибо нефиг - 191 это магическое число. А в .Net оно не будет работать ещё и потому - что все символы хранятся в кодировке Unicode. Сравнивайте символы с символами, а не голыми кодами:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  x: string;
  n, d: integer; //n - номер позиции, d - длина строки
  a: char;
 
begin;
  readln(x);
  d := length(x);
  for n := 1 to d do
  begin
    a := x[n];
    // ё это особый символ
    if (a in 'а'..'я') or (a = 'ё') then insert('-', x, n + 1);
    d := length(x);
  end;
  writeln(x);
end.
Ну и если остальную гадость тоже подчистить:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
begin
  var x := ReadString;
  // Границы цикла считываются при его запуске, ваше "d:=length(x);" в конце цикла не прокатит
  // Поэтому надо идти в обратную сторону
  for var i := x.Length downto 1 do
  begin
    var ch := x[i];
    if (ch in 'а'..'я') or (ch = 'ё') then
      Insert('-', x, i + 1);
  end;
  x.Println;
end.
Добавлено через 3 минуты
А вообще всё проще:
Pascal
1
2
3
4
## ReadString
.SelectMany(ch->
  (ch in 'а'..'я') or (ch = 'ё') ? |ch, '-'| : |ch|
).Println;
Понаводите мышку на непонятные имена, вам покажет их описание. Остальное что не понятно спрашивайте.
0
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 19
28.04.2021, 12:43  [ТС]
Спасибо большое, очень сильно помогли
0
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 19
29.04.2021, 23:20  [ТС]
а как написать чтобы мои подчеркивания были на следующей строке, а не в тексте?
?
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
29.04.2021, 23:58
Выводите вторую строку по 1 символу, если символ в исходной строке - русская буква, то выводите подчёркивание, иначе пробел.
0
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 19
30.04.2021, 00:04  [ТС]
А не могли бы в коде это прям написать, а то не очень сильно понимаю
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
30.04.2021, 10:44
Лучший ответ Сообщение было отмечено RedDevil_021 как решение

Решение

Pascal
1
2
3
4
## ReadString
.Select(ch->(
  if (ch in 'а'..'я') or (ch = 'ё') then '-' else ' '
)).Println;
0
0 / 0 / 0
Регистрация: 07.04.2021
Сообщений: 19
30.04.2021, 10:49  [ТС]
Спасибо большое. Очень благодарен
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
30.04.2021, 11:32
Sun Serega, только строчные?
Pascal
1
2
## var s:=ReadString;
Regex.Replace(Regex.Replace(s,'[а-яёА-ЯЁ]','—'), '[^—]', #32).Println;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.04.2021, 11:32
Помогаю со студенческими работами здесь

Обработка символьных строк
Или лыжи не едут, или я... молодец. Помогите решить задачку. Даны две строки, содержащие русские слова, разделенные пробелами....

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

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

Обработка символьных массивов
В текстовом массиве определить количество слов, состоящих более чем из четырёх символов.

Обработка символьных данных.
Помогите пожалуйста, ничего не понимаю в программировании. Нужно написать проги в Паскале, желательно всю прогу, а не только тело. Буду Вам...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru