Программирование и информатика / Отчет №3
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИИ
Новосибирский государственный технический университет
ЛАБОРАТОРНАЯ РАБОТА № 3
по курсу «Информатика и программирование»
«Файловые типы. Текстовые файлы»
Факультет бизнеса
Группа: ФБИ-11
Студенты: Рыбаченко А.А., Сердюков К.Е.
Преподаватель: Забуга А.А.
Новосибирск
2012г.
Лабораторная работа. Текстовые файлы
Тема. Файловые типы.
Цель. Сформировать практические навыки работы с текстовыми файлами
Задание
Разработайте консольное приложение для редактирования файла, хранящего исходный текст модуля Delphi – файл с расширением pas.
Приложение должно обеспечить пользователя следующими функциями:
-
Каждый раздел модуля обрамляется сверху и снизу строками комментариев
//--------------------------------------------------------------------------------------------------
unit Mod;
//--------------------------------------------------------------------------------------------------Каждый заголовок подпрограммы в разделе интерфейса обрамляется сверху и снизу строками комментариев
//--------------------------------------------------------------------------------------------------
function T:integer;
//--------------------------------------------------------------------------------------------------Каждая подпрограмма в разделе реализации обрамляется сверху и снизу строками комментариев
//--------------------------------------------------------------------------------------------------
function T:integer;
begin
end;
//--------------------------------------------------------------------------------------------------
-
Перед заголовком файла вставить комментарии (верхний колонтитул), содержащий:
-
фамилия, имя, отчество, исполнителя,
-
дата сдачи задания.
-
В конец файла вставить комментарии (нижний колонтитул), содержащий:
-
фамилия, имя, отчество руководителя, выдавшего задание,
-
дата выдачи задания.
-
Просмотр файла модуля.
-
Удаление комментариев из файла модуля.
-
Редактирование верхнего и нижнего колонтитула в файле модуля.
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 //----------------------------------------------------- |