4.2. Файловый ввод-вывод данных.
Исходные данные необходимо вводить из файла. Это осуществляется следующим путём (см. табл. 5):
Таблица 5.
Оператор |
Описание |
OPEN «Ish.inp» FOR INPUT AS #1 |
Открытие файла для ввода данных |
FOR i = 0 TO 4 |
Начало цикла с известным числом повторений |
INPUT #1, alfa(I) |
Ввод значений содержания полезного компонента |
NEXT i |
Конец цикла |
CLOSE |
Закрытие файла |
Вывод данных осуществляется на экран, а так же в файл (см. табл. 6).
Таблица 6.
Оператор |
Описание |
OPEN "Rez.out" FOR OUTPUT AS #1 |
Открытие файла для вывода |
PRINT #1, "Матрица А Столбец B" |
Вывод заголовка |
FOR i = 1 TO n |
Начало цикла по i |
FOR j = 1 TO n |
Начало цикла по j |
PRINT #1,USING "##.###"; a(i,j); |
Вывод a(i, j) |
NEXT j |
Конец цикла по j |
|
Вывод разделителя |
PRINT #1, USING "##.###"; b(i) |
Вывод b(i) |
NEXT i |
Конец цикла по i |
Так как у нас в программе используется ввод данных из файла, то перед написанием программы создаем файл, содержащий исходные данные. Назовём этот файл Ish.inp и сохраним его в том же каталоге, где будет далее находиться программа (сделаем это для того, чтобы при вызове файла на открытие не прописывать полный путь к файлу, тем самым, обеспечивая мобильность данной программы).
Файл Ish.inp будет выглядеть так, как на рисунке 8.
0.224 0.046 0.374 0.324 0.874
Рис. 8. Содержимое файла Ish.inp.
4.3. Соответствие между блок-схемой и программой.
Программа, обеспечивающая выполнение алгоритма полностью соответствует приведенным выше пунктам блок-схеме.
4.4. Программный код.
Программа, обеспечивающая выполнение выше указанного алгоритма, представлена на рисунке 9.
'Румянцув А. В. Группа ОП-01
'Курсовая работа по информатике. Вариант 16.
'Задача 2. Долевые выходы продуктов на примере двух стадиальной схемы обогащения.
'Исходные данные:
' a() - массив, содержащий коэффициенты при неизвестных
' b() - массив, содержащий столбец свободных членов
' alfa() - массив, содержащий заданные содержания полезного компонента
'Результаты:
' x() - массив, содержащий расчетные долевые выходы продуктов
'Объявление подпрограммы
DECLARE SUB gauss (a() AS SINGLE, b() AS SINGLE, n AS INTEGER, x() AS SINGLE)
'Описание переменных
DIM alfa(5) AS SINGLE, a(4, 4) AS SINGLE, b(4) AS SINGLE, x(4) AS SINGLE
DIM i AS INTEGER, k AS INTEGER, n AS INTEGER, n1 AS INTEGER, m AS INTEGER
DIM j AS INTEGER, j1 AS INTEGER, s AS SINGLE
CLS
n = 4 'Порядок матрицы
'Ввод заданных содержаний полезного компонента
OPEN "Ish.inp" FOR INPUT AS #1
FOR i = 0 TO n
INPUT #1, alfa(i)
NEXT i
CLOSE #1
'Формирование массивов содержащих коэффициенты при неизвестных
'и свободные члены системы линейных алгебраических уравнений
a(1, 1) = 1: a(1, 2) = 0: a(1, 3) = 1: a(1, 4) = 1: b(1) = 1
a(2, 1) = 1: a(2, 2) = 1: a(2, 3) = 0: a(2, 4) = 0: b(2) = 1
a(3, 1) = alfa(1): a(3, 2) = 0: a(3, 3) = alfa(3): a(3, 4) = alfa(4): b(3) = alfa(0)
a(4, 1) = alfa(1): a(4, 2) = alfa(2): a(4, 3) = 0: a(4, 4) = 0: b(4) = alfa(0)
'Вывод исходной расширенной матрицы
OPEN "Rez.out" FOR OUTPUT AS #1
PRINT " Матрица коэффициентов Столбец свободных членов"
PRINT #1, " Матрица коэффициентов Столбец свободных членов"
FOR i = 1 TO n
FOR j = 1 TO n
PRINT USING " ##.###"; a(i, j);
PRINT #1, USING " ##.###"; a(i, j);
NEXT j
PRINT USING " ##.###"; b(i)
PRINT #1, USING " ##.###"; b(i)
NEXT i
'Вызов подпрограммы реализующей метод Гаусса
CALL gauss(a(), b(), n, x())
'Вывод результатов
PRINT " Долевые выходы продуктов (gamma):"
PRINT #1, " Долевые выходы продуктов (gamma):"
FOR i = 1 TO n
PRINT USING " ##.### "; x(i);
PRINT #1, USING " ##.### "; x(i);
NEXT i
CLOSE #1
END
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.