Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Файловый тип данных
Прежде всего, вспомним, что такое файл. Файл – это строго определённый участок памяти на физическом носителе, который имеет своё уникальное имя. В языке Паскаль имеются три класса файлов: текстовый файл, типизированный и нетипизированный файл. Начнём с текстовых файлов. В Паскале имеется стандартный файловый тип text. Прежде чем приступить к операциям над текстовыми файлами, необходимо ввести переменные (одну или несколько) типа text: Var F: text; Описанные переменные (далее – файловые переменные) будут в дальнейшем связаны с внешними файлами. Это могут быть обычные файлы на жестком или гибком диске, а также файлы, связанные с каким-либо устройством, например, дисплеем, принтером. Файловая переменная далее используется в программе в качестве параметра процедур работы с файлами. После того как мы описали файловые переменные и связали их с определёнными внешними файлами, то данные файлы можно открыть для того чтобы производить с ними какие-либо действия, и прежде всего это запись в файл или чтение из него. Доступ к текстовому файлу организуется последовательно – это означает, что программа не может в любой момент времени считать из него произвольную порцию информации или произвести запись в произвольное место файла. Любой файл представляет собой линейную последовательность элементов, каждый из которых имеет свой номер. Можно считать, что имеется указатель, который при считывании очередного элемента файла перемещается к следующему элементу (т.е. становится ближе к концу файла). Рассмотрим теперь процедуры и функции для работы с файлами:
Рассмотрим пример: Создать на диске файл, содержащий 5 предложений записанных буквами латинского алфавита. Создать на диске другой файл, и в него записать данные из первого файла заменив строчные буквы прописными (функцию Upcase() не использовать). Program Example; var f1, f2: text; s, k: string; i: integer; Begin assign (f1, 'd: \l1.txt'); rewrite (f1); assign (f2, 'd: \l1.new'); rewrite (f2); for i: =1 to 5 do Begin writeln ('Введите ', i, ’ предложение: ’); readln (k); writeln (f1, k); end; close (f1); reset (f1); while not eof (f1) do Begin readln (f1, s); for i: =1 to length (s) do if (ord (s[i])> = ord ('a')) and (ord (s[i])< = ord ('z')) Then s[i]: = chr (ord (s[i])- ord ('а')+ ord ('А')); writeln (f2, s); end; close (f1); close (f2); End.
Поговорим теперь о типизированных и нетипизированных файлах. Описание типизированного файла имеет вид: Var F: file of type_file; Где type_file может быть любым типом за исключением файлового (text). Элементами типизированного файла являются значения указанного типа. При работе с типизированными файлами можно использовать уже знакомые нам процедуры Assign, Reset, Rewrite. Следует заметить, что текстовый файл, открытый процедурой Reset, доступен только для чтения, а типизированный – ещё и для записи. Процедуры Read и Write здесь используются по-другому. Отличие заключается в том, что каждый из параметров в рассматриваемом случае должен быть переменной типа type_file, а выражения и константы недопустимы. Процедуры Readln и Writeln применяются только к текстовым файлам.
Рассмотрим пример: Program file_of_extended; Var F: file of extended; F1: text; X, y: extended; i: word; Begin Assign(f1, ’d: \t1.txt’); Rewrite(f1); X: =0.0; For i: =1 to 1000 do begin Y: =sin(x); Writeln(f1, y); X: =x+0.001; end; Close(f1); Assign(f, ’d: \t.ext’); Rewrite(f); X: =0.0; For i: =1 to 1000 do begin Y: =sin(x); Write(f, y); X: =x+0.001; end; Close(f); End. После выполнения этой программы на диске появятся два файла t.ext и t1.txt. Первый является типизированным файлом, а второй – текстовым. Несмотря на то, что эти файлы содержат одинаковую информацию, между ними имеется существенное различие. Если просмотреть содержимое этих файлов, то в текстовом файле мы увидим столбик цифр, а в типизированном – псевдографические символы. Если мы, кроме того, сравним размер обоих файлов, то обнаружим, что текстовый файл занимает объём 25 000 байт, а типизированный файл – 10 000 байт. Почему? Переменная типа Extended занимает 10 байт, поэтому типизированный файл, содержащий 1000 чисел данного типа имеет размер 10 000 байт. Но если переменная типа Extended хранится в виде текстовой строки, то эта строка состоит из 23 символов, т.к. она включает показатель степени «Е+nnnn» или «Е-nnnn». Добавив сюда ещё управляемые символы CR (специальный символ возврата каретки)и LF(символ превода строки), которыми оканчивается каждая строка при вызове процедуры Writeln, и мы получим 25 символов на каждое значение типа Extended, записанное в текстовый файл. В итоге это даст 25 000 байт. По этой причине для хранения числовых данных экономнее использовать типизированные файлы. Для более эффективного выполнения операций ввода/вывода из внешних файлов в Паскале имеются нетипизированные файлы. При работе с ними можно использовать быстрые дисковые операции низкого уровня. Нетипизированные файлы дают возможность прямого доступа к любому файлу на диске независимо от его типа и структуры. Описание нетипизированной файловой переменной имеет вид: Var f: file; Такая файловая переменная связывается с внешним файлом обычным образом. В числе параметров процедур Reset и Rewrite для нетипизированных файлов кроме файловой переменной имеется необязательный второй параметр типа Word: например Reset(f, n). Этот дополнительный параметр описывает размер индивидуальной записи в файле (в байтах). Если параметр отсутствует, его значение по умолчанию принимается равным 128.
Практическая работа Варианты заданий.
1. Составить программу осуществляющую поиск в строке: (Исходное предложение вводится с клавиатуры и записывается в текстовом файле. Затем оно считывается с этого файла, обрабатывается, и результат выводится на экран и в другой текстовый файл). 1.1. Дано предложение. Напечатать все его буквы «и». 1.2. Дано предложение и символьная величина к. Напечатать столбиком все вхождения данного символа в это предложение. 1.3. Дано предложение. Вывести столбиком его 3, 6, 9 и т.д. символ. 1.4. Дано предложение. Вывести все его вхождения символов «м» и «н». 1.5. Дано предложение. Вывести в строчку все вхождения слогов «ло». 1.6. Дано предложение. Определить число пробелов в нем. 1.7. Дано предложение. Определить сколько в нем слов. 1.8. Дано предложение. Определить сколько в нем слов начинающихся на слог «ла». 1.9. Дано предложение. Определить сколько в нем слов оканчивающихся на слог «ло». 1.10. Дано слово. Получить перевертыш этого слова. 1.11. Дано предложение. Вывести на экран его самое короткое слово. 1.12. Дано предложение. Вывести на экран его самое длинное слово.
2. Составить программу осуществляющую поиск и замену в строке: (Исходное предложение вводится с клавиатуры и записывается в текстовом файле. Затем оно считывается с этого файла, обрабатывается, и результат выводится на экран и в другой текстовый файл). 2.1. Дано предложение. Заменить в нем все пробелы на символ _ (подчеркивания). 2.2. Дано предложение. Все его символы стоящие на четных местах заменить на символ «ы». 2.3. Дано предложение. Все его символы стоящие на 3, 6, 9 и т.д. местах заменить на символ «А». 2.4. Дано предложение. Заменить в нем все слоги «ах» на «ух». 2.5. Дано предложение. Заменить в нем все словосочетания «про» на «нет». 2.6. Дано предложение. Заменить в нем все вхождения подстроки1 на подстроку2. 2.7. Дано предложение. Заменить все слова, у которых окончания «а» на «о». 2.8. Дано предложение. Заменить все слова, которые начинаются на «о» буквой «а». 2.9. Дано предложение. Заменить все слова, начинающиеся на слог «на» слогом «по». 2.10. Дано предложение. Заменить все окончания слов «ни» на слог «ми». 2.11. Дано предложение. Заменить все слова, которые начинаются на слог «по» словом «при». 2.12. Дано предложение. Заменить все слова с окончанием «ла» словом «нет».
3. Составить программу осуществляющую обработку цифр в строке: (Исходное предложение вводится с клавиатуры и записывается в текстовом файле. Затем оно считывается с этого файла, обрабатывается, и результат выводится на экран и в другой текстовый файл). 3.1. Дан символ. Определить, является ли он цифрой. 3.2. Дан текст. Напечатать все имеющиеся в нем цифры. 3.3. Дан текст. Определить количество цифр в нем. 3.4. Дан текст. Найти сумму цифр в нем. 3.5. Дан текст. Найти его максимальную цифру. 3.6. Дан текст. Найти его минимальную цифру. 3.7. Дан текст. Найти сумму его четных цифр. 3.8. Дан текст. Найти произведение цифр находящихся на нечетных местах. 3.9. Дан текст. Найти количество четных цифр в нем. 3.10. Дан текст. Найти наибольшее количество подряд идущих цифр. 3.11. Дан текст. Найти сумму всех имеющихся в нем четных цифр. 3.12. Дан текст. Найти максимальное из имеющихся в нем цифр.
§-10. Множества Тип «множество» задает интервал значений, который является множеством всех подмножеств базового типа. Множество описывается в разделе var с помощью зарезервированного слова set. Базовым типом множества может быть любой конечный тип, состоящий не более чем из 256 элементов. В силу этого базовый тип множества не может быть коротким целым (Shortint), целым (Integer), длинным целым (Longint) или словом (Word). Вот пример описания множества: Var S: set of Char; Для того чтобы пояснить особенность данного типа, приведу пример. Если переменная типа «множество описана как set of 1..3, то она может принимать значения из следующего множества: {(1, 2, 3), (1, 2), (1, 3), (2, 3), (1), (2), (3), ()}. Константы множественного типа записываются с помощью квадратных скобок [ ] и списка элементов. Примеры: Const a=[‘A’..’Z’, ’a’..’z’]; empty = []; digits = [O..9];
Отсутствие списка элементов в квадратных скобках обозначает пустое множество. Зарезервированное слово in используется для определения принадлежности элемента множеству: if ch in alphabet
|