Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Лекция 7.++Массивы в качестве параметров подпрограмм. Файлы.

Лекция 7.++Массивы в качестве параметров подпрограмм. Файлы. (Воробьева И.А. - Информатика. Язык Паскаль), страница 3

PDF-файл Лекция+7.++Массивы+в+качестве+параметров+подпрограмм.+Файлы. (Воробьева И.А. - Информатика. Язык Паскаль), страница 3 Информатика (112491): Книга - 2 семестрЛекция+7.++Массивы+в+качестве+параметров+подпрограмм.+Файлы. (Воробьева И.А. - Информатика. Язык Паскаль) - PDF, страница 3 (112491) - СтудИзба2021-10-04СтудИзба

Описание файла

Файл "Лекция+7.++Массивы+в+качестве+параметров+подпрограмм.+Файлы." внутри архива находится в папке "Воробьева И.А. - Информатика. Язык Паскаль". PDF-файл из архива "Воробьева И.А. - Информатика. Язык Паскаль", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 3 страницы из PDF

«Информатика. Язык Паскаль»Для типизированных файловых переменных удобно использоватьпредварительное описание типа, по аналогии с описанием типовмассивов, например:TYPEF_real = file of real;VARres: F_real;7.2. Основные функции для работы с файламиОбщий механизм взаимодействия с файлом следующий.Необходимо объявить файловую переменную, связать ее с конкретнымфайлом соответствующего типа, открыть файл в режиме чтения илизаписи, произвести чтение или запись в необходимом количестве,обязательно закрыть файл.

Теперь изложим этот механизм с указаниемконкретных функций для файлов текстового и типизированного типа.Объявление файловых переменныхTYPEFint = file of integer;VARres: Fint;ft: TextFile;Связь файловых переменныхсоответствующего типасконкретнымфайломОсуществляется с помощью специальной процедуры, где первымпараметром указана файловая переменная, а вторым – переменнаятипа string, в которой указан полный путь к файлу. Если файл находитсяв одной папке с исполняемым кодом, тогда достаточно указать неполный путь к файлу, а только собственно имя файла с расширением.AssignFile(res, ‘C:\MySource\T1.dat’); \\ полный путьAssignFile(ft, ‘Test1.txt’); \\ файл Test1.txt в текущем каталоге1617Воробьева И.А. «Информатика. Язык Паскаль»Открытие файловСуществует четыре основных режима открытия файлов: длячтения, для записи, для чтения-записи, для добавления записей в конецфайла.

В Паскале есть три процедуры, которые осуществляют этирежимы и они по разному работают с разными типами.Reset(<файловая переменная>);Процедура Reset открывает любые файлы для чтения, атипизированный файл еще и для записи. Файловый указатель всегдаустанавливается на начало файла. Если файл не существует,процедура установит флаг ошибки, который можно определить спомощью специальной функции IOResult:{I-}\\ директива отмены контроля ошибокReset(ft); \\ попытка открыть для чтения файл Test1.txt{I+}\\ директива включения контроля ошибокIf IOResult <> 0 thenwrite(‘Файл Test1.txt не существует’)elsewrite(‘Файл Test1.txt открыт успешно’);Rewrite(<файловая переменная>);Процедура Rewrite открывает любые файлы для записи.Если файл физически не существовал на диске, тогда он будетсоздан, в него можно записывать данные.Если файл физически существовал, тогда все данные из негобудут уничтожены, а запись в файл будет производиться заново.{I-}Rewrite(res); \\ попытка открыть для записи файл T1.dat{I+}If IOResult <> 0 then1718Воробьева И.А.

«Информатика. Язык Паскаль»write(‘Не удалось создать файл C:\MySource\T1.dat’)elsewrite(‘Файл успешно открыт или создан’);Замечание 7.1.write(‘Не удалось создать файл C:\MySource\T1.dat’);Эта ошибка может возникнуть, если пытаться записать (создать) файл: на не существующий физически диск; на диск, защищенный от записи; указать в пути-имени файла запрещенные символы, например кзапрещенным относится символ «*».Append(<текстовая файловая переменная>);Процедура Append открывает текстовые файлы для добавлениязаписей в файл. Файловый указатель устанавливается на конец файла иоперация записи будет добавлять новые строки в существующий файл.Операции чтения, записи в файлыЗапись и чтение для текстовых и типизированных файловосуществляются с помощью уже известных процедур Read, Readln,Write, Writeln. Пусть есть переменная A типа integer, C типа char и Kol,типа real, тогда:Read(ft, A, С, Kol); \\ считывание трех переменных, записанных втекстовом файле Test1.txt в формате37 H 3.78Write(A, С, Kol);\\ вывод на экран – проверка корректногосчитывания из файлаWrite(res, A); \\ запись целого числа ‘37’ в файл T1.dat в формате00000025 (hex)1819Воробьева И.А.

