В данной презентации мы рассмотрим задачи на программирование в Паскале. Задачи решаемы как для СУЗов так и для школьников 10-11 классов. Применяя свои знания на практике, учащися смогут правильно подходить к решению той или иной задаче по информатике и в дальнейшем применить свои навыки. Возьмем к примеру самые простые задачи на вычитание или сложение, сокращение выражений и подставления формул, всё это мы можем осуществить в паскале. Олимпиадные задачи очень актуальны в наше время, они улучшают логику учащихся и помогают найти более рациональные решения.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Просмотр содержимого документа
«Олимпиадные задачи»
Решение олимпиадных задач в СУЗах
Международные и всероссийские предметные олимпиады
Победителей и призёров Всероссийской или Международной олимпиады зачисляют в вуз по профилю олимпиады вовсе без экзаменов. В непрофильному вузе — засчитают 100 баллов за ЕГЭ по соответствующему предмету
Проблемы олимпиад по информатике
ЕСЛИ N = I то ОТВЕТ := 1
ЕСЛИ N = 2 то ОТВЕТ := 3
ЕСЛИ N = 9 то
Ограничения на «программирование»
1. образованность,знание явных и неявных возможностей различных готовых средств, как в «любимом» языке, так и вне его;
2.сформированность системно-комбинаторных мыслительных операций — видение предметов и явлений в целостности, взаимосвязях; умение строить несколько взаимодополняющих точек зрения на один и тот же объект, умение оперировать понятийными и орудийными средствами из различных дисциплин (так, например, с точки зрения алгебры функция есть соответствие, с точки зрения геометрии — кривая, с точки зрения информатики — алгоритм вычисления результата по заданному аргументу).
Пример.
Нужновыяснить,лежит ли точкавнутриконтура, заданного координатами звеньев.
Решение (предложено школьниками).
Вывести цвет проверяемой точки, расположенной на экране.
Нарисовать на экране контур (цикл FOR!).
Залить его цветом.
Снова вывести цвет проверяемой точки.
Тонкие вопросы о «толстых» линиях контура на экране здесь не ставим: пример показывает нестандартное, лукавое и в то же время «наивное» решение через прямое моделирование задачи на экране,
Задача 1.1
Проверить, поместится ли на диске компьютера музыкальная композиция, которая длится m минут и n секунд, если свободное дисковое пространство 6 мегабайт, а для записи одной секунды звука необходимо 16 килобайт.
Для решения этой задачи необходимо знать, что 1 мегабайт=1024 килобайт, поэтому 6 мегабайт=6x1024=6144 килобайт. Обозначим t - время звучания композиции в секундах, v - объём файла композиции в килобайтах, тогда: t=60*m+n, v=16*t. Программа на Паскале будет иметь вид:
var m,n,t,v:integer;
begin
writeln('Введите m и n');
readln(m,n);
t:=60*m+n;
v:=16*t;
if v
else writeln('Не хватает ',v-6144,' килобайт');
end.
Задача 1.2
Координаты двух полей шахматной доски заданы в виде двух пар чисел x1 , y1 и x2 , y2 . На первом поле стоит ферзь, на втором - конь. Определить, бьет ферзь коня, конь - ферзя, или фигуры не угрожают друг другу
Рассмотрим, как ходят фигуры: ферзь бьёт те поля (с координатами x, y ), которые находятся с ним на одной вертикали (x=x1), на одной горизонтали (y=y1), или на любой из диагоналей (|x - x1| = (|y - y1|). Конь за один ход переходит на два поля по одной координате и на одно поле по другой координате, то есть поля, которые он бьёт, определяются по правилу: либо |x - x2| = 2 и |y - y2|=1, либо |x - x2| = 1 и |y - y2| = 2. При решении нужно учитывать, что фигуры не могут угрожать друг другу одновременно, и может быть ситуация, когда фигуры вообще не угрожают друг другу. Основная часть программы для данной задачи будет иметь следующий вид:
if (x1=x2)or(y1=y2)or(abs(x1-x2)=abs(y1-y2)) then
writeln('Ферзь бьёт коня')
else if (abs(x1-x2)=2)and(abs(y1-y2)=1)or
(abs(x1-x2)=1)and(abs(y1-y2)=2) then
writeln('Конь бьёт ферзя')
else writeln('Фигуры не угрожают друг другу');
7 найти такие целые числа x и y , что 3x+5y=N ). Для решения этой задачи можно разделить число нацело N на 3 и рассмотреть остаток от деления. Существует три варианта: если остаток 0, то сумма выплачивается трехкопеечными монетами; если остаток 1 (наименьшее такое число 10), то необходимо убрать 3 монеты по 3 копейки и добавить 2 монеты по 5 копеек; если остаток от деления 2, то необходимо убрать 1 трёхкопеечную монету и добавить 1 монету достоинством 5 копеек. В Паскале операция деления нацело - div, операция вычисления остатка при делении целых чисел - mod." width="640"
Задача 1.5
Показать, что любую сумму, большую 7 копеек, можно выплатить, используя только 3-х и 5-ти копеечные монеты. (То есть, для любого целого N7 найти такие целые числа x и y , что 3x+5y=N ).
Для решения этой задачи можно разделить число нацело N на 3 и рассмотреть остаток от деления. Существует три варианта: если остаток 0, то сумма выплачивается трехкопеечными монетами; если остаток 1 (наименьшее такое число 10), то необходимо убрать 3 монеты по 3 копейки и добавить 2 монеты по 5 копеек; если остаток от деления 2, то необходимо убрать 1 трёхкопеечную монету и добавить 1 монету достоинством 5 копеек. В Паскале операция деления нацело - div, операция вычисления остатка при делении целых чисел - mod.
В совпадающих по типу переменных a и b хранятся некоторые числовые значения. Поменять местами значения этих переменных, не используя третьей дополнительной переменной .
При решении этой задачи необходимо воспользоваться тем условием, что a и b - числовые переменные, тогда поменять их местами можно, например, следующим образом: a:=a+b; b:=a-b; a:=a-b;
7 найти все такие пары целых чисел x и y , что 3x+5y=N Разделим N нацело на 5 и получим k - максимальное значение для y (т.е. 0var x,y,n,k:integer; begin writeln('Введите N'); readln(n); k:=n div 5; for y:=0 to k do if (N-5*y) mod 3=0 then begin x:=(N-5*y) div 3; writeln('x=',x,' y=',y); end; end." width="640"
Задача 2.1
Для любого целого числаN7найти все такие пары целых чиселxиy, что3x+5y=N
Разделим N нацело на 5 и получим k - максимальное значение для y (т.е. 0