Модули, записи и файлы
системных
процедур - 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 тыс.
Глава 9. Алгоритм второй части курсовой работы
Глава 10. Основная программа
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.
Глава 11. Результаты второй части курсовой работы
Сведения о предприятиях которые не начисляли
налоги в отчетный период.
+-----------------------------------------------------------------------+
¦ № ¦ ИНН ¦ Наименование ¦ 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.
-----------------------
начало
i:= 0
max:=0
Вывод упорядоченных сведений
Данные о студенте и о программе
конец
f,’table.txt’
’
Открыть f
Заголовок
not eof(f)
f,x
Not Eof(f)
Max:=sng
N1:=i
Read(f,x)
WITH x1[i]
Sng>0
I:=i+1
B[i]:=x
Sng>max
Вход
randomize
I= 1,n
J =1,n
a[i,j]:=random*2-1;
Конец
Вход
a[i,j]:6:2
Вход
I= 1,n
J =1,n
Конец
C[i] = 1
I =1,n
J = 1,n
C[i] = a[i,j]*c[i]
Конец
Вход
M = -2
I = 1,n
C[i] > m
M =C[1]
MAX
| | скачать работу |
Модули, записи и файлы |