Аквариум


Главная / ЭКВМ / Программы для ЭКВМ / Учебные задачи

Одна из перспективных областей использования клавишных ЭВМ - это обучение информатике.

Конечно, знакомиться с ресурсами сети или работой с базами данных при помощи ЭКВМ невозможно. Оставим пока вопрос о целесообразности изучения офисных программ и тем более "Интернета" в школе. Сейчас, когда компьютеры есть почти в каждой семье, это аналогично "изучению" телефона или телевизора. Этот подход потребовал оснащения классов мощными компьютерами, недешевыми программами и доступом к сети, а заодно превратил уроки в посещение развлекательных сайтов и коллекций рефератов. Вдвойне прискорбно, что в качестве сверхзадачи нередко ставится изучение особенностей офисных пакетов фирмы Microsoft на безальтернативной основе. Тем не менее, в учебной программе сохранился ряд тем, которые имеют непосредственное отношение к информатике.

Сейчас моделирование и программирование нередко изучаются в среде электронных таблиц, которые к этому мало пригодны. В итоге, закладывается ошибочная установка на использование таблиц для любых вычислений. Хотя большинство школьных задач, относящихся к программированию и моделированию проще и полезнее изучать на ЭКВМ, чем на компьютере.

Задачи на моделирование требуют составления алгоритмов с ветвлениями и циклами. Их следует решать путем составления небольших программ. Но в настоящее время практически не существует широко распространенных, простых в освоении и реальных (не учебных) языков программирования. Попытки широко использовать предоставляемые современными компьютерами возможности даже BASIC превратили в сложный и непереносимый язык со множеством диалектов. Это же касается языков непосредственно встроенных в приложения. При этом изучение Си и других языков профессионального программирования в школе вряд ли целесообразно. Несмотря на все достоинства, стандартизованность и распространенность - при их изучении легко увязнуть в несущественных мелочах, безусловно имеющих отношение к практическому программированию, но не к информатике в целом.

Программы ЭКВМ невелики по размеру, поэтому их легко как составить, так и проверить. Возможность написать и отладить действующую программу на одном занятии позволяет выстроить процесс обучения разумным образом. Как показывает советская практика, изучение языка МК занимало один-два урока, причем у людей, вообще не знакомых до того с вычислительной техникой.

Конечно, можно заметить, что сейчас язык калькуляторов "оторван от реальной жизни" - но это касается и любых других учебных языков. Те же, кто изберёт программирование своей специальностью, изучат требуемое самостоятельно или в высшем учебном заведении.

Для примера рассмотрим задачу 3.16 из [1]. Хотя в начале учебника и стоит грозное предупреждение: "Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами...", - совершим преступление в сфере интеллектуальной собственности и опубликуем условие школьной задачи (разумеется, со ссылкой на источник).

3.16. Аквариум

Мальчик решил почистить аквариум. Начал с переселения рыб в банку. Семейство рыб, проживающих в аквариуме, составляло 40 шт. Первую рыбку он поймал быстро, затратив 5 с, и еще 2 с потратил на перекладывание в банку. Но чем меньше становилось в воде рыбок, тем труднее было их поймать. На каждую следующую рыбку он затрачивал времени больше на 5%, чем на предыдущую. Сколько минут времени он затратит на переселение рыбок?

Школьникам эту задачу положено решать в Excel, заполнив 40 строк таблицы нужными формулами. Желающие могут самостоятельно попробовать решить эту задачу в электронной таблице, благо многие умеют ими пользоваться, и сделать должные выводы. Никто, конечно, не оспаривает реализуемость такого подхода, но вопрос, насколько это оптимально.

Решим задачу на ЭКВМ, программа для её решения занимает 17 байт.

  x0 x1 x2 x3 x4 x5 x6 x7 x8 x9
0x ИП1 B↑ ИП2 × П1 ИП3 + ИП4 +
1x П4 FL0 00 6 0 ÷ С/П      

Перед запуском нужно записать исходные значения в регистры памяти:
R0 = 40 (число рыб);
R1 = 5 (время на поимку первой рыбы);
R2 = 1,05 (коэффициент увеличения времени - 105%);
R3 = 2 (время на перекладывание);
R4 = 0 (начальное значение времени на переселение).

Для запуска программы нажать В/О, С/П. Через 0,5 с на индикаторе появится результат - 11,399981 мин. Если есть необходимость пересчитать доли минуты в секунды, нажмем "К Г→М" и получим приблизительно 11 минут 24 секунды.

Для нахождения результата при других начальных значениях, что нередко требуется делать в других задачах учебника, достаточно изменить заносимые в регистры величины и повторить расчет. Например, ловля 60 рыбок из задачи займет примерно 31 минуту 28 секунд. А составление и ввод этой программы с исходными значениями требует менее одной минуты.

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

#include "stdio.h"
main()
{
int j, r0=40;
double r1=5,r2=1.05,r3=2,r4=0;
for (j=0; j<r0; j++) {r4+=r1+r3; r1*=r2;}
printf("Время: %f мин.\n", r4/60);
}

Программу можно составить множеством других способов. К примеру, вынести расчет времени на перекладывание рыбок в банку за пределы цикла, что более правильно. При этом не будет нужно и обнуление регистра R4 перед запуском.

  x0 x1 x2 x3 x4 x5 x6 x7 x8 x9
0x ИП0 ИП3 × П4 ИП2 ИП1 × П1 FBx ИП4
1x + FL0 03 6 0 ÷ С/П      

Можно обойтись и без циклических вычислений. Для этого следует воспользоваться известной формулой суммы геометрической прогрессии [2]:

Формула суммы геометрической прогрессии

где: a0 - первый член;

r - знаменатель прогрессии.

  x0 x1 x2 x3 x4 x5 x6 x7 x8 x9
0x ИП0 ИП2 F xy 1 - ИП2 1 - ÷ ИП1
1x × ИП0 ИП3 × + 6 0 ÷ С/П  

Способ выполнения и результат расчета по обеим программам аналогичен предыдущему. Можно привести еще десятки подобных программ, дающих в итоге правильный результат.

Возможность выбора допустимых альтернативных программных решений, каждое из которых более или менее оптимально - это ценное качество ЭКВМ при обучении программированию. Решение на ЭКВМ позволяет определить не только формальную правильность ответа, но и самостоятельность при выполнении задачи. Кроме того, оценить выбор алгоритма решения и индивидуальный стиль каждого учащегося.

При этом от преподавателя не требуется изучение мелких подробностей работы с очередной версией офисного пакета. Достаточно ознакомиться с базовой системой команд из эксплуатационной документации ЭКВМ. Или изучить ее по доступной литературе о советских программируемых калькуляторах.

Следует также упомянуть, что выполненные на ЭКВМ методические наработки могут быть опубликованы и использованы на протяжении многих лет.




Литература

  1. Информатика. 7-9 класс. Базовый курс. Практикум-задачник по моделированию/ Под ред. Н.В.Макаровой. СПб.:Питер, 2005. - 176 с.:ил. С 89.
  2. Корн Г., Корн Т. Справочник по математике (для научных работников и инженеров). М.: Наука, 1974. - 832 с.: ил. С 30.


НПП "СЕМИКО" (383) 271-01-25 (многоканальный)