Удаление скобок и их внутренностей из текста
Необходимо удалить все из квадратных скобок + сами скобки + пробел между скобками и началом символов без скобок, чтобы получилось:
символы
символы
символы
.
Кол-во символов в скобках может меняться
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Удаление текста из скобок вместе со скобками
Поясните каждую строчку var s:string;i,len,p: integer; begin s:=Memo1.Text; len:=Length(s);.
Функция: удаление текста внутри скобок вместе со скобками
Использую MS VS2017 , закомментируйте пожалуйста данную функцию (char* str_remove(char* s, char a.
Удалить часть текста, заключённую в скобки вместе со скобками. Внутри каждой пары скобок нет других скобок.
1. Удалить часть текста, заключённую в скобки вместе со скобками. Внутри каждой пары скобок нет.
Удаление скобок
Здравствуйте! помогите написать макрос, который будет в определенном столбце удалять скобки вместе.
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
Сообщение было отмечено CoolCMD как решение
Решение
delete(stroka,1,pos(']',stroka)+1);
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Удаление скобок из строки
Решаю задания на freeCodeCamp столкнулся с такой вот задачей. Нужно проверить является ли строка.
Удаление попарных скобок
В заданном предложении удалить фигурные и квадратные скобки, если они встречаются попарно ( ‘’.
Удаление лишних скобок
С#. Пользователь вводит строку символов. состоящую из букв латинского алфавита и скобок <> ().
Строки. Удаление скобок.
С клавиатуры вводится строка выражения/текста. Удалить из заданной строки фрагменты, заключенные в.
Программирование на языке Pascal от Елены Клейн
Хотите стать программистом? Научиться писать программы? С чего начать? Давайте начнем с языка Паскаль.
Словарик
‘ ‘ | Две единичных кавычки. Ставятся с клавиши «Э» («Є») в английской раскладке клавиатуры. Между ними записывают текстовые переменные или просто текст, который необходимо вывести. |
( ) | Круглые скобки. Используются во многих местах программы для обозначения того, к чему именно будет применена идущая перед ними команда. Например, Write (a) — напечатать значение переменной а. Sqrt (x+y) — извлечь квадратный корень из суммы x+y. |
. | Точка. Одна точка встречается в самом конце программы, после слова end. |
.. | Две точки. Служат заменой слова «до» при задании массива. Например, запись [1..20] означает, что мы задаем массив, состоящий из одной строки, содержащей 20 элементов. А запись [1..8,1..10] означает, что мы задаем массив, содержащий 8 строк по 10 элементов в каждой. |
:= | Команда «Двоеточие равно» по-научному называется «оператор присваивания». А по поведению похожа на гопника. Комбинация «Двоеточие равно» никого ни о чем не спрашивает. Она берет ячейку памяти из левой части, и засовывает туда результат действий из правой части. Если в ячейке уже что-то было – старое значение стирается, и туда насильно вписывается новое. Разбой и хулиганство, одним словом… |
; | Точка с запятой означает, что строка закончена и следует перейти к выполнению следующей команды. |
[ ] | Квадратные скобки позволяют указывать номер элемента в массиве, чтобы обратиться к конкретному элементу. Например, запись a[8] означает, что в одномерном массиве по имени a (строке, где каждый элемент зовут а, но не просто, а еще с номером, как в семье, где у всех одинаковая фамилия — а, и разные имена — номера), мы обращаемся к восьмому по счету элементу. А запись a[i,j] означает что мы обращаемся к элементу а, стоящему в i строке на j месте. |
Фигурные скобки нужны для обозначения комментария в программе. То, что внутри фигурных скобок, компьютер не пытается выполнять. Поэтому используют их в двух случаях: когда рядом с каким-то блоком программы хотят объяснить, что именно делает этот блок, или когда программа не работает как надо. Тогда мы берем в такие скобки кусочки программмы, чтоб выяснить, в каком блоке у нас ошибка. | |
= | Просто «равно» — это интеллигент, старенький профессор. Который вежливо спрашивает: «Скажите пожалуйста, а правая часть выражения таки равна его левой части? Да? Нет?» Т.е. обычный знак «равно» — это оператор сравнения . |
array | Объявление массива. Массив нужен, если мы хотим задать сразу много переменных, имеющих один тип и выполняющих одинаковую работу. Тогда мы пишем в разделе Var a: array[1..150] и задаем сразу 150 переменных по имени а с разными номерами: a[1], a[2], … , a[150] |
assign | Если мы хотим вводить данные не с клавиатуры (как маленькие), а из файла (как настоящие программисты), мы должны сказать компьютеру, что некая переменная у нас с этого момента будет брать значения из определенного файла. Пишут так: assign (f, ‘input.txt’); |
Begin | Начало. Может означать начало программы, а может встретиться и внутри программы, если, например, при выполнении какого-то условия нужно сделать несколько действий. Тогда Begin — это как бы открытая скобка, показывающая, что с этого места программы начинаются действия, которые надо выполнять. |
Char | Тип переменных. Этот тип нужен, если мы работаем с символами, записанными по одному. Например, с буквами, или знаками «+» и «-». Или даже с цифрами, но, во-первых, 15 – это будет уже две переменных типа Char, потому, что в одну такую переменную помещается только один символ, а во-вторых, цифры в Char нельзя складывать. Применять математические действия к таким переменным нельзя. Много другого, тоже полезного, делать можно. |
close | Если мы работаем с файлами, из которых берем информацию или, наоборот, в которые складываем результаты, то после окончания работы с файлом его надо закрыть. Close(f) — закрыть файл, ассоциирванный с f. |
div | Помните, в начальной школе вы еще не знали, что бывают дробные числа? Тогда вы делили одно число на другое «с остатком». Иногда в программах нам понадобится такое деление. Так вот, если 7:3=2(1 остаток), то 7 div 3 = 2. Это целая часть, получившаяся при делении. |
do | «Делать». Часть оператора цикла For. Пишут так: For i:=1 to 5 do, что означает «Для i от 1 до 5 делать…» — дальше вы напишите, что именно вам надо сделать, в данном случае, 5 раз. |
else | Иначе. Используют вместе с оператором If. Если основное условие не выполнилось, то будут выполнятся действия, прописанные после оператора else. Кстати, очень важно, перед этим оператором НЕ СТАВЯТ точку с запятой в предыдущей строке. Исключение! |
end | Конец. Если с точкой — то конец всей программы. Если с «точкой с запятой» — то закрытая «операторная скобка», обычно — парочкой к Begin, но есть и одинокие варианты end. Например, оператор case не содержит Begin, но заканчивается end. |
eof | Очень удобная команда. While not eof (f) do означает читать файл f пока он не закончится. При этом вам совершенно не надо знать, какой длины ваш файл. Сказали — читай до конца, комп и читает… |
file | Это тип данных, который позволяет потом использовать переменные этого типа для чтения информации из файлов или записи информации в файл. |
For | Оператор создания цикла. Если вам надо вывести какое-то слово 150 раз, вы конечно можете писать его 150 раз вручную. А можете просто задать цикл For i:=1 to 150 do, и ваша задача выполнится 150 раз. Правда, если вы не знаете сколько точно раз надо выполнить действие, этот цикл не подходит. |
goto | Если до раздела Var вы прописали Label 1,2,3; а потом в середине программы некоторые строчки начинаете с 1: 2: 3:, то с помощью оператора goto 2, например, вы можете отправиться прямо к строке, начатой с 2: перескочив на сколько угодно строк вниз или вверх по тексту программы. |
if | Если. Оператор логического ветвления. Позволяет проверять условия, и, если условия выполнились, выполнять одну группу действий, а если нет — другую. Иногда сопровождается else. |
input.txt | Так будет называться текстовый файл (созданный в программе Блокнот), в который мы сможем записывать данные, которые компьютер должен обработать в процессе программы. А в файл output.txt он уже запишет результат самостоятельно. Кстати, чтоб все работало, этот файл должен лежать в одной папке с вашей программой. Ну, или пишите длинный путь к файлу, начиная с имени жесткого диска. |
Integer | это целые числа от -32 727 до 32 727 . Число 33 000 и даже 32 728 компьютер уже целым не считает. У него в голове такое длинное число не укладывается. Что делать, если нужно работать с большим числом или с дробью? Для этого есть другой тип. |
Label | Если до раздела Var вы прописали Label 1,2,3; а потом в середине программы некоторые строчки начинаете с 1: 2: 3:, то с помощью оператора goto 2, например, вы можете отправиться прямо к строке, начатой с 2: перескочив на сколько угодно строк вниз или вверх по тексту программы. |
mod | Помните, в начальной школе вы еще не знали, что бывают дробные числа? Тогда вы делили одно число на другое «с остатком». Иногда в программах нам понадобится такое деление. Так вот, если 7:3=2(1 остаток), то 7 mod 3 = 1. Это остаток, получившийся при делении. |
output.txt | Так будет называться текстовый файл (созданный в программе Блокнот), в который компьютер будет записывать результаты, получившиеся в результате работы программы. Кстати, чтоб все работало, этот файл должен лежать в одной папке с вашей программой. Ну, или пишите длинный путь к файлу, начиная с имени жесткого диска. |
Program | Самое первое слово в прграмме. Назовите свою программу, например Program prim1; |
read | Останавливает выполнение программы, и ждет, пока пользователь введет что-нибудь с клавиатуры. Получив информацию, проверяет, соответствует ли она заказанному типу переменной. Если да — запоминает в указанную ячейку памяти. Если нет — выбрасывает из программы с сообщением об ошибке. Read (g); — запомнит переменную в ячейку по имени g. |
readln | Аналогично read, только после выполнения уйдет на новую строчку на экране. |
Real | это не только большие положительные или отрицательные числа, но и дробные числа. Запомните, компьютер будет следить за тем, чтоб ваши переменные ВСЕГДА были нужного типа. Если вы сложите два целых числа, умножите целое на целое или отнимите от одного целого числа другое, вы все равно получите целое число. А если вы разделите целое на целое? Результат может быть и дробным. Поэтому переменная, которая получается в результате деления, должна быть типа Real. Числа, которые компьютер выводит на экран в этом типе, выглядят непривычно. Вот так, например: |
3,2000000000Е+4 это 32 000
3,2000000000Е-2 это 0,032
Откуда я знаю? Все просто. Считайте, что знак «+» после буквы Е означает слово «умножить», а знак «-», соответственно, «разделить». Сама буква Е означает, что делить и умножать мы будем на число 10. А число после знака указывает, сколько раз мы должны выполнить это действие. Когда-нибудь на уроках математики вам расскажут о «стандартном виде числа», т.е. о том, что любое число можно записать в виде десятичной дроби, умноженной на 10 в какой-то степени, например:
3,2·104 = 3,2·10·10·10·10 =32 000
Комментариев нет:
Отправить комментарий
Подписаться на: Сообщения (Atom)
Книжная полка
- Главная страница
- Словарик
- Словарик, продолжение
- Решение к уроку 2.
- Решение к уроку 3
- Решения к уроку 5
- Решения к уроку 6 (Практика — 2)
- Решения к уроку 9
- Задачи про время. Решения.
- Олимпиадная задача № 1. Решение.
- Задача про нефть. Решение.
- Решение задачи районной олимпиады 11_1.
- Решение задачи 11_2 (районная олимпиада)
- Треугольник Паскаля. Решение.
Паскаль — проверки правильности расстановки открывающих и закрывающих скобок в выражении — пример кода
На вход программе подаётся последовательность символов, заканчивающаяся точкой (точка — признак конца и в последовательность не входит).
Проверить: правильно ли в данной последовательности расставлены круглые скобки (то есть справа от каждой открывающей есть соответствующая закрывающая, а слева от каждой закрывающей есть
соответствующая открывающая). Например, в последовательности
00(0) скобки расставлены правильно а в последовательности (0)) неправильно.
Вывести на экран в качестве ответа YES или NO.
Пример решения, в котором последовательность вводится единой строкой:
Program BracketsTesting; var // секция объявления переменных i, bracketsDif, // счётчик разницы между открытыми и закрытыми скобками len: Integer; my_sequence: String; // сюда считаем последовательность символов stop_symb: char; begin // тело программы stop_symb := '.'; // точка как признак конца последовательности bracketsDif := 0; // условно "правильное" состояние расстановки скобок Writeln('Введите последовательность: '); Readln(my_sequence); // считываем последовательность введённую пользователем len := length(my_sequence); // определяем длину последовательности for i:=1 to len do // обходим последовательность поcимвольно begin if ((my_sequence[i] = stop_symb) // если встретили точку OR (bracketsDif < 0)) then // или число закрывающих скобок превысило число открывающих break; // выходим из текущего цикла if (my_sequence[i] = '(') then // еслли это открывающая скобка bracketsDif := bracketsDif + 1 // увеличим разницу else if (my_sequence[i] = ')') then // если это закрывающая скобка bracketsDif := bracketsDif - 1 // уменьшим разницу end; // конец цикла перебора символов последовательности if (bracketsDif = 0) then Writeln ('YES') // скобки в порядке else Writeln ('NO'); // что-то не то end.
Пояснения
Немного поясним ситуацию с таким вот моментом:
"если мы встретили точку или число закрывающих превысило число открывающих, то выходим из цикла"
а если число открывающих превысит (bracketsDif >0), тогда что происходит?
Дело в том, что ситуция превышения числа открывающих скобок нормальна, так как для этих скобок могут быть встречены закрывающие в ходе дальнейшего перебора символов последовательности, например, для фрагмента:
число открывающих скобок уже превысило число закрывающих. Более того, даже первая открывающая скобка - уже "превышение", но она всегда может быть закрыта в дальнейшем, например, указанный фрагмент может заканчиваться (в целом выглядеть) так:
((ab+в)+n)
- и тут всё ок (YES).
С другой стороны предположим, что последовательность начинается так:
)fsdg
- тут как не открывай/закрывай скобки в дальнейшем ситуацию уже не спасти, как и, например, тут:
(fdsg)g)fsdg
-- также шансов "исправить" ситуацию уже нельзя.
Таким образом если скобка закрывается, после того как все необходимые скобки итак закрыты (или скобок вообще ещё не встречалось), то мы можем говорить о том что расстановка не корректна (NO).
Key Words for FKN + antitotal forum (CS VSU):
- паскаль оператор ввода read
- Паскаль получить символ строки
- паскаль цикл for примеры
При написании в паскале оператора writeln не выдаётся текс
компиляция идёт норм, но при открывании программы в паскале ctrl+f9 alt+5 программа запускается но текста не вижу, в чем трабл?
ос windows 7 pascal free да и на др паскалях пробовал, такой простой оператор и такие не понятки.
Лучший ответ
Фигурные скобки в паскале - это комменты. так что понятно, почему компилятор их пропускает. правильная конструкция:
врайтлн ("текст");
если выдаются ошибки компилятором, пиши, расскажу, что за ошибки
АнтонМыслитель (7154) 12 лет назад
; - это тоже обязательно?
и ещё не понятки со скобками, я сначала искал такие круглые как у тебя, но в паскале не могу напечатать их, если зажимаю шифт+9 0 получаются скобки как знак больше и меньше, хотя в ворде и др текстовых редакторов скобки круглые. потом пробовал шифт + Б Ю такие же получаются ⟨ ⟩, компиляция не идёт. странyо в ворде круглые идут в паскале нет///
Николай Горовой Профи (710) ааа, ну у тебя просто семерка стоит, а соответственно окошко паскаля наверное не раскрывается на весь экран, а если это так, то шифт+9 0 действительно дают ощущение знаков больше и меньше, но. это скобки, просто это искажение такое, так что ставь их и не беспокойся, это они. а насчет ; - да лучше ставить их всегда, конечно паскаль допускает отсутствие этого знака перед энд. , но, написать его лишним не будет, просто привыкнешь, что в паскале ; обязательно писать много где, это не PHP, где после условий можно их и упустить.
Остальные ответы
ридлн () после вывода поставь, чтобы прога не закрывалась, а ждала ввода пользователя
АнтонМыслитель (7154) 12 лет назад
я программу запускал в паскале, там прога не закрывается по книги должен быть текст виден, я его не вижу
> по книги должен быть текст виден Так ты буквы еще не все выучил, а туда же - книги читать) А ну бегом марш учить буквы "<" и ">" !">
мышьПрофи (640) 12 лет назад
да, кстати, скобки должны быть такие () - сразу не заметила
и кавычки "" или '', а не ``
Там скобки фигурные? Круглые надо.
АнтонМыслитель (7154) 12 лет назад
круглые ставил, компиляция не идёт тогда
inga zajoncИскусственный Интеллект (180321) 12 лет назад
program p;
begin
writeln('Hello! ');
end.
Работает. Free Pascal Compiler version 2.4.2
Антон Мыслитель (7154) как ставить эти круглые скобки в паскале? () зажимаю шифт 9 и 0 получается такое http://clip2net.com/s/14oFj и компиляция не идёт, тока компиляция идёт с такими скобками <>
inga zajoncИскусственный Интеллект (180321) 12 лет назад
Открой в любом текстовом редакторе файл fp.cfg и замени -Opentium3 на -Op3 - источник: freepascal.ru
Антон Мыслитель (7154) благодарю разобрался это баг скачал новую версию!
Должны быть круглые скобки:
begin
writeln('любой текст');
end.
Чтобы поставить символ ' нужно нажать на букву Э при английской раскладке клавиатуры.
АнтонМыслитель (7154) 12 лет назад
апостроф я нашёл, тока круглые скобки в паскале не печатаются, получаются ⟨ ⟩ как знак больше или меньше
Чернышов Николай Гуру (2892) а программа при этом компилируется? текст видно?
Чернышов НиколайГуру (2892) 12 лет назад
Всё в порядке у тебя со скобками. Попробуй так:
uses crt;
begin
writeln('любой текст');
readkey;
end.
EXE файл сохранится, потом попробуй его запустить.
Для просмотра досовского окна, поверх которого открыт паскаль, нужно нажать Alt+F5 − это верно!
НО!
Не верно то, что твой текст в фигурных скобках − это паскаль интерпретирует как комментарий.
Чтобы увидеть текст нужны круглые скобки (где цифры 9 и 0, только с Shift) + апостроф должен быть не слева сверху клавы, а справа где русская буква Э:
АнтонМыслитель (7154) 12 лет назад
зажимаю шифт 9 0 получаются такие "не круглые" скобки
Jurii Высший разум (175291) Это они и есть! Просто шрифт в досе такой и был. Сравни с текстом окна компилирования: Compiling (Debug mode) А картинку проще было прямо сюда поставить. Только не такую обрезаную, а всего паскалевсого окна!