Примеры фрагментов программ ввода вывода с текстовыми файлами на языках Qbasic, TurboPascal

Вид материалаДокументы

Содержание


PRINT "Введите номер входного и выходного файлов (11,12 или 13) в F$" INPUT "F$ = "; F
REM Файл File1$ открывается для ввода как файл #1 Open
Input #1, x1, х2, хз input
Print "d = "; d print
REM Файл File2$ открывается для вывода (создаётся) как файл #2 OPEN
Подобный материал:
Примеры фрагментов программ ввода - вывода с текстовыми файлами на языках Qbasic, TurboPascal

Входные и выходные файлы - текстовые файлы testYX.txt, resultYX.txt соответственно. Y - номер задачи (1,2, 3), X - номер теста (1,2,3,...). Например, для задачи 1 при использовании данных из теста 3 входной и выходной файлы будут иметь обозначения, соответственно, test13.txt и result13.

Пусть входной файл состоит из трёх строк: первая строка - три целых числа XI, Х2, ХЗ, разделённые пробелами. Две другие строки - символьные строки Y1, Y2. А выходной файл содержит значение переменной D, равной среднему арифметическому чисел XI, Х2 и ХЗ и значение Y- результат сложения строк Y1 и Y2. Значения переменных выводится для контроля на экран. Входной и выходной файлы находятся в личном каталоге C:\Olim2006\Petrov\.


Qbasic

Входные файлы создаются в любом текстовом редакторе для DOS. Целые числа в строке разделены пробелами. Каждое строковое значение занимает в файле отдельную строку.

CLS

REM Общий номер входного и выходного файлов вводится в строковую переменную F$

PRINT "Введите номер входного и выходного файлов (11,12 или 13) в F$"

INPUT "F$ = "; F$

REM Формирование обозначений входного и выходного файлов в переменных File1$

и File2$.

File1$ = "C:\01im2006\Petrov\test" + F$ + ".txt"

File2$ = "C:\Olira2006\Petrov\result" + F$ +".txt"

REM Файл File1$ открывается для ввода как файл #1

Open File1$ FOR INPUT AS #1

REM Три числа из первой строки файла #1 вводятся в переменные X1, Х2, ХЗ

REM Две следующие строки из файла вводятся в переменные Y1$, Y2S

REM Каждый оператор INPUT #1, <Список ввода> вводит из файла одну строку в

переменные, указанные в <Списке ввода>

INPUT #1, X1, Х2, ХЗ

INPUT #1, Y1$

INPUT #1, Y2$

REM Файл #1 закрывается

CLOSE #1

D=(Xl+X2+X3)/3

Y$= Y1$+Y2$

REM Вывод результатов для контроля на экран

PRINT "X1 = "; X1;" Х2 = ";Х2; " ХЗ = ";ХЗ

PRINT "D = "; D

PRINT "Y1$ = "; Y1$

PRINT "Y2$ = "; Y2$

PRINT "Y$ = "; Y$

REM Вывод результатов ввода в выходной файл в том же формате, что и во входном

файле

REM Файл File2$ открывается для вывода (создаётся) как файл #2

OPEN File2$ FOR OUTPUT AS #2

REM Каждый оператор PRINT #2, <Список вывода> выводит в файл одну строку.

PRINT #2, D

PRINT #2, Y$

REM Выходной файл #2 закрывается

CLOSE #2


TurboPascal 7.0 (Borland Pascal 7.0)

Входные файлы создаются в любом текстовом редакторе для DOS. Целые числа в строке разделены прс Каждое строковое значение занимает в файле отдельную строку.

Program in_out;

{Для ввода и вывода данных из файлов введены переменные file_in и

File_out типа text}

var file_in, file_out: text;

yl,y2,y,filel, file2, f: string;

xl,x2,x3: integer;

d:real;

begin

write('Введите номер входного и выходного файлов: ');

readln(f);

{Формирование обозначений входного и выходного файлов в переменных}

{file1 и file2: C:\Olim2006\Petrov\testYX.txt и C:\Olim2006\Petrov\resultY,

где YX = f}

file1:= 'C:\01im2006\Petrov\test'+f+'.txt';

file2:= 'C:\Olim2006\Petrov\rezult'+f+'.txt’;

{Файловым переменным file_in и file_out ставятся в соответствие обозначения}

{входного и выходного файлов из переменных file1 и file2}

assign(file_in, file1);

assign(file_out, file2);

{Входной файл открывается. Указатель строк ставится на первую строку}

reset(file_in);

{оператор вида readln(file_in, z) читает из входного файла file_in в

переменную z}

{Ввод текстовых строк из входного файла file__in}

readln(file_in,xl,x2,xЗ); readln(file_in,yl); readln(file_in,y2);

{Входной файл закрывается}

close(file_in);

{Открывается файл, соответствующий переменной file_out типа text}

rewrite(file_out);

d:=(xl+x2+x37/3;

y:=yl+y2;

writeln(d);

writeln(y);

{оператор вида writeln(file_out, z) запись значения переменной z в файл

file_out}

writeln{file_out, d);

writeln(file_out, y);

{Закрытие выходного файла}

close(file_out);

end.

Вариант с переопределением стандартных потоков ввода-вывода

Program in_out2;

uses crt;

var

yl, y2, у, filel,file2,f: string;

xl,x2,x3: integer;

d:real;

begin

clrscr;

write('Введите номер входного и выходного файлов: ');

readln(f);

file1:= 'C:\Olim2006\Petrov\test'+f+'.txt' ;

file2:= 'C:\Olim2006\Petrov\rezult'+f+'.txt' ;

assign(input,file1); {если '', то чтение с клавиатуры}

assign(output,file2); {если '', то запись на монитор}

reset(input);

rewrite(output) ;

readln(xl, x2,xЗ); readln(y1); readln(y2);

d:=(xl+x2+x3)/3;

y: =y1 + y2;

writeln(d);

writeln(y) ;

close(input);

close(output);

End.