«Информатика. Язык Паскаль»Закрытие файловВсякий открытый файл должен быть закрыт в обязательномпорядке.CloseFile(res);CloseFile(ft);«Открыть файл – закрыть файл» такая же парная операция, как«Begin-End». Но самое плохое в ней то, что, если на отсутствие beginили end компилятор выдаст ошибку, то на отсутствие CloseFile(),компилятор не выдаст сообщений, хотя это приводит к плохимпоследствиям, если вы захотите использовать файл в последующем,например.

Настоятельно рекомендуется подобные парные операцииписать сразу, чтобы «потом не забыть».Замечание 7.2. Если операция «открыть файл» осуществляется одинраз, а «закрыть файл» несколько (в разных точках программы) – это также дурно, как употребление операторов безусловного перехода. Стольже плохо поступать следующим образом: открыть файл в головноммодуле, а закрыть где-то внутри подпрограммы (еще хуже – внутринескольких разных подпрограмм) или, наоборот, открыть вподпрограмме, а закрыть в головном модуле.Рекомендация: всякий раз, когда вы обращаетесь с парнымиоперациями, ориентируйтесь на правила арифметики.

Задайте себевопрос – эта комбинация имеет смысл в арифметическом выражении (ясмогу его решить)? Если ответ «нет», следовательно, вы написали чтото не правильно.Замечание 7.3. Не сложно заметить, что уже знакомые циклы вводаматриц с клавиатуры и вывода матриц на экран (лекция 2, с.9), можноиспользовать для считывания матриц из текстового файла и записи втекстовый файл. Они будут отличаться только добавлением файловыхпеременных в качестве первого параметра в процедуры Read и Write.Это связано с тем, что на самом деле процедуры Read и Write работают1920Воробьева И.А.

«Информатика. Язык Паскаль»по умолчанию с двумя файловыми переменными в текстовомформате, подключаемыми в Паскале автоматически при запускепрограммы: INPUT – чтение со стандартного устройства ввода (обычноклавиатура); OUTPUT – вывод на стандартное устройство вывода(обычно экран). Так как подключение потоков ввода-выводапроисходит по умолчанию, поэтому все процедуры связывания иоткрытия-закрытия файлов не записываются программистом явно,однако это не значит, что они не реализуются. Напоследок заметим, чтосуществует возможность перенаправления стандартных потоков всобственный файл (или другое устройство, например принтер).Пример ввода пямоугольной матрцы (n, m) из текстового файла:FOR i:=1 TO n DOBeginFOR j:=1 TO m DOread ( ft1, Tmp[i, j] ); // считываем первую строкуreadl(ft1);// переходим на следующую строкуend;Для n=2, m=3:20 -3 0-2 -3 1Пример форматированной записи пямоугольной матрцы (n, m) втекстовый файл:FOR i:=1 TO n DOBeginFOR i:=1 TO m DOwrite (ft2, Tmp[i, j]:4, ‘,’ ); // выводим первую строкуwriteln(ft2);// переходим на следующую строкуend;Для n=2, m=3:20, -3, 0,-2, -3, 1,2021Воробьева И.А.

«Информатика. Язык Паскаль»7.3. Текстовые файлы: символы и строки. ОсобенностикодировкиПри рассмотрении символьных и строковых типов (char, string),ограничимся только так называемой кодировкой ANSI, котораясопоставляет каждому символу (его графическому изображению) – 8битные числа (коды) в диапазоне от 0 до 255. Все, что связано срасширенными кодировками, например, Юникод (Unicode), вы можетеосвоить самостоятельно, достаточно сказать, что символьные данные вкодировке Unicode (числа от 0 до 65535) поддерживаются в качествебазовых типов в ObjectPascal (Delphi).В языке Паскаль используется базовый тип char, который можетхранить один символ: ‘a’, ‘b’, ‘A’, ‘B’, ‘,’, ‘!’, ‘7’, ‘ ‘, и т.д., записанный припомощи соответствующего кода. В кодировке от 0 до 255 встречаютсяне только видимые символы, но и различные «управляющие»символы, например, такие как: «переход в начало строки», «переход нановую строку», «стирание символа» и другие, то есть все то, что выобычно вводите с клавиатуры.

Ниже приведена таблица кодировкиANSI для клавиатуры (см. замечание 7.4).Таблица 7.1. Кодировка ANSI для клавиатурыEscapeF1 F2 F3F4 F5 F6 F7 F827112 113 114115 116 117 118 119 120 121 122 123`ё1234567819249 50 51 52 53 54 55 56TabQ9Caps Lock20Shift16WERTYUI81 87 69 82 84 89 85 73ASDFG HJK65 83 68 70 71 72 74 75ZXCV B NM,<90 88 67 86 66 78 77 188Ctrl win AltSpace BarF9 F10 F11 F12PrintScreenScrollLock145Pause19/ * доп.доп.3357 48 189 187 84536106144111PageO P[]Delete End Down78 9 доп.доп. доп.79 80 219 221463510534103 104L ;ж 'эEnter45 6 доп.доп. доп.76 186 22213102100 101.> / Shift \|Up12 3 доп.доп. доп.190 191 16 220389997 98Alt win list CtrlLeft Down RightIns/0Del/.90-=+BackSpaceInsert HomePage UpNumLock+доп.107Enterдоп.13171832181737403945/9646/110…2122Воробьева И.А.

«Информатика. Язык Паскаль»Замечание 7.4. Справка «о названиях и аббревиатурах»:Одной из первых для передачи цифровой информации стало появлениекодировки ASCII - American Standard Code for Information Interchange –Американскаястандартнаякодировочнаятаблица, принятаяАмериканскимнациональныминститутомстандартовAmerican National Standards Institute (ANSI).В разных источниках, можно встретить ситуацию, когда говорят ANSIстрока или кодировка ASCII, подразумевая одно и тоже, и с точностью донаоборот.

Чтобы не возникало путаницы, надо просто понятьследующее: кодировка ASCII появилась еще тогда, когда существовалатолько система DOS и была ориентирована на латинский алфавит. Всепоследующие кодировки могут отличаться и зависеть от следующего: операционной системы (DOS, WIN, MAC); национального языка (кроме общепринятых латинских букв иуправляющих символов, которые всегда расположены вначальных кодах, например, от 0 до 127 в стандарте ASCII, вкодах от 128 до 255 часто расположены национальныешрифты разных стран); размера памяти, выделенного под код (например, Unicod).Стандарт ANSI – это стандарт ASCII для системы Windows и в нем русскиебуквы расположены подряд: ‘А..Я, а..я’ – от 192 до 255.Стандарт ASCII-DOS (называться может иначе в других источниках) – этостандарт ASCII для системы DOS и в нем русский алфавит расположен сразрывом: ‘А..Я, а..п’ – от 128 до 175, ‘р..я’ – от 224 до 239.Всю таблицу ASCII-DOS можно посмотреть по адресу в интернетеhttp://ashyoxide.narod.ru/Article/Codering/Assembler/Spravochnik/keyboard.html#asciiТаблицу кодов ANSI и частично таблицу кодов ASCII-DOS (для русскихбукв) можно посмотреть в приложении 1.1 в конце лекции.

Вприложении 1.2 можно посмотреть, как написать функциюперекодировщик ANSI ASCII-DOS и прочитать, в каких случаях полезноее применять.2223Воробьева И.А. «Информатика. Язык Паскаль»…Полезные встроенные функции языка Паскаль Chr() и Ord()применительно к символьным типам: Ord(C) преобразовывает символ из С в его числовой код из таблицыANSI. Например, Ord('±') возвратит значение 177 (С – это любойперечисляемый тип в Паскале, на самом деле, т.е. назначениефункции Ord несколько шире, чем просто «обратная к функцииChr»). Chr(X: byte): char; – преобразует числовой код символа из таблицыANSI в сам символ.

Например, если взять числовой код 255, тофункция Chr (255) возвратит символ 'я'.Использовать одиночные символы для вывода целых слов илидаже предложений очень неудобно. Для этих целей существует другойбазовый тип String – статически размещаемые в памяти компьютерастроки из набора символов. При этом длина таких строк можетизменяться от 0 – пустая строка до 255 символов.Замечание 7.5.

Еще раз обратите внимание, что формат текстовогофайла как раз представляет собой набор подобных строк произвольнойдлины, но не более 255. Поэтому текстовый файл нельзя рассматриватькак непрерывный набор символов типа char. Отличие команд Read иReadln при считывании информации из текстового файла сохраняет теже особенности, что были изложены для работы с клавиатуры (лекция1, с.23) с той только разницей, что клавиша ‘ENTER’ в текстовом файлебудет выглядеть как перевод строки.2324Воробьева И.А. «Информатика.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
427
Средний доход
с одного платного файла
Обучение Подробнее