дано задание: Создать файл целых чисел. Поменять местами первую и последнюю компоненты файла. Распечатать файл до и после преобразования. файл последовательного доступа. я записываю числа в массив и в файл: вывожу содержимое массива и файла на экран, - все здорово, все правильно | Код | проверка - массив: 1 2 3 4 5 Файл до обработки: 1 2 3 4 5
|
но после этого проверяю содержимое исходного массива:
| Код | проверка - массив: 2 3 4 5 5
|
подскажите, как исправить вот код программы:
| Код | program FINOUT integer N, i, UNIT, temp parameter (UNIT = 1, N = 5) integer, dimension(N) :: mas open(UNIT, file='Lab3.txt', access = 'sequential') print*,'Введите числа:' do i = 1, N read*, mas(i) write(UNIT,*)(mas(i)) end do close(UNIT)
print*,'проверка - массив:' write (*,*)(mas(i),i = 1,N) print*,'Файл до обработки:' i = 0 open(UNIT, file='Lab3.txt',status = 'old',access = 'sequential') do read(UNIT, *, iostat = IOS) mas(i) if(IOS .ne. 0) exit ! попытка чтения за "концом файла" print *,mas(i) i = i + 1 enddo rewind UNIT close(UNIT)
print*,'проверка - массив:' write (*,*)(mas(i),i = 1,N)
c обмен первой и последней компоненты: print*,'mas(1)= ',mas(1) temp = mas(1) mas(1) = mas(N) mas(N) = temp
c запись в файл измененного массива: open(UNIT, file='Lab3.txt', access = 'sequential') do i = 1, N write(UNIT,*)(mas(i)) end do close(UNIT)
c вывод файла после обработки print*,'Файл после обработки:' i = 0 open(UNIT, file='Lab3.txt') do read(UNIT, *, iostat = IOS) mas(i) if(IOS .ne. 0) exit ! попытка чтения за "концом файла" print *,mas(i) i = i + 1 enddo close(UNIT) end
|
|