И опять файл - Turbo Pascal
Формулировка задачи:
Все отрицательные элементы целочисленного файла перенести в начало файла.
Добавлю от себя, файл может быть .txt и не важно как главное чтобы он отрицательные цифры переносил в начало
Решение задачи: «И опять файл»
textual
Листинг программы
var f:text; a:array[1..1000]of integer; n,i,k,j,x:integer; begin assign(f,'input.txt'); reset(f); n:=0; while not eof(f) do begin inc(n); read(f,a[n]) end; k:=0; for i:=1 to n do if a[i]<0 then begin k:=k+1; x:=a[i]; for j:=i downto k+1 do a[j]:=a[j-1]; a[k]:=x; end; rewrite(f); for i:=1 to n do write(f,a[i]:4); close(f); write('Отрицательные числа в файле переставлены вперед'); readln end.
Объяснение кода листинга программы
- Переменная
f
инициализируется как файл, который будет использоваться для чтения и записи данных. - Переменная
a
инициализируется как массив целых чисел, который будет использоваться для хранения чисел, прочитанных из файла. - Переменные
n
,i
,k
,j
иx
инициализируются как переменные, которые будут использоваться для обработки данных. - Цикл
while
начинается, который будет выполняться до тех пор, пока не будет достигнут конец файла. - Внутри цикла
while
переменнаяn
увеличивается на единицу, а переменнаяa[n]
читается из файла. - Если значение
a[i]
меньше нуля, то переменнаяk
увеличивается на единицу, переменнаяx
присваивается значениюa[i]
, а все значения в массивеa
отi
доk+1
перезаписываются значениями из предыдущего диапазона. - После завершения цикла
while
файл перезаписывается, и все числа в массивеa
записываются в файл. - Выводится сообщение
Отрицательные числа в файле переставлены вперед
. - Программа завершается, ожидая ввода пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д