Другие функции необходимые для работы со строками



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Другие функции необходимые для работы со строками



Asc(str) – код первого символа строки Str

Chr(code) – символ с кодом code по таблице ASCII

Join(Array,[break]) – преобразует строковый массив Array в строку. Элементы массива разделены строкой break или пробелом.

Split(str[,break[, count]]) – Преобразует строку str в массив break – разделитель элементов, count – количество элементов необходимых для обработки. Вместо разделителя по умолчанию - пробел

LCase(str) – все символы строки str переводит в нижний регистр

UCase(str) – все символы строки str переводит в верхний регистр

Left(str, len) – возвращает len символов строки str слева

Right(str, len) – возвращает len символов строки str справа

LTrim(str)

RTrim(str) – удаляет из строки str начальные, конечные или те и другие пробелы

Trim(str)

Space(x) – строка из x пробелов

String(number, char)-строка из number символов char (указывается код)

Replace(source, pattern, replacewith[, start[, count]]) – заменяет вхождения pattern в source на replacewith, начиная со start. Count указывает количество замен.

HEX(x)

Переводят число x в восьмеричную или шестнадцатеричную систему счисления виде строки

OCT(x)

Основные функции для работы с датой и временем:

Date – возвращает текущую дату

IsDate(слово) – Проверяет является ли данной «слово» датой.

MonthName(numb,[abbr]) – возвращает название месяца по номеру, [абр.] – в сокращенном виде.

Now – возвращает текущие дату и время

Time – текущее время.

Timer – количество секунд прошедших с полуночи

Weekday(date[,первый день недели]) – возвращает номер дня недели по дате, если нужно считает первым днем номер, указанный в параметре.

WeekdayName(weekday[,abbr[,]первый день недели])- возвращает НАЗВАНИЕ дня недели по номеру.

ДЕМОНСТРАЦИОННЫЕ ПРИМЕРЫ

Пример 1

' Имя файла ASCII.vbs

' Программа выводит таблицу ASCII-кодов

option explicit

'---------------------------------------

sub ASCII(N,M)

dim i

dim a

a=""

For i=N to M

a=a&CStr(i)&" - "&chr(34)&chr(i)&Chr(34)&"; "

Next

msgbox a,,"Вывод таблицы ASCII"

end sub

'---------------------------------------

ASCII 32,129

ASCII 130,200

ASCII 201,255

Пример 2

'Имя файла Len_+_Mid.vbs

'Демонстрация операции конкатенации "+"

'а также функций работы со строками Len и Mid

 

option explicit

dim str

MsgBox "Демонстрация функции Len, которая возвращает длину строки"

str=CStr(inputbox("Введите строку","Окно ввода","Первая строка"))

Msgbox "Длина строки "&chr(34)&str&chr(34)&" - "&CStr(len(str))

 

dim str1,str2,str3

MsgBox "Демонстрация операции конкатенации "+" "

str1=CStr(inputbox("Введите параметр","Введите первую строку",""))

str2=CStr(inputbox("Введите параметр","Введите вторую строку",""))

str3=CStr(inputbox("Введите параметр","Введите третью строку",""))

 

dim concat 'конкатенация строк

concat=str1+str2+str3

Msgbox "Конкатенация трех строк: "&chr(34)&concat&chr(34)

 

MsgBox "Демонстрация функции Mid, которая возвращает подстроку строки"

str=CStr(inputbox("Введите последовательность символов","",""))

dim start 'начало вырезки

start=CInt(inputbox("Введите целое положительное число",_

"Введите начало вырезки","0"))

dim length

length=CInt(inputbox("Введите целое положительное число",_

"Введите длину вырезки",Cstr(len(str)) ))

Msgbox "mid из "&chr(34)&str&chr(34)&vbcrlf&_

" - "&chr(34)&mid(str,start,length)&chr(34),0,"Результат"

Пример 3

'Имя файла Udvoenie.vbs

'Программа удваивает каждую букву введенного слова

 

option explicit

dim str

str=Cstr(Inputbox("Введите слово","Удвоение букв"))

dim i

dim str1

str1=""

for i=1 to len(str)

