Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

КТП.Процедуры и функции.Символьные переменные

.pdf
Скачиваний:
7
Добавлен:
07.02.2016
Размер:
871.99 Кб
Скачать

21

3.Задана матрица Х(n,m) цілих чисел. Знайти число рядків, що упорядковані по споданню . Перевірку на упорядкованість оформити процедурою.

Варіант 28

2. Надані дійсні числа a, b, c. Обчислити вираз

z = max(a,b,c) max2 (a +b, ac, a +b) . max(ab, a +c,bc) 1

2. Задано масив дійсних чисел X (n). Обчислити кількість елементів масиву, що належать кожному з відрізків [0,2], [-3,2] і [1,3] .

4. Для кожній із матриць A (4,4), B (5,5) і C (3,3) знайти Min елементів що лежать нижче головної діагоналі.

Варіант 29

1. Надано масив дійсних чисел A(10). Обчислити вираз z = f (2) 3 f (3)2 + f 2 (1), де

f(x ) = ai x i .

i=1

2.Задано три масиви дійсних чисел: X(7), Y(12) , Z(18) .10

З'ясувати, скільки у масиві X

елементів, більших ніж 5, у Y -

більших ніж -3, у масиві Z - елементів, більших ніж 12.

3.Вивести до друку елементи

матриць N(4,6) і M(3,5) цілих

чисел , що кратні 5.

 

Варіант 30

1. Наданий масив дійсних чисел a(6) Обчислити для x=1,2,3

значення z= f2(x+1)-f(x), де f(y)=a1 y6+a 2 y5+…+a 6 y

2.Задано масиви дійсних чисел: X(10), Y(10), Z(10) Одержати

22

масив G(10),кожний елемент якого рахується так

min y

i

+ min z

i,

якщо

х

і

≥ 0;

 

 

 

 

 

 

 

gi =

 

+ [x

]2 ,для

 

інших

 

 

випадків

z

i

 

 

 

 

 

і

 

 

 

 

 

 

3. Матриці A(3,4) і B(4,5) перетворити так, щоб у кожному стовпчику всі елементи, що розташовані за першим від’ємним стали рівними нулю. Передбачається, що у кожному стовпчику є хоча би один від’ємний елемент.

2 СИМВОЛЬНІ ЗМІННІ ТА РЯДКИ

2.1 Загальні вказівки

Рядок - це набір символів. Рядок повинен бути обмежений лапками. Наприклад “Студент повинен вчити інформатику”. Рядок не може перевищувати 255 символів. В Visual Basic існує багато функій для обробки рядків, наведемо декотрі з них.

Ucase$(S), Lcase$(S) - змінює регістр букв даного рядка S на вищий чи нижчій відповідно.

Instr(S,S1)

виконує пошук підрядка S1 в рядку S.

Len(S) - знаходить довжину рядка.

 

 

Left$(S,n),Right$(S,n) -

повертає

n

символів з початку чи

кінця рядка відповідно.

 

 

 

Mid$(S,I,n)

- повертає n

символів

рядка S починаючи з I -й

позиції. Може користуватись також

для заміщення деякий

частини рядка S на другий рядок.

 

 

Ltrim$(S),

Rtrim$(S),Trim$(s) =вилучає пробіли з початку ,

кінця або з двох боків рядка S відповідно.

Chr$(n),Asc(S) - перетворює код символу n в символ та символ в код відповідно.

Приклад 2.1

Дан рядок символів, у якому є знаки оклику. 1.Надрукувати

23

підрядок, який знаходиться між першим та другим знаками оклику (якщо другого символу “!” немає, то підрядок знаходити до кінця рядка). 2.За бажанням користувача підрахувати в цьому підрядку кількість символів “a”.Для виконання пункту 2 передбачити кнопку.

Інтерфейс задачі даний на рис.2.1

txtS txtPs

cmdRes1

cmdRes2 txtKs

Рисунок2.1 –Форма для приклада 2.1

Код програми

Dim Ps As String ‘переменная Ps доступная во всех процедурах ‘формы

Private Sub Form_Load() ‘процедура установки начальных ‘условий

txtS = "" txtPs = ""

cmdRes2.Visible = False ‘сделали невидимой кнопку cmdRes2

End Sub

Private Sub cmdRes1_Click()

Dim S As String, n1 As Integer, n2 As Integer

S = txtS.Text ‘считывание текста

24

n1 = InStr(S, "!") ‘нахождение номера первого “!” n2 = InStr(n1 + 1, S, "!") ‘нахождение номера второго “!”

If n2 = 0 Then n2 = Len(S) + 1

‘выделение подстроки

Ps = Mid(S, n1 + 1, n2 - n1 - 1)

txtPs.Text = Ps

‘подстроку записали в txtPs

cmdRes2.Visible = True ‘сделали видимой кнопку cmdRes2 End Sub

Private Sub cmdRes2_Click() Dim n As Integer, i As Integer n = 0

For i = 1 To Len(Ps)

If Mid(Ps, i, 1) = "a" Then n = n + 1 ‘подсчет кол-ва символов “a” Next i

txtKs.Text = CStr(n) End Sub

Приклад 2.2

Дан рядок . Підрахувати кількість пробілів у рядку. Інтерфейс задачі даний на рис.2.2

txtS

cmdRes

txtRes

Рисунок2.2 –Форма для приклада 2.1

Код програми

Private Sub cmdRes_Click()

25

Dim S As String, n As Integer Dim m As Integer, i As Integer S = txtS.Text

n = Len(S): m = 0 For i = 1 To n

If Mid(S, i, 1) = " " Then m = m + 1 Next i

txtRes.Text = CStr(m) End Sub

Приклад 2.3

Дано два рядка символів S1 та S2. Вилучити із рядка S1 ті символи які є в рядку S2.Інтерфейс задачі даний на рис.2.3

txtS1

txtS2

cmdRes

txtRes

Рисунок2.3 –Форма для приклада 2.3

Код програми

Private Sub cmdRes_Click()

Dim S As String, S1 As String

Dim S2 As String

Dim i As Integer, n As Integer

S1 = txtS1.Text: S2 = txtS2.Text

26

i = 1

Do While i <= Len(S1)

S = Mid(S1, i, 1): n = InStr(S2, S) If n <> 0 Then

S1 = Left(S1, i - 1) & Right(S1, Len(S1) - i) Else

i = i + 1 End If Loop

txtRes.Text = S1 End Sub

Приклад 2.4

Дано речення. Підрахувати кількість слів якщо вони відрізняються одним чи декілька пробілами. Інтерфейс задачі даний на рис.2.2

Код програми

Private Sub cmdRes_Click() Dim S As String, n As Integer Dim i As Integer

S = txtS.Text

S = Trim$(S) ‘удаление пробелов вначале и в конце строки Do While InStr(S, " ") > 0 ‘удаление кратных пробелов

n = InStr(S, " ")

S = Left(S, n) & Right(S, Len(S) - n - 1) Loop

n = 1

For i = 1 To Len(S) ‘подсчет количества пробелов (слов)

If Mid(S, i, 1) = " " Then n = n + 1 Next i

txtRes.Text = CStr(n) End Sub

27

2.2 Варіанти завдань

Варіант 1

1. Надан рядок символів; підрахувати кількість входжень до рядку букви “х”.

2.Надан рядок символів. Будемо називати словами групи символів у рядку, що розділені пробілами (одним або декількома) та не мають пробілів у середині. Надрукувати слово, яке знаходиться між першим та другим пробілами. За бажанням користувача вилучити з цого слова букви “а” ,для цого передбачити кнопку.

3. Написати програму, що визначає кількість символів “а” ,“у” та “с” у тексті, що складається з 5 рядків. Обчислення кількості символів у рядку тексту оформити у вигляді підпрограми.

Варіант 2

1.Надан рядок символів. Підрахувати, скільки в ньому символів " + " і скільки символів " * " .

2.Надан рядок символів. Відомо, що серед символів є принаймні один "!". .Надрукувати підрядок, який знаходиться між першим та другим знаками оклику (якщо другого символу “!” немає, то підрядок знаходити до кінця рядка). За бажанням користувача вилучити з підрядка усі групи букв "abcd",для цого передбачити кнопку.

3.Надан текст, що складається з 5 рядків. Замінити кожний символ"!" на символ "." Заміну символу “!” строкової змінної символом "." оформити у вигляді підпрограми.

Варіант 3

1. Надан рядок символів; підрахувати, загальну кількість символів " + "," - "," * " у даній послідовності.

28

2..Надан рядок символів. Будемо називати словами групи символів у рядку, що розділені пробілами (одним або декількома) та не мають пробілів у середині. Надрукувати підрядок, що містить символи, які знаходяться між першим та третім пробілами. За бажанням користувача змінити місцями перше та друге слово ,для цого передбачити кнопку.

3.Відредагувати текст, що складається з n рядків, вилучивши

вкожному рядку всі символи, розташовані між круглими дужками "(" і ")", і самі дужки. Редагування рядка виконувати у підпрограми.

Варіант 4

1.Надан рядок символів. Перетворити дану послідовність, замінивши усі знаки оклику точками.

2.Надан рядок символів, перший символ якого не пробіл, а серед інших символів є хоча б один пробіл. Надрукувати підрядок, до першого пробілу. За бажанням користувача у підрядку усі цифри змінити на “*”.,для цого передбачити кнопку.

3.Щоб зашифрувати текст, записаний за допомогою російських букв, його можна переписати, замінивши кожну букву іншою, що міститься безпосередньо за нею за алфавітом (буква "я" заміняється на букву "а"). Скласти програму для шифровки тексту, оформивши у виді підпрограми шифровку одного символу.

Варіант 5

1.Надан рядок символів. Перетворити дану послідовність, замінивши кожну крапку трьома крапками.

2.Надан рядок символів, серед яких є двокрапка. Надрукувати підрядок символів, розташованих після першої двокрапки . За

29

бажанням користувача у підрядку усі цифри змінити на “$”.,для цого передбачити кнопку.

3. Скласти підпрограму "стискування" вихідної послідовності символів за таким алгоритмом: кожна послідовність, що складається з декількох однакових символів, замінюється одним таким символом

Варіант 6

1.Надан рядок символів. Перетворити дану послідовність, замінивши кожну з груп точок однією.

2.Надан рядок символів, серед яких є двокрапка. Надрукувати підрядок символів, розташованих між першою і другою двокрапкою. Якщо другої двокрапки немає, то одержати усі символи, що розташовані після єдиної двокрапки. За бажанням користувача у підрядку групи символів “child” замінити на “children”,для цього передбачити кнопку.

3.Розробити підпрограму, яка складає рядок ,який містить символи першого заданого рядка, що належать до другого заданого рядка.

Варіант 7

1.Надан рядок символів. Перетворити дану послідовність, замінивши в ній кожну з груп крапок трьома крапками.

2.Надан рядок символів, серед яких є дві дужки "(" і ")" . Виключити з нього символи, що розташовані між дужками "(" і ")" та самі За бажанням користувача у підрядку групи символів “війна” замінити на “мир”,для цього передбачити кнопку.

3.Написати програму, що визначає частоту появи символів “+”,”-” у тексті, що складається з 5 рядків. Обчислення частоти повторiв символів у рядку тексту оформити у виді підпрограми.

30

Варіант 8

1.Надан рядок символів. З'ясувати, чи містить він підрядок “авс” 2.Надан рядок символів, серед яких є двокрапки. Надрукувати

підрядок символів, розташованих між першою і третьою двокрапками. Якщо третьої двокрапки немає, то одержати усі символи, що розташовані після першої двокрапки. За бажанням користувача у одержаному підрядку замінити кожен символ, що зустрічається після першого входження символу "*", на символ "-"”,для цього передбачити кнопку.

3.Скласти підпрограму, що дозволяє визначити позиції першого входження у заданий рядок символів з другого заданого рядка. Якщо перший рядок не містить жодного символу, що належить до другого заданого рядка, повідомити про це. Позицію символа визначати за допомогою підпрограми.

Варіант 9

1. Надан рядок символів. Одержати номер першого входження "аа". Якщо такої групи немає, то повідомити про це.

2.Надан рядок символів. Будемо називати словами групи символів у рядку, що розділені пробілами (одним або декількома) та не мають пробілів у середині. Надрукувати слово, яке знаходиться між другим та третім пробілами. За бажанням користувача знайти в цьому слові кількість входжень групи букв "abc".,для цього передбачити кнопку.

3. Скласти підпрограму, що заміняє у рядку символів всі одиниці нулями та всі нулі одиницями. Заміна повинна виконуватися, починаючи з заданої позиції рядка.

Варіант 10

1. Надан рядок символів. Відомо , що у рядку є принаймні одна кома. Знайти номер першої коми.