DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Комп’ютеризовані системи
Кафедра:
Не вказано

Інформація про роботу

Рік:
2012
Тип роботи:
Інструкція до лабораторної роботи
Предмет:
Алгоритмічні мови та програмування

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  РОБОТА З ТЕКСТОВИМИ ФАЙЛАМИ. СИМВОЛЬНІ ТА РЯДКОВІ ЗМІННІ ІНСТРУКЦІЯ ДО ЛАБОРАТОРНОЇ РОБОТИ № 4 З КУРСУ “АЛГОРИТМІЧНІ МОВИ І ПРОГРАМУВАННЯ” для студентів спеціальності 6.0914 “Комп’ютеризовані системи, автоматика і управління” та 6.1601 “Інформаційна безпека” Затверджено на засiданнi кафедри “Автоматика і телемеханiка”, протокол №___ від __.__.200__ р. Львів – 2006 Робота з текстовими файлами. Символьні та рядкові змінні: інструкція до лабораторної роботи №4 з курсу “Алгоритмічні мови і програмування” для студентів спеціальності 6.0914 “Комп'ютеризовані системи, автоматика і управління” та 6.1601 “Інформаційна безпека” / Укл.: ____________, Б.Д.Будз, О.І.Гарасимчук - Львів: НУЛП, 2006.- 16 с. Укладачі: ______________________________, Б.Д. Будз, асистент, О.І. Гарасимчук, асистент. Відповідальний за випуск: __________________________________. Рецензент: __________________________________. Мета роботи - вивчити види файлів, стандартні процедури і функції мови Турбо-Паскаль для роботи з файлами, навчитися складати та відлагоджувати програми для роботи з тестовими файлами. Навчитись використовувати символьні і рядкові змінні для роботи з текстовими файлами. 1. ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ В тих випадках, коли даних багато або їх треба довго зберігати, застосовують файли. 1.1. Файл – це сукупність даних будь-якого типу. Таке визначення збігається з визначенням масиву, але, на відміну від останнього, файли розташовані на зовнішньому носії, кількість даних у файлі при його описуванні не вказується, елементи файлу не мають індексів, що ускладнює роботу з ними. Файл повинен мати ім’я. За іменем може іти розширення – послідовність до трьох дозволених символів. Розширення, якщо воно є, відділяється від імені крапкою. Якщо файл, який ви бажаєте редагувати вашою програмою, не знаходиться з нею в одній директорії, то для звернення до файлу перед його іменем необхідно вказати шлях до нього. Максимальна довжина імені разом з шляхом складає 79 символів. В мові Turbo Pascal є три види файлів: типовані, текстові та нетиповані. Кожен з них має свою область використання і свої особливості. 1.2. Файловий тип даних описують у розділі описів типів так: type <ім’я типу> = file of <базовий тип>; або безпосередньо у розділі оголошення змінних var <список змінних> : file of <базовий тип>; Приклад: Type f1 = file of integer; f2 = file of string [20]; var file1, file2: f1; file3:f2; zminni: file of Boolean; 1.3. Текстові файли. Текстові файли відрізняються від типованих тим, що їх можна редагувати або переглядати за допомогою звичайного текстового редактора. Такі файли описують одним словом Text, наприклад: var ft: text; Елементами текстового файлу є символи, організовані в рядки в загальному випадку різної довжини. В кінці кожного рядку стоїть ознака “кінець рядку”, а в кінці файлу – “кінець файлу”. Ознакою кінця рядку є символ #13 (це один з перших 32 символів таблиці ASCII, він має визначення CR). Він може бути об’єднаний з символом перенесення рядку #10 (його визначення LF). При введенні даних з клавіатури символ CR вводиться при натисканні клавіші Enter. Ознакою кінця файлу є символ #26. При введенні даних з клавіатури, цей символ записується при одночасному натисненні клавіш CTRL/Z. Ознака “кінець файлу” розпізнається функцією Eof, яка виробляє значення True, якщо досягнуто символу #26, в протилежному випадку вона виробляє значення False. Кінець рядку розпізнається функцією Eoln (скорочено від End of Line). Вона виробляє значення True, якщо досягнуто ознаки кінця рядку, в протилежному випадку – значення False. Файлова змінна текстового типу зв’язується з конкретним файлом на диску оператором Assign. Щоб записати інформацію в текстовий файл, його треба відкрити процедурою Rewrite, а процедура Reset відкриває його для читання. Для запису символів у файл використовують оператори Write або Writeln. Для читання інформації з текстового файлу використовують оператори Read та Readln, при цьому Read читає дане з файлу без переходу на наступний рядок, а оператор Readln забезпечує такий перехід. Особливістю роботи з текстовими файлами є те, що параметри, значення яких вводяться та виводяться з допомогою процедур Read або Write, можуть бути не обов’язково типу Char чи String, а й інших простих типів (цілих, дійсних типів при вводі; цілих, дійсних типів, типу Boolean – при виведенні). Ці процедури можуть також працювати і з ASCIIZ-стрічками. Текстовий файл можна створювати декількома способами, наприклад: посимвольно, використовуючи готові рядки (дані String) або їх можна створювати у будь-якому текстовому редакторі, тобто не програмним шляхом, а обробляти в самій програмі. Більш того, в такий файл можна записати числа і використовувати їх у програмі. Приклад програми посимвольного формування рядків файлу: uses crt; const n=5; var f1:text; i:integer; symb:char; Begin assign (f1, ‘G:\User\text.txt’); rewrite (f1); {відкрити файл для редагування} for i:=1 to n do begin repeat read (symb); {вводимо символ з клавіатури} write (f1, symb); {записуємо у файл f1} until (sim=#13); {до клавіші Enter} end; close (f1); {закрити файл f1} reset (f1); {відкрити файл для читання} while not eof (f1) do begin while not eoln(f1) do begin read (f1, symb); write (symb); end; readln(f1); writeln; end; End. 1.4. Основні процедури та функції для роботи з текстовими файлами. Процедури: Assign(F,<ім’я файлу>) – зв’язує логічний файл F з фізичним файлом, повне імя якого задано в рядку ,<ім’я файлу>. Reset (F) – відкриває логічний файл F для читання даних Rewrite(F) – відкриває логічний файл F для запису даних. Close(F) – закриває відкритий до цього логічний файл F. Виклик процедури Close необхідний при завершені роботи з файлом. Якщо по будь-якій причині процедура Close не буде виконана, файл все ж буде створений на зовнішньому пристрої, але вміст останнього буфера в нього не буде перенесено. Для вхідних файлів використання оператора закриття файлу не є обов’язковим. Rename(F, <нове ім’я файлу>) – дозволяє перейменувати фізичний файл на диску, зв’язаний з логічним файлом F. Перейменування можливе після закриття файлу. Erase(F) – знищує фізичний файл на диску, який був зв’язаний з файловою змінною F, файл до моменту виклику процедури Erase повинен бути закритий. Append(F) – відкриває файл для додавання в кінець файлу інформації. Відкривається існуючий файл, з яким зв’язана файлова змінна F, і вказівник поточної компоненти файлу встановлюється на кінець файлу. Read (F,<список вводу>) – читання інформації з файлу F. З файлу, з яким зв’язана файлова змінна F, читаються значення для однієї або декількох змінних списку вводу. Readln (F,<список вводу>) – читання рядку з файлу F. Те ж, що і процедура Read, але не прочитана частина рядка, включаючи ознаку кінця рядка, пропускається. Write (F,<список виводу>) – запис інформації у файл F. У файл з яким з яким зв’язана файлова змінна F, записуються значення виразів списку виводу. Writeln (F,<список виводу>) – запис рядка у файл F. Те ж що і процедура Write, але інформація що виводиться завершується ознакою кінця рядка. Функції: Eof(F) – логічна функція, яка повертає значення true коли при читанні досягнутий кінець файлу. Це означає, що вже прочитаний останній елемент у файлі або файл після відкриття виявився пустим. Eoln(F) – логічна функція, яка повертає значення true коли при читанні досягнутий кінець рядка файлу; 1.5. Символьні змінні. Символьний тип Char (від character - символ) – це тип змінних (даних), які складаються лише з одного символу (знаку, букви, цифри). Як і всі змінні, символьні змінні оголошуються в розділі Var: … Var Ch_1, Ch_2: Char; … В тілі програми їм можна присвоювати значення відповідного типу: … Ch_1:=’A’; Ch_2:=’?’; Ch_3:=’7’; … Кожному символу в комп’ютері відповідає одне ціле число з діапазону 0..255. це число, виражене в двійковій формі, є кодом машинного представлення символу. Всі символи зведені в таблицю кодів. Для кодування використовується стандартний американський код для обміну інформації – ASCII (American Standart Code for Information Interchange). Перша половина згаданої таблиці символів з кодами 0..127 відповідає стандарту ASCII. Друга половина символів таблиці – це національні алфавіти. Визначити номер будь-якого символу (або літери) в його десятковій формі можна за допомогою стандартної функції Ord: Ord(‘A’) = 65; Ord(‘a’) = 97; Функція Chr перетворює десятковий код символу в сам символ: Chr(65) = ‘A’; Chr(97) = ‘a’; Цю функцію можна замінити символом «#» (знак дієза): #65 = ‘A’; #97 = ‘a’; Тип змінних Char відносяться до порядкового типу. Дані порядкового типу мають кінцеве число можливих значень, ці значення певним чином впорядковані і кожен з них має свій порядковий номер. Для змінних цього типу застосовуються функції Pred і Succ: Pred(‘b’)=’a’; Pred(‘3’)=’2’; Pred(3)=2; Succ(‘a’)=’b’;` Succ(‘3’)=’4’; Succ(3)=4. Змінні цього типу можуть використовуватись також, наприклад, в циклі for: For Ch_1:=’a’ to ‘z’ do Writeln(‘Код літери’, Ch_1,’рівний’, Ord(Ch_1)); Дуже часто в задачах по обробці символів дуже ефективно застосовувати так звані множинні константи. Не будемо детально пояснювати їх властивості і спосіб задання, відмітимо лише що множини – це набір однотипних елементів порядкового типу, номер якого у відповідному типі не виходить за границі діапазону 0..255. Будь яка множинна змінна зберігає не самі значення її елементів, а всього лиш інформацію про те, чи є конкретний елемент в заданій множині чи його там нема. Як і у всіх змінних, в множинних є свої константи, вони визначаються шляхом перелічення в квадратних дужках через кому або з використанням інтервалу всіх елементів множини. В програмі можна, наприклад, так перевірити належність вибраного еклементу даній множині: … if ‘Ch’ in [‘a’..’p’,’r’,’s’,’u’,’w’] then … if x in [9,4..6] then … тут «in» - службове слово-оператор. 1.6. Рядкові змінні. Рядкові змінні – це одномірні упаковані масиви символів, для опису яких в Turbo Pascal введений тип String. Довжина рядка не може містити більше ніж 255 символів. Наприклад, якщо рядок містить до 30 символів, його тип буде визначений як: type s= String[30]; Рядок змінної довжини буде описуватись так: type s= String; Особливістю рядкових змінних є те, що до них можна звертатися як до скалярних змінних, так і як до масивів. У другому випадку застосовується конструкція “змінна з індексом”, що забезпечує доступ до окремих символів рядка, при цьому нижня границя індексу рівна 1. Окремі символи рядка сумісні з типом Char. В пам’яті ЕОМ рядок займає на кількість байтів, на 1 більше її довжини. Нульовий байт рядка містить її довжину. Для рядків визначені операції присвоєння, злиття і порівняння. Для порівняння рядків застосовуються всі операції відношення. Порівняння рядків відбувається посимвольно, починаючи з першого символу. Рядки рівні, якщо мають одинакову довжину і посимвольно еквівалентні. Рядки можуть бути елементами списку вводу-виводу, при цьому записується ім’я рядка без індексу. При вводі рядкових змінних кількість вводимих символів може бути менше. Ніж довжина рядка. В цьому випадку символи які вводяться розміщуються з початку рядка, а решту байтів заповнюються пробіли. Якщо кількість символів які вводяться перевершує довжину рядка, зайві символи відкидаються. Наведемо приклади оголошення типу string: … Var Str_1: String; {Рядок з максимальною довжиною в 255 літер} Str_2: String[3]; {Змінна, в якій може містити до трьох символів} Text_Isx: Array of Str_1; {Вихідний текст – масив рядків, кожен з яких може містити до 255 символів} … Після оператора присвоєння Str_1:=’Весна!’ довжина рядка Str_1 автоматично зменшиться з 255 до 6 символів – фактичної довжини рядка. Але після цього рядку Str_1 можна присвоїти рядок з любою довжиною до 255 символів: Str_1:=’Прийшла весна!’ В результаті присвоєння Str_2:=’Весна!’ в змінній Str_2 будуть знаходитись лише перші три символи слова Весна!. Доступ до окремих символів змінних типу string здійснюється так як і в масивах: Str_2[2]:=’у’; Str_2[3]:=’з’; Writeln(Str_2); до останнього в змінній Str_2 знаходилось слово «Вес», тому після заміни другої і третьої літери на «у» і «з» відповідно на екран дисплею виведеться слово «Вуз». Злиття рядків здійснює оператор кон’юнкції «+» або функція Concate: Str_1+Str_2+…+Str_n=Concate(Str_1,Str-2,…,Str_n); Стандартні процедури та функції для обробки рядків: Length(<рядкова змінна>) – функція, яка визначає довжину рядка. Pos(Str_1,Str_2) – функція, яка визначає номер першого символу рядка Str_1 при його першому появлені в рядку Str_2. Якщо Str_1 відсутній в Str_2, то функція повертає нуль. Copy(Str_x,p,n) – функція, яка копіює n символів рядка Str_x, починаючи з позиції p. Delete(Str_x,p,n) – процедура, яка видаляє n символів рядка Str_x починаючи з позиції p. Insert(Str_1,Str_2,p) – процедура, яка вставляє рядок Str_1 в рядок Str_2, починаючи з позиції p. Str(x[:<ширина>[:<дріб>]],Str_x) – процедура, яка перетворює число x в рядок, де <ширина> - ширина поля для всього числа, <дріб> - число знаків після десяткової коми. Val(Str_x,x,<помилка>) – процедура, яка здійснює перевід рядка Str_x в цілі або дійсні числа x, де <помилка> - змінна, в яку буде записано 0, якщо перетворення неможливо, і номер першого символу, який не може бути символом числа, в протилежному випадку. Кодова таблиця ASCII 2. ЗАВДАННЯ 2.1. Домашня підготовка до роботи 1. Ознайомитися з основними типами файлів і їх описом. 2. Вивчити основні процедури і функції для роботи з текстовими файлами. 3. Ознайомитись зі символьними і рядковими змінними. 4. Вивчити основні процедури та функції для роботи із символьними і рядковими змінними. 5. Дано текстовий файл, в якому міститься програма мовою Турбо Паскаль (Лабораторна робота №3). Скласти блок-схеми алгоритмів та програми мовою Турбо-Паскаль для обробки текстового файлу з використанням розроблених процедур та функцій для роботи зі стрічками. Оформити виконання одного із завдань у вигляді підпрограми. Словами є слова в коментарях, назви ідентифікаторів, зарезервовані слова, які розділяються між собою згідно із синтаксисом мови Турбо Паскаль. Дані для роботи беруться з табл.1 за вказівкою викладача. Таблиця 1 № п/п Завдання  1 Сформувати і вивести на екран текстовий файл, в якому вилучити символи “(” і “)”. Знайти кількість приголосних літер у кожному рядку.  2 Сформувати і вивести на екран текстовий файл, в якому всі символи “;” замінюються символом “!”. Обчислити суму цифр які зустрічаються в тексті.  3 Сформувати і вивести на екран текстовий файл, в якому містяться слова які починаються на голосні літери. Підрахувати кількість слів, в яких кількість символів більша трьох.  4 Сформувати і вивести на екран текстовий файл, в якому всі складені оператори “Begin” і “End” замінюються на “{” і “}” відповідно. Підрахувати кількість операторів циклу for і умовних операторів if.  5 Сформувати і вивести на екран текстовий файл, в якому після кожного рядка буде виведена цифра яка міститиме значення кількості літер в рядку. Замінити всі символи “(” і “)” на “[” і “]” відповідно.  6 Сформувати і вивести на екран текстовий файл, в якому символ “:=” замінити на символ “=”. Вивести список всіх зарезервованих слів використаних в програмі (без повторень).  7 Сформувати і вивести на екран текстовий файл, в якому пробіли замінюються символом підкреслення. Підрахувати кількість арифметичних операцій (+,-,*,/) у файлі.  8 Сформувати і вивести на екран текстовий файл, в якому символи “[” і “]” замінити на “(*” і “*)”. Вивести на екран номера рядків, в яких зустрічаються оператори циклів і умовний оператор.  9 Сформувати і вивести на екран текстовий файл, в якому залишити лише в одній кількості зарезервовані слова, решту замінити на символ “***”. Вивести на екран номери рядків, в яких зустрічаються цифри.  10 Сформувати і вивести на екран текстовий файл, в якому усі символи замінити на їх числове представлення в таблиці ASCII. Знайти суму усіх символів в кожному рядку.  11 Сформувати і вивести на екран текстовий файл зі стрічок, в яких вилучаються слова “for” та “then”. Вивести на екран номера рядків, в яких зустрічаються слова “PROCEDURE” та “FUNCTION”.  12 Сформувати і вивести на екран текстовий файл в якому не зустрічаються слова “for”, “then”, “іf”, “else”. Підрахувати кількість рядків, в яких кількість приголосних літер парна.  13 Сформувати і вивести на екран текстовий файл в якому усі голосні літери замінити на символ “*”. Вивести на екран кількість літер в кожному рядку файлу.  14 Сформувати і вивести на екран текстовий файл що містить лише послідовності символів, які містяться всередині операторних дужок “BEGIN” – “END”. Перевести в цих рядках символи в їх числове представлення і підрахувати їх суму.  15 Сформувати і вивести на екран текстовий файл в якому вилучити слова “do”, “to”, “for”. Вивести на екран рядки в яких містяться цифри і в кінці рядка дописати їх суму.  16 Сформувати і вивести на екран текстовий файл в якому всі приголосні літери замінити символом “@”. Вивести на екран рядки з парною кількістю символів.  17 Сформувати і вивести на екран текстовий файл в якому символи “+” замінюються словом “SUMA”, символи “-” замінюються символом “MULT”, символи “/” – замінюються символом “DIV”. Підрахувати і вивести на екран кількість символів “:=” у кожному рядку.  18 Сформувати і вивести на екран текстовий файл, в якому є лише слова які починаються на голосні літери. Вивести на кран всі числа які зустрічаються у файлі.  19 Сформувати і вивести на екран текстовий файл в якому голосні літери замінити на символ “1” а приголосні на симврол “0”. Підрахувати і вивести на екран кількість символів, які не являються символом “1” і “0”.  20 Сформувати і вивести на екран текстовий файл в якому видалити операторні дужки “BEGIN” і “END”. Підрахувати і вивести на екран кількість голосних і кількість приголосних літер в рядку.  21 Сформувати і вивести на екран текстовий файл в якому кожне число домножене на 10. Вивести на екран рядки з непарною кількістю літер.  22 Сформувати і вивести на екран текстовий файл в якому символи “;” замінені на “END_LINE”. Підрахувати кількість великих і малих літер у кожному рядку.  23 Сформувати і вивести на екран текстовий файл в якому усі літери які зустрічаються замінити послідовно на літери в алфавітному порядку. Вивести на екран непарні рядки файлу.  24 Сформувати і вивести на екран текстовий файл в якому симсвол “:=” замінити на “= =”. Підрахувати кількість непарних чисел у кожному рядку.  25 Сформувати і вивести на екран текстовий файл в якому замінити всі символи на їх числове значення в таблиці ASCII. Знайти і вивести на екран суму всіх чисел в кожному рядку.  26 Сформувати і вивести на екран текстовий файл в якому усі символи “+”, “-“, “*”, “/” замінити на числа в порядку зростання їх значень. Підрахувати і вивести на екран кількість літер в кожному рядку.  27 Сформувати і вивести на екран текстовий файл в якому видалити всі голосні літери. Підрахувати і вивести на екран кількість арифметичних операцій (+, -, *, /) у кожному рядку.  28 Сформувати і вивести на екран текстовий файл в якому присутні лиш стрічки з ключовими словами “FOR” і “THEN”. Підрахувати і вивести на екран кількість голосних літер в кожному рядку.  29 Сформувати і вивести на екран текстовий файл в якому усі малі літери замінити на великі. Підрахувати і вивести на екран кількість символів, які не є літерами у кожному рядку.  30 Сформувати і вивести на екран текстовий файл у якому вилучені рядки з парною кількістю символів. Вивести на екран суму усіх чисел у файлі.  31 Сформувати і вивести на екран текстовий файл в якому пробіл замінити символом “_”. Вивести на екран рядки з непарною кількістю символів.  32 Сформувати і вивести на екран текстовий файл в якому вилучені ключові слова “IF”, “THEN”, “FOR”. Вивести в кінці кожного рядка кількість голосних літер.  33 Сформувати і вивести на екран текстовий файл в якому видалити всі рядки, в яких непарна кількість символів. Вивести на екран суму голосних і суму приголосних літер в кожному рядку.  34 Сформувати і вивести на екран текстовий файл в якому видалити слово “FUNCTION” і “PROCEDURE”. Вивести на екран лише голосні літери в кожному рядку.  35 Сформувати і вивести на екран текстовий файл в якому заміть символів вивести їхнє числове представлення в таблиці ASCII. Вивести на екран кількість голосних і приголосних літер в кожному рядку.   2.2. Робота в лабораторії 1. Ввести в комп'ютер програми, написані мовою Турбо-Паскаль згідно з отриманим завданням. 2. Відлагодити програми. При необхідності скоригувати блок-схеми алгоритмів та програми у відповідності з виявленими логічними та синтаксичними помилками. 3. Остаточні версії блок-схем, програм та отримані результати занести у звіт з лабораторної роботи. 4. Здати звіт з лабораторної роботи. 3. ЗМІСТ ЗВІТУ 1. Номер і назва лабораторної роботи. 2. Повний текст завдання. 3. Остаточні версії блок-схем алгоритмів. 4. Список ідентифікаторів констант, змінних, процедур і функцій, використаних у блок-схемах алгоритмів і програм, та їх пояснення. 5. Остаточні версії програм. 6. Результати роботи програм. 4. КОНТРОЛЬНІ ЗАПИТАННЯ СПИСОК ЛІТЕРАТУРИ Фаронов В.В. Программироаание на персональних ЗВМ а среде Тур-бо-Паскаль.- 2-е изд. - М.: Изд-во МГТУ, 1992. Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка.- М.: Финансы и статистика, 1982. 3. Сердюченко В.Я. Розробка алгоритмів та програмування на мові Turbo Pascal: Навчальний посібник для техн. вузів - X.: ВКП "Парітет" ЛТД, 1995. Навчальне видання Робота з текстовими файлами. Символьні та рядкові змінні: інструкція до лабораторної роботи №4 з курсу “Алгоритмічні мови і програмування” для студентів спеціальності 6.0914 “Комп'ютеризовані системи, автоматика і управління” та 6.1601 “Інформаційна безпека” Укладачі: ______________________________, Б.Д. Будз, асистент, О.І. Гарасимчук, асистент.
Антиботан аватар за замовчуванням

25.09.2012 01:35

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!