str1=str1+mid(str,i,1)+mid(str,i,1)

next

msgbox "Результат: "&str1

Пример 4

'Имя файла Palindrom.vbs

'Программа проверяет является ли строка палиндромом.

'Палиндром - слово, которое читается одинаково слева на право и справа налево

 

option explicit

dim str, STR1, RTS

dim i

str=CStr(inputbox("Введите параметр","Введите строку",""))

STR1=Ucase(str) ' Переводим символы строки в верхний регистр

STR1=replace(STR1," ","") ' Удаление пробелов

RTS=""

'Записываем слово в обратном порядке

For i=1 to len(STR1)

RTS=Mid(STR1,i,1)+RTS

Next

msgbox str&": полиндром - "&(RTS=STR1)

Пример 5

'Имя файла Dva_podryad.vbs

'Программа определяет есть ли в строке два одинаковых подряд идущих символа

 

dim otvet

otvet="нет"

dim str

str=Inputbox("Введите строку","Поиск двух повторяющиеся подряд букв в строке")

dim i

For i=1 to len(str)-1

If Mid(str,i,1)=Mid(str,i+1,1) Then

otvet="есть"

End If

Next

msgbox "В "&str&" "&otvet&" 2 одинак. букв. подр.",,"Результат:"

Пример 6

'Имя файла A_or_B.vbs

'Программа определяет, какая из букв встречается раньше а или б.

 

option explicit

dim str

str=Inputbox("Введите строку","Кто раньше "&Chr(34)&"а"&Chr(34)&" или "&_ Chr(34)&"б"&Chr(34))

dim rez

rez="Тут нет ни а ни б"

dim i

i=0

str=LCase(str)

 

Do

i=i+1

If Mid(str,i,1)="а" Then

rez="А встретилось раньше"

End if

If Mid(str,i,1)="б" Then

rez="Б встретилось раньше"

End if

loop until Mid(str,i,1)="а" or Mid(str,i,1)="б" or (i>len(str))

msgbox rez,,"Результат:"

Пример 7

'Имя файла Podslovo.vbs

'Подсчёт сочетаний «Кря» во введенном слове

 

option explicit

dim str

str=Inputbox("Введите строку","Поиск подслова кря:")

str=LCase(str) ' Переводим элементы строки в нижний регистр

dim i

dim s

dim fstr 'то подслово что ищем

fstr="кря"

s=0

For i=1 to (len(str)-len(fstr)+1)

If mid(str,i,len(fstr))=fstr Then

s=s+1

End If

Next

msgbox fstr&" повторяется в слове "&str&" "&Cstr(s)&" раз"

Пример 8

' Имя файла Cifra_v_chisle.vbs

'Встречается ли цифра в числе

 

'-------------------------------------

function Poisk(chislo,cifra)

chislo=Cstr(chislo)

cifra=Cstr(cifra)

dim i

poisk=Cbool(false)

i=1

While mid(chislo,i,1)<>cifra and i<=len(chislo)

i=i+1

WEnd

If i<=len(chislo) Then

poisk=Cbool(true)

End If

end function

'--------------------------------------

dim chislo, cifra

msgbox "Программа определяет, встречается ли введённая цифра"&_

" в введённом числе"

chislo=Inputbox("Введите число")

cifra=Inputbox("Какой цифрой Вы интересуетесь")

If IsNumeric(chislo) and IsNumeric(cifra) and len(cifra)=1 Then

chislo=CDbl(chislo)

Cifra=CByte(cifra)

If poisk(chislo,cifra) Then

msgbox "Такая цифра есть"

Else

msgbox "Такой цифры нет"

End If

Else

msgbox "Вы ввели неправильную строку"

End If

Пример 9

' Имя файла Summa_kubov.vbs

'Программа находит все числа не превосходящие суммы кубов цифр

 

dim ch

ch=Cint(Inputbox("Введите число"))

dim i,j

dim s

dim str

str=""

For i=0 to ch

s=0

For j=1 to Len(Cstr(i))

s=s+Cint(Mid(Cstr(i),j,1))^3

Next

If Cint(s)=Cint(i) Then

