Освоить работу со строковыми данными в среде VBA.
Варианты заданий
Подсчитать, сколько в строке слов, содержащих буквосочетание «мн».
Подсчитать, сколько в строке слов нечетной длины.
В заданной строке найти слова четной длины и вывести их на экран в столбик.
В заданной строке символов, среди которых есть одно двоеточие, поменять местами группы символов, стоящие до двоеточия и после него.
С клавиатуры вводится строка, содержащая слово «дым» несколько раз. Заменить это слово словом «лед».
В заданной строке исключить группы символов, расположенные между скобками […]. Сами скобки тоже должны быть исключены. Предполагается, что в строке может быть несколько пар скобок, но внутри каждой пары нет других скобок.
В заданной строке определить, сколько раз в ней встречается сочетание букв «аб», удалить данное сочетание из строки.
В заданной строке найти те слова, которые начинаются и оканчиваются одной и той же буквой и вывести их в столбик.
#2.4 — Поколение Python курс для начинающих. Ответы и решения. Целочисленная арифметика #1
В заданной строке найти те слова, которые начинаются с букв «т» или «п» и вывести их в столбик.
В заданной строке найти те слова, которые содержат хотя бы одну букву «м» и вывести их в столбик.
Лабораторная работа №6 предполагает написание программы/макроса на VBA in Excel. При заказе работы своего варианта вы получите качественно написанную и хорошо прокомментированную программу.
Если дополнительно закажите алгоритм решения вашей задачи (мы крайне рекомендуем это сделать), то получите аккуратно оформленный отчет-алгоритм, поясняющий все тонкости решения поставленной задачи.
Образец выполнения (вариант №2)
Условие задания
Подсчитать, сколько в строке слов нечетной длины. |
Алгоритм решения задачи
Начнем с этапа алгоритмизации. Чтобы успешно закодировать любую задачу, надо в самую первую очередь определиться с алгоритмом решения.
Опытный реализатор студенческих работ, прочитав постановку задания, скажет, что формулировка явно неполная. Да, это так!
- Неизвестен алфавит, из которого строятся слова исходной строки. Другими словами, что следует понимать под «словом». Мы под «словом» будем понимать любой фрагмент строки, обрамленной пробелами.
- Допустима ли к обработке пустая строка? Мы реализуем так, что алгоритм будет корректно обрабатывать в том числе и пустые входные строки.
- Может ли больше одного пробела разделять слова в строке? Да, мы реализуем так, что алгоритм будет корректно обрабатывать любое количество пробелов-разделителей слов.
- Может ли строка начинаться с пробела и заканчиваться пробелом? Да, мы реализуем так, что алгоритм будет корректно обрабатывать и такие случаи.
Как известно из теории школьной математики ($3$ класс):
11.5 Корректный ip адрес. «Поколение Python»: курс для начинающих. Курс Stepik
Целое число называется нечетным, если при делении на $2$ в остатке образуется $1$. Например, это числа: $5$, $17$, $2001$ и т.д.
Допустим, что на вход программе подается следующая строка
s = «Я учусь создавать макросы на VBA».
Все дальнейшие рассуждения будут привязаны к данной строке.
➡ Важнейший момент алгоритма! Нужно заметить, что во входной строке имеется чередование: слово — пробел — слово — пробел — слово и т.д. Не заметив этой особенности, можно очень долго и неэффективно решать поставленную задачу
Данное чередование (слово — пробел) позволяет нам достаточно быстро и емко закодировать макрос, используя цикл. Достаточно лишь научиться обрабатывать одно слово, а остальные слова будет обрабатываться аналогично.
Детально рассмотрим обработку первого слова входной строки.
С точки зрения VBA in Excel строка имеет следующую структуру:
Далее, находим самые левый (он является и самым первым пробелом, если двигаться по строке слева направо) пробел, а точнее его индекс.
После этого, нам необходимо вычленить первое слово. Как определить его границы? Поскольку оно самое левое слово в текущей строке, то это слово начинается от начала строки и заканчивается найденным ранее пробелом.
➡ После вычленения слова необходимо получить его длину и проверить ее на нечетность. Если количество букв в полученном слове нечетно, то увеличиваем счетчик, отвечающий за результат на $1$.
После обработки текущего слова, нужно переходить на обработку дальнейших слов. Но для начала нужно избавиться от уже обработанного слово, чтобы оно не мешало процессу. Следовательно, на данном этапе, нам требуется удалить из входной строки уже обработанное слово, включая ведомый пробел.
После удаления только что обработанного слова, входная строка принимает вид:
➡ Дальнейшие вычленения слов из входной строки работают по принципу, описанному выше, поэтому весь процесс можно закодировать в цикле!
Единственный момент, который нужно учесть — проверка самого последнего слова в строке. Почему здесь возникает нюанс? Потому что за последним словом пробела может не быть и алгоритм просто не учтет его при обработке. Следовательно, придется после окончания цикла отдельно проверить на нечетность самое последнее слово.
Источник: www.proglabs.ru
Python-сообщество
- Начало
- » Центр помощи
- » Списочное выражение
#1 Авг. 10, 2021 18:58:33
Списочное выражение
Помогите пожалуйста!
Списочное выражение 2
На вход программе подается строка текста, содержащая целые числа. Напишите программу, использующую списочное выражение, которая выведет кубы указанных чисел также на одной строке.
Формат входных данных
На вход программе подается строка текста, содержащая целые числа, разделенные символом пробела.
Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.
Примечание 1. Для вывода элементов списка используйте цикл for.
Примечание 2. Используйте метод split().
2 4 3
Sample Output 1:
8 64 27
Sample Input 2:
-2 -5 0
Sample Output 2:
#2 Авг. 11, 2021 12:32:56
Списочное выражение
вы же вроде чтото подобное спрашивали, и вам даже дали ответ. Чем эта задача отличается от предыдущей? тем что вместо спика нужно вывести строку?
[code python][/code]
Источник: python.su
Нужно написать программу, на вход которой даются четыре числа a, b, c и d, каждое в своей строке.
Программа должна вывести фрагмент таблицы умножения для всех чисел отрезка [a;b] на все числа отрезка [c;d]. Числа a, b, c и d являются натуральными и не превосходят 10, a≤b, c≤d. Я начала, а как закончить не знаю.
a = int(input()) b = int(input()) c = int(input()) d = int(input()) s=» if a
Отслеживать
задан 6 дек 2014 в 18:27
33 1 1 золотой знак 1 1 серебряный знак 4 4 бронзовых знака
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
Если в задании сказано «a≤b, c≤d», значит так оно и есть, дополнительных проверок вида if a
# ввод данных a = int(input()) b = int(input()) c = int(input()) d = int(input()) # приводим ввод к форме a≤b, c≤d, необязательный шаг (смотри выше) # a, b = (b, a) if a > b else (a, b) # c, d = (d, c) if c > d else (c, d) s = » # формируем шапку таблицы for i in range (c, d + 1): s += ‘t%s’ % i # заполняем строки таблицы for i in range(a, b + 1): s += ‘n%s’ % i # выводим текущее число из умножаемого столбеца for j in range (c, d + 1): s += ‘t%s’ % (i * j) # выводим результат умножения соответствующих чисел print(s)
Источник: ru.stackoverflow.com