- •Етапи підготовки і рішення задач на еом
- •Програма, що не має помилок часу трансляції і виконання, може і не дати вірних результатів через так звані логічні помилки в обраному алгоритмі, тобто алгоритмічних помилок.
- •Запис алгоритмів у виді блок – схем
- •Мови програмування
- •1. Основні поняття алгоритмічної мови Бейсік.
- •3. Сталі та змінні.
- •4. Функції. Вирази.Оператор присвоєння
- •Вправи та запитання
- •5. Надання значень змінним
- •Оператор read.
- •6. Виведення результатів
- •Оператор Результат
- •Оператор Результат
- •7.Лінійні програми
- •Розгалуження
- •1.Логічний вираз
- •3. Команда розгалуження if. Повна форма умовної команди.
- •10.Цикли
- •11.Оператори циклу
- •12. Обчислення суми, добутку
- •13. Ітераційні цикли
- •14. Вкладені цикли
- •Мал.12 Схеми вкладених циклів.
- •15. Використання масивів
- •Вправи та запитання
- •16. Нестандартні функції та підпрограми
- •17. Робота з текстовими даними
- •18. Оператори роботи з графічною інформацією.
- •19. Робота з файлами даних
- •20 Основи роботи в пакеті MathCad
- •Визначення основних понять та позначень, безпосередньо зв'язаних з процесом обчислень у середовиіщі пакету Вхідний алфавіт
- •Типи констант і змінних
- •Розмірність, одиниці вимірів та одиниці маштабування
- •Базові обчислювальні конструкції пакета
- •Реалізація ітеративних обчислень.
- •Функції керування обчисленнями
- •Побудова декартових графіків
- •Методи доступу і роботи з файлами даних
- •Вбудовані функції та функції користувача
- •Розділ 21Алгоритми та програми реалізації загальних чисельних методів.
- •21.1. Розв’язання систем лінійних рівнянь.
- •21.2 Інтерполяція та екстраполяція.
- •21.3. Розв’язання нелінійних та трансцендентних рівнянь.
- •21.4 Розв’язування систем нелінійних рівнянь.
- •Програма 14
- •21.5. Пошук екстремумів функцій одної та багатьох змінних.
- •Програма 15
- •Програма 16
- •Програма 17
17. Робота з текстовими даними
1. Дії з текстовими даними. Задачі числового характеру, де об'єктами є числові дані, не вичерпують сфер застосування комп'ютерів. Актуальними є задачі опрацювання текстових даних. Для роботи з текстовими даними використовують такі елементи мови: текстові сталі, текстові змінні, текстові функції, текстові вирази та дії з ними. (Текстові дані називають ще символьними, чи літерними даними, чи рядками).
Довжина текстової сталої не повинна перевищувати 255 символів. Текстова стала, яка має нульову довжину, зображується так: "".
Нагадаємо, що до імені текстової змінної потрібно дописати символи $,
якщо ця змінна не описана оператором DEFSTR.
З текстовими даними виконують операції введення та виведення, перетворення та порівняння.
Введення і виведення текстових даних. Надати значення текстовим змінним ( увести дані) можна трьома способами за допомогою таких операторів:
1) присвоєння;
2) INPUT або LINE INPUT;
3) READ.
Текстові дані можна виводити на екран дисплея, на друкарський пристрій (або у файл даних). Виведення текстових даних виконують оператором PRINT або WRITE
Приклад І. Розглянемо оператори:
10 А$ = "САДОК ВИШНЕВИЙ"
20 DATA "КОЛО ХАТИ"
ЗО READ В$
Тут змінна В$ отримає значення " КОЛО ХАТИ".
Приклад 2. Результати виконання таких операторів майже однакові:
60 PRINT AS; B$
65 PRINT AS; " "; B$
Відмінність така: у першому випадку не буде пропуску перед словом "КОЛО".
Перетворення текстових даних. Для перетворення текстових даних використовують текстові вирази та текстові функції.
Текстовий вираз складається з текстових сталих, змінних, функцій, з'єднаних між собою операцією з'єднання (конкатенації). Операцію з'єднання позначають символом "+".
Для введення текстового рядка, який містить кому, слід використати оператор LINE INPUT замість INPUT.
Приклад 3. Розглянемо оператори " -
40 DS = "СА" + "ДОК"
45 О1$ = "ДОК" + "СА"
50С$ = А$ + "" + В$.
Тут змінна D$ отримає значення "САДОК", a Dl$ - значення "ДОКСА". Яке значення отримає змінна CS?
2. Текстові функції. Під час розв'язування багатьох задач потрібно вміти виділяти з текстового даного певну частину символів. Для цього, а також для інших перетворень текстових даних використовують текстові функції. Набір функцій, які входять до більшості Бейсик-систем, наведено в табл.7.
Таблиця 7
Функція |
Дії |
ASC(A$)
LEN(A$) INSTR(A$, B$) INSTR(A$, B$, I)
VAL(A$)
CHR$(N) LEFT$(A$, N) RIGHT$(A$, N) MID$(A$, N, M) STR$(A)
INKEY$
INDUT$(N) SPACE$(N) STRING$(N, M) STRING$(N, A$) |
Дає (внутрішній машинний) код ASCII першого символу рядка A$ (тобто додатнє число або Ø). Якщо рядок пустий, то повертається значення -1. Дає число символів в рядку A$. Дає початкову початкову позицію першого входження рядка B$ в рядок A$; повертає Ø, якщо рядок B$ не є вирізкою із рядка A$. Якщо параметр І вказаний то пошук входження рядка B$ в рядок A$ починається з і-ої позиції рядка A$. Дає число по його символьнову записові в рядку A$; якщо в рядку вміщуються посторонні символи, то повертається Ø. Дає символ з кодом, який дорівнює N. Дає N лівих (LEFT$) або правих (RIGHT$) символів рядку A$. Дає М символів рядка A$, починаючи з N- ої позиції. Дає рядок, який є символьним записом числа А. Оберненою функцією є VAL. Не має аргументів і забезпечує введення з клавіатури одного символу. Забезпечує введення з клавіатури N- символів. Дає рядок із N- пропусків. Дає рядок із N однакових символів з кодом ASCII, або N- кратно повторює перший символ рядку A$. |
|
|
Довідка 2.Для заміни поточного рядку або заміни його на другий необхідно виконати:
а) Зробити пошук B$ в A$, A$- поточний рядок, B$-деяка вирізка. Цю операцію можна виконати функцією INSTR, або їй подібною.
б)Наступна необхідна операція - вставка C$ в позицію "і" в A$, що означає вставку нового рядка безпосередньо перед і- позицією вхідного рядка. Цю операцію можна здійснити за допомогою виразу LEFT$(A$, i-1)+C$+RIGHT$()A$, LEN(A$)-i+1)
в) Чергова операція - виділення B$ із A$. Для виконання спочатку необхідно знайти початкову позицію вирізка B$ в A$, так як вказано вказано в прикладі (а); якщо вона дорівнює"c", зміну рядка можна виконати за допомогою виразу: LEFT$(A$, i-1)+RIGHT$(A$, LEN(A$)-LEN(B$)-i+1)
г) Досить часто дії (а), (б), (в) приходиться об'єднувати в одну операцію - заміна B$ на C$ в A$. Для спочатку визначають початкову позицію "і" вирізки B$ в A$, потім видалити B$ і дальше вставити С$.
Приклад 2. Задача 1. Нехай змінна A$ має значення "САДОК ВИШНЕВИЙ". Тоді наведені функції дадуть такі результати:
ФУНКЦІЯ РЕЗУЛЬТАТ
LEFT$(A$,5) "САДОК",
RIGHT$(A$,8) "ВИШНЕВИЙ"
MID$(A$,3,2) “ДО”,
LEN(AS) 14,
VAL (“124”) 124,
STR$(124) “124”.
INSTR(A$, “Д”) 3
CHR$(74) J
ASC(“J”) 74
Задача 2. Визначити кількість букв В у тексті А$.
10 REM Кількість букв у тексті -;
20 А$= "САДОК ВИШНЕВИЙ" .
30 K=LEN(A$)
40 S=0
50 FOR 1=1 ТОК -
60 IF MID$(A$,I,1)="B" THEN S=S+1
70 next І
80 PRINT"S="S 90 END Виконаємо програму. На екрані отримаємо: S=2.
Довідка І. Конструкція MID$(A$,L,M) призначена також для зміни поточного значення текстової величини за допомогою такого оператора присвоєння:
MID$(A$,L,M) = CS (в даному випадку MID$ виконує функції оператора)
Дія оператора. М перших символів з С$ заміщують L символів у А$, починаючи з позиції L .Наприклад, якщо значенням D$ є "САДОК", то оператор MID${D$,2,2)="OP" змінює значення змінної D$ з "САДОК" на "СОРОК".
3.Порівняння текстових даних. Тексові дані можна порівнювати між собою. Отже, з них можна будувати логічні співвідношення (умови) та логічні вирази.
"Більшою" вважають ту текстову величину, значення якої починається з символу, що стоїть в алфавіті (у таблиці кодів ASCII) далі, тобто числовий код якого більший. Наприклад, числові коди наступних символів зростають зліва на право:
…Al,2,…,9,…,A,B,C,…,X,Y,Z,…Ab,c,..,y,z3…AB,B,…,a,6,B,…
Порівняння текстових даних використовують у задачах сортування інформації.
Приклад 5. Істинними є такі логічні вирази:
-7"<"9", "А 1 "<"А2", "АВ">"АА", "ГАЛЯ"<"РОМАН",
а хибними - "А">"В", "В"="Б", "СШ 15">"СШ 91"
Довідка 5. Таблицю кодів ASCII - "American Standard Code for International ^Interchange" можна знайти в довідниках.
Масив рядків символів.
Групу рядків можна зберігати в масиві і звертатися до окремих рядків по іменам. Для масивів рядків допустимі імена, що і для звичайних масивів, тільки до імені додається в кінці знак $. DIM A$(N).
В програмі не повинно існувати ніякого зв'язку між рядками які зберігаються в масиві і одноіменним числовим масивом. Кожний елемент рядкового масиву рівноцінний рядковій змінній і може вміщувати від 0 до 255 символів.
Елементами масивів рядків можна користуватися в сполученні з всіма рядковими функціями. В силу обставин можуть знадобитися двохмірні масиви рядків і масиви більшого числа вимірів
ВПРАВИ
1. Дано значення текстової змінної А$=" ЛІТЕРАТУР А". Визначити значення
текстових функцій.
a) LEFT$(A$,6); б) RIGHT$(A$,3); в)МГО$(А$,3,5); г) LEN(AS);
д) MID(A$,3,3) + MID(A$,8,1).
Виконати попередню вправу, якщо А$ = "СУСПІЛЬСТВО".
2. Дано дві текстові величини:
С$ = "ГАЛЯ 1986СШ76";
D$ = “РOMAH 1979СШ91"
3. Обчислити значення функції:
a) LEFT$(C$,5); б) VAL(MID$(C$,7,4)); в) MID$(D$,7,4); г) LEN$(D$);
д) RIGHT$(C$,2).
4. Визначити текстове значення
а) поточної секунди;
б) поточної години;
в) поточного місяця;
г) поточного дня;
д) поточного року.
Обчислити числове значення
а) поточної секунди;
б) поточної години;
в) поточного місця;
г) поточного дня;
д) поточного року.