str=str+Cstr(i)+"; "

End If

Next

msgbox str

ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

Модификаторы

1. Напишите программу замены в слове X всех букв "а" на сочетание "ку".

2. Напишите программу, записывающую слово X в обратном порядке.

3. Напишите программу замены всех сочетаний "ку" в слове X на букву "а".

4. Напишите программу, выделяющую в слове Х все буквы "о" символами "пробел". Например, слово "сосна" должно быть преобразовано в "с о сна".

5. Напишите программу, удваивающую каждую букву слова Х.

6. Напишите программу, выделяющую в слове Х каждую букву "о" с помощью буквы "-" слева и справа.

7. Замените в слове Х все буквы "а" на сочетание "ку", а сочетание "ку" на букву "б".

8. В слове Х перед каждой буквой "к", которой предшествует буква"с", вставить букву "н".

9. Напишите программу циклической перестановки букв в слове X так, что i-я буква слова становится (i+1)-ой, а последняя - первой.

10. В слове X замените букву "а" на букву "е", если "а" стоит на чётном месте, и замените букву "б" на сочетание "ак", если "б" стоит на нечётном месте.

11. Напишите программу, заменяющую в слове X все буквы "а" и "я" на сочетание "йа".

12. Напишите программу, исправляющую следующую ошибку в математическом тексте: tg(x)=cos(x)/sin(x).

13. Напишите программу, заменяющую окончание "ing" каждого слова, встречающегося в заданном предложении, на "ed".

14. Город Гжатск получил новое название - "Гагарин". Напишите программу, осуществляющую в тексте замену слова "Гжатск" словом "Гагарин" (учесть, что слова имеют разную длину!)

15. Реализуйте двухместную операцию, называемую в языке программирования APL вращением, которая берет первые К символов слова X и помещает их в конец этого слова.

16. Дана последовательность слов, в каждом из которых от до 10 латинских букв; между соседними словами - не менее одного пробела.

Напечатайте все слова, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу: (1) перенести первую букву в конец слова; (2) перенести последнюю букву в начало слова.

17. Отредактируйте заданное предложение, удаляя из него все слова с нечётными номерами и переворачивая слова с чётными номерами. Например, текст "How do you do" должен преобразоваться в "od od".

18. Напишите программу, которая в заданном тексте меняет все вхождения символа "а" на "б" и "б" на "а". Например, текст "шайба" преобразуется в текст "шбйаб".

19. Измените предыдущую программу так, чтобы она заменяла по указанному правилу любые два различные символа.

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

21. Составьте программы для перевода арабских чисел в римские и для обратной операции. Например,55=CCLV=сто+сто+пятьдесят+пять.

Замечание

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

22. Автоморфными числами называются числа, которые содержатся в последних разрядах их квадрата. Например: 5·5=25, 25·25=625.

Составьте программу для нахождения нескольких автоморфных чисел.

“Вычеркиватели” (частный случай модификаторов)

1. Напишите программу для вычеркивания всех букв "о", стоящих в слове X на чётных местах.

2. Напишите программу для вычеркивания из слова X всех букв "K" и "G".

3. Напишите программу для вычеркивания в слове X всех букв, стоящих на нечётных местах после буквы "а".

4. Напишите программу для вычеркивания из слова X всех букв "р", перед которыми стоит буква "а".

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

6. Вычеркните из слова Х все буквы "с" и "л", стоящие на нечётных местах.

7. Вычеркните из слова Х все буквы "б".

8. Вычеркните из слова Х буквы, стоящие на чётных местах.

9. Вычеркните из слова Х буквы, стоящие на нечётных местах.

10. Вычеркните из слова Х все буквы "ш" и "л", стоящие на чётных местах.

11. Вычеркните из слова X те буквы, что встречаются трижды.

12. Вычеркните из слова X те буквы, что используются при написании слова Y.

13. Вычеркните из слова i-ю букву.

14. Если в слове X есть буква "а", то вычеркните из этого слова все буквы, стоящие на чётных местах.

15. Вычеркните из слова повторяющиеся буквы.

