Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

·  продукты, имеющиеся, по крайней мере, в одном из магазинов;

·  продукты, которых нет ни в одном из магазинов.

Указание: В разделе типов задать список объектов (продуктов), определяющий базовый тип (PRODUKT), на котором определен множественный тип ASSORT). Информацию о наличии продуктов во всех магазинах задать как массив множеств. Ввод исходной информации: (использовать вложенные циклы) во внутреннем цикле формируется множество, характеризующее наличие товаров в одном магазине (XM). По выходе из внутреннего цикла эта информация заносится в массив М. Затем строятся множества А, В, С с использованием операций над множествами (пересечения, объединения, вычитания). В конце программы вложенные циклы обеспечивают распечатку полученных множеств. При этом используется оператор CASE.

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

Ввести номера продуктов 1 магазина …

Ввести номера продуктов 2 магазина …

Ввести номера продуктов 3 магазина …

------------------------------------------------------

1. Продукты, имеющиеся одновременно во всех магазинах:

<список продуктов>

2. Ассортимент продуктов всех магазинов:

<список продуктов>

3. Продукты, которых нет ни в одном магазине:

<список продуктов>

§14. Работа с файлами

Одним из типов данных в PASCAL является файловый тип, представляющий собой последовательность однотипных компонентов, расположенных на внешнем носителе.

Поэтому файлы в Паскаль называются файлами последовательного доступа.

НЕ нашли? Не то? Что вы ищете?

В PASCAL файловые переменные используются для ввода-вывода информации.

Перед тем как осуществлять ввод-вывод, файловая переменная должна быть связана с конкретным внешним файлом с помощью процедуры ASSIGN. Затем файл должен быть открыт для чтения и/или записи. После этого можно осуществлять организацию ввода-вывода.

В PASCAL имеется 3 категории файлов, работа с которыми отличается друг от друга:

- текстовые (тип TEXT);

- типизированные (FILE OF <тип>);

- файлы без типа (FILE).

Для работы с текстовыми файлами используются файловые переменные типа text:

var inputFile:text; {f:text; файл для чтения}

outpunFile:text; {g:text; файл для записи}

Операции с файлами

Работа с любым файлом производится посредством стандартных процедур.

1. Перед использованием файла (до его обработки) выполняется процедура

ASSIGN (<имя_л>, <имя_ф>)

<имя_л> - переменная типа FILE (логическое имя файла),

<имя_ф> - полное имя файла на диске (физическое имя файла).

После выполнения этой процедуры логическое и физическое имена файла отождествляются. Дальнейшее обращение к файлу как к любому дисковому файлу.

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

а) открыть файл для чтения

RESET(<логическое имя файла>)

Указатель автоматически устанавливается в начале файла.

б) открыть файл для записи

REWRITE(<логическое имя файла>)

Создается пустой файл, указатель устанавливается в начало файла. Любой существующий файл с указанным именем будет уничтожен.

в) открыть файл для добавления данных

APPEND(<логическое имя файла>)

3. Процедуры ввода (вывода):

а) чтение из файла

READ(<логическое имя файла>,<список переменных>)

<список переменных> - имя одной или нескольких переменных (через запятую) типа

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

б) запись в файл

WRITE(<логическое имя файла>,<список переменных>)

<список переменных> - имя одной или нескольких переменных (через запятую) типа

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

4. После окончания работы с файлом он должен быть закрыт процедурой:

CLOSE(<логическое имя файла>)

По окончании этой процедуры дисковый файл, отождествленный с файловой переменной, закрывается, и в каталоге файлов, хранимых на диске, появляются соответствующие изменения.

5. Для удаления файла с диска используется процедура:

ERASE(<логическое имя файла>)

При этом дисковый файл, отождествленный с файловой переменной, уничтожается, и в каталоге файлов, хранимых на диске, появляются соответствующие изменения.

6. Хотя файлов прямого доступа не существует в Паскаль, их можно смоделировать с помощью процедуры прямого доступа к компонентам файла (для типизированных файлов и файлов без типа): SEEK(<логическое имя файла>, n)

Указатель автоматически перемещается на компоненту файла с номером n (целого типа).

7. К файловым переменным применима стандартная функция

EOF(<логическое имя файла>)

которая принимает булевское значение TRUE, если достигнут конец файла.

Пример: Во входном файле 'sort.in' записаны результаты соревнований по фигурному катанию.

Фамилии и результаты оформлены в разных строках, так как компоненты входного файла разного типа В выходном файле 'rez.out' выводятся построчно фамилии и соответствующий результат (при этом используется вывод по формату).

Самостоятельно: Вывести на экран и в выходной файл таблицу распределения мест.

