44961 (664058), страница 3

Файл №664058 44961 (Модули, записи и файлы) 3 страница44961 (664058) страница 32016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

С каждой переменной файлового типа также связано понятие теку­щего указателя файла. Текущий указатель можно понимать как скрытую переменную (то есть переменную, неявно описанную вместе с файловой

переменной), которая обозначает ("указывает" на) некоторый конкретный элемент файла. Таким образом, можно графически так представить ин­терпретацию файла, связанного с переменной F: 0 1 2 N

Целое

Целое

Целое

. . . . .

Целое

. . .


Текущий указатель —————

Как правило, все действия с файлом (чтение из файла, запись в файл) производятся поэлементно, причем в этих действиях участвует тот эле­мент файла, который обозначается текущим указателем. В результате со­вершения операций текущий указатель может перемещаться, настраиваясь на тот или иной элемент файла. Все элементы файла считаются пронуме­рованными; начальный элемент имеет нулевой номер. Имеется возмож­ность явной установки текущего указателя на некоторый элемент файла.

Заметим, что один и тот же внешний файл в различных Turbo Pascal-программах (или даже в различных частях одной и той же программы) может интерпретироваться по-разному, например, как последовательность целых чисел, или как последовательность символов, или как последова­тельность некоторых записей, и т. д. Эта возможность очень важна и час­то используется в работе с файлами сложной структуры. Например, в процессе работы с внутренним представлением файлов баз данных (в частности, с DBF-файлами) может понадобиться интерпретировать файл по-разному в зависимости от того, какую его компоненту (заголовок или содержательную часть) мы обрабатываем.

Нужно также отметить, что все операции с файлами в языке Turbo Pascal реализованы с использованием базовых средств операционной сис­темы; в частности, понятие текущего указателя файла поддержано в MS-DOS. Однако все перемещения по файлу (как явное управление указателем, так и сдвиги при обменах) выполняются в терминах байтов. Таким образом, все аспекты, связанные с типизацией содержимого фай­лов, представляют собой системную надстройку языка Turbo Pascal.

Для выполнения некоторой операции по вводу-выводу необходимо прежде всего открыть дисковый файл (напомним, что предварительно нужно связать файловую переменную с дисковым файлом с помощью процедуры Assign). Под открытием в данном случае понимается подготов­ка к обмену с файлом со стороны программы, заключающаяся прежде всего в поиске файла на внешнем носителе, установке его текущего указа­теля на определенный (как правило, нулевой элемент) и формировании буфера в оперативной памяти, посредством которого будут производиться обмены.

Обычные типизированные файлы открываются с помощью одной из двух системных процедур - Reset или Rewrite, единственным параметром

которых в данном случае является файловая переменная. Обе эти проце­дуры открывают файл для обмена. Разница между ними заключается в начальных действиях с файлом.

Процедура Reset предполагает, что открываемый дисковый файл уже существует, в противном случае возникает ошибка. Процедура Rewrite допускает, что открываемый файл может еще не существовать; в этом случае она создаст заданный файл. Если же файл существует, то Rewrite очищает его. Повторим, что в обоих случаях текущий указатель файла устанавливается на его нулевой элемент. Следует иметь в виду, что обе операции допускают в дальнейшем как чтение из файла, так и запись в него (это будет обсуждаться в следующем разделе).

Разумеется, две введенные процедуры носят в основном подготови­тельный характер, однако можно указать практически важные случаи их вполне самостоятельного использования. Так, процедура Rewrite может применяться для стирания содержимого файла без его удаления с диска или для создания нового файла.

Процедура close завершает действия с файлом, который указывается в качестве ее единственного параметра. При этом буфер, образованный при открытии файла, ликвидируется. После этого файловую переменную можно связать посредством процедуры Assign с каким-либо другим дис­ковым файлом. Заметим, что при окончании работы всей программы происходит автоматическое закрытие всех файлов, открытых в программе. Однако хорошим правилом является явное закрытие файлов процедурой close после окончания работы с ними.

Помимо закрывающей процедуры close, в системе Turbo Pascal также имеется дополнительная процедура Flush (ее параметр - файловая пере­менная). Flush используется для завершения обменов с файлом без его закрытия. Обмены с файлами всегда реализуются через некоторый буфер в оперативной памяти, поэтому в процессе записи на файл последние записываемые элементы могут еще находиться ("застрять") в буфере. Процедура Flush вызывает принудительный сброс этих элементов в файл. Эта процедура имеет смысл в том случае, если с файлом проводились операции записи, и используется редко, так как процедура close произ­водит такие же действия.

Глава 8. Алгоритм второй части курсовика

В файле содержаться справочные сведенья о предприятиях-задолжниках по уплате налогов

ИНН

Наименование предприятия

Средство на начало года

Начислено налогов в отчет. период

Уплачено налогов в отч. Период

……...

…………..

………………

…………….

………………

…………..

……...

…………..

………………

…………….

………………