16. Дана последовательность, содержащая от до 30 слов, в каждом из которых от до 10 латинских букв; между соседними словами – не менее одного пробела. Напечатайте все слова, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу: (1) удалить из слова первую букву; (2) удалить из слова последнюю букву; (3) удалить из слова все последующие вхождения первой буквы; (4) оставить в слове только первые вхождения каждой буквы; (5) если слово нечётной длины, то удалить его среднюю букву.

Наблюдатели (предикаты)

1. Выясните, является ли данное слово палиндромом.

2. Напишите программу, проверяющую, есть ли в слове X две одинаковые буквы.

3. Напишите программу, выясняющую, есть ли в слове X буква "a", стоящая на нечётном месте после буквы "к".

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

5. Напишите программу, проверяющую, все ли буквы слова X одинаковы.

6. Напишите программу, выясняющую, можно ли из букв слова X составить слово Y.

7. Напишите программу для проверки, есть ли в слове X буквы "в". Если есть, то найдите номер первой из них.

8. Напишите программу, выясняющую, есть ли в слове X буква "к", и, если есть, то замените все буквы "а" в этом слове на "с".

9. Напишите программу, проверяющую, все ли буквы слова Х, стоящие на чётных местах, одинаковы.

10. Даны два "стринга" А и В. Проверьте, можно ли из букв, входящих в стринг А, составить стринг В. Буквы можно переставлять, и каждую букву можно использовать более одного раза.

11. Определите, есть ли в словах Х и Y одинаковые буквы.

12. Выясните, есть ли в слове Х буква "в", стоящая на нечётном месте.

13. Определите, имеются ли в слове Х две одинаковые буквы, идущие подряд.

14. Выясните, есть ли в слове Х хотя бы одна из букв "о" или "а".

15. Проверьте, есть ли в слове Х буква "б". Если есть, замените последнюю из них на букву "а".

16. Выясните, все ли буквы слова Х, стоящие на нечетных местах, различны.

17. Проверьте, есть ли в слове Х буква "а". Если есть, найдите номер последней из них.

18. Определите, встречается ли в слове Х первая буква слова Y.

19. Определите, все ли буквы слова различны.

20. Выясните, есть ли в слове буква "я".

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

22. Определите, упорядочена ли данная последовательность латинских букв по алфавиту.

23. Даны два "стринга" А и В. Проверьте, можно ли из букв, входящих в стринг А, составить стринг В. Буквы можно переставлять, но каждую букву можно использовать не более одного раза.

24. Заданы два "стринга" А и В, причем длина А больше длины В. Определите, содержится ли в стринге А стринг В.

25. Танка (короткая песня) - это жанр японской поэзии; нерифмованное пятистишие, состоящее из 31 слога (5+7+5+7+7). Хокку – это также жанр японской поэзии; нерифмованное трехстишие, генетически восходящее к "танка"; состоит из 17 слогов (5+7+5). Напишите предикат, определяющий для заданных трёхстишия и пятистишия их принадлежность к хокку и танка.

Подсчет

1. Напишите программу для подсчёта числа букв "о", стоящих в слове X на чётных местах.

2. Напишите программу для подсчёта числа сочетаний "ку" в слове X.

3. Напишите программу для подсчёта суммы мест, на которых в слове X стоит буква "б".

4. Напишите программу для подсчёта в слове X всех сочетаний "нн". Считайте, что в слове "ннн" подслово "нн" встречается один раз.

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

6. Составьте программу, выясняющую сколько раз в слове X, начиная с нечётного места, встречается слово "ро".

7. Напишите программу, выясняющую, какая из букв (первая или последняя) встречается в слове X чаще.

8. Напишите программу для подсчёта числа букв "а" в слове X, стоящих на местах, номер которых кратен трем.

9. Напишите программу для подсчета числа букв "о", стоящих в слове X на местах, номер которых кратен 4.

10. Напишите программу для подсчёта числа букв "у" в слове Х, стоящих на нечётных местах.

11. Напишите программу для подсчета суммарного количества букв "м" и "н" в слове Y.

12. Напишите программу, проверяющую сколько раз первая буква слова X встречается в слове Y.

13. Напишите программу для подсчета количества слов в заданном тексте.