Место Фамилия Результат

… … ….

Задание: Изучив операции с файлами, прокомментировать строки следующей программы

Program bin;

uses crt;

var ff: array [1..4] of string;

r: array [1..4] of real;

f, g: text;

i: integer;

s: real;

Begin

clrscr;

assign (f,'sort. in');

reset(f);

for i:=1 to 4 do

begin

readln(f, ff[i]);

readln(f,r[i]); end;

close(f);

s:=0;

for i:=1 to 4 do

begin

writeln (ff[i]:14, r[i]: 6:2);

s:=s+r[i]; end;

assign (g,'rez. out');

rewrite(g);

for i:=1 to 4 do

writeln (g,ff[i]:14, r[i]:6:2);

writeln(g,s);{вывод не по формату}

close(g);

End.

Пример 1: Создать на диске файл PR1F. pas, элементами которого являются целые числа. Подсчитать количество положительных чисел в файле.

Program primer1f;

uses crt;

var f:file of integer;

s, n,i, a,b, k:integer;

Begin

randomize;

clrscr;

write('введите число элементов в файле '); readln(n);

assign(f,'pr1f. pas');

rewrite(f); {открытие файла для записи}

for i:=1 to n do

begin

a:=-25+random(50);

write(f, a); {запись в файл}

write(a:5); {вывод на экран}

end;

close(f); {закрытие созданного файла}

writeln;

k:=0; {счетчик положительных чисел}

reset(f); {открытие файла для чтения}

while eof(f)<>true do

begin

read(f, a); {чтение из файла}

if a>0 then k:=k+1

end;

close(f);

writeln;

writeln('в файле ',k,' положительных чисел(ла)');

End.

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

Из внешнего файла с именем ABC. DAT удаляются все записи, соответствующие людям, родившимся до 1970 года. Для этого используется рабочий файл с внешним именем L. DAT, в который сначала последовательно переписываются из внешнего файла все оставляемые записи, затем внешний файл открывается на запись, рабочий файл - на чтение и все содержимое рабочего файла переписывается во внешний файл. При этом для контроля работы программы оставляемые записи выдаются на терминал. Для добавления записей в конец существующего файла необходимо также воспользоваться промежуточным файлом. Сначала скопировать все содержимое обрабатываемого файла в промежуточный файл, записать в конец добавляемые записи, затем открыть на запись обрабатываемый файл и переписать в него все содержимое промежуточного файла.

Program prim3bf;

uses crt;

type zap=record

fio:string[10];

gr:integer;

end;

fpk=file of zap;

var fizap, rb:fpk;

b:zap;

Begin

clrscr;

assign(fizap,'abc. dat');

assign(rb,'l. dat');

rewrite(fizap); {открытие на запись}

repeat

write('фамилия : '); read(b. fio);

write('год рожд.: '); readln(b. gr);

write(fizap, b);

until b. fio='*';

close(fizap);

clrscr;

reset(fizap); {открытие на чтение}

rewrite(rb);

{открытие файла на запись - для удаления записей,}

{соответствующих людям, родившимся до 1970 года }

read(fizap, b);

while b. fio<>'*' do

begin

if b. gr>=1970 then write(rb, b);

read(fizap, b);

end;

b. fio:='*'; write(rb, b);

{запись признака конца в рабочий файл}

close(rb);

{перепись из рабочего файла в обрабатываемый файл,}

{и распечатка оставшихся записей}

reset(rb);

rewrite(fizap);

repeat

read(rb, b);

writeln(b. fio:10,b. gr:6);

write(fizap, b);

until b. fio='*';

close(fizap);

erase(rb); {удаление промежуточного файла}

End.

Вопросы

Что такое файл? Как сохранить программу на диске? Как задать имя программы? Как считать программу с диска? Как организовать файл последовательного доступа? Каким образом описываются переменные файловых типов? Как осуществляется доступ к компонентам файлов? Какие операции определены над файлами? Как открыть файл? Как записать данные в файл? Как считать данные из файла? Что нужно сделать для завершения работы с файлом? Когда формируется признак конца файла? Какая функция определяет конец файла, и в каких случаях она используется?

Задания

В приведенных ниже задачах следует составить две программы:

    первая программа - для создания последовательного файла; вторая программа - для обработки данных, записанных в этом файле с помощью первой программы.

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

2) Сформировать файл “BOOK”, содержащий данные о книгах по информатике (математике, физике и т. д.) Вашей личной библиотеки (фамилия автора, название издательства, год издания). Используя сформированный файл, вывести на экран дисплея фамилии авторов и названия книг, выпущенных определенным издательством.

Подготовьте входные данные и проверьте работу программ.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21