- •Лабораторна робота № 1
- •Системний блок
- •Материнська (системна) плата
- •Системна магістраль даних (системна шина)
- •Мікросхема bios
- •Блок живлення
- •Накопичувачі
- •Адаптери
- •Клавіатура
- •Маніпулятори
- •Плати розширення
- •Зовнішні пристрої
- •Принтери
- •Стримери
- •Пристрої на компакт-дисках
- •Сканери
- •Джерела безперебійного живлення
- •Контрольні питання
- •Лабораторна робота №2
- •Алгоритм, його основні властивості та способи зображення
- •Мова програмування qbasic
- •Найпростіші оператори
- •Контрольні запитання
- •Варіанти завдань роботи
- •Лабораторна робота №3
- •Запуск qbasic
- •Індикатори натиснення спеціальних клавіш:
- •Індикатори натиснення клавіш-перемикачів:
- •Описання головного меню qbasic
- •Введення та редагування програм
- •Редактор qbasic
- •Запуск програми на виконання та перегляд результату
- •Збереження програми у вигляді файла на диску
- •Вихід з середовища qbasic
- •Контрольні запитання
- •Завдання
- •Лабораторна робота № 4
- •Розгалужена структура алгоритму
- •Умовний оператор if
- •Оператор goto
- •Оператор вибору on
- •Оператор select case
- •Циклічна структура алгоритму
- •Оператор for...Next
- •Зразок виконання завдання.
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 5
- •Змінні величини та функції, що їх визначають
- •Область визначення (існування) функції
- •Максимум та мінімум (екстремум) функції
- •Найбільше та найменше значення функції
- •Оператор-функція
- •Зразок виконання завдання
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 6
- •Умовні цикли
- •Оператор while...Wend
- •Оператор do...Loop
- •Метод половинного ділення
- •Зразок виконання завдання
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 7
- •Ітераційний цикл
- •Контрольні запитання
- •Варіанти завдань.
- •Лабораторна робота № 8
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота №9
- •Обмінне сортування
- •Інші методи сортування
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 10
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 11
- •Зразок виконання завдання
- •Контрольні питання
- •Лабораторна робота № 12
- •Контрольні запитання
- •Варіанти завдань.
- •Лабораторна робота № 13
- •Символьні функції
- •Що таке аscii?
- •Перетворення з аsсii в qbasic
- •Визначення довжини символьної величини
- •Виділення частини тексту
- •Кодування текстів
- •Пoшук підрядка
- •Різні варіанти написання тексту
- •Зразок виконання завдання.
- •Контрольні запитання
- •Варіанти завдань.
- •Лабораторна робота № 14
- •Оператор print using
- •Print using та числа
- •Print using та текстові значення
- •Масиви економічної інформації
- •Контрольні запитання
- •Варіанти завдань.
- •Лабораторна робота №15
- •Про функції
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 16
- •Зразок виконання завдання
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 17
- •Прямі лінії – відрізки
- •Оператор circle
- •Малювання прямокутників
- •Коло, дуга, еліпс і сектор
- •Використання кольору
- •Кольори малюнку і фону
- •Колір у текстовому режимі (оператор color)
- •Колір у графіці (оператор color)
- •Вибір значення для параметра фон
- •Зафарбовування областей
- •Ще один метод малювання
- •Відносний рух
- •Обертання
- •Масштабування зображення
- •Колір в операторі draw
- •Текстові змінні в операторі draw
- •Контрольні питання
- •Варіанти завдань
- •Лабораторна робота №18
- •Процедура
- •Використання підпpoгpaм типу SubRoutіne
- •Використання функцій типу def fn
- •Зразок виконання завдання:
- •Контрольні запитання.
- •Варіанти завдань
- •Лабораторна робота № 19
- •Контрольні запитання
- •Варіанти завдань
- •Лабораторна робота № 20
- •Різні способи дocтyпу до файлів
- •Відкриття фaйлa
- •Peжими pобoти з фaйлaми
- •Пpиклад відкриття фaйлa
- •Перегляд та peдaгувaння файла
- •Контрольні запитання
- •Варіанти завдань
Кодування текстів
Ознайомившись з функціями вибору підрядка, розглянемо питання кодування тексту:
REM Програма 3
REM Кодування рядка
CLS
new.line$ = ""
PRINT "Введіть рядок"
LINE INPUT old.line$
FOR NUMBER.LETTER% = 1 TО LEN(old.line$)
enc.letter$ = MID$(old.line$, NUMBER.LETTER%,1)
new.line$ = new.line$ + CHR$(ASC(enc.letter$) + 1)
NEXT NUMBER.LETTER%
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 EXAMPLE$
PRINT "Ім’я 'ЖEHЯ' починається з позиції ";
INSTR (EXAMPLE$, "ЖEHЯ");
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 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$, не забувайте, що вона використовується тільки разом із умовним циклом.
Користуючись наведеними функціями, можна виконувати певні перетворення тексту чи пошук необхідної інформації.