14. Напишите программу, выясняющую сколько раз вторая буква слова X встречается в слове Y на чётных местах.

15. Напишите программу для подсчета числа букв "о", стоящих после буквы "л" в слове X.

16. Подсчитайте, сколько различных символов слова Х употребляется в написании Х более одного раза.

17. Подсчитайте, сколько раз последняя буква слова Y встречается в слове Х.

18. Определите букву, чаще всего встречающуюся в слове Х.

19. Подсчитайте, сколько раз встречается в слове Х утроенное сочетание какой-либо одной буквы. Считать, что в слове "ннннн" подслово "ннн" встречается один раз.

20. Подсчитайте, сколько раз слово Y встречается в слове Х в качестве его подслова.

21. Подсчитайте, сколько букв надо исправить в слове Х, чтобы получилось слово Y (Х и Y - это слова одинаковой длины).

22. Подсчитайте, сколько одинаковых букв стоят на одних и тех же местах в словах Х и Y.

23. Подсчитайте, сколько раз встречается в слове Х подслово "нн". Считайте, что в слове "ннннн" подслово "нн" встречается два раза.

24. Определите, каких букв, "а" или "б", в слове Х больше.

25. Подсчитайте, сколько раз последняя буква слова Y встречается на чётных местах в слове X.

26. Подсчитайте число различных букв в слове X.

27. Подсчитайте, сколько раз в слове X встречается буква "а", за которой следует буква "б".

28. Подсчитайте, какое минимальное число букв необходимо заменить в слове X с тем, чтобы оно стало палиндромом?

29. Подсчитайте, сколько различных букв слова X используются при написании слова Y.

30. Напишите программу для подсчёта числа одинаковых букв в словах X и Y равной длины, стоящих на одних и тех же местах.

31. Подсчитайте, сколько раз встречается слово "ал" в заданном тексте.

32. Подсчитайте количество гласных букв в данном русском слове.

33. Подсчитайте, сколько раз первая буква слова встречается в этом слове.

34. В данной последовательности букв найдите количество повторений букв слова "луна".

35. Составьте таблицу слов данного предложения, начинающихся с буквы "А", с указанием количества повторений каждого слова.

36. Задано определённое количество конкретных сочетаний букв (например, "ущ", "ющ" и др.). Определить, сколько таких групп символов содержится в заданном тексте.

37. Напишите программу, определяющую количество различных букв, содержащихся в заданном слове.

38. Напишите программу, которая считает число слов в предложении, начинающихся на заданную букву.

39. Напишите программу, подсчитывающую количество предложений в тексте (предложение оканчивается символами ".", "?", "!").

40. Напишите программу, подсчитывающую количество слов в предложении.

41. Подсчитайте количество слов заданного текста, начинающихся с гласной.

42. Подсчитайте количество гласных и согласных букв, содержащихся в заданном тексте.

43. Для каждого из слов заданного предложения укажите, сколько раз оно встречается в предложении.

44. Для каждой буквы из заданного текста укажите, сколько раз она встречается в тексте.

45. Для запоминания числа p иногда используют "магические" фразы, например: "это я знаю и помню прекрасно Пи многие знаки мне лишни напрасны" или "кто и шутя и скоро пожелаетъ Пи узнать число ужъ знаетъ". Число букв в каждом слове любой из данных фраз представляет собою некоторую цифру числа p: "это" - 3, "я" - 1, "знаю" - 4 и т.д. Выведите на экран число p, используя любую из указанных фраз.

46. Для заданного стринга, состоящего из цифр, напишите программу его преобразования в число. Учтите всевозможные варианты вводимой информации.

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

Поиск в словах

1. Найдите слово максимальной длины в заданном тексте.

2. Перечислите все слова заданного текста, которые состоят из тех же букв, что и первое слово текста.

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

4. Из данного текста выберите слова, имеющие заданное число букв.

5. Составьте таблицу слов данного текста, начинающихся с буквы "А", с указанием количества повторений каждого слова.

 


ЛИТЕРАТУРА



Последнее изменение этой страницы: 2016-08-15; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.192.22.242 (0.023 с.)