Коваль Леон: другие произведения.

Быть дедом. "Долбица" умножения и Паскаль

Сервер "Заграница": [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Помощь]
  • Комментарии: 1, последний от 26/07/2020.
  • © Copyright Коваль Леон (leonko@walla.com)
  • Обновлено: 17/02/2009. 35k. Статистика.
  • Статья: Израиль
  • Иллюстрации: 2 штук.
  • Оценка: 6.00*3  Ваша оценка:
  • Аннотация:
    Философия таблицы умножения. Если ребенок в 10 лет не знает таблицы, то это очень плохо. А. П. Чехов про алгебру и арифметику. Компьютерная игра Boxrus: боксируем и учим таблицу умножения.Средняя школа и компьютерная грамотность. Демократия и программирование. Что думал по этому поводу скрипач Леонид Коган.Программистов доставляют из стран третьего мира, а своих не готовят(как следует).begin for i := 1 to 9 do for j := 1 to 9 do begin prl[1,i,j] := i*j; prl[2,i,j] := 0; end; end;Проблема 2043 года. Исходные тексты, версии и комментарии. Компилируем и используем.


  •    Леон Коваль
       Быть дедом. "Долбица" умножения и Паскаль
      
       Давно это было, лет 7 или 8 назад. Подслушал я сетования молодой русскоговорившей дамы: сыну идти в четвертый класс, а он не знает таблицы умножения, все каникулы играл с компьютером, а выучить таблицу не удосужился. И в школе никого это не волнует. Говорят, не беда, не в этом, так в следующем году выучит. И вообще, говорят, времена изменились, есть калькуляторы.
      
       Предназначение школы - воспитывать и обучать. Гуманитарная составляющая школьной программы отвечает, главным образом, за воспитание, ее естественная часть(тоже главным образом) - за обучение. Обучение - чему? Среди всего прочего школа должна научить учиться, работать, как говорится, головой. И здесь основная роль принадлежит математике, школьные разделы которой, как и науки о родном языке из гуманитарной части, являются фундаментальными.
       В любой дисциплине есть техническая и научная части. Чтобы войти в родную литературу, ученик должен бегло читать(и желательно любить это дело); чтобы преуспеть в арифметике, надо хорошо и быстро считать и уловить логику счета. Только исключив затруднения со счетом, можно сосредоточиться на собственно арифметических(содержательных) проблемах.
      
       Обратимся к великой русской литературе. У А . П. Чехова есть рассказ про несчастного гимназиста 7 класса, который репетирует оболтусов из купеческого сословия как раз по арифметике. Отец одного из них вмешивается в процесс, когда репетитор затрудняется решить задачку о купленном сукне двух сортов, аршин одного сорта дороже другого на столько-то, всего заплатили столько-то и т.д. Репетитор бормочет, что тут надо с иксами и игреками. 'Купчина позорный' ухмыляется и пощелкав на счетах решает задачу с помощью вопросов, т.е. арифметически. Купец, возможно не знавший алгебры, соображал хорошо, он мог мыслить логически и соорудить цепочку ведущих к цели вопросов. Т.е., говоря современным языком, он умел построить алгоритм решения задачи. Алгебраическое же решение этой задачи не было развивающим, оно было, на этом уровне, техническим.
      
       Великий скрипач и замечательный педагог Леонид Коган говорил: 'Все ученики делятся на три категории. Первую, очень немногочисленную, составляют те, которым никакой педагог не нужен; третья это ученики, которым никакой педагог не поможет. Я нужен ученикам из второй категории, им я должен помочь прыгнуть выше головы, иногда - почти до вершины'.
      
       Вместе с вышеупомянутой дамой мы считаем, что технические навыки нужно приобретать побыстрее. Если ребенок в 9 - 10 лет не знает таблицы умножения, это очень плохо. Это значит, что его развитию нанесен ущерб и часть золотого детского времени, когда знания буквально прилипают, - потеряно. Не потому, конечно, что он никогда не будет знать таблицу, а потому, что он, определенно отстал в Математике.
      
       Спросим представительный ряд граждан со средним или даже высшим образованием: обращались ли они к обратным тригонометрическим функциям или
       натуральным логарифмам после завершения учебы. 95% опрошенных , я думаю, ответят: нет, не обращались, обходились четырьмя действиями. Если все сводить к проблематике вычислений, то вроде логарифмы теперь вовсе не нужны. Разумеется, это не так. Средняя да и высшая математика дает всем некое чистое знание, навыки и метод, тренирует мозги.
      
       Вопрос о том, что важнее - накопление знаний или метод, привычка к умствованиям, является схоластическим. Но вот что рассказывал мне отец, Арон Моисеевич, родившийся в 1903 году в деревне Яново, Праснишьского уезда, Плоцкой губернии (северо-западная Польша в составе Российской империи) в семье потомственных местечковых кузнецов(отсюда наша фамилия). В нежном возрасте, как положено, он был отдан в хедер, учился прилежно и к годам восьми - девяти был переведен в серьезную йешиву уже в большое местечко Хоржель. В 14 году началась Война, русские войска погнали в тыл железнодорожников-поляков и приграничных евреев. С этого беженства еврейское образование и вообще всякая традиционная еврейская жизнь отца завершилась. Так вот, отец вспоминал, что годам к 15-16 у многих способных йешиботников происходил некий перелом, они покидали училище, очень легко, за пару лет, экстерном сдавали за гимназию и успешно учились в европейских университетах. А все потому, что после хитроумных йешиботных упражнений над святыми текстами гимназические премудрости казались пустяками.
      
       Итак, я был предупрежден... Мой внук готовился ко второму классу и тоже охотно общался с компьютером. Это следовало использовать. В обсуждениях с ним была придумана простенькая игра, которую стимулирует азарт игроков. Кроме того она была самодельной (еще Рон правил иврит в диалоге), а значит более привлекательной, чем скучные официальные развивающие программы. В программах, которые в этой публикации получили названия Tranrus и Examrus, пользователь 'боксирует' по очкам против компьютера, отвечая на случайно выбрасываемые вопросы. Отличаются эти версии тем, что в первой из них таблица умножения не убирается с экрана во время ответа: ребенок учится ею пользоваться, находя результаты на пересечениях строк и столбцов. В третьей наиболее популярной программе Boxrus сражаются двое. И иногда, на зрителях, арифметический бокс может перерасти в небольшую потасовку.
      
       К своему семилетию в декабре внук наигрался с этими программками, освоил таблицу умножения(а потом и деления) и приступил к миссионерской деятельности среди друзей и соучеников.
     []
      
       Никак не могу сосчитать количество свечек на торте. Если их семь, то это Рон
       празднует день рождения в классе "бет". На снимке с ним мама и учительница Рут. Но,
       возможно, свечек шесть.
      
       Немного о языке программирования. По-моему мнению Паскаль есть лучший первоязык среди алгоритмических языков высокого уровня. Не случайно он так надолго задержался во многих странах для изучения программирования в средней школе. Израильская школа прекрасно компьютеризирована. И она хорошо готовит компьютерных пользователей (операционные среды, Exel, Windows, Word, Интернет), исходя из правильной посылки, что пользователями должны быть все. Следующим уровенем освоения компьютерной грамоты является изучение собственно программирования. А вот здесь стремиться к торжеству демократии (всем сестрам по одинаковым серьгам) не следует. Программистов, на мой взляд, можно отобрать из 10, ну 15% выпускников средней школы. Между тем в наших средних школах, в основном, торжествует уравнительный подход. Действует программа, которая не учит чему-то всерьез, но лишь дает представление - зато всем.
      
       Почти в каждом выпуске средней школы есть один или два гиганта, которым никакой Минпрос не страшен. Они, если их не сооблазнит иная карьера, прямые кандидаты в программистские примадонны. Эти люди потом в своей профессии задают направления и находят новые пути. Однако, в конечном счете, не они обеспечивают эти новые направления и пути. Здесь востребован большой отряд понимателей и ответственных реализаторов. Задача школы, на мой взгляд, отобрать таких парней(включая, конечно, примадонн) и довести их к 18 годам до уровня выпускников программистского колледжа. И время не будет потеряно, и армия скажет спасибо.
       Израильские школа и общество не справляются с отбором и подготовкой небходимого числа учеников, склонных к программированию, которое всюду считается еврейской специальностью. Израиль, было дело, как сейчас - не знаю, испытывал острый дефицит в программистах, и наши фирмы завозили их из стран третьего мира (или создавали филиалы на Кипре).
       И еще надо подчеркнуть: наличие в обществе успешных юных хакеров и вирусоманов не свидетельствует о том, что это общество обладает сильным сословием программистов. Эти 'юные негодяи'(метафора Фазиля Искандера) скорее являются продвинутыми (иногда даже гениальными) пользователями. Но ничего конструктивного, кроме, быть может, средств противодействия себе подобным, они создать не могут.
      
       К старости, когда профессионально ты уже не тот, а голова все-таки немного варит и опыт есть, возникает желание написать приличный школьный учебник. Написал и я(в основном, в прошлом тысячелетии). И даже, как смог, перевел на иврит. Называется он 'Введение в программирование. Язык программирования Паскаль - Turbo Pascal 7.0'. В нем намечено несколько последовательных рубежей для желающих изучить предмет на различных уровнях. Часть глав книги имеет научный уклон. По освоении всего курса читатель сможет решать довольно обширный круг задач и у него будет достаточная база для профессионального использования Паскаля и миграции в другие языки.
      
       В дальнейшем я думаю использовать разделы этого учебника и другие наработки в планируемых публикациях у Мошкова, чтобы помочь желающим вспомнить программирование, если такая аудитория обнаружится. В данном случае я адресуюсь, главным образом, к молодым дедам (и еще более молодым бабулям), которые когда-то пусть только баловались программированием, а сейчас уверенно общаются с компьютером и Сетью. Если хотите помочь потомкам в обсуждаемом направлении, обзаведитесть компилятором Паскаля и освойте для начала общение с его Редактором. Наберите тексты приведенных ниже программ, оттранслируйте их и - вперед!
       Сам я вернулся к этой забаве в силу личной ответственности перед младшими внуками. В этом году в школу идет внучка Керен, которая младше Рона аж на 9 классов. А еще через три года в школу пойдет "мизинке" Гиль. Надо подготовиться.
      
       Исходные тексты трех игровых программ на умножение на языке Турбо Паскаль с диалогом на русском латинскими буквами приведены ниже. К Examrus привязан подробный комментарий. Оригинальные тексты 2000-го года содержали диалоги на иврите и кириллическом русском. Но за прошедшие годы заржавели мои руссификаторы и ивритизаторы экрана. Даже компилятор Турбо Паскаля 7 куда-то испарился. Пришлось просить внука порыться в Интернете и восстановить компилятор. Это оказалось делом легким(для него), законным и доступным для всех. Парень вывел иконку компилятора на главное меню Windows. Кликнув по ней я захожу в среду Редактора компилятора Паскаля.
     []
      
      
      
       program tranrus; {L. Koval - Ron, 15.8.99 - 23.4.00 1a}
       uses dos, crt; {1}
       const {2}
       st1 = 'Kompania RON I EGO DED limited(Izrail) ';
       st11 = ' privetstvuet Vas programmoi ';
       st2 = ' TRENIROVKA - UMNOJENIE '; {2a}
       st3 = `Zadai chislo voprosov(1..20): ';
       st4 = `Zadai svoe imia angliiskimi bukvami: ';
       st7 = 'ROUND';
       st8 = ` v tvou polzu, ';
       st9 = `CHEST I HVALA tebe, ';
       sta = `Zadai chislo sekund na otvet (2..15): ';
       stb = ` v polzu komputera ';
       stc = `Kolichestvo sekund na otvet - ';
       std = `Dla zavershenia Tranrus - Enter'; {2b}
       ste = ` - nichia ';
       var
       prl: array[1..2,1..9,1..9] of integer; {3}
       shm : string[10];
       i, j, n, r, m, k, lim: integer;
       s : array[1..2] of integer;
       dt : datetime; {4}
       tm, tm1: longint;
       dw, s100 : word;
      
       procedure start; {5}
       begin
       textcolor(7); writeln(st1); writeln(st11); writeln(st2); {6}
       repeat {7}
       write(st3); readln(n);
       until (n > 0) and (n < 21);
       repeat {8}
       write(sta); readln(lim);
       until (lim > 1) and (lim < 16);
       writeln(st4); readln(shm); s[1] := n; s[2] := 0; clrscr; {9}
       end;
      
       procedure ithul ; {10}
       var
       i, j : integer ;
       begin
       for i := 1 to 9 do
       for j := 1 to 9 do
       begin
       prl[1,i,j] := i*j; prl[2,i,j] := 0;
       end;
       end;
      
       procedure prnrng; {11}
       var
       i, j : integer;
       begin
       textcolor(15); {12}
       for i := 1 to 9 do {13}
       begin
       textbackground(0); gotoxy(41,2*i-1); clreol; gotoxy(41,2*i); clreol; {14-15}
       for j := 1 to 9 do {16}
       begin
       gotoxy(wherex+2,2*i); textbackground(prl[2,i,j]); write(prl[1,i,j]:2);
       end;
       end;
       textbackground(0); textcolor(7); {17}
       end;
      
       procedure naki; {18}
       begin
       window(41,2,79,18); clrscr; window(1,1,80,25); textcolor(7);
       end;
      
       begin {19}
       clrscr; ithul; prnrng; gotoxy(1,1); start; prnrng; randomize; {20-21}
       for r := 1 to n do {22}
       begin
       textcolor(7); gotoxy(1,r); write(st7,r:3,'/',n,' '); gotoxy(12,r); {23}
       repeat {24}
       i := 2 + random(8); j := 2 + random(8);
       until prl[2,i,j] = 0;
       write(i:2,' *',j:2,' = ');
       getdate(dt.year,dt.month,dt.day,dw); {25}
       gettime(dt.hour,dt.min,dt.sec,s100);
       packtime(dt,tm); readln(k); {26}
       getdate(dt.year,dt.month,dt.day,dw); {27}
       gettime(dt.hour,dt.min,dt.sec,s100);
       packtime(dt,tm1);
       if (abs(tm1-tm) <= lim) and (k = prl[1,i,j]) then prl[2,i,j] := 7 {28}
       else
       begin {29}
       gotoxy(35,wherey-1);
       if abs(tm1-tm) > lim then write('T');
       if k <> prl[1,i,j] then write('M');
       sound(100); delay(1500); nosound;
       prl[2,i,j] := 4; s[1] := s[1] - 1; s[2] := s[2] + 1; {29a}
       end;
       prnrng; delay(3000); {30-31}
       end;
       gotoxy(1,n+1); writeln(stc,lim); {32}
       if s[1] = s[2] then writeln(s[1],':',s[2], ste)
       else if s[1] > s[2] then writeln(s[1],':',s[2],' ', st8, shm)
       else writeln(s[1],':',s[2],' ',stb);
       if s[1] = n then writeln(st9, shm);
       write(std); readln;
       end.
      
      
       Для получения текста Examrus.doc необходимо в Tranrus.doc поменять помеченные строчки:
       {1a} program examrus; {L. Koval - Ron, 9.8.99 - 23.4.00}
       {2a} st2 = ' EKZAMEN - UMNOJENIE ';
       {2b} std = `Dla zavershenia EXAMRUS - Enter';
       {20-21} clrscr; ithul; prnrng; gotoxy(1,1); start; randomize;
       {29a} prl[2,i,j] := 12; s[1] := s[1] - 1; s[2] := s[2] + 1;
       {30-31} prnrng; delay(3000); if r <> n then naki;
      
       Комментарии к тексту программы Examrus.
       Задание параметров игры(число вопросов, имя игрока, время на один ответ) осуществляется в ходе работы программы после запуска ее исполнимого файла.
       {1} Главный стандартный модуль Турбо Паскаля System к любой программе подключается автоматически. Здесь объявляются два других модуля (библиотеки подпрограмм, переменных, типов) - Crt(работа с экраном и клавиатурой) и Dos(в нашем случае - обращение к системным часам).
       {2} Объявление констант - строк, необходимых в диалоге для вывода на экран.
       {3} Объявление 'двуслойной' матрицы, которая будет содержать таблицу умножения: в одном слое числа 1, 2, ..., 9, 2, 4, ..., 18, ..., 9, 18, ..., 81, а в другом - обозначения фоновых цветов к ее элементам. Для неиспользованных элементов таблицы задается черный, а для использованных - светлосерый(правильный ответ) и красный (ошибка).
       {4} Переменная dt типа текущего времени из Dos - запись, в компонентах которой могут быть размещены распакованные год, месяц, день, час, минута и секунда.
       В следующей строке объявляются две переменные типа longint, которые могут содержать целые данные в диапазоне -2147483648 .. 2147483647. Определение времени, затраченного пользователем на ответ, осуществляется самым ленивым образом: программа дважды(в начале и конце периода ответа) обращается к системе за указанными компонентами даты и времени и обращает их в число секунд, прошедших с полуночи 1.1.1980 года, когда родился Dos. Разница этих чисел сравнивается с заданным лимитом. Уже в 2043 году число секунд превысит максимально допустимую величину, программа может сработать неверно. Т.о. мы имеем дело с 'проблемой 2043 года'. Не так сложно избежать описанной проблемы, но тогда у нас не было бы повода намекнуть на опасения накануне 2000 года.
       {5} Процедура Start обеспечивает первоначальный диалог с пользователем в левой половине экрана. Программе задаются параметры ее работы.
       {6} Задание светлосерого цвета символов. Вывод приветствия(константы st1, st11, st2).
       {7} Запрос и ввод числа раундов в игре(от 1 до 20). Разрешенное число достигается в форме 'бесконечного' цикла.
       {8} Запрос и ввод числа секунд (от 2 до 15) на один ответ.
       {9} В строке помещены пять операторов. Два первых вводят имя игрока (до 10 букв, длина не контролируется), два следующих придают начальные значения счету в игре, процедура Clrscr очищает экран.
       {10} Процедура Ithul cоздает таблицу умножения (см. ее описание в комментарии {3}).
       {11} Процедура Prnrng выводит в правой половине экрана текущее состояние
       таблицы умножения (с каждым ответом меняется фоновый цвет очередного использованного элемента таблицы).
       {12} Установление цвета символов в таблице(белый).
       {13} Цикл по строкам таблицы.
       {14-15} Textbackground устанавливает цвет(черный) для стирания двух строк экрана, которые используются одной строкой таблицы умножения. Стирание каждой строки в правой половине экрана выполняется двумя командами. Первая позиционирует курсор у ее начала, а Clreol удаляет символы до конца строки.
       {16} Цикл печати элементов строки таблицы умножения. В теле цикла три оператора. Первый позиционирует курсор перед печатью, второй устанавливает цвет фона элемента(черный, светлосерый или красный), а третий - выводит значение элемента. Число и фон берутся из трехмерного массива prl.
       {17} Восстановление черного цвета фона и светлосерого - для символов.
       {18} Процедура Naki очищает место таблицы умножения на экране. Первый оператор устанавливает окно, Clrscr заливает его текущим цветом фона, третий оператор возвращает окно на весь экран, а четвертый - светлосерый цвет символов.
       {19} Начало главной программы.
       {20-21} Очистка экрана; инициализация таблицы умножения; вывод таблицы на экран; помещение курсора в левый верхний угол экрана; исполнение процедуры Start(см. {5}).
       Процедура Randomize инициализирует от системных часов генератор равномерно распределенных случайных чисел. Случайные же числа генерирует функция Random.
       {22} Основной цикл игры по вопросам(раундам).
       {23} Установление светло-серого цвета символов; позиционирование курсора в первой позиции строки, номер которой равен номеру раунда; печать номера раунда и общего их числа; перемещение курсора в позицию, с которой начнется вывод вопроса.
       {24} Цикл случайного подбора сомножителей, который работает до тех пор, пока не наткнется в таблице на неиспользованную еще пару(с черным цветом фона).
       Затем вопрос выводится на экран.
       {25} Getdate возвращает текущую дату(переменная dw будет содержать неиспользуемый номер дня недели). Gettime возвращает текущее время(переменная s100 выделена для неиспользуемых сотых долей секунды).
       {26} Packtime обращает дату и время в число секунд, прошедших с 1.01.1980.Это время(начала раунда) помещается в переменную tm. Ввод ответа.
       {27} Getdate, Gettime и Packtime помещают время конца раунда(в секундах) в tm1.
       {28} Если отрезок времени tm1 - tm не больше заданного лимита и ответ - правильный, фоновый цвет элемента - произведения меняется на светло-серый.
       {29} Иначе: в строке текущего раунда выводится символ T(время просрочено) и/или M(ошибочный ответ), 1.5 сек длится сигнал частотой 100 герц, цвет фона становится красным, параметры счета игры изменяются.
       {30-31} Вывод талицы умножения в текущем состоянии и пауза(3 секунды) для обозрения результата. Во всех раундах, кроме последнего, таблица умножения гасится.
       {32} Завершение игры. Программа напоминает заданный лимит времени, выводит счет с указанием - в чью пользу. Если пользователь победил на ноль, ему воздается хвала. Выход из программы выполняется по нажатию клавиши Enter.
      
      
       program boxrus; {L. Koval - Ron, 9.8.99 - 23.4.00}
       uses dos, crt;
       const
       st1 = 'Kompania RON I EGO DED limited(Izrail) ';
       st11 = ' privetstvuet Vas programmoi ';
       st2 = ' BOKS - UMNOJENIE ';
       st3 = `Zadaite chislo voprosov(1..15): ';
       st4 = `Zadaite imena bokserov angliiskimi bukvami: ';
       st5 ='Sinii ugol -> `;
       st6 = `Krasnii ugol ->';
       st7 = 'ROUND';
       st8 = ` v tvou polzu, ';
       st9 = `CHEST I HVALA tebe, ';
       sta = `Zadaite chislo sekund na otvet (2..10): ';
       stc = `Kolichestvo sekund na otvet - ';
       std = `Dla zavershenia BOKSRUS - Enter';
       ste = ` - nichia ';
       var
       prl: array[1..2,1..9,1..9] of integer;
       shm : array[1..2] of string[10];
       i, j, n, r, m, k, lim: integer;
       s : array[1..2] of integer;
       dt : datetime;
       tm, tm1: longint;
       dw, s100 : word;
      
       procedure start1;
       begin
       textcolor(7); writeln(st1); writeln(st11); writeln(st2);
       repeat
       write(st3); readln(n);
       until (n > 0) and (n < 16);
       repeat
       write(sta); readln(lim);
       until (lim > 1) and (lim < 11);
       writeln(st4); textcolor(11); write(st5); readln(shm[1]);
       textcolor(12); write(st6); readln(shm[2]);
       s[1] := n; s[2] := n; textcolor(7); clrscr;
       end;
      
       procedure ithul ; procedure prnrng; procedure naki; - скопировать выше.
      
       begin
       clrscr; ithul; prnrng; gotoxy(1,1); start1; randomize;
       for r := 1 to n do
       begin
       textcolor(7); gotoxy(1,2*r); write(st7,r:3,'/',n,' ');
       for m := 1 to 2 do
       begin
       gotoxy(12,2*r+m-1); textcolor(10+m); write(shm[m]:10,' `);
       repeat
       i := 2 + random(8); j := 2 + random(8);
       until prl[2,i,j] = 0;
       write(i:2,' *',j:2,' = ');
       getdate(dt.year,dt.month,dt.day,dw);
       gettime(dt.hour,dt.min,dt.sec,s100);
       packtime(dt,tm); readln(k);
       getdate(dt.year,dt.month,dt.day,dw);
       gettime(dt.hour,dt.min,dt.sec,s100);
       packtime(dt,tm1);
       if (abs(tm1-tm) <= lim) and (k = prl[1,i,j]) then prl[2,i,j] := 7
       else
       begin
       gotoxy(35,wherey-1);
       if abs(tm1-tm) > lim then write('T');
       if k <> prl[1,i,j] then write('M');
       sound(m*100); delay(1500); nosound;
       prl[2,i,j] := 10 + m; s[m] := s[m] - 1;
       end;
       end;
       prnrng; delay(3000); if r <> n then naki;
       end;
       gotoxy(1,2*n+2); writeln(stc,lim);
       if s[1] = s[2] then writeln(s[1],':',s[2], ste)
       else if s[1] > s[2] then writeln(s[1],':',s[2],' ', st8, shm[1])
       else writeln(s[1],':',s[2],' ',st8,shm[2]);
       if s[1] = n then writeln(st9, shm[1]);
       if s[2] = n then writeln(st9, shm[2]);
       write(std); readln;
       end.
    Приведенные выше игровые программки на таблицу умножения легко превратить в программки на таблицу деления путем замены в них шести строк(операторов). Программа tranrus превращается в trndivru, examrus в examdivru, а boxrus в boxdivru. Во всех программах надо заменить три следующих оператора(первый исходный, второй - на замену):
    write(i:2,' *',j:2,' = '); write(i*j:3,':',j:2,' = ');
    if (abs(tm1-tm) <= lim) and (k = prl[1,i,j]) then prl[2,i,j] := 7 if (abs(tm1-tm) <= lim) and (k = i) then prl[2,i,j] := 7
    if k <> prl[1,i,j] then write('M'); if k <> i then write('M');
    И еще по три в каждой из программ:
    program tranrus; program trndivru;
    st2 = ' TRENIROVKA - UMNOJENIE '; st2 = ' TRENIROVKA - DELENIE ';
    std = 'Dla zavershenia Tranrus - Enter'; std = 'Dla zavershenia Trndivru - Enter';
    program examrus; program exmdivru;
    st2 = ' EKZAMEN - UMNOJENIE '; st2 = ' EKZAMEN - DELENIE ';
    std = 'Dla zavershenia Ekzamrus - Enter'; std = 'Dla zavershenia Exmdivru - Enter';
    program boxrus; program boxdivru;
    st2 = ' BOKS - UMNOJENIE '; st2 = ' BOKS - DELENIE ';
    std = 'Dla zavershenia Boxrus - Enter'; std = 'Dla zavershenia Boxdivru - Enter';
      
       Взаимодействие со средой программирования Паскаля. Для удобства читателя ниже даются самые первые рецепты общения с редактором и компилятором Паскаля. Прежде всего необходимо создать для учебы и работы специальную директорию (скажем под именем DED). Кликнув по фигуральной иконке, упомянутой выше, мы попадаем в среду Редактора - компилятора Паскаля. Из перечня главного меню нам пока потребуются окна File, Run и Compile.
      
       Окно File:
       Change dir... - сменить директорию. В строке Directory name исправляем траекторию на используемую директорию (в примере на D:\DED и ОК). New - открыть новый файл под именем NONAME00.PAS. OPEN - открыть перечень уже существующих .pas - файлов в директории под именем DED из примера. И - вызвать в окно редактирования (Open) нужный файл. Save - запомнить набранный текст под своим именем. Save as... - запомнить текст с переименованием. DOS shell - выйти в DOS. Exit - выйти из Редактора.
      
       Окно Run:
       Run - скомпилировать и исполнить.
      
       Окно Compile:
       Compile - только скомпилировать.
      
       Две последние команды создают и запоминают исполнимый (.exe) файл.
      
       Среда Паскаля очень дружественная, навыки в поиске ошибок и "очепаток" приобретаются легко.
    МИЦВА. Я напрасно надеялся, что кто-нибудь пожелает пройти этап набора текстов программ и компиляции. Так игрушки не распространяют. И мицву надо исполнять до конца. Мицвот(мн.ч.) суть исполнение предписаний и запретов в иудаизме. А на обычном языке мицва есть просто всякое доброе дело. Я попрежнему считаю, что в израильской начальной школе детей математике учат неважно. Напомню, что когда мой старший внук Рон перешел во второй класс, мы с ним сочинили простенькие игрушки по научению таблице умножения. Прошло 9 лет и игрушки эти понадобились внучке Керен. Ко мне иногда обращаются с просьбой прислать .exe - файлы. Не получается: строгие почты, как правило, не пропускают творения MS DOS и старенького компилятора, что-то им там не нравится. Я попросил Рона решить проблему и разместить материал на общедоступном месте. Рон все сделал, использовав память нашего первого с ним сайта в Триподе. А потом долго пояснял мне как с этим "рарчиком" обращаться. С упакованными материалами у меня всегда были сложные отношения, поэтому, не исключно, нижеследующая инструкция неоптимальна. Итак, как получить набор из 9 модулей(по три .exe файла на иврите и русском, но с использованием в диалоге латиницы, два help'a и одна картинка):
    1.Интернет открыт. В адресную строку помещатся адрес упакованного материала http://koval-ron.tripod.com/kefel.rar (на всякий случай еще раз:http://koval-ron.tripod.com/kefel.rar) - клик! (Только так. Прямое обращение, например, прямо отсюда с отсылки приводит у меня в какие-то глубины Трипода, откуда я не могу выбраться)
    2.Возникает меню с тремя возможностями. Клик на Open.
    3.Появляется меню WinRAR(evaluation copy).
    4.Поверх - неделикатное напоминание о каких-то денежках и сроках. Клик Close.
    5.На экране таблица отсылок ко всем 9 файлам набора. Их после автоматической распаковки прямо на месте можно читать(help'ы), распечатывать, играть с ними.
    6.В меню WinRAR(evaluation copy) кликнуть по Extract To.
    7.В правом окошке новой таблицы выбрать место сохранения распакованных копий, например, С - и клик.
    8.Соберите все девять модулей в отдельную директорию. Для удобства можно вынести иконки быстрого доступа к трем игровым программкам на главное меню. Играйте на здоровье, но сначала прочтите свой help.
    Еще одно напоминание. В русской версии игры используются четыре модуля tranrus.exe, examrus.exe, boxrus.exe и kefel.doc(аналогично - в ивритской). Порядок освоения игр: tranrus.exe - пероначальная игра: таблица умножения остается на экране постоянно. examrus.exe - все то же самое, но без подсказок: таблица умножения возникает на экране на несколько секунд лишь после ответа. boxrus.exe - игра на двоих. Азарт следует использовать. Если у вашего внука нет партнера, Вы сами можете составить ученику компанию. Только помните старое правило игроков в карты: нельзя выигрывать у всех и всегда - останешься без партнеров. Можно делать фактические ошибки (М) и/или нарушать лимит времени (Т). Текст kefel.doc стоит распечатать и по необходимости размещать таблицу умножения над экраном. Помогает, особенно после длительного перерыва. После каникул ребенок часто забывает уже освоенный материал. Автор будут благодарен, если Вы поделитесь полученным опытом, включая претензии, в обсуждениях статьи. 27.9.2008   
       Dolbica.doc, L.K., 1999, 2007
  • Комментарии: 1, последний от 26/07/2020.
  • © Copyright Коваль Леон (leonko@walla.com)
  • Обновлено: 17/02/2009. 35k. Статистика.
  • Статья: Израиль
  • Оценка: 6.00*3  Ваша оценка:

    Связаться с программистом сайта
    "Заграница"
    Путевые заметки
    Это наша кнопка