0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 40
1

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

10.03.2020, 10:24. Показов 1400. Ответов 21

Студворк — интернет-сервис помощи студентам
Помогите исправить ошибку. При выводе функции, выдает сообщение: "regexp: Неверный тип входного аргумента №3: ожидался 'o'." Задание: Написать файл-функцию для замены идущих подряд одинаковых символов в строке на один. Вот мой код:
Matlab M
1
2
3
4
5
6
funcprot(0);
function a=myfun(s)
regexp(s,'(.)\1+','$1')
endfunction
s='ooooooooooraaaaaaaaaaaaaangeeeeeeeee'
mufun(s)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2020, 10:24
Ответы с готовыми решениями:

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

В строке вывести последовательности состоящие из трех одинаковых подряд идущих символов
Ввести строку с клавиатуры. Найти и вывести на экран последовательности, состоящие из трех...

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

Написать и протестировать функцию для замены символов “:” на “.” в заданной строке
13. Написать и протестировать функцию для замены символов “:” на “.” в заданной строке, начиная с...

21
6697 / 4786 / 2004
Регистрация: 02.02.2014
Сообщений: 12,821
10.03.2020, 11:22 2
https://help.scilab.org/docs/6... egexp.html

третьим аргументом идет флаг: он либо отсутствует, либо равен 'o'
0
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 40
10.03.2020, 12:39  [ТС] 3
изменила строку. Теперь вот, что пишет:"regexp: Неверное количество входных параметров: ожидалось 2 или 3."
Matlab M
1
regexp(s,'(.)\1+','$1','0')
0
6697 / 4786 / 2004
Регистрация: 02.02.2014
Сообщений: 12,821
10.03.2020, 12:40 4
вы хоть справку почитайте, количество аргументов 2 или 3.. и третий аргумент не 0, а символ 'o'
0
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 40
10.03.2020, 12:49  [ТС] 5
все равно тоже самое пишет
0
2441 / 1839 / 406
Регистрация: 15.12.2013
Сообщений: 8,220
10.03.2020, 13:16 6
002910, какую разницу между вашим кодом и примерами из документации (ссылку постили выше) вы видите?
0
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 40
11.03.2020, 11:37  [ТС] 7
у меня 2 аргумента, а там 3

Добавлено через 5 минут
S_el, у меня 2 аргумента, а там 3
0
2441 / 1839 / 406
Регистрация: 15.12.2013
Сообщений: 8,220
11.03.2020, 11:38 8
002910, показывайте текущий код, в ваших предыдущих постах 3 и 4 аргумента соответственно.
0
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 40
11.03.2020, 11:39  [ТС] 9
S_el,
Matlab M
1
2
3
4
function a=myfun(s)
regexp(s,'(.)\1+','$1')
endfunction;
myfun(s)
0
6697 / 4786 / 2004
Регистрация: 02.02.2014
Сообщений: 12,821
11.03.2020, 11:48 10
вот варианты регулярок.. что с ними делать, думайте сами..
поиграйте с вариантами, поизучайте..
Matlab M
1
2
3
4
5
6
7
8
9
function c=myfun(s)
  [a,b,c]=regexp(s,'/(.)\1+/')
  //[a,b,c]=regexp(s,'/(.)\1*/')
  //[a,b,c]=regexp(s,'/(.)\1+/','o')
  //[a,b,c]=regexp(s,'/(.)\1*/','o')
endfunction;
 
s='ooooooooooraaaaaaaaaaaaaangeeeeeeeee'
disp(myfun(s))
0
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 40
11.03.2020, 11:49  [ТС] 11
Krasme, что за a, b, c?
0
2441 / 1839 / 406
Регистрация: 15.12.2013
Сообщений: 8,220
11.03.2020, 11:51 12
002910, т.е. у вас тоже 3-и аргумента. Может в документации на русском проще разобраться будет?

Код
regexp(input, pattern, [flag])

input - символьная строка.
pattern - символьная строка, шаблон (по правилам регулярных выражений).
flag - 'o' для одного соответствия шаблону.
Т.е. если флаг установлен значит нужно найти только одно соответствие.

Кстати, а зачем вообще вам функция поиска, если вам нужна замена?
0
6697 / 4786 / 2004
Регистрация: 02.02.2014
Сообщений: 12,821
11.03.2020, 11:52 13
002910, читаем справку, ссылку уже давала...
если с английским проблема, читаем встроенную в scilab справку, она на русском
0
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 40
11.03.2020, 11:54  [ТС] 14
Krasme, не особо понятно

Добавлено через 44 секунды
S_el, у меня флаг не установлен
0
2441 / 1839 / 406
Регистрация: 15.12.2013
Сообщений: 8,220
11.03.2020, 12:05 15
002910, ок, напишите как вы понимаете, за что в данной функции отвечает каждый аргумент.
0
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 40
11.03.2020, 12:08  [ТС] 16
S_el, s-берет строку, '(.)\1+' - шаблон, $1- говорит о том, что текст необходимо заменить под шаблон
0
6697 / 4786 / 2004
Регистрация: 02.02.2014
Сообщений: 12,821
11.03.2020, 12:09 17
002910, совет: регулярка тут не поможет, решайте задачу простым циклом и строковыми операциями
0
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 40
11.03.2020, 12:11  [ТС] 18
Krasme, если б мне было надо решать циклом, я б решила, но мне надо с регулярными выражениями, по заданию
0
2441 / 1839 / 406
Регистрация: 15.12.2013
Сообщений: 8,220
11.03.2020, 12:19 19
Цитата Сообщение от 002910 Посмотреть сообщение
$1- говорит о том, что текст необходимо заменить под шаблон
хорошо, а почему вы решили что функция:
а) выполняет замену
б) такой синтаксис Scilab поддерживает?
0
0 / 0 / 0
Регистрация: 22.11.2019
Сообщений: 40
11.03.2020, 12:22  [ТС] 20
S_el, потому что $1 - нужно для замены
по идее должен

Добавлено через 44 секунды
S_el, команду replace scilab не знает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2020, 12:22
Помогаю со студенческими работами здесь

Описать функцию, которая подсчитывает максимальное количество символов, идущих подряд в строке
Добрый день! Дали задание, но не совсем ясно, а выполнить надо. Просьба написать: a)функцию,...

Написать и протестировать функцию для замены символов ‘:’ на ‘.’ в заданной строке, начиная с указанной позиции
Написать и протестировать функцию для замены символов ‘:’ на ‘.’ в заданной строке, начиная с...

Количество идущих подряд одинаковых символов
Нужно посчитать сколько подряд единиц идут в массиве, начиная с определенной позиции вправо,...

Поиск идущих подряд одинаковых символов.
Написал программу поиска идущих подряд одинаковых символов, но оно не совсем работает......


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru