МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ДОНСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Колледж экономики, управления и права
Методические рекомендации
Для УЧЕБНОЙ практиКИ студентов
По дисциплине «Основы алгоритмизации и программирования»
Специальность
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ И АВТОМАТИЗИРОВАННЫХ СИСТЕМ
Автор-составитель Шинакова С.В.
Ростов-на-Дону 2011
Рассмотрены на заседании Ц(П)К специальности 230105.51 Программное обеспечение вычислительной техники и автоматизированных систем
«07» апреля 2011 г. Протокол № 8
Председатель Ц(П)К _____________ Шинакова С.В.
Практическая работа №7
Работа с файлами
Цель работы
Научиться принципам работы с файлами в языке программирования Pascal.
Задачи работы
Изучить приемы решения задач с использованием файлов.
|
|
Порядок выполнения работы
3.1 В среде программирования Turbo Pascal или Pascal ABC составить и отладить программу решения задач (см. Приложение А, Б).
3.2 Провести анализ результатов работы программы.
3.3 Составить отчет о проделанной работе.
Отчет о проделанной работе должен содержать
- название и цель работы;
- номер и условие своего варианта;
- текст программы;
- полученные результаты;
- ответы на контрольные вопросы пункта 6 в соответствии с указаниями преподавателя.
Теоретические положения
Стандартные процедуры и функции для обработки файлов
Под файлом понимается либо именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, электронного «виртуального» диска), либо логическое устройство - потенциальный источник или приемник информации.
В зависимости от способа объявления можно выделить три вида файлов:
- типизированные файлы (задаются предложением FILE OF...);
- текстовые файлы (определяются типом TEXT);
- нетипизированные файлы (определяются типом FILE).
Пример:
var f: file of integer; {типизированный файл}
f2: text; {текстовый файл}
f3; file; {нетипизированный файл}
begin
…
end.
1. Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре ASSIGN:
ASSIGN (<ф.п.>, <имя файла или л.у.>);
Здесь <ф.п.> - файловая переменная (правильный идентификатор, объявленный в программе как переменная файлового типа);
<имя файла или л.у.> - текстовое выражение, содержащее имя файла или логическое устройство.
begin
assign(f1,’file1.text’);
…;
end.
В результате работы предложенной выше программы переменной st будет присвоено значение ’abc’.
|
|
Допускается сравнение строковых переменных. Операции отношений =, <>, >, <, >=,<= выполняются над двумя строками посимвольно, слева направо, с учетом внутренней кодировки символов.
Примеры сравнения строковых переменных с результатом «Истина»:
‘A’ < ‘B’
‘Turbo Pascal’ > ‘Turbo’
‘2’ > ’1’
Процедуры и функции по работе со строками
Действия над строками реализуются в Turbo Pascal с помощью следующих встроенных процедур и функций.
5.2.1 Функция Concat(S1[,S2,…,SN]): string – сцепляет (объединяет) строки S1, S2,…, SN. Параметры, указанные в квадратных скобках, не являются обязательными.
Пример использования функции:
program pr3;
var
S: string;
begin
S:= Concat('ABC', 'D');
writeln(S); {ABCD}
end.
Здесь и далее (в примерах использования строковых операторов) в фигурных скобках приводится выводимый на экран результат работы программы.
5.2.2 Функция Copy(S: string; Index, Count: integer): string – копирует из строки S количество Count символов, начиная с символа с номером Index.
Пример:
program pr4;
var S: string;
begin
S:= 'ABCDEF';
S:= Copy(S, 2, 3);
writeln(S); {BCD}
end.
5.2.3 Функция Length(S: string):byte – определяет длину строки S.
Пример использования функции:
program pr5;
var
S: string;
begin
s:='ABCD';
Writeln(Length(S)); {4}
end.
5.2.4 Функция Pos(SubS, S: string):byte – отыскивает в строке S первое вхождение подстроки SubS и определяет номер позиции, с которой она начинается. Если подстрока не найдена, то выдается 0.
Например:
program pr6;
var S: string;
begin
S:= ' 123.5';
{Замена всех пробелов нулями}
while Pos(' ', S) > 0 do
S[Pos(' ', S)]:= '0';
writeln(S); {000123.5}
end.
5.2.5 Функция UpCase(C: char):char – преобразует строчную латинскую букву в прописную. Любые другие символы возвращаются без преобразования.
Пример:
program pr7;
var
s: string;
begin
s:='red';
s[1]:= UpCase(s[1]);
writeln(s); {Red}
end.
5.2.6 Процедура Delete(var S: string; Index, Count: integer) – удаляет количество Count символов из строки S, начиная с символа с номером Index.
Пример использования процедуры:
program pr8;
var
s: string;
begin
s:= 'Иванов Петр';
Delete(s,8,4);
writeln(s); {Иванов}
end.
5.2.7 Процедура Insert(SubS: string; var S: string; Index: integer) – вставляет подстроку SubS в строку S, начиная с символа с номером Index.
Пример:
program pr9;
var
S: string;
begin
S:= 'Петр Иванов';
Insert('Петрович ', S, 6);
writeln(S); {Петр Петрович Иванов}
end.
5.2.8 Процедура Str(X [:Width [:Decimals]]; Var S: string) – преобразует число Х в строку символов S. Параметры Width и Decimals задают формат преобразования (общую ширину поля и количество символов в дробной части соответственно).
Пример:
program pr10;
var
S: string[12];
begin
Str(5461, S);
writeln('Результат: '+S+' балл'); {Результат: 5461 балл}
end.
5.2.9 Процедура Val(S: String; var X; var Code: integer) – преобразует строковое значение S в его численное представление X типа Real или Integer. Параметр Code содержит признак ошибки преобразования (0 – нет ошибки), например:
program pr11;
var I, Code: Integer;
S:string;
begin
S:='7908';
Val(S, I, Code);
writeln(I,' ',Code); {7908 0}
end.