…………..

Сведенья на конец отчетного периода

…………………..

……………….

……………

………………

………….

…………………..

……………….

…………….

……………..

………….

Тип полей:

№ - тип INTEGER[3]

ИНН – тип STRING[12]

Наименование

Предприятия – тип STRING[20]

Остальные поля – INTEGER

Разработать алгоритм и программу для обработки файла согласно варианту задания

Вариант №26

Выдать информацию о предприятиях, которые не начисляют налоги в отчетном периоде.

Сведенья выдать в виде таблицы с соответствующим заголовком.

НАПРИМЕР :

СВЕДЕНЬЯ О ЗАДОЛЖНИКАХ > 20 тыс.

Глава 8. Алгоритм второй части курсовикаботы



i:= 0

max:=0






















WITH x1[i]










Глава 9. Основная программа

program part2;

uses crt;

type table = record

n : integer ;

inn : string[12];

Name : string[20];

Sng : integer;

Nop : integer;

Uop : integer;

Skop : integer;

End;

Var

f : file of table;

x : table;

begin

clrscr;

window(45,2,75,7);

textcolor (5) ;

writeln (‘Курсовая работа по информатике ’) ;

writeln (‘Факультет АЭС группа А-92 ’) ;

writeln (‘студента: Грязина Д.’) ;

window (1, 1, 80, 25) ;

gotoxy (30, 5) ;

writeln (‘Часть 2’) ;

window(10, 8, 80, 20) ;

writeln (‘В файле table.txt содержатся справочные сведения’) ;

writeln (‘о предприятиях-задолжниках по уплате налогов ’) ;

writeln ;

writeln (‘Задание’) ;

writeln (‘Выдавать полные сведения о предприятиях, которые не ’) ;

writeln (‘начисляли налоги в отчетный период.’) ;

window(1, 1, 80, 25);

gotoxy(10, 24);

textcolor (4 + blink);

writeln (‘Для продолжения нажмите Enter ’) ;

readln ;

textcolor (10) ;

clrscr ;

assign (f, table.txt) ;

reset (f) ;

writeln (‘Cведения о предприятиях, которые не начисляли ’) ;

writeln (‘налоги в отчетный период ’) ;

writeln (‘+----------------------------------+’) ;

writeln (‘| № | ИНН | Наименование | 1 | 2 | 3 | 4 |’) ;

writeln (‘ | ---+----------+----------------+----+----+----+-----| ’) ;

while not Eof(f) do

begin

read (f, x) ;

with x do

if Nop = 0 then

begin

writeln (‘| ‘№ : 3’ | ‘,Inn : 12,’ | ’,Name : 20,’ | ’ ,Sng :4,’ | ’,Nop : 4,’ | ’,Uop : 4,’|’ ) ;

writeln (Skop : 4, ‘ | ’) ;

end;

end;

writeln (‘+-----------------------------------------------------------------------+’) ;

writeln ;

writeln (‘1- Сведения на начало года ’) ;

writeln (‘2 – Начислено налогов в отчетный период ’) ;

writeln (‘3 – Уплачено налогов в отчетный прериод ’) ;

writeln (‘4 – Сведения на конец отчетного преиода ’) ;

writeln ;

readln ;

end.

Глава 10. Результаты второй части курсовикаботы

Сведения о предприятиях которые не начисляли

налоги в отчетный период.

+-----------------------------------------------------------------------+

¦ № ¦ ИНН ¦ Наименование ¦ 1 ¦ 2 ¦ 3 ¦ 4 ¦

¦-----+-----------------+------------------------+----+----+----+-----¦

¦ 3 ¦ 54090903618 ¦ Детский сад №275¦ -8 ¦ 0 ¦ 8 ¦ 0 ¦

¦ 10 ¦ 54091032618 ¦ Школа №25 ¦ -7 ¦ 0 ¦ 7 ¦ 0 ¦

+------------------------------------------------------------------------+

1 - Сведения на начало года

2 - Начислено налогов в отчетный период

3 - Уплачено налогов в отчетный период

4 - Сведения на конец отчетного периода

Заключение

Полученный мною практический опыт применительно к программированию на ПАСКАЛЕ позволяет использовать эффективное модульное программирование. Кроме того, изучив представленный в курсовом проектировании материал, я приобрел практические навыки использования процедур, функций. Наряду с этим я научился правильно использовать файловые функции операционной системы MS-DOS, что является одним из основных вопросов программирования.

Список использованных источников:

Фаронов В. В., Турбо Паскаль 7.0., Учебное пособие. – М.: «Нолидж», 1999.

Бляшкин И. И. Буров А. А. Новые возможности Турбо Паскаля 6.0. – СПб.: Издательство «Макет»,1992.

Фаронов Н.Н. Програмирование на персональных ЭВМ в среде Турбопаскаль. – М.: Издательство МГТУ, 1990.

37

Характеристики

Тип файла
Документ
Размер
432 Kb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

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