Районный дистанционный конкурс «Юный программист» — 2017

Дистанционная игра по информатике «Юный программист»

Я приветствую вас, ребята!

Наша дистанционная игра посвящена информатике, такому разделу как «Программирование" 

Игра закончена.

Победитель:

Матвиевский Максим, учащийся 9-а класса МБОУ СОШ № 20 г. Вяземского (учитель Терещенко Светлана Сергеевна, учитель математики и информатики)

Призеры:

Отченаш Степан, учащийся 10 класса МБОУ СОШ с. Аван (учитель Горянская Анжелика Олеговна, учитель математики и информатики)

Усов Степан, учащийся 9-б класса МБОУ СОШ № 20 г. Вяземского (учитель Терещенко Светлана Сергеевна, учитель математики и информатики)

Сегодня мы собрались не просто так.

Сегодня мы выясним, какая из школ обладает лучшими знаниями программиста.

Итак, начнем друзья!

Дистанционная игра по информатике „Юный программист» состоит из 3 туров: I тур «Линейные операторы»; «Условные операторы»; II тур «Цикл»; III тур «Итоговое задание». Задания каждого тура демонстрируются с помощью составление программы на Паскале АBC. В игре участвуют команды из 9, 10 11 класса. В команде может от 1 до 3 человек. Выполняя задания, учащиеся знакомятся с теоритическим материалом (они представлены внизу в виде фильма). Игра способствуют развитию познакомить учащихся с общими характеристиками языков программирования, с программной средой Pascal ABC, со структурой программы на языке Паскаль; сформировать у учащихся первичные знания по применению изученного материала. 

Сроки

 

ссылка на видео, не в ютубе

18 сентябрь 2017

Составление блок-схем и написание программы на языке программирования: линейное и разветвленное ветвление

https://drive.google.com/file/d/0B4HvFbUolxpNMVFYUW13WDZhVE0/view?usp=sharing 

https://drive.google.com/file/d/0B4HvFbUolxpNMVFYUW13WDZhVE0/view?usp=sharing 

 

20 — 22 сентября 2017

 

Составить программу на языке программирования: цикл


https://drive.google.com/file/d/0B4HvFbUolxpNbnN5U2x3MERNY0E/view?usp=sharing 

 

24 сентября 2017

 

Итоговое задание


отправлять ответы на sveta1456@mail.ru. Файл должен быть сохранен в формате Program1.pas. Меняется только название программы. Расширение или формат должен быть в той програаме, в которой вы составляете программу.


Определились участники конкурса: Отченаш Степан (с.Аван, 10 класс), Матвиевский Максим (школа № 20, 9-а класс), Усов Степан (школа № 20, 9-б класс)

Задания для дистанционной игры:

18 — 20 сентября

Линейные операторы:

Задача № 1. Вывести на экран сообщение «Hello World!»

Формулировка. Вывести на экран сообщение «Hello World!».

Некоторые учебные курсы по программированию рассматривают эту задачу как самую первую при изучении конкретного языка или основ программирования.

Решение. Эта задача включает в себя лишь демонстрацию использования оператора вывода write (или writeln), который будет единственным в теле нашей маленькой программы. С помощью него мы будем осуществлять вывод на экран константы 'Hello World!' типа string (или, как допускается говорить, строковой константы). В данном случае будем использовать оператор writeln.

Напомню, что при использовании оператора write курсор останется в той же строке, в которой осуществлялся вывод, и будет находиться на одну позицию правее восклицательного знака во фразе «Hello World!», а при использовании оператора writeln — на первой позиции слева в следующей строке.

Задача № 2. Вывести на экран три числа в порядке, обратном вводу

Формулировка. Вывести на экран три введенных с клавиатуры числа в порядке, обратном их вводу.

Другими словами, мы ввели с клавиатуры три числа (сначала первое, потом второе и третье), и после этого единственное, что нам нужно сделать — это вывести третье, затем второе и первое.

Решение. Так как с клавиатуры вводится три числа, необходимо завести три переменные. Обозначим их как a, b и c. Ввиду того, что нам ничего не сказано о том, в каком отрезке могут располагаться введенные числа, мы возьмем тип integer, так как он охватывает и положительные, и отрицательные числа в некотором диапазоне (от -2147483648 до 2147483647). Затем нам нужно использовать оператор вывода write (writeln), в списке аргументов которого (напомним, что список аргументов write (writeln) может содержать не только переменные, но и константы и арифметические выражения) эти переменные будут находиться в обратном порядке. В данном случае будем использовать оператор writeln, который после вывода результата переведет курсор на следующую строку:

writeln(c, b, a);

