Переменные из файла - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Есть задача. В ней надо посчитать на сколько предметов с атрибутом 8 больше, чем с 9. Т.е. в файле 1.txt просто ABC 8 BCD 8 CDE 9 (нетрудно видеть, что на 2) Никак не могу присвоить переменным эти предметы. Из файла что попало присваивается, алгоритм подсчёта - тоже тот ещё писец.

Решение задачи: «Переменные из файла»

textual
Листинг программы
var f:text;
    s:string;
    a,a8,a9:integer;
begin
assign(f,'1.txt');
reset(f);
a8:=0;
a9:=0;
while not eof(f) do
 begin
  readln(f,s);
  delete(s,1,pos(' ',s));
  a:=strtoint(s);
  if a=8 then inc(a8)
  else if a=9 then inc(a9);
 end;
close(f);
write('С атрибутом 8 на ',a8-a9,' больше');
end.

Объяснение кода листинга программы

  1. var f: text; — объявление переменной f типа text
  2. s: string; — объявление переменной s типа string
  3. a, a8, a9: integer; — объявление трех переменных типа integer
  4. assign(f, '1.txt'); — присвоение имени файла переменной f
  5. reset(f); — очистка файла f
  6. a8 := 0; — присвоение начальных значений переменным a8 и a9
  7. a9 := 0; — присвоение начальных значений переменным a8 и a9
  8. while not eof(f) do — цикл чтения строк из файла до конца файла
    1. readln(f, s); — чтение строки из файла в переменную s
  9. delete(s, 1, pos(' ', s)); — удаление первого символа пробела из строки s
  10. a := strtoint(s); — преобразование строки в целое число и сохранение в переменную a
  11. if a = 8 then inc(a8) — если значение a равно 8, увеличить значение переменной a8
  12. else if a = 9 then inc(a9); — иначе, если значение a равно 9, увеличить значение переменной a9
  13. end; — конец цикла
  14. close(f); — закрытие файла
  15. write('С атрибутом 8 на ', a8 - a9, ' больше'); — вывод строки на экран
  16. end. — завершение программы

Оцени полезность:

13   голосов , оценка 4.538 из 5