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

До розд. 4.3). Кілька корисних функцій обробки рядків



У програмах іноді доводиться перетворювати символи, з яких складаються рядки, у коди ASCII цих символів. Розглянемо дві функції, які для цього використовуються.

Asc(Рядок$)

Перетворює рядок у код ASCII першого символу цього рядка. Наприклад: Asc ("1998") повертає 49 (код АSСII цифри 1).

Chr(Код &)

Перетворює Код ASCII у рядок з одного символу.

Наприклад:
Chr (49) повертає "1".

Іноді доводиться перетворювати малі літери в прописні і навпаки. Для цього використовують функції зміни регістра. Їх дві:

UCase(Рядок$)

Повертає вихідний Рядок, усі букви якої перетворені в прописні. Наприклад:
UCase (" VisualBasic ") повертає "VISUALBASIC ".

LCase(Рядок$)

Повертає вихідний Рядок, усі букви якого перетворені в рядкові.

Наприклад:
LCase (" Список Міст ") повертає " список міст ".

Для того щоб зрозуміти, якою може бути практична користь від перерахованих функцій, повернемося до питання, що було поставлене при визначенні функції MsgBox у розд. 4.2: "Що потрібно зробити, щоб розбити рядок на частини, коли він друкується у Вікні Повідомлення? " Відповідь на це питання така: "Її потрібно представити у вигляді конкатенації рядків: Рядокl$ & Chr (13) & Chr (10) & Рядок2$". (13 і 10 — це коди ASCII особливих, невидимих символів, що використовуються при видачі чи друці тексту, — символу переходу на новий рядок і символу повернення на ліву сторону сторінки). Ці символи називаються також символом переносу і символом повернення каретки. (Термінологія друкарок, що працювали на механічних друкарських машинках.)

Приклад 4.6. Нехай у чотирьох текстових полях екранної форми знаходяться рядки: «Апельсин», «Банан», «Виноград» і «Грейпфрут». Після щиглика кнопки ПУСК об'єднання цих рядків повинне бути поміщене в поле мітки цієї екранної форми так, як показано на мал. 4.6 і 4.7.

Мал 4.6. Запис у поле мітки (справа) конкатенації рядків з текстових полів (зліва) без переносу слів на новий рядок
Мал 4.7. Запис у поле мітки конкатенації рядків з текстових полів з переносом нових слів на новий рядок

У першому випадку задачу вирішує наступний код:

Код 4.6

В другому випадку слова повинні розташовуватися «стовпчиком», тому код 4.7 трішки «складніший» від коду 4.6:

Код 4.7

Використовуючи перераховані функції обробки рядків, можна, природно, вирішувати й інші, більш складні і цікаві задачі обробки найрізноманітніших текстів.

Нові поняття:

фінансові функції Pmt, PV і Rate, унарна функція, бінарна функція, префіксне позначення, інфіксне позначення, символ переносу, символ повернення каретки, функції зміни регістра.

Питання для роздумів

Як Ви думаєте, чому значення фінансової функції Pmt має від’ємне значення? І чому від’ємні значення аргументів pmt двох інших фінансових функцій? Що відбудеться, якщо зробити ці значення додатніми?

Якщо вважати вираз 1 + 2 + 3 бінарною функцією, то чому рівні значення її аргументів? (Відповідь: 3 і 3.)

А чому рівні значення аргументів бінарної функції 1+ 2 * 3? (Відповідь: 1 і 6).

Нехай префіксний запис арифметичного виразу має такий вигляд: +(*(Mod(a, b), ^ (c,d)), +(a, c)). Як буде виглядати звичайний, інфіксний запис?

У якій послідовності будуть виконуватися операції у виразі 3 * 2 ^ 5 * 8/4? Чому дорівнюватиме результат?

Як Ви думаєте, чи однакові значення функцій, що повертаються, чи ні: Asc ("Visual Basic") Asc ("visual basic")?

Як Ви думаєте, чи однакові значення функцій, що повертаються, чи ні: Asc ("Visual Basic") Asc ("Visual Basic 6.0")?

Як Ви думаєте, чи повернеться вхідний Рядок$ після роботи складної функції LCase (UCase (Рядок$))? (Відповідь: Не завжди.)

Яка довжина ланцюжка, що міститься в полі мітки Label l у результаті роботи кода 4.6? На скільки вона відрізняється від довжини ланцюжка, що поміщається в те ж поле програмою кода 4.7? За допомогою якої функції можна виміряти цю довжину?

Вправи

Внесіть зміни в код 4.5 так, щоб ввід даних у кожне з текстових полів здійснювався за допомогою Вікна вводу.

Напишіть програму, що вирішує задачу, протилежну розглянутій у прикладі 4.6. У текстове поле вводиться один рядок, що містить дані про прізвище, ім'я і по батькові. У цьому рядку вони розділені пробілами, наприклад: «Кузнєцов Ілля Юхимович». Програма повинна помістити в 3 текстових поля окремо прізвище, окремо ім'я й окремо по батькові. (Вказівка: Використовуйте функції пошуку і виділення підрядка, про які йшла мова в розд. 4.3.)





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



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