Программа Fortran для чтения входного файла и определения минимальных и максимальных значений и какой строки они находятся в файле - PullRequest
0 голосов
/ 10 марта 2019

Мне нужна помощь в написании программы для чтения в файле с неизвестным количеством строк цифр и определения минимальных и максимальных значений этого файла.Входной файл форматируется как одно значение на строку.Я не уверен, как найти и сохранить максимальные и минимальные значения, а также на какой линии они находятся без встроенных функций.(Указано не использовать встроенные функции).Любая помощь будет принята с благодарностью, спасибо!

1 Ответ

1 голос
/ 10 марта 2019

Учебный ответ на входящий (не точный код):

   open(unit=122,file="path_to_file_with_extension"))
    do
     read(122,*) variab
    enddo

Этот бит кода будет читать строку за строкой навсегда (следовательно, выдавая ошибку, как только она достигнет конца файла) и присваивая то, что он читает, переменной variab . Если вы хотите остановить, когда он достигнет последней строки файла, вам нужно добавить параметр в команду чтения, в частности, параметр iostat, который принимает различные значения в зависимости от состояния команды чтения ( чтение здесь ). Это означает, что, проверяя значение iostat, вы можете проверить, достиг ли вы конца файла или нет. После этого вы можете легко выйти из цикла do с помощью оператора exit .

Что касается минимальной / максимальной части. Подумайте, что означает минимальное и максимальное значения и как вы будете выполнять проверку. Если бы это был я, и я хотел бы найти максимальное число в файле, я бы, наверное, сделал что-то подобное в моей голове:

  • "Максимальный номер файла - первый (например, 5) (почему бы и нет, верно?), И я пишу в небольшом блокноте max: 5, позиция: 1"
  • «Второе число (например, 2) больше текущего максимума (то есть первого)?»
  • «В данном случае это не так, поэтому я ничего не записываю и продолжаю»
  • "третье число (например, 16) больше текущего максимума (то есть первого)?"
  • "В моем случае это так, поэтому я пишу в блокноте, максимум: 16, позиция: 3"

Если вы продолжите в том же духе, вы найдете максимум файла и его местонахождение.

Процесс для минимального значения будет точно таким же, но проверка на меньшее число, а не на большее.

Я мог бы выдать весь код, но, увидев, насколько это просто, он говорит мне, что вы только изучаете программирование, и я думаю, что было бы лучше выяснить это самостоятельно и заполнить пробелы в моем ответе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...