Файл: посчитать количество чисел в файле - Pascal
Формулировка задачи:
Function cin_word(f:intfile):integer; var cnt, a: integer; begin reset(f); while not eof(f) do begin read(f, a); inc(cnt); end; end;
Ну в общем, как посчитать количество чисел в файле(file of integer), что бы выдавала такие данные, опять же к примеру:
Тестовые данные:
{file (1 5 8 8 11 11 11 17 19 25)
cnt:= 10}
Решение задачи: «Файл: посчитать количество чисел в файле»
textual
Листинг программы
Type intfile = file of integer; Var fname1, fname2, fname3 : string; f1,f2,f3 : intfile; procedure createtpfile(var f: intfile); var a, n, i: integer; begin rewrite(f); write('Введите колличество элементов файла '); read(n); a := 1; write('Вводите числа для занесения их в файл.'); for i:=1 to n do begin read(a); write(f,a); end; close(f) end; function cinword(var f: intfile): integer; begin reset(f); cinword:= FileSize(f); close(f) end; procedure bsort(n:integer; arr: array of integer); var i, j, f: integer; begin for i := 1 to n-1 do for j := 1 to n-i do if arr[j] > arr[j+1] then begin f := arr[j]; arr[j] := arr[j+1]; arr[j+1] := f; end; end; procedure association(var f1, f2, f3:intfile); var arr: array of integer; i, n, c: integer; begin n:= cinword(f1) + cinword(f2); write(n); SetLength(arr, n); i:= 0; reset(f1); while not eof(f1) do begin read(f1, arr[i]); inc(i); end; close(f1); reset(f2); while not eof(f2) do begin read(f2, arr[i]); inc(i); end; close(f2); bsort(n, arr); rewrite(f3); for c := 1 to n-1 do write(f3,arr[c]); close(f3); end; begin write('Введите имя первого файла для создания и обработки '); readln(fname1); write('Введите имя втогоро файла для создания и обработки '); readln(fname2); write('Введите имя третьего файла для записи результата '); readln(fname3); assign(f1, fname1); assign(f2, fname2); assign(f3, fname3); createtpfile(f1); createtpfile(f2); association(f1, f2, f3); end.
Объяснение кода листинга программы
- Объявляются тип
intfile
для файлов целых чисел и переменныеfname1
,fname2
,fname3
типа string для хранения имён файлов. - Объявляются переменные
f1
,f2
,f3
типаintfile
для хранения файлов. - В процедуре
createtpfile
создаётся файл и заполняется указанным количеством чисел, которые пользователь вводит в консоли. - В функции
cinword
происходит считывание количества чисел в файле. - Процедура
bsort
сортирует массив целых чисел по возрастанию. - В процедуре
association
создаётся массив, в который записываются числа из двух файлов, сортируется с использованием процедурыbsort
, и затем записывается в третий файл. - В главной программе происходит ввод имен файлов, создание файлов с помощью процедуры
createtpfile
и объединение файлов с помощью процедурыassociation
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д