Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lection.rtf
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
400 Кб
Скачать
☆

31. Текстовые файлы, их особенности и правила работы с ними. Примеры.

В связи с тем, что данные в текстовом файле хранятся в виде строк текста, эти файлы доступны для чтения пользователя и обработки текстов редакторами. Содержимое этих файлов можно вывести на принтер. Такие файлы используются в основном для создания отчетов о результатах обработки данных.

Ярким примером текстового файла является дисплей.

var

f:text;

Процедуры работы с текстовыми файлами.

assign (f;’name’);

Чтение: reset(f);. Объявление файла f открытым для чтения. В этом случае указатель устанавливается в 0 (начало файла). При этом могут возникнуть 2 типа ошибок: 1) неверно указано имя файла; 2) отсутствие файла на данном устройстве. Файл доступен для чтения.

readln(f,<список ввода>);

assign(f,’con’);

readln(f,<список>);

readln(<>);

readln – считывает данные до заполнения списка ввода и указатель устанавливается за первым кодом конца строки.

read – заполняется список ввода, и указатель устанавливается за первым разделителем между данным.

32. Процедуры и функции. Правила их описания и обращения к ним.

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

Procedure name (p1,p2:<тип1>;p3:<тип2>;var p4,p5:<тип3>;

p1,p2…<тип3> - список формальных параметров.

<секция описания локальных имен>

begin

<исполняемая часть>

end; {name}

Вызов процедуры осуществляется указанием ее имени и списка фактических параметров.

name (Q1, Q2,Q3,Q4,Q5);

Проверка вводимых данных на корректность.

(“безопасный ввод”)

Чтобы защитить вводимые данные от ошибок оператора, осуществляется их проверка при вводе на корректность. При этом используется следующий обобщенный алгоритм.

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

Смысловые ошибки сложно выявить.

Проверка на соответствие типу.

-является ли введенная информация целым числом.

procedure ctrlint (what: string; var p:integer);

var

fl: boolean;

s: string; cod: integer;

begin

repeat

fl:=true;

write (what); readln(s);

val(s,p,cod);

if cod<>0 then

fl:=false;

until fl;

end;

Переменная fl принимает значение false (ложь), если введенные данные не корректны.

Процедура val проверяет, является ли строка S числом, при этом cod принимает значение <>0, если строка не число.

write (‘Введи N’); readln(N)

Вызов этой процедуры осуществляется следующим образом.

ctrlint(‘Введи N’;N);

-является ли введенная информация вещественным числом.

То же самое, что для целых, но параметр p будет иметь тип real.

-проверка на соответствие строки текста заданному алфавиту.

procedure ctrlalp(what:string;var p:string);

var

fl: boolean;

i:integer;

begin

repeat

fl:=true;

write (what): readln (p);

for i:=1 to lenght (p) do

if not (p[i]in [‘A’..’z’] then [‘A’..’п’, ‘p’..’я’]

fl:=false;

until fl;

end;

Задание 2 интервалов для русского алфавита связано с тем, что в кодовой таблице ASCII между символами п и р находятся не русские символы.

Чтобы добавить в проверку другие символы, нужно добавить их в перечень: [‘A’..’п’, ‘p’..’я’,’o’..’9’]

-проверка на принадлежность перечню.

if not ((p=’йогурт’) or (p=’молоко’) or (р=’сметана’) or…) then

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]