• Читалка
  • приложение для iOs
Download on the App Store
  • Читалка
  • приложение для Android
Get it on Google Play

«Задачник по программированию( для школы )»

1698

Описание

Задачи для школьника, должны быть веселы! На наших занятиях, запрещена фраза "мы это не проходили" - если это надо для решения задачи - "пройди", источников море, учитель подскажет. Не получается? Возможно, ты выбрал задачу не по силам, ничего - это тоже опыт, отложи, попробуй следующую. Мало решить задачу, придумай свою... Ученик должен уметь: (поставить задачу + решить задачу + учиться) * n ...

1 страница из 4
читать на одной стр.
Настроики
A

Фон текста:

  • Текст
  • Текст
  • Текст
  • Текст

Шрифты

  • Аа

    Roboto

  • Аа

    Garamond

  • Аа

    Fira Sans

  • Аа

    Times

  • Аа

    Iowan

  • Аа

    San Francisco

  • Аа

    SF Serif

  • Аа

    New York

  • Аа

    Helvetica Neue

  • Аа

    Arial

  • Аа

    Georgia

  • Аа

    Times New Roman

  • Аа

    Courier

  • Аа

    Courier New

  • Аа

    Menlo

  • Аа

    SF Mono

стр.

Задачник по программированию( для школы ) (fb2) файл не оценен - Задачник по программированию( для школы ) 377K скачать: (fb2) - (epub) - (mobi) - W Cat


Задачник по программированию для школы

Листая старую тетрадь...

Да, нравится мне эта песня, но сейчас, не об этом...

Итак, просматривая свои архивы, нашел свой задачник по программированию — ну, почему бы ни поделиться.

На момент написания, для решения задач планировалось использовать Turbo Pascal, время прошло, и эта программа значительно устарела, предлагаю заменить ее на PascalABC.NET – отличная штука, специально создана для обучения программированию, сочетает возможности старого Turbo Pascal и Delphi и много других вкусностей.



Вступление. (которое, можно пропустить)


Задачи здесь, разной сложности, ну, например, такая шутка:

«Все, внимание!!! Всякий кто решит данную задачу за 45 минут, получит годовую 5 не только по информатике, но и по математике. Записываем:

Доказать, что для любых не нулевых значений переменных a, b, c : integer не существует решения следующего уравнения, при n > 2.

an + bn = cn

- Что ты хочешь сказать, Вова?

… ... ...

- Хорошо, Вова, - молодец! За знание классики + 5.

- А почему не годовая?

- Но, ты же не привел доказательства...»



Часто у «продвинутых» учеников возникает вопрос:

- А чё мы должны учить этот древний, никому не нужный Pascal?

Ну, давайте, сравним простейший код:


C++

Pascal


#include <iostream>

#include <cstdlib>

using namespace std;

int main()

{

cout << <Hello, world!< << endl;

system(pause);

return 0;

}


begin

Writeln('Hello, World!');

end.



И дело не в том, что текст на C длиннее.

Учащийся должен понимать, что и как, делает программа.

Если объяснение программы на Паскале займет 2 минуты и можно идти дальше, то в случае С, вы убьете 45 минут на объяснение совершенно не нужной начинающему информации, и совершенно запутаете школьников, т.е - если вам надобно вызвать у учащихся отвращение к программированию то начинайте учить их с С++ или C#.

А после Паскаля, любой си образный язык пойдет «влегкую».

Объясните любопытному, что все процедурные языки, близнецы братья (но Паскаль проще!!!). Для профессионального программиста не составляет большой проблемы перейти с PHP на Java.



Но, как-то, расскажите, что есть не только процедурные языки. Например, о языке Prolog, или такие вкусности как Форт (англ. Forth) или Эйфория.



Но вернемся к нашим баранам (я не имел ввиду учащихся), как уже сказано, задачи разного уровня. Я сознательно не размечаю сложность, во-первых, это очень субъективно, во-вторых ученик должен учиться соизмерять свои возможности, и не отчаиваться если сейчас задача не по силам. Многие задачи не уложатся в один урок, а некоторые, могут развиваться от "простого к сложному".

Например:

(1)

Двоичный тренажер

а) Программа задумывает случайное число от 0 до 15 и выдает его в двоичном виде, пользователь должен ввести десятичный(или шестнадцатеричный) аналог.



Полезно решить эту задачу, сюда входят несколько подзадач:

' преобразование числа в двоичный вид

'' контроль введенных пользователем символов

''' разработка интерфейса программы (внешний вид, реакции на ошибки, поощрительные сообщения и т.п.)

Кроме того, такая программка полезна для игрового запоминания двоично-шестнадцатеричных чисел.



б) Программа должна анализировать время ожидания ответа пользователя, и выдавать оценку за выполнение, допустим, 20 заданий, учитывая число ошибок и суммарное время затраченного на ответы.



в) «Случайное число» человек и машина понимают по-разному, например:

2 2 2 2 2 2 2

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

Давайте, я расскажу, как решил эту задачу, во времена оны.

Задаем байтовый массив[размером в заданных диапазон]

начинается цикл 1.

заполняем массив нулями;



цикл 2. задумывание числа

программа задумывает число из заданного диапазона

если в соответствующей ячейке массива 0, то записываем туда 1 и завершаем цикл 2 задумывания числа, в ином случае повторяем цикл 2.



Если написать только вышесказанное, то получим бесконечный цикл!!! (что очень полезно для начинающего программиста) Посему введем переменную «счетчик успешных попыток задумывания числа» и при достижении максимального числа возможных вариантов переходим к началу цикла 1 (т. е. заполнение массива нулями)

Ну, а дальше, как и раньше вывод на экран... ожидание ответа...



Еще один нюанс, со «случайным числом». Если вы запустите программу несколько раз, то увидите, что задумываются одни и те же числа!!! Как с этим бороться? Программист, должен знать эту мелочь.



г) Байт изображается двумя шестнадцатеричными числами. Пусть и программа задумывает по два таких числа (в этом случае рекомендации пункта в, надо основательно пересмотреть [ну например, задать два байтовых массива... не-ет не верное решение..., массив будет один но от 2 до 255...])



Ну, вот так, примерно, решаются задачи, чем дальше в лес....



Не люблю олимпиадные задачи, как правило, они слишком «академичны», но это естественно, у олимпиады совершенно иные задачи (т. е. не обучение)

Задачи для школьника должны быть веселы! На экране должно что-то прыгать, бегать, хихикать...



В каждом маленьком ребенке

И мальчишке и девчонке

Есть по двести грамм взрывчатки

Или даже полкило!

Должен он бежать и прыгать

Все хватать, ногами дрыгать

А иначе он взорвется, трах-бабах !

И нет его!



Веселые задачи


Игры со строками.

Все нижеследующие программы, должны начитаться и продолжаться объяснениями пользователю, что ему следует сделать для продолжения работы программы.

(2)

Написать программу со следующим сценарием:

пользователь вводит строку, нажимает Enter и далее варианты:

а) Буквы падают в низ экрана с начала строки, одна за другой;

б) Буквы падают с конца строки;

в) Буквы падают случайным образом;

г) Буквы падают наискосок;

д) После какого либо вида падения буквы взлетают на свои места.

(3)

Комментарии к книге «Задачник по программированию( для школы )», W. Cat

Всего 0 комментариев

Комментариев к этой книге пока нет, будьте первым!

РЕКОМЕНДУЕМ К ПРОЧТЕНИЮ

Популярные и начинающие авторы, крупнейшие и нишевые издательства