Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как исправить ошибку?(работа с файлом) 
:(
    Опции темы
logoritm
  Дата 24.12.2011, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 24.12.2011

Репутация: нет
Всего: нет



дано задание: Создать файл целых чисел. Поменять местами первую и последнюю компоненты файла. Распечатать файл до и после преобразования. файл последовательного доступа.
я записываю числа в массив и в файл:
Код

Введите числа:
1
2
3
4
5
 
вывожу содержимое массива и файла на экран, - все здорово, все правильно
 
Код

проверка - массив:
           1           2           3           4           5
 Файл до обработки:
           1
           2
           3
           4
           5

но  после этого проверяю содержимое исходного массива:
Код

проверка - массив:
           2           3           4           5           5

подскажите, как исправить smile  вот код программы:
Код

      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

PM MAIL   Вверх
FCM
Дата 25.12.2011, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.3.2009

Репутация: 8
Всего: 9



Перед некоторыми циклами стоит i=0, а затем в первой итерации обращение к mas(i) ...

Это сообщение отредактировал(а) FCM - 27.12.2011, 13:41
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




[ Время генерации скрипта: 0.0405 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.