Pascaler
О проекте Теоретический материал Тестирование Архив задач
Войти в личный кабинет



О проекте


Преподавателям


Тема: Стандартные текстовые файлы Input и Output. Примеры задач.

В Паскале существуют два стандартных текстовых файла Input и Output. Эти файлы считаются известными в любой Pascal-программе (иными словами, они описаны в стандартном модуле System). Они обозначают (по терминологии MS-DOS) соответственно стандартный файл ввода и стандартный файл вывода. Обычно эти стандартные файлы связаны с конкретными физическими устройствами компьютера. Так, файловая переменная Input связана с клавиатурой, файловая переменная Output - с экраном дисплея. эти файлы считаются заранее открытыми, а соответствующие идентификаторы можно использовать в операциях ввода-вывода.

Рассмотрим, например, следующий оператор:

writeln (Output, 'Результат равен ', (X+Y)*2);

В соответствии с общими правилами, этот оператор выведет значения двух последних операндов в текущую строку заданного файла, а затем произведет переход к следующей строке. В применении к стандартному файлу Output эти действия будут выглядеть как появление в текущей строчке дисплея литеральных изображений указанных значений, после чего курсор будет перемещен в первую позицию следующей строки.

Аналогично, оператор read (Input, X1, X2); будет выполняться таким образом: система перейдет в состояние ожидания ввода с клавиатуры двух значений. Типы вводимых значений должны совпадать с типами переменных Х1 и Х2. Эти значения при вводе должны отделяться друг от друга одним или несколькими пробелами, а ввод должен быть завершен нажатием клавиши Enter. В процессе ввода значений набираемые на клавиатуре символы отображаются на экране. После нажатия Enter введенные значения будут присвоены переменным Х1 и Х2, и выполнение программы будет продолжено.

Для стандартных файлов Input и Output допускается сокращенная форма записи операций ввода-вывода. Так, если в процедурах read и readln первый параметр опущен, то по умолчанию подразумевается файл Input. Аналогично, отсутствие в процедурах write и writeln первого параметра означает вывод в стандартный файл Output. Вывод в стандартный файл Output используется очень часто - всегда, когда необходимо выдать некоторую информацию из программы на экран.

В соответствии с общими правилами MS-DOS стандартные файлы ввода-вывода могут быть "переназначены", то есть связаны с другими физическими устройствами или дисковыми файлами. Простейшим способом переназначения является использование для этой цели процедуры assign, например,

assign (Output,'MyFile.out');

После выполнения такого оператора стандартный файл вывода будет переназначен, то есть файловая переменная Output будет связана с дисковым файлом MyFile.out из текущего каталога. Все операции вывода, явно или неявно работающие с файлом Output, будут выводить информацию в указанный дисковый файл.

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

Примечание. Если Вы можете решить выше поставленные задачи устно, то поставьте в известность учителя и приготовьтесь к ответу.

Program StringCount;
Uses
  Crt;
Var
  i : integer;
  s : string;
  f : text;
Begin
  ClrScr;
  readln(s);
  assign(f,s);
  reset(f);
  while not Eof(f) do
    begin
      readln(f,s);
      i:=i+1;
    end;
  close(f);
  readln;
End.

 

Program Zamen;
Uses
  Crt;
Var
  s : string;
  f, d : text;
Begin
  ClrScr;
  readln(s);
  assign(f,s);
  readln(s);
  assign(d,s);
  reset(f);
  rewrite(d);
  while not Eof(f) do
    begin
      readln(f,s);
      while Pos('o',s)>0 do
      s[Pos('o',s)]:='a';
      writeln(d,s);
    end;
  close(f);
  close(d);
  readln;
End.

 

Program MaxInFile;
Uses
  Crt;
Var
  i, j, r, Code : integer;
  s : string;
  f : text;
Begin
  ClrScr;
  readln(s);
  assign(f,s);
  reset(f);
  while not Eof(f) do
    begin
      readln(f,s);
      j:=0;
      for i:=1 to Length(s) do
        begin
          Val(s[i],r,Code);
            if r>j
              then
                j:=r;
              end;
          writeln(j);
        end;
  close(f);
  readln;
End.
Вернуться назад
2003—2012 © Группа «Vimedia»
Проект «Pascaler» — лучший на ХI Всероссийской конференции молодых исследователей с международным участием «Шаг в будущее», Россия, Москва, 12 – 16 апреля 2004г.