📖 Документация Qumir

← Вернуться в Playground

Работа с файлами

КуМир поддерживает полноценную работу с файлами как в оффлайн режиме (в компиляторе и интерпретаторе), так и в веб-версии прямо в браузере.

Уникальная особенность

Qumir — единственная онлайн реализация КуМир с поддержкой файлового ввода/вывода в браузере!

В отличие от других онлайн-сред программирования, где файлы либо не поддерживаются, либо требуют загрузки/скачивания, Qumir предоставляет встроенный файловый менеджер прямо в интерфейсе браузера.

Работа с файлами в браузере

Интерфейс файлов

В нижней части редактора есть панель Ввод/Вывод с вкладками:

Создание файлов вручную

  1. Перейдите на вкладку Файлы (внизу редактора)
  2. Нажмите кнопку + Добавить файл
  3. Введите имя файла (например, input.txt, data.dat)
  4. Введите содержимое файла в текстовом поле
  5. Файл автоматически сохраняется и становится доступен программе

Автоматическое создание файлов

Когда программа открывает файл на запись, файл автоматически появляется в списке файлов на панели. Вы можете:

Редактирование и управление

Синтаксис работы с файлами

Открытие файла

Для работы с файлами используются функции:

файл f1, f2, f3
f1 := открыть на чтение("имя_файла.txt")
f2 := открыть на запись("output.dat")
f3 := открыть на добавление("data.txt")

Функции открытия файлов:

Закрытие файла

закрыть(f)

После работы с файлом обязательно закройте его с помощью функции закрыть.

Чтение из файла

алг
нач
  цел a, b
  лит строка
  файл f
  f := открыть на чтение("input.txt")
  ввод f, a, b           | чтение целых чисел из файла
  ввод f, строка         | чтение строки из файла
  закрыть(f)
  вывод "a=", a, ", b=", b, нс
кон

Запись в файл

алг
нач
  цел i
  файл f
  f := открыть на запись("output.txt")
  нц для i от 1 до 10
    вывод f, i, " ", i*i, нс  | запись в файл
  кц
  закрыть(f)
кон

Проверка конца файла

алг
нач
  цел число
  цел сумма := 0
  файл f
  f := открыть на чтение("numbers.txt")
  нц пока не конец файла(f)
    ввод f, число
    сумма := сумма + число
  кц
  закрыть(f)
  вывод "Сумма: ", сумма, нс
кон

Функции для проверки состояния файла:

Примеры программ

Пример 1: Чтение чисел и вычисление среднего

алг
нач
  цел n, i
  вещ сумма := 0.0
  вещ число
  файл fin, fout

  fin := открыть на чтение("numbers.txt")
  ввод fin, n

  нц для i от 1 до n
    ввод fin, число
    сумма := сумма + число
  кц
  закрыть(fin)

  fout := открыть на запись("result.txt")
  вывод fout, "Количество: ", n, нс
  вывод fout, "Сумма: ", сумма, нс
  вывод fout, "Среднее: ", сумма / n, нс
  закрыть(fout)
кон

Входной файл numbers.txt:

5
10.5
20.3
15.8
12.1
18.4

Пример 2: Копирование файла

алг
нач
  лит строка
  файл fin, fout

  fin := открыть на чтение("source.txt")
  fout := открыть на запись("copy.txt")

  нц пока не конец файла(fin)
    ввод fin, строка
    вывод fout, строка, нс
  кц

  закрыть(fin)
  закрыть(fout)
  вывод "Файл скопирован", нс
кон

Пример 3: Фильтрация положительных чисел

алг
нач
  цел число
  файл fin, fout

  fin := открыть на чтение("all_numbers.txt")
  fout := открыть на запись("positive.txt")

  нц пока не конец файла(fin)
    ввод fin, число
    если число > 0
      то вывод fout, число, нс
    все
  кц

  закрыть(fin)
  закрыть(fout)
кон

Пример 4: Добавление в лог-файл

алг
нач
  лит имя
  файл f

  f := открыть на добавление("log.txt")
  вывод "Введите ваше имя: "
  ввод имя
  вывод f, "Пользователь: ", имя, нс
  закрыть(f)
кон

Пример 5: Подсчёт строк в файле

алг цел подсчитать_строки(лит имя_файла)
нач
  цел счётчик := 0
  лит строка
  файл f

  f := открыть на чтение(имя_файла)
  нц пока не конец файла(f)
    ввод f, строка
    счётчик := счётчик + 1
  кц
  закрыть(f)
  знач := счётчик
кон

алг
нач
  вывод "Строк в файле: ", подсчитать_строки("text.txt"), нс
кон

Рекомендации

1. Всегда закрывайте файлы

файл f
f := открыть на чтение("file.txt")
| ... работа с файлом ...
закрыть(f)                    | ОБЯЗАТЕЛЬНО!

2. Проверяйте конец файла при чтении

нц пока не конец файла(f)
  ввод f, данные
  | обработка данных
кц

3. Используйте понятные имена

| Хорошо
файл f_grades
f_grades := открыть на запись("student_grades.txt")

| Плохо
файл f1
f1 := открыть на запись("aaa.txt")

4. Обрабатывайте ошибки

Если файл не существует при открытии на чтение, программа выдаст ошибку. Убедитесь, что файл создан до запуска программы.

Ограничения

См. также