Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
02.01.2020
Размер:
19.04 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИИ

Новосибирский государственный технический университет

ЛАБОРАТОРНАЯ РАБОТА № 3

по курсу «Информатика и программирование»

«Файловые типы. Текстовые файлы»

Факультет бизнеса

Группа: ФБИ-11

Студенты: Рыбаченко А.А., Сердюков К.Е.

Преподаватель: Забуга А.А.

Новосибирск

2012г.

Лабораторная работа. Текстовые файлы

Тема. Файловые типы.

Цель. Сформировать практические навыки работы с текстовыми файлами

Задание

Разработайте консольное приложение для редактирования файла, хранящего исходный текст модуля Delphi – файл с расширением pas.

Приложение должно обеспечить пользователя следующими функциями:

  1. Каждый раздел модуля обрамляется сверху и снизу строками комментариев

//--------------------------------------------------------------------------------------------------

unit Mod;

//--------------------------------------------------------------------------------------------------Каждый заголовок подпрограммы в разделе интерфейса обрамляется сверху и снизу строками комментариев

//--------------------------------------------------------------------------------------------------

function T:integer;

//--------------------------------------------------------------------------------------------------Каждая подпрограмма в разделе реализации обрамляется сверху и снизу строками комментариев

//--------------------------------------------------------------------------------------------------

function T:integer;

begin

end;

//--------------------------------------------------------------------------------------------------

  1. Перед заголовком файла вставить комментарии (верхний колонтитул), содержащий:

  • фамилия, имя, отчество, исполнителя,

  • дата сдачи задания.

  1. В конец файла вставить комментарии (нижний колонтитул), содержащий:

  • фамилия, имя, отчество руководителя, выдавшего задание,

  • дата выдачи задания.

  1. Просмотр файла модуля.

  2. Удаление комментариев из файла модуля.

  3. Редактирование верхнего и нижнего колонтитула в файле модуля.

unit UAddTF;

//-----------------------------------------------------

interface

//-----------------------------------------------------

uses SysUtils;

//-----------------------------------------------------

procedure Show(var f: Text);

//-----------------------------------------------------

procedure AddFile(var f,t: Text);

//-----------------------------------------------------

procedure InsStart(var x:text);

//-----------------------------------------------------

procedure InsEnd(var x:text);

//-----------------------------------------------------

procedure CreateTxt(var x,y:text);

//-----------------------------------------------------

implementation

//-----------------------------------------------------

procedure Show(var f: Text);

//выводит содержимое файла на экран

var s: AnsiString;

begin

// Reset(f);

while not eof(f) do begin

readln(f,s);

writeln(s);

//readln;

end;

end;

//-----------------------------------------------------

procedure AddFile(var f,t: Text);

//соединяет файл f c t

var s: AnsiString;

begin

// Reset(t);

while not eof(t) do begin

readln(t,s);

writeln(f,s);

end;

end;

//-----------------------------------------------------

procedure InsStart(var x:text);

var s:ansistring;

begin

rewrite(x);

writeln(x,'//-----------------------------------------------------');

writeln(x,'//Выполнили: Сердюков, Рыбаченко');

s:=DateTimeToStr(Now);

delete(s,11,9);

writeln(x,'//Дата сдачи ',s);

writeln(x,'//-----------------------------------------------------');

end;

//-----------------------------------------------------

procedure InsEnd(var x:text);

begin

writeln(x,'//-----------------------------------------------------');

writeln(x,'//Руководитель: Зайцев М.Г.');

writeln(x,'//Задание выдано: 26.11.2012');

writeln(x,'//-----------------------------------------------------');

end;

//-----------------------------------------------------

procedure CreateTxt(var x,y:text);

begin

reset(x);

reset(y);

InsStart(x);

Append(x);

AddFile(x,y);

InsEnd(x);

end;

//-----------------------------------------------------

end.

//-----------------------------------------------------

program PAddTF;

{$APPTYPE CONSOLE}

uses

SysUtils,

Windows,

UAddTF in 'UAddTF.pas';

const

path = 'Unit2.txt';

path1 = 'Unit2.pas';

var f: Text; t: Text;

begin

SetConsoleCp(1251);

SetConsoleOutputCp(1251);

AssignFile(f, path);

AssignFile(t, path1);

CreateTxt(f,t);

Reset(f);

Show(f);

Close(f);

Close(t);

readln;

end.

Проверка:

Разработанное приложение должно преобразовать его в следующий текст:

//-----------------------------------------------------

// Исполнитель: Зайцев М.Г.

//Задание сдано: 18.01.2008

//-----------------------------------------------------

unit Unit2;

//-----------------------------------------------------

//-----------------------------------------------------

interface

//-----------------------------------------------------

const rows = 3; cols = 3; n = 3;

type

Index = 0..n - 1;

Mtrx = array[0..rows-1, Index] of real;

Matrix = array[Index, Index] of real;

var

b: Matrix =((1,2,3),(4,5,6),(7,8,9));

//-----------------------------------------------------

function OddSum(a: Matrix): Real;

//-----------------------------------------------------

function RDSum(a: Matrix): Real;

//-----------------------------------------------------

//-----------------------------------------------------

implementation

//-----------------------------------------------------

//-----------------------------------------------------

function RDSum(a: Matrix): Real;

//сумма элементов правой диагонали

var i: Index;

begin

Result:= 0;

for i:= Low(Index) to High(Index) do

Result:= Result + a[i,High(Index) - i + Low(Index)];

end;

//-----------------------------------------------------

function OddSum(a: Matrix): Real;

//сумма элементов с чётной суммой индексов

var i: Index; j: Index;

begin

Result:= 0;

for i:= Low(Index) to High(Index) do

for j:= Low(Index) to High(Index) do

if Odd(i + j)then Result:= Result + a[i,j];

end;

//-----------------------------------------------------

//-----------------------------------------------------

end.

//-----------------------------------------------------

//Руководитель: Зайцев М.Г.

//Задание выдано: 15.01.2008

//-----------------------------------------------------

Полученное:

//-----------------------------------------------------

//Выполнили: Сердюков, Рыбаченко

//Дата сдачи: 19.12.2012

//-----------------------------------------------------

unit Unit2;

interface

const rows = 3; cols = 3; n = 3;

type

Index = 0..n - 1;

Matrix = array[Index, Index] of real;

var

b: Matrix =((1,2,3),(4,5,6),(7,8,9));

function OddSum(a: Matrix): Real;

function RDSum(a: Matrix): Real;

implementation

function RDSum(a: Matrix): Real;

//сумма элементов правой диагонали

var i: Index;

begin

Result:= 0;

for i:= Low(Index) to High(Index) do

Result:= Result + a[i,High(Index) - i + Low(Index)];

end;

function OddSum(a: Matrix): Real;

//сумма элементов с чётной суммой индексов

var i: Index; j: Index;

begin

Result:= 0;

for i:= Low(Index) to High(Index) do

for j:= Low(Index) to High(Index) do

if Odd(i + j)then Result:= Result + a[i,j];

end;

end.

//-----------------------------------------------------

//Руководитель: Зайцев М.Г.

//Задание выдано: 26.11.2012

//-----------------------------------------------------

Соседние файлы в папке Программирование и информатика