русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Конец файла


Дата добавления: 2014-02-04; просмотров: 674; Нарушение авторских прав


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

250 Чтение лекций

1000 Гонорар за книгу

120 Доход по акциям ГАЗПРОМ

Пусть нужно вычислить суммарный доход. Решение задачи довольно оче­видно: открыть файл, прочитать число из первой строки и добавить его к сумме,прочитать число из второй строки и добавить его к сумме и т. д. После прочтения последней строки вывести результат.

Но как определить, что прочитана последняя строка, или, другими словами, достигнут конец файла?

Для этого нужно проверить значение, возвращаемое функцией eof (End Of File — коней файла), описание которой выглядит так:

Формат:

function E0F(имя файловой переменной);

У функции eof один параметр — файловая переменная. Функция eof воз­вращает true, если достигнут конец файла, иначе — false.

Например. Чтение из файла с использованием функции eof {rdfromf.pas)

program rdfromf; var

f:text; {файловая переменная}

incom:real; {доход-значение из очередной строки файла}

sum: real; {суммарный доход}

begin

assign(f,'incom.txt’);

{$I-}

reset(f); {откроем для чтения}

if IOResult=0 then begin

sum: =0;

writeln('Чтение данных’);

while not EOF(f) do {пока не достигнут конец файла}

begin

readln(f,incom);

sum: =sum+incom;

end;

close(f);

writeln('Суммарный доход: ' ,sum:ll:2);

end

else writeln('Ошибка открытия файла.');

end.

Обратите внимание: значение eof проверяется перед каждым чтением, в том числе и перед первым. Перед первым чтением eof проверяется, так как хотя открываемый файл может существовать на диске, он может быть пустым (не содержать строк).

Пример 1.

Хоккейные команды "Черные ястребы" и "Красные крылья" хранят в последовательных файлах имена всех своих двенадцати нападающих, число заброшенных ими шайб, сделанных голевых передач и заработанное штрафное время.



• Создайте файлы Black.dat и Red.dat, содержащие информацию о каждой из двух команд.

uses crt;

var

fam:string[10];

s,t:integer;

f,f1:text;

i:integer;

begin

clrscr;

assign(f,'c:\Black.txt');

assign(f1,'c:\Red.txt');

rewrite(f);

rewrite(f1);

for i:=1 to 5 do begin

readln(fam,s,t);

writeln(f,fam:10,s:4,t:4);

end;

for i:=1 to 5 do begin

readln(fam,s,t);

writeln(f1,fam:10,s:4,t:4);

end;

close(f);

close(f1);

end.

Ваша программа по данным, извлеченным из этих файлов, должна создавать новый файл Allstars.dat, в котором содержались бы имя, команда и сумма очков (голы и передачи) для шести лучших игроков обеих команд. Пусть имена и показатели результативности хок­кеистов выводятся на экран.

uses crt;

var

fam:string[10];

s,t:string[4];

pp:string;

m:array[1..10,1..3] of string;

f,f1:text;

i,j,a,cod:integer;

begin

clrscr;

assign(f,'c:\Black.txt');

assign(f1,'c:\Red.txt');

reset(f);

reset(f1);i:=1;

while not eof(f) do begin

readln(f,fam,s,t);

m[i,1]:=fam;

m[i,2]:=s;

m[i,3]:=t;

inc(i);

end;

while not eof(f1) do begin

readln(f1,fam,s,t);

m[i,1]:=fam;

m[i,2]:=s;

m[i,3]:=t;

inc(i);

end;

for i:=1 to 9 do

for j:=i+1 to 10 do

if m[i,2]<m[j,2] then begin

pp:=m[i,1]; m[i,1]:=m[j,1]; m[j,1]:=pp;

pp:=m[i,2]; m[i,2]:=m[j,2]; m[j,2]:=pp;

pp:=m[i,3]; m[i,3]:=m[j,3]; m[j,3]:=pp;

end;

for i:=1 to 6 do begin

for j:=1 to 3 do

write(m[i,j]);

writeln;

end;

 

end.




<== предыдущая лекция | следующая лекция ==>
Чтение строк | Коэффициент


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.063 сек.