Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа №9. Работа с файлами↑ ⇐ ПредыдущаяСтр 10 из 10 Содержание книги
Поиск на нашем сайте
Цель работы: познакомить с понятием файлового типа данных (типизированные, текстовые и нетипизированные файлы); выработать навыки работы с файловым типом данных в языке программирования Pascal. научиться считывать информацию из файлов, записывать информацию в файл; научится решать задачи с использованием файлов Общие сведения Файл представляет собой структурированный тип данных, содержащий последовательность компонентов одного типа и одной длины. Число элементов в файле (длина файла) не фиксировано. Это является основным отличием файла от массива. Файл можно представить как ленту, у которой есть начало, а конец не фиксирован. Элементы файла записываются на эту ленту последовательно, друг за другом с помощью некоторого устройства - указателя файла. При чтении или записи этот указатель перемещается к следующему элементу и делает его доступным для обработки. В каждый момент доступен для чтения или записи только тот элемент файла, на который установлен указатель. Пример Пример1. Переписать из текстового файла f в файл g строки в перевернутом виде, порядок строк д.б. обратным. Этапы решения задачи: · Будем считывать файл f построчно и перевертывая строки будем записывать их в массив, далее создадим файл и заполним его строками из массива меняя порядок строк на обратный. · Составим блок -схему программы. Содержимое самих блоков не должно вызвать больших затруднений в смысловом понимании, главное здесь это - техническая реализации на языке Паскаль, поэтому запишем реализации каждого блока на Паскале. а) "Считываем строки из файла F" assign(f,'input.dat'); reset(f); while not eof(f) do begin readln(f,st); end; б) "Переворачиваем строки и записываем их в массив" st1:=''; for i:= 1 to length(st) do st1:= st[i]+st1; m[k]:=st1; k:=k+1; в) "Записываем в файл g" assign(g,'output.dat'); rewrite(g); for i:= 1 to k do writeln(g,m[i]); 3. Программа целиком program example; var f,g:text; m:array[1..100] of string; k,i:integer; st,st1:string; begin assign(f,'input.dat'); reset(f); k:=0; while not eof(f) do begin readln(f,st); k:=k+1; st1:=''; for i:= 1 to length(st) do st1:= st[i]+st1; m[k]:=st1; end; assign(g,'output.dat'); rewrite(g); for i:= 1 to k do writeln(g,m[i]); end.Контрольные вопросы 1. Что такое файл? Какие существуют виды файлов? 2. Какими стандартными процедурами и функциями располагает Borland Pascal для работы с файлами? 3. Каково должно быть содержание программы по созданию файла и его корректировки (замена элементов, добавление элементов, удаление элементов)? 4. Каковы особенности работы с текстовыми файлами? 5. Каковы особенности работы с типизированными файлами? 6. Как подсчитать число строк в текстовом файле? Задания Работа с текстовыми файлами: 1. Даны текстовые файлы f1 и f2. Переписать с сохранением порядка следования компоненты файла f1 в файл f2, а компоненты файла f2 в файл f1. Использовать вспомогательный файл h. 2. Дан текстовый файл f. Записать в файл g компоненты файла f в обратном порядке. 3. Даны текстовые файлы f и g. Записать в файл h сначала компоненты файла f, затем - компоненты файла g с сохранением порядка. 4. Дан файл f, компоненты которого являются целыми числами. Получить в файле g все компоненты файла f: а) являющимися четными числами; б) делящиеся на 3 и не делящиеся на 7; в) являющимися точными квадратами. 5. Дан файл f, компоненты которого являются целыми числами. Получить файл g, образованный из файла f исключением повторных вхождений одного и того же числа. 6. Дан файл f, компоненты которого являются целыми числами. Никакая из компонент файла не равна нулю. Файл f содержит столько же отрицательных чисел, сколько и положительных. Используя вспомогательный файл h, переписать компоненты файла f в файл g так, чтобы в файле g: 7. Дан файл f, компоненты которого являются целыми числами. Никакая из компонент файла не равна нулю. Числа в файле идут в следующем порядке: десять положительных, десять отрицательных, десять положительных, десять отрицательных и т.д. Переписать компоненты файла f в файл g так, чтобы в файле g числа шли в следующем порядке: а) пять положительных, пять отрицательных, пять положительных, пять отрицательных и т.д.; б) двадцать положительных, двадцать отрицательных, двадцать положительных, двадцать отрицательных и т.д. (предполагается, что число компонент в файле f делится на 40). 8. Дан файл f, компоненты которого являются целыми числами. Записать в файл g наибольшее значение первых пяти компонент файла f, затем - следующих пяти компонент и т.д. Если в последней группе окажется менее пяти компонент, то последняя компонента файла g должна быть равна наибольшей из компонент файла f, образующих последнюю (неполную) группу. 9. Дан символьный файл f: а) подсчитать число вхождений в файл сочетаний 'ab'; б) определить входит ли в файл сочетание 'abcdefgh'; в) подсчитать число вхождений в файл каждой из букв 'a','b','c','d', 'e','f' и вывести результат в виде таблицы 10. Дан символьный файл f. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Удалить из файла все однобуквенные слова и лишние пробелы. Результат записать в файл g. Типизированные файлы 11. Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан файл f, содержащий сведения о багаже нескольких пассажиров. Сведения о багаже каждого пассажира представляют собой запись с двумя полями: одно поле целого типа (количество вещей) и одно - действительное (вес в килограммах). 12. Прямая на плоскости задается уравнением ax+by+c=0, где a и b одновременно не равны нулю. Будем рассматривать только прямые, для которых коэффициенты a,b,c - целые числа. Пусть f - файл, содержащий коэффициенты нескольких прямых (не менее трех). Переписать из файла f в файл g коэффициенты тех прямых, которые: 13. Условие предыдущей задачи сохраняется. Требуется получить в файле g коэффициенты всех различных прямых файла f. 14. Сведения об ученике состоят из его имени и фамилии и названия класса (года обучения и буквы), в котором он учится. Дан файл f, содержащий сведения об учениках школы: 15. Дан файл f, содержащий те же сведения об учениках, что и в предыдущей задаче, и дополнительно отметки, полученные учениками в последней четверти. 16. Сведения об автомобиле состоят из его марки, номера и фамилии владельца. Дан файл f, содержащий сведения о нескольких автомобилях. Найти: а) фамилии владельцев и номера автомобилей данной марки; б) количество автомобилей каждой марки. Найденные данные записать в файл g. 17. Дан файл f, содержащий различные даты. Каждая дата - это число, месяц и год. Найти: а) год с наименьшим номером; б) все весенние даты; в) самую позднюю дату. Найденные данные записать в файл g. 18. Дан файл f, содержащий сведения о книгах. Сведения о каждой из книг - это фамилия автора, название и год издания. 1) Найти названия книг данного автора, изданных с 1960 г. 2) Определить, имеется ли книга с названием "Информатика". Если да, то сообщить фамилию автора и год издания. Если таких книг несколько, то сообщить имеющиеся сведения обо всех книгах. 19. Дан файл f, содержащий сведения о кубиках: размер каждого кубика (длина ребра в сантиметрах), его цвет (красный, зеленый, желтый или синий) и материал (деревянный, металлический, картонный). Найти: а) количество кубиков каждого из перечисленных цветов и их суммарный объем; б) количество деревянных кубиков с ребром 3 см и количество металлических кубиков с ребром, большим 5 см. 20. Дан файл f, содержащий сведения о веществах: указывается название вещества, его удельный вес и проводимость (проводник, полупроводник, изолятор). 1) Найти удельные веса и названия всех полупроводников. 2) Выбрать данные о проводниках и упорядочить их по убыванию удельных весов. Задачи повышенной сложности 1. Написать программу для сжатия и распаковки фалов: а) текстового, б) типизированного (file of string), в) нетипизированного. 2. Дан текстовый фал, содержащий программу на языке Паскаль. Проверить эту программу на соответствие числа открывающихся и закрывающихся скобок (любых). 3. Дан нетипизированный файл. Записать фал "в обратном порядке" (с изменением порядка байтов).
|
||||
Последнее изменение этой страницы: 2016-08-06; просмотров: 646; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.34.148 (0.006 с.) |