Циклический сдвиг вправо в типизированном файле (процедура) - Pascal
Формулировка задачи:
Необходимо сделать циклический сдвиг вправо в типизированном файле, не могу это реализовать.
Сдвиг подразумевает это
Ya
On
Tot
tu
Если введи 1, то необходимо поменять местами первый и последний элемент.
Решение задачи: «Циклический сдвиг вправо в типизированном файле (процедура)»
textual
Листинг программы
const n=10; type mas=array [1..n] of integer; ifile=file of integer; var x:mas; q,i:integer; f:ifile; procedure ShiftFileRight(var f:ifile; m:integer); var q,j,p,i:integer; begin reset(f); for i:=1 to m do begin seek(f,filesize(f)-1); read(f,p); for j:=n-1 downto 1 do begin seek(f,j-1); read(f,q); seek(f,j); write(f,q); end; seek(f,0); write(f,p); end; close(f); end; begin randomize; for i:=1 to n do begin x[i]:=random(100); write(x[i]:4); end; writeln; assign(f,'n.dat'); rewrite(f); for i:=1 to n do write(f,x[i]); close(f); ShiftFileRight(f,1); reset(f); while not eof(f) do begin read(f,q); write(q:4); end; close(f); readln; end.
Объяснение кода листинга программы
- Объявлены константы и типы данных:
- Константа n равна 10, что задает размер массива.
- Тип данных mas определен как массив длины n, содержащий целочисленные значения.
- Тип данных ifile определен как файл, содержащий целочисленные значения.
- В основной части программы объявлены переменные:
- x - массив mas, инициализированный случайными значениями от 0 до 99.
- q и i - целочисленные переменные, используемые в цикле.
- f - переменная типа ifile, которая будет использоваться для чтения и записи данных в файл.
- Определена процедура ShiftFileRight:
- Переменные q, j, p и i используются внутри цикла.
- Файл f открывается для чтения и записи.
- Цикл выполняется m раз, где m - количество смещений.
- Внутренний цикл выполняет циклический сдвиг элементов файла вправо.
- Внешний цикл закрывает файл после выполнения всех смещений.
- В основной части программы выполняются следующие действия:
- Файл f открывается для записи.
- Массив x заполняется случайными значениями.
- Файл f записывается массив x.
- Вызывается процедура ShiftFileRight с аргументом f и m=1, что вызывает однократный сдвиг элементов файла вправо.
- Файл f открывается для чтения.
- Пока файл не пуст, читается его содержимое и выводится на экран.
- Файл закрывается.
- Программа завершается чтением символа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д