Студопедия — Перетворення з АSСII в QBASIC
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Перетворення з АSСII в QBASIC






 

Для виконання перетворень з АSСІІ в QBASIC передбачені наступні функції:

АSС (текст) — повертає код АSСII для першого символу текстового значення;

СНR$ (код) – повертає символ, що відповідає коду АSСII.

Параметр коду повинен мати значення від 0 до 255, наприклад:

РRINТ "Символ з кодом АSСII 81 - це "; СНR$(81)

РRINТ "Код АSСII символа 'Q' - це "; АSС("Q")

Визначення довжини символьної величини

 

Функція LЕN — одна з найпростіших символьних функцій і призначена для визначення довжини символьної величини. Її вид такий:

LEN (текст),

де текст – символьна величина (константа чи змінна)

Функція визначає довжину тексту, тобто число символів (враховуючи пропуски), які містяться в символьній величині. Наступна програма показує, як працює ця функція:

REM Програма 1

CLS

ЕХАМРLE$ = "'Я вивчаю QBASIC'";

ADDRЕSS$ = "'Проспект Миру, 12' ";

РRINТ "Довжинаречення";ЕXАМРLЕ$;"-"; LEN(ЕXАМРLЕ$)

РRINТ

РRINT "Довжина адреси";АDDRЕSS$;"-"; LEN (АDDRESS$)

END

 

Виділення частини тексту

 

У QBASIС існує декілька важливих функцій, які дозволяють виділяти символи з текстового виразу. Ці функції мають такий формат:

LEFТ$ (текст, число)

RIGНТ$ (текст, число)

МID$ (текст, позиція, число)

де текст – текст, що аналізується;

число — число символів, які потрібно виділити (від 0 до 32767);

позиція - номер символу, з якого починається виділення.

Функція LEFТ$ повертає підрядок з довжиною, що дорівнює параметру число, і починається з першого символу початкового рядка.

Функція RIGHT$ повертає задану кількість символів, починаючи з правого краю тексту, аналогічно функції LEFТ$.

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

Функція МID$ повертає підрядок з довжиною числа, починаючи з позиції тексту (якщо позиція дорівнює, наприклад, 3, то результат буде видаватися, починаючи з третього символу від лівого краю текстового виразу).

Для функції MID$ параметр числа не є обов’язковим. Якщо він не задається, то функція повертає правий залишок рядка від заданої позиції до кінця текстового виразу.

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

 

REM Програма2

REM Застосування функцій LEFT$, RIGHT$, MID$

CLS

EXAMPLE$ = “XОЧУ ЗНАТИ QBASIС ДУЖЕ ДОБРЕ”

PRINT LEFT$ (EXAMPLE$, 10)

PRINT RIGHT$ (EXAMPLE$, 10)

PRINT MID$ (EXAMPLE$, 12, 6)

END

 


Кодування текстів

 

Ознайомившись з функціями вибору підрядка, розглянемо питання кодування тексту:

REM Програма 3

REM Кодування рядка

CLS

new.line$ = "";

PRINT "Введіть рядок";

LINE INPUT old.line$

FOR NUMBER.LETTER% = 1 LEN(old.line$)

enc.letter$ = MID$(old.line$, NUMBER.LETTER%,1)

new.line$ = new.line$ + CHR$(ASC(enc.letter$) + 1)

NEXT NUMBER.LETTER%

PRINT

PRINT new.line$

END

 

Подивимося, як працює ця програма. Після оператору PRINT, який запрошує ввести довільний текстовий рядок, стоїть оператор LINЕ INPUT, який дозволяє ввести до 256 будь-яких символів, включаючи коми. При натисканні клавіші Enter весь текст буде зберігатися в текстовій змінній old.line$. Згадаємо, що при використанні оператора INPUT текстові значення, розділені комами, присвоюються різними змінними. Крім того, з допомогою оператору LINE INPUT в програму можна вводити будь-які символи, не перевіряючи, чи є вони буквами.

B даній програмі після оператору LINE INPUT організований цикл, який виконується стільки раз, скільки символів міститься в тексті. На кожному кроці циклу з введеного текстового значення вибирається наступний символ і визначається його код ASCII. Після цього закодований символ розміщується в змінній з ім’ям new.line$ шляхом його додавання (конкатенації) до існуючого значення при кожному кроці циклу.

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

 

Пoшук підрядка

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

INSTR (noзиція, тeкcт, підрядок)

де позиція — номер символу, з якого починається пошук підрядка;

текст — текст, в якому виконується пошук;

підрядок — шуканий текстовий вираз.

Параметр позиція необов’язковий, якщо пошук буде виконуватися з першого символу текстового виpaзу.

Функція INSТR повертає числове значення, яке вказує позицію, з якої починається шуканий підрядок, відносно початку тексту. Функція INSTR повертає 0, якщо: підрядок не знайдено або текст значення параметру позиції більше довжини тексту, або довжина тексту нульова. Якщо підрядок - пустий, функції буде повернено значення позиції. Пошук припиняється з першим знаходженням підрядка, тому наступне входження підрядка знайдено не буде.

Нижче наведено приклад програми, яка використовує функцію INSTR:


REM Програма 4

REM Використання функції INSTR

CLS

EXAMPLE$ = “KATЯ, ЖEHЯ, AHЯ, MAШA – мої друзі ";

PRINT

PRINT EXAMPLE$

PRINT

PRINT "Ім’я 'ЖEHЯ' починається з позиції ";

INSTR (EXAMPLE$, "ЖEHЯ");

PRINT

PRINT " Ім’я 'МАША' починається з позиції ";

INSTR (10, EXAMPLE$, “MAШA");

END


 

Різні варіанти написання тексту

 

Якщо ваш текст написаний рядковими (маленькими) буквами, a ви хочете вивести його на екран і роздрукувати, використовуючи тільки великі, вам не потрібно вводити текст знову — скористайтеся однією з наступних функцій:

UCASE$ (тeкcт)

LCASE$ (тeкcт)

де тeкcт – текстовий вираз для зміни регістру.

 

Функція LCASE$ перетворить всі букви рядка в малі, функція UCASE$ перетворить всі букви в великі.

На жаль, ці функції працюють тільки з буквами латинського алфавіту. B програмі 5 це показано:

REM Програма 5

REM Зміна регістрів символів

BALANCE$ = “ Оn your account: “

VALUE$ = “Нуль”

PRINT BALANCE$, VALUE$

PRINT

PRINT UCASE$ (BALANCE$)

PRINT TAB (10); LCASE$ (VALUE$)

END


 

Ці функції корисні під час перевірки відповідей на питання програми типу «Будете продовжувати Y/N». Застосування будь-якої з цих функцій дозволяє полегшити життя як вам, так і користувачу вашої програми. В тому випадку, коли не відомо, друковану або прописну букву введе користувач, будь-яка з цих функцій замінить подвійну перевірку:

 

INPUT “ХОЧИТЕ ПОВТОРИТИ? Y / N”, IFLAG$

IF UCASE (IFLAG$) = “Y” THEN GOTO BEGIN

 

Функція INKEY$

 

Функція призначена для підтримання інтерфейсу між програмою і клавіатурою. Припустимо, ви хочете створити паузу чекання в визначеному місці вашої програми – наприклад, для того щоб надати користувачу час для прочитання і зрозуміння великого повідомлення (це може бути вікно з рекомендаціями по користуванню програмою). Звичайно в подібних ситуаціях програма чекає натиску користувачем певної або будь-якої клавіші.

Для того, щоб організувати таку паузу, потрібно використати умовний цикл, в якому повертається значення, повернене функцією INKEY$:

 

PRINT “Press any key to continue”

WHILE INKEY$ = “ “

WEND

 

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

 

PRINT “ Press ‘ESC’ to continue ”

WHILE INKEY$ <> CHR$ (027)

WEND

 

Дана функція сама по собі не організовує паузу і не очікує натиску клавіші. Вона просто намагається прочитати символи з буфера клавіатури – області пам’яті, в яку спочатку поступають символи з клавіатури. Поки ви не натиснете клавішу, буфер клавіатури буде пустим, і функція INKEY$ буде повертати пустий рядок. З натиском більшості клавіш функція INKEY$ повертає один символ (один байт).

Крім цього, функція INKEY$ дозволяє працювати з спеціальними клавішами. Якщо ви натискаєте одночасно дві клавіші, одна з яких спеціальна (Аlt, Ctrl), функція повертає два байта тексту. Перший з них завжди 0, другий – ASCII – код символу. Подивіться наступний приклад:

 

PRINT “ Нажміть Alt – S для остановки ”

WHILE INKEY$ <> CHR$ (0) + CHR (83)

(83 – код ASCII для клавіші S).

 

Звертаючись до функції INKEY$, не забувайте, що вона використовується тільки разом із умовним циклом.

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

 







Дата добавления: 2015-09-07; просмотров: 529. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

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

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Кран машиниста усл. № 394 – назначение и устройство Кран машиниста условный номер 394 предназначен для управления тормозами поезда...

Приложение Г: Особенности заполнение справки формы ву-45   После выполнения полного опробования тормозов, а так же после сокращенного, если предварительно на станции было произведено полное опробование тормозов состава от стационарной установки с автоматической регистрацией параметров или без...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Способы тактических действий при проведении специальных операций Специальные операции проводятся с применением следующих основных тактических способов действий: охрана...

Искусство подбора персонала. Как оценить человека за час Искусство подбора персонала. Как оценить человека за час...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.014 сек.) русская версия | украинская версия