Однако если мы оставим его в таком виде, то увидим, что при выводе между переменными не будет никакого пробела, и они будут слеплены и визуально смотреться как одно число. Это связано с тем, что при вводе мы использовали пробелы для разделения чисел, а сами пробелы никаким образом не влияют на содержимое переменных, которые будут последовательно выведены оператором writeln без каких-либо дополнений. Чтобы избежать этого, нам нужно добавить в список аргументов writeln две текстовые константы-пробелы. Проще говоря, пробельная константа — это символ пробела, заключенный в одиночные апострофы (апостроф — символ «'»). Первая константа будет разделять переменные a и b, вторая — b и c. В результате наш оператор вывода будет таким:

writeln(c, ' ', b, ' ', a);

Теперь он работает так: выводит переменную c, затем одиночный символ пробела, затем переменную b, потом еще один символ пробела и, наконец, переменную a.

Условные операторы:

Задача № 3. Вывести на экран наибольшее из двух чисел

Формулировка. Даны два числа. Вывести на экран то из них, которое больше.

Решение. Собственно, это самая простая задача, с помощью которой можно продемонстрировать использование условного оператора if. Напомним, как нужно использовать этот оператор. Мы вводим с клавиатуры числа в переменные a и b типа integer, затем в операторе if проверяем булевское выражение «a > b»: если оно истинно, то выполняется then-блок оператора, если ложно — else-блок. Соответственно, если a больше b (условие в заголовке истинно), то в then-блоке мы выводим a, а если a не больше b (условие в заголовке ложно), то выводим b (хотя сюда попадает и случай, когда a = b, что, впрочем, не нарушает решения).

На языке Pascal мы можем записать весь оператор с if- и then-блоками в одну строчку следующим образом:

if a > b then writeln(a) else writeln(b);

Данная строка легко понятна и читаема по причине того, что мы выполняем столь простой набор операторов в обоих блоках ветвления оператора if. Однако в более сложных примерах мы будем с первых же написанных строчек следовать принципу аккуратного оформления кода, чтобы не появлялось привычки «вытягивать» операторы ветвлений и другие конструкции в одну строчку, так как в будущем это может сильно сказаться на удобочитаемости и простоте понимания написанного программного кода, особенно при увеличении количества вложенных в блок операторов (которые, например, тоже могут быть операторами ветвления). Не стоит забывать о том, что при вложенности в тело какого-либо оператора хотя бы одного составного оператора или другой сложной конструкции требуется равномерный отступ для подчиненной конструкции с адекватной расстановкой операторных скобок! Например, для оператора if это распределение конструкций по мнемонической модели if-end, else-end, согласно которой эти ключевые слова должны стоять на одном уровне по вертикали, а их содержимое должно быть немного смещено вправо.

Конечно, для простейшей конструкции с условным оператором это вовсе не самоцель, и можно разместить ее в одной строке, если оби ветви оператора (и if-блок, и else-блок) не содержат составного оператора. В нашем же примере «аккуратное оформление» показывается лишь в качестве введения.

20-22 сентября

Циклы:

Задача № 4. Вывести на экран все натуральные числа до заданного

Формулировка. Дано натуральное число. Вывести на экран все натуральные числа до заданного включительно.

Решение. Данная задача решается с использованием оператора цикла for. Напомним, что с помощью цикла for можно совершить заданное количество итераций (повторений) некоторых операторов, которые синтаксически заключены в содержимое его тела (так называемого тела цикла). При этом некоторая целочисленная переменная изменяется от некоторого стартового значения до некоторого конечного (оба значения включительно), увеличиваясь на единицу с каждым повторением тела цикла.

Так как нам необходимо выводить натуральные числа, это означает, что вывод должен всегда начинаться с единицы, и при этом выводятся все следующие за ней натуральные числа до тех пор, пока значение переменной цикла (обычно используют переменную i) не достигнет конечного n (на последнем шаге значение переменной цикла будет равно n). После этого цикл завершится, и будут выполнены те операторы, которые следуют непосредственно за ним. Кстати, не стоит забывать, что после выхода из цикла for его переменная цикла считается неопределенной!

Код:

  1. program FromOneToN;
  2. var
  3. i, n: word;
  4. begin
  5. readln(n);
  6. for i:= 1 to n do begin
  7. write(i, ' ')
  8. end
  9. end.

Пусть введено число 5, например. При входе i станет равно 1 и будет проверено существование отрезка в заданных границах. Так как 1 меньше 5, то произойдет вход в цикл, и будут выполняться следующие команды, пока i не превысит n:

1) Выполнение команд в теле цикла;

2) Увеличение i на 1;

3) Возвращение на шаг 1.

Нетрудно понять, что в нашем случае i будет принимать значения 1, 2, 3, 4, 5 и будет выведена на экран строка '1 2 3 4 5 '. Здесь красным цветом выделены изменяющиеся значения переменной цикла, а синим — выводящаяся неизменной пробельная константа.

Задача № 5. Вычислить факториал

Формулировка. Дано натуральное число n (которое также может быть равно нулю). Вычислить n!

Примечание: n! (факториал числа n, читается «эн факториал») — произведение всех натуральных чисел до n включительно.

Решение. Задача очень просто решается через цикл for по всем i от 1 до n, в теле которого мы на каждом шаге домножаем переменную-результат fact (которой до входа в цикл присвоено значение 1) на i. При этом сохраняется и правило 0! = 1, так как при вводе нуля программа не войдет в цикл и на выход пойдет неизмененное в переменной fact число 1.


24-25 сентября

Итоговое задание

Задача № 6. Покупка


Ручка стоила K рублей. Первого сентября стоимость ручки увеличилась ровно
на P процентов. Определите, сколько ручек можно купить на S рублей после подорожания.

Пояснения: Программа получает на вход три целых положительных числа. Первое число K —
стоимость ручки в рублях до подорожания. Второе число P — величина подорожания ручки
в процентах. Третье число S — имеющаяся сумма денег. Числа K и S не превосходят 107, число
P не превосходит 100.



Линейные программы

Условные операторы

Цикл