Поиск по этому блогу

суббота, 26 ноября 2016 г.

Калитка в заборе (задача)

Задача взята из этапа Всероссийской олимпиады школьников по информатике. Буду рад если ее решение будет полезно моим коллегам в подготовке учеников  к подобным соревнованиям.

Дядя Фёдор, кот Матроскин и Шарик решили обновить забор вокруг своего сада в Простоквашино. Матроскин и Шарик, недолго думая, вкопали столбов вдоль одной из сторон участка. Это очень сильно расстроило Дядю Фёдора, так как его друзья забыли о самом главном — калитка должна находиться именно на этой стороне, и для неё необходимо было оставить проём шириной как минимум WТеперь им придётся выкапывать некоторые столбы.
Чтобы работа не пропадала даром, выкопать надо как можно меньше столбов. Помогите Дяде Фёдору определить, какие именно столбы надо выкопать. После выкапывания столбов должен найтись промежуток (между двумя оставшимися столбами, или между оставшимся столбом и концом стороны участка, или между двумя концами стороны участка) ширины больше или равной W.

суббота, 19 ноября 2016 г.

Ввод из файла



Язык Pascal позволяет вводить исходные данные для программы не только с клавиатуры, но и из текстового файла. Чтобы воспользоваться этой возможностью, нужно объявить файловую переменную типа text, назначить ей при помощи инструкции assing имя файла, из которого будут читаться данные, открыть файл для чтения (ввода) и прочитать (ввести) данные, используя инструкцию read или readln.
Рассмотрим это по подробнее.

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

Открытие файла для ввода (чтения) выполняется вызовом процедуры reset, имеющей один параметр – файловую переменную. Перед вызовом процедуры reset файловой переменной назначается имя файла вызовом процедуры assing.
Пример:
assing(f,’c:\data.txt’);
reset(f);
Если имя файла указано неверно, то возникает ошибка. Эту ошибку можно обработать программным способом. Например, вот так:
{ Демонстрация использования IOResult при открытии файла }