Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Пример №1. Определить количество слов в строке, разделенных пробелами.

Private Sub Command1_Click()

s = Split(Text1, " ") ' Слова разделяются пробелами

s1$ = ""

' n - дает верхнюю границу массива, n- Количество слов

n% = UBound(s)

For i% = 0 To n

s1 = s1 & s(i) & vbCrLf

Next

Text2 = s1 & n + 1

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

Text1 = ""

Text2 = ""

End Sub

Пример №2. Дана строка. Поменять местами первый и последний символы каждого слова. Слова разделены пробелами.

DefStr V

Private Sub Command1_Click()

s = Split(Text1, " ")

v1 = "": v2 = "": v3 = "": v4 = "": v5 = ""

n% = UBound(s) ' n - дает верхнюю границу массива

For i% = 0 To n 'количество слов

r = s(i)

v1 = Left(r, 1)

v2 = Right(r, 1)

v3 = Replace(r, v1, v2, 1, 1)

v4 = Left(v3, Len(v3) - 1)

v5 = v5 & v4 & v1 & vbCrLf

Next

Text2 = v5 & n + 1

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

Text1 = "": Text2 = ""

End Sub

Пример №3. Подсчитать количество слов, разделенных множеством разделителей: пробелами, запятыми или точками.

Option Base 1

Dim ss(10) As String ‘ Описан массив из 10 слов

Private Sub Command1_Click()

s$ = Text1

s = LTrim(s)

k% = Len(s)

n% = 1 ' номер слова

ss(n) = ""

For i% = 1 To k

s1$ = Mid(s, i, 1)

If s1 = " " Or s1 = "," Or s1 = "." Then

s1 = Mid(s, i + 1, 1)

'Проверяем следующий символ, если он не окажется символом разделителем,

' то переходим к следующему слову

If Not (s1 = " " Or s1 = "," Or s1 = ".") And (i <> k) Then

n = n + 1 'And (i <> k) - если в конце строки запятая, то

ss(n) = "" ' счетчик числа слов не будет увеличиваться

End If

' Если второй и последующие символы являются разделителями,

' то ничего не делать во внутреннем IF

Else

ss(n) = ss(n) & s1

End If

Next i

st$ = ""

'Печать слов

For i = 1 To n

st = st & ss(i) & vbCrLf

Next

Text2 = st & n

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

Text1 = "": Text2 = ""

End Sub

Пример №4. Заменить в строке все символы % на $ и наоборот.

Option Base 1

Dim ss() As String * 1 'Описан массив, длиной компоненты в 1 символ

Private Sub Command1_Click()

s$ = Text1

k% = Len(s)

ReDim ss(k)

For i% = 1 To k

s1$ = Mid(s, i, 1)

ss(i) = s1

Next

For i% = 1 To k

If ss(i) = "%" Then

ss(i) = "$"

ElseIf ss(i) = "$" Then

ss(i) = "%"

End If

Next

s1 = ""

For i% = 1 To k

s1 = s1 & ss(i)

Next

Text2 = s1

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

Text1 = "": Text2 = ""

End Sub

Пример №5. Подсчитать количество слов «Саша» в строке.

Private Sub Command1_Click()

k% = 1 'указатель поиска

n% = 0 'счетчик слов

S$ = Text1

Do

k = InStr(k, S, "Саша") 'определить позиция слова в строке

If k <> 0 Then

k = k + Len("Саша") 'передвинуть указатель поиска

n = n + 1 'подсчитать это слово

End If

Loop Until k = 0

Text2.Text = n

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

Text1 = "": Text2 = ""

End Sub

Пример №6. Удалить из строки все русские буквы «о».

Private Sub Command1_Click()

s$ = Text1

ss$ = ""

k% = Len(s)

j = 1

Do While j <= k

st = Mid(s, j, 1)

If st = "о" Then

d1$ = Mid(s, 1, j - 1)

d2$ = Mid(s, j + 1, k)

s = d1 & d2

k = k - 1

End If

st = Mid(s, j, 1)

If st = "о" Then j = j - 1

j = j + 1

Loop

Text2 = s

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

Text1 = "": Text2 = ""

End Sub

Пример №7. Подсчитать, какое количество каждой буквы русского алфавита находится в строке.

Private Sub Command1_Click()

Dim a(192 To 255) As Byte

Dim ch As String * 1

For i% = 192 To 255

a(i) = 0

Next

s$ = Text1

k% = Len(s)

For i = 1 To k

ch = Mid(s, i, 1)

If ch >= Chr(192) And ch <= Chr(255) Then

a(Asc(ch)) = a(Asc(ch)) + 1

End If

Next

s = ""

For i = 192 To 255

If a(i) <> 0 Then

s = s & Chr(i) & vbTab & a(i) & vbCrLf

End If

Next

Text2 = s

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Form_Load()

Text1 = "": Text2 = ""

End Sub

Пример №8. Отсортировать строку по алфавиту.

DefStr S

'm - указатель на символ в строке для перестановки

Dim m As Integer

Dim n As String * 1

Private Sub Command1_Click()

s$ = Text1

k% = Len(s)

For i% = 1 To k - 1

m = i

For j% = i + 1 To k

If Mid(s, j, 1) < Mid(s, m, 1) Then m = j

Next j

n = Mid(s, i, 1)

s1 = Left(s, i - 1)

s = Replace(s, Mid(s, i, 1), Mid(s, m, 1), i, 1)

s = s1 + s

s2 = Left(s, m - 1)

s = Replace(s, Mid(s, m, 1), n, m, 1)

s = s2 + s

Next i

Text2 = s

End Sub

Private Sub Form_Load()

Text1 = "": Text2 = ""

End Sub

Пример №9. Подсчитать сколько раз в текстовом файле встречаются русские буквы «а» и «А». Дописать полученное число в конец проверяемого файла.

Private Sub Command1_Click()

Dim s As String

n% = 0

Open "C:\Мои документы\Массивы.txt" For Input As #1

Do

Line Input #1, s

k = Len(s)

For i% = 1 To k

y$ = Mid(s, i, 1)

If UCase(y) = "А" Then n = n + 1

Next

Loop Until EOF(1)

Text1 = n

Close #1

Open "C:\Мои документы\Массивы.txt" For Append As #1

Write #1, n

Close #1

End Sub

Private Sub Form_Load()

Text1 = ""

End Sub

Пример №10. Прочитать содержимое файла в текстовое поле. Заменить в каждой строке слова «размера» на слова «порядка» и записать в новый файл.

Private Sub Command1_Click()

Open "C:\Мои документы\Массивы.txt" For Input As #1

Open "C:\Мои документы\Result.txt" For Output As #2

Text1 = Input(LOF(1), 1)

s$ = Replace(Text1, "размера", "порядка")

s1$ = StrReverse(s) ' перевернуть текст и вывести в поле

Print #2, s

Text2 = s1

Close

End Sub

Варианты заданий

1.1. Дано слово. Оставьте в слове только первые вхождения каждой буквы.

1.2. Записать в текстовый файл полученное слово в 5 строках 5 раз.

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

2.2. Исходные строки считывать из файла. В новый файл записать каждую четную, считанную по порядку исходную строку и каждую нечетную преобразованную строку.

3.1. Дана исходная строка кириллицы. Преобразуйте строку так, чтобы второй символ стал предпоследним, а предпоследний - вторым, при этом в центре строки было добавлено Ваше имя.

3.2. Записать в файл исходную и преобразованную строки.

4.1. Дана исходная строка кириллицы. Слова в строке разделены пробелами, запятыми и точками. Преобразуйте строку так, чтобы слова в ней встречались только один раз.

4.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл.

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

5.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл.

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

6.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл.

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

7.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл.

8.1. Дана исходная строка кириллицы. Слова в строке разделены пробелами, запятыми и точками. Сформируйте из нее новую строку по правилу: если слово нечетной длины и средняя буква прописная, то удалите ее из слова.

8.2. Исходные строки считывать из файла. Сформированные строки записать в новый файл.

9.1. Дана исходная строка кириллицы. Слова в строке разделены пробелами, запятыми и точками. Преобразуйте строку так, чтобы в ней остались лишь повторяющиеся слова.

9.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл.

10.1. Дана исходная строка латиницы. Преобразуйте строку так, чтобы перед каждым словом была проставлена цифра, определяющая порядковый номер слова в строке.

10.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл.

11.1. Дана исходная строка латиницы. Подсчитайте, сколько раз встречается слово IF в строке. Преобразуйте строку, заменив в ней все слова IF на if.

11.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл. Подсчет количества слов IF дописать в первый файл.

12.1. Дана исходная строка. Преобразуйте строку, заменив в ней все единицы на нули, а нули на единицы.

12.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл.

13.1. Дана исходная строка латиницы. Слова в строке разделены пробелами. Сформируйте строку, содержащее самое длинное слово исходной строки, из которого удалены все прописные буквы.

13.2. Исходные строки считывать из файла. Сформированные строки из слов дописать в тот же файл.

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

14.2. Исходные строки считывать из файла. Сформированные строки из слов дописать в тот же файл.

15.1. Дана исходная строка кириллицы. Преобразуйте строку обратным регистром.

15.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл.

16.1. Дана исходная строка кириллицы. Слова в строке разделены пробелами. Преобразуйте строку так, чтобы перед каждой прописной буквы был пробел.

16.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл.

17.1. Дана исходная строка. Слова в строке разделены пробелами. Преобразуйте строку так, чтобы в строке остались слова из кириллицы.

17.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл.

18.1. Дана исходная строка латиницы. Слова в строке разделены пробелами. Сформируйте новую строку, в которой каждое слово исходной строки было бы упорядочено по алфавиту.

18.2. Исходные строки считывать из файла. Сформированные строки записать в новый файл.

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

19.2. Исходные строки считывать из файла. Каждую нечетную по порядку сформированные строки записать в новый файл.

20.1. Дана исходная строка. Сформировать из нее новую строку, состоящую из символов кириллицы, недостающих в строке.

20.2. Исходные строки считывать из файла. Сформированные строки записать в новый файл.

21.1. Дана исходная строка латиницы. Сформировать из нее новую строку, удалив из исходной строки все прописные буквы.

21.2. Исходные строки считывать из файла. Сформированные строки записать в новый файл.

22.1. Дана исходная строка латиницы. Разделители слов: пробел, запятая или точка. Сформировать из нее новую строку, выделив из исходной строки k-ое слово. Номер k задается с клавиатуры.

22.2. Исходные строки считывать из файла. Сформированные строки записать в новый файл.

23.1. Дана исходная строка латиницы. Разделители слов: пробел, запятая или точка. Преобразуйте строку так, чтобы поменялись местами первое и последнее слово.

23.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл.

24.1. Дана исходная строка латиницы. Разделители слов: пробел, запятая или точка. Преобразуйте строку так, чтобы поменялись местами второе и предпоследнее слово.

24.2. Исходные строки считывать из файла. Преобразованные строки записать в новый файл.

25.1. Сформируйте строку из символов кодов с 95 до 122 случайно 50 раз. Разделители слов: символы с кодами 95 и 96. Посчитайте сколько слов в строке. Распечатайте строку.

25.2. Запишите строку и количество слов в файл.

26.1. Дана исходная строка латиницы. Определить процент слов в строке, начинающихся с буквы «А».

26.2. Исходные строки считывать из файла. Определить процент слов в файле и дописать полученный результат в тот же файл.

27.1. Дана исходная строка. В строке присутствуют разделители: пробелы, запятые и точки. Преобразуйте строку, удалив из нее все разделители.

27.2. Исходные строки считывать из файла. Преобразованные строки дописать в тот же файл.

28.1. Сформируйте строку из символов кодов 40 до 60 случайно 50 раз. Посчитайте количество символов цифр и их сумму.

28.2. Запишите строку, количество и сумму в файл.

29.1. Дана исходная строка. Подсчитать сколько строчных и прописных букв русского и английского алфавитов содержится в строке.

29.2. Исходные строки считывать из файла. Дописать результат подсчета в тот же файл.

30.1. Дана исходная строка кириллицы. Определить процент слов в строке, содержащих прописные буквы.

30.2. Исходные строки считывать из файла. Дописать результат подсчета в тот же файл.

31.1. Дана исходная строка. Преобразуйте строку, удалив из нее все русские буквы "с".

31.2. Исходные строки считывать из файла. Преобразованные строки и количество удаленных символов записать в новый файл.

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

32.2. Исходные строки считывать из файла. Дописать результат подсчета в тот же файл.

Контрольные вопросы

Перечислите основные функции для работы со строками.

Что такое файл, и какие типы файлов определены в Visual Basic?

Какие операторы Visual Basic определены при работе с текстовыми файлами?

Чем отличаются операторы Print и Write при работе с файлами?

В каком случае по окончании операции ввода или вывода данных оператор Close надо использовать всегда и почему?

Объясните, как вывести содержимое текстового файла в поле?

Объясните, как можно дописать в существующий файл данные?

Назовите все стандартные диалоговые окна для ввода и вывода сообщений?

2.3. Пользовательский тип данных (записи) и файлы произвольного
доступа





Дата публикования: 2014-12-28; Прочитано: 573 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.026 с)...