Примеры фрагментов программ ввода вывода с текстовыми файлами на языках Qbasic, TurboPascal
Вид материала | Документы |
- 1scsi (Small Computer System Interface), 197.4kb.
- 2. Порты ввода/вывода, 253.14kb.
- Лекция Мультиплексирование ввода/вывода и асинхронный ввод/вывод, 220.73kb.
- Лекция № " Модули сравнения-фиксации", 116.56kb.
- Лекция Растровое и векторное изображение. Понятие конвейеров ввода и вывода графической, 251.93kb.
- Лекция 5 Тема: Программное обеспечение средств вычислительной техники Классификация, 237.53kb.
- Контрольная работа (приложение работает правильно) 20 баллов. Опрос на лекциях 1 балл,, 34.71kb.
- 1. Технологии работы с графической информацией. Растровая и векторная графика. Аппаратные, 388.94kb.
- Устройства ввода информации Устройствами ввода, 26.92kb.
- Ввода-вывода, 437.08kb.
Примеры фрагментов программ ввода - вывода с текстовыми файлами на языках 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;
var
yl, y2, у, filel,file2,f: string;
xl,x2,x3: integer;
d:real;
begin
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.