Рабочие листы
к вашим урокам
Скачать
1 слайд
Порядок решения олимпиадных задач
Андриященко Н.В.
учитель информатики
Краснодонской СОШ № 2
2 слайд
Всегда смотри на вещи со светлой стороны, а если таковых нет, то натирай тёмные, пока не заблестят.
китайская пословица
3 слайд
1. Универсальная заготовка
{$A+,B-,D+,E+,F+,G-,I+,L+,N+,O-,P-,Q+,R+,S+,T+,V+,X+,Y+}
{$M 65520,0,655360}
var
i,j,k:longint;
procedure readdata;
begin
assign(input,'');
reset(input);
end;
procedure outdata;
begin
assign(output,'');
rewrite(output);
close(output)
end;
procedure initial;
begin
fillchar(i,?,0);{см. лекцию 3}
end;
procedure run;
begin
end;
begin
readdata;
initial;
run;
outdata
end.
4 слайд
Директивы
Оператор
Переменная
Begin и End обозначают начало и конец, какого либо программного блока. End с точкой - конец программы
5 слайд
Сохранение заготовки
6 слайд
Команда <Ctrl+O O>
Директивы компилятора - это комментарии со специальным синтаксисом. Они могут использоваться везде, где разрешены комментарии.
Директивы компилятора
- Начинаются со знаков "{$" или "(*$"
- Сопровождаются именем директивы
- Заканчиваются знаками "}" или "*)"
Директивы компилятора делятся на три класса:
- Переключатели - Включают и выключают возможности компилятора, когда вы ставите знак "+" или "-" после имени директивы.
- Параметры - Определяют параметры, которые воздействуют на компиляцию.
- Условные директивы - Управляют условной компиляцией частей
исходного текста.
7 слайд
Автосохраниние редактируемых файлов
8 слайд
2. Внимательно читаем условие!
Здесь нужна тренировка внимания и умения формально подходить к тексту условия задачи, то есть понимать условие буквально, а не так, как покажется при его поверхностном чтении.
9 слайд
3. Решение конкретной задачи
описать основные глобальные переменные
Набить процедуру readdata ввода данных, чтобы она считывала все параметры задачи так, как это указано в условии.
10 слайд
Процедуры
При считывании из файла чисел обычно следует использовать только процедуру read (а не readln), для случаев же считывания символов и строк (тип string).
11 слайд
Функции
Если количество чисел во входном файле неизвестно, то нужно использовать функцию seekeof вместо eof для проверки условия окончания считывания чисел.
Для файлов, содержащих произвольный текст, это опять же уже не так.
12 слайд
4. Процедура initial
следует обнулить или присвоить соответствующие начальные значения всем (!!!) глобальным переменным, за исключением тех, которые будут использоваться в качестве параметров циклов. Затем запрограммировать вывод результата в процедуре outdata так, как это требуется в условии задачи.
13 слайд
Инициализировать переменные
Переменная должна быть инициализирована при описании:
имя переменной: тип = значение;
var i: integer := 1;
Кроме того, можно инициализировать переменные не только константными, но и неконстантными выражениями, в частности, вызовам конструкторов:
var L: List<integer> := new List<integer>;
14 слайд
5. Подходы к решению задачи
Проверить данные на фактическую корректность, то есть всегда ли задача имеет решение для введенного набора данных, например, связан ли граф, нет ли деления на 0 и т.п., если только в условии не сказано, что все данные и в этом смысле корректны.
Определить, относится ли данная задача к знакомому вам классу или решение придется искать “с нуля”.
15 слайд
Подходы к решению задачи
Попытаться найти на бумаге (!!!) точное решение, возможно только для малых размерностей. Такой подход зачастую позволяет обнаружить закономерности, которые затем можно попытаться распространить и на общий случай. Отобразить на бумаге принципиально различные случаи, в том числе и вырожденные. Это поможет при составлении тестов для самопроверки написанной программы.
Попробуйте сформулировать условие существования решения, пусть только необходимое или только достаточное.
Продумать и выпишите (!!!) достаточную систему тестов.
16 слайд
6. Имитации настоящего , мнимого или пустого действия
Запрограммируйте решение задачи в виде вызовов процедур и функций, которые пока следует описать в виде “заглушек”
Головная программа
Заглушка 1
Заглушка 2
Шаг 1. Проработка головной программы
17 слайд
Заглушка
― это очень простой по структуре модуль, в котором входные и выходные данные соответствуют замещаемому модулю, но алгоритм обработки данных очень упрощён. Часто в заглушке помимо описания входных и выходных данных присутствует лишь один оператор печати, сообщающий, что в этом месте программы вызывается заглушка.
Головная программа
Модуль 1
Заглушка 1.1
Заглушка 1.2
Заглушка 2
Шаг 2. Детализация программы
18 слайд
Для проектирования модульных программ существуют два основных метода:.
нисходящее
восходящее проектирование
19 слайд
8. Если вы не придумали эффективного решения задачи
то запрограммируйте его по-простому: например, с помощью полного перебора или простой эвристики (приближенного решения в ряде случаев дающего точный ответ). Если и это сложно, то упростите себе задачу, то есть отбросьте условия, которые вам мешают или добейтесь, чтобы программа проходила на самых простых, например, вырожденных тестах (большинство параметров равны 0 или 1).
20 слайд
9. exe-файл
Прежде, чем окончательно cоздавать exe-файл, замените ряд директив компилятора на следующие: D-,I-,L-,R-,Q- и отрегулируйте размер необходимого вашей программе стека.
21 слайд
10. Работоспособность
Постарайтесь запустить ваш exe-файл непосредственно в операционной системе хотя бы для одного теста, чтобы убедиться в его работоспособности. Причины, по которым работающая в среде программирования программа, может оказаться не работоспособной в виде исполняемого файла заключаются, в основном, в неинициализации значений ряда переменных.
22 слайд
Надеюсь, что приведенные выше рекомендации помогут ребятам продемонстрировать на олимпиаде любого уровня то, на что они действительно способны.
Рабочие листы
к вашим урокам
Скачать
6 660 072 материала в базе
Настоящий материал опубликован пользователем Андриященко Надежда Валериевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт
Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.
Удалить материалВаша скидка на курсы
40%Курс профессиональной переподготовки
500/1000 ч.
Курс профессиональной переподготовки
600 ч.
Курс профессиональной переподготовки
300/600 ч.
Мини-курс
3 ч.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.