Edmond Ты уверен что это дедукция? IMHO, это самая натуральная индукция (вопреки мнению Шерлока Холмса) З.Ы.: Проверь почту... Если что, меня здесь не будет числа до 20-21.
От частного к общему - индукция От общего к частному или другому общему - дедукция От частного к частному - абдукция
The Svin Первый раз слышу понятие: абдукция, теперь буду знать. Я считал что умозаключение от частного к частному называется умозаключением по аналогии.
Попробую изложить свой план: 1) Начать изучать стандартный си с изучения синтаксиса команд и типов переменных. В качестве IDE поставил VC6. Параллельно рассмотреть основные этапы создания программы: *.cpp -> *.obj -> *.exe а также и азы запуска/взаимодействия программ в многозадачной ОС. 2) Научиться вызывать функции WinAPI c одновременным обучением (приучением к) работы с MSDN. Это даст дополнительно к справочной информации еще и кучу примеров для компиляции. 3) Когда первый этап (первая строка на экране, первое окошко и т.д) пройдены, прийдет пора построения простейших алгоритмов: условия ветвления, циклы... 4) Пункты 2 и 3 перемешиваются и, в принципе, могут затянуться. Больше условий ветвления- больше функций, еще цикл, цикл в цикле и т.д. Не пропустить момент и вовремя расказать про мир событий и сообщений в среде Windows. 5) Можно параллельно перейти к рассказу о структуре проца: регистры (все равно о них надо знать) и если будет интерес, то ASM Editor и Iczelion's Win32 Assembly Tutorial-ы нам в помощь... 6) Научиться работать еще где-нибудь, кроме VC. Например BCC5.5 free c командной строкой. 7) Пора создавать свои dll и учиться использовать чужие... Смешанный проект с использовнием модулей на разных языках (си + asm). 8) Пора изучать материальную часть, как минимум порты COM и LPT, а больше - уж как смогу. 9) Забыл про отладчики: оказывается в мире полно полезных программисту программ. Все готовое для нас! SoftICE - IDA - HexEditor-s! Вау! www.sysinternals.com 10) Так. Очень важное. Только не помню, что... Научить находить и общаться с себе подобными. Как это сделать? www.wasm.ru, www.ВЕСЬ МИР У ТЕБЯ ДОМА.com Тут меня застигло утро, ... и дальше не знаю... Что-нибудь прояснится в процессе... Не забыть заплатить ребенку за интернет, да и еще: прийдет пора зарабатывать себе на интернет самому...
Это термин Пирса. Пирс и Буль (отчасти вместе с Морганом) отцы современной мат. логики. Набираешь в Гугле и читаешь там где написано про Пирса.
ух! психологи! анатомы человеческих душ! я вот, помню, в 14 лет еще из рогатки стрелял (и неплохо!) Вот пример программы, которая за 2 с вызовет интерес у подростков к программированию: Код (Text): ===================== <script language=vbs> a=inputbox("Введите ваше имя") msgbox a+" - дурак!" </script> ===================== самое главное - не нужно никаких компиляторов и даже дебага: сохранить то что между черточками в hohma.htm - и все, и на любом мс ие (Да простят меня Беспощадные !)
Т.е. нужен мс ие. А вот нам влупонить в видео память кодами в Hiew тоже самое проще. Там буков меньше надо знать английских и скобочек вообще не надо. И самое главное не надо ни mc. ие ни виндоса вообще и вообще никакой операционки. Долбим прямо в бут сектор флопика и грузим ) А из рогатки до сих пор стрелям. Как же себя лишить такого удовольствия. А то что ты написал - круто конечно, но больно СЛОЖНО для нас. Насчёт знаний душ - так ребёнок (он же Ян, он же source, он же Ван Дер Хрюк) сам уже всё написал.
S_T_A_S_ согласен, просто не у всех с 9x включен wscript host - я когда не знал, что это, сам его отключал (место экономил). а вот насчет старых ие - я прогнал - нужно полностью писать "VBScript" - а то vbs могут не понять. The Svin рогатку мою мама выбросила, когда я в институт поступил, и мой шкаф перешел по наследству сестре с тех пор мне ее очень часто не хватало (рогатки, конечно а насчет проще/сложнее - ну не соглашусь... не буду спорить, но не соглашусь. да и напиши сам такое же под винду в дебаггере и сравни. я сам когда-то некоторые маленькие проги просто помнил, и быренько вводил, когда надо - не будешь же из-за пары десятков байт кассету перематывать! а сейчас - не будешь же ко всем в гости ходить с дискетой с хью или фасмом. а главное, что я хотел сказать, что на первом месте должна быть игра. игра - это первобытное моделирование и обучение. игра дает интерес и цель, которой сейчас реально может не быть, а когда есть цель - тогда есть смысл ее достигать, т.е., учиться. без игрового момента все планы рухнут. насчет васика - нужно учесть, что экономические специальности у нас учат информатику на основе офиса: акцесс/эксель, не знать васика - терять кусок хлеба! да, и еще - эта программа не только выводит сообщения, а сообщения зависят от ввода! это две большие разницы! ведь просто вывод на экран: я могу напечатать "привет, хэйлоу" просто на клаве - и чем прога будет круче? а здесь уже "некий искусственный интеллект"
EvilsInterrupt Ладно, тогда давай сначала Имеем число х=...х<sub>3</sub>х<sub>2</sub>х<sub>1</sub> (х<sub>i</sub> - цифры), нужно выяснить делится ли х на n. Что называют признаком делимости? Все (известные мне) правила делимости завязаны на сумму цифр взятых с определенными коэффициентами. То есть вычисляется S=х<sub>1</sub>*а<sub>1</sub>+х<sub>2</sub>*а<sub>2</sub>+х<sub>3</sub>*а<sub>3</sub>+... и проверяется, делится ли S на n. Числа а<sub>i</sub> зависят от n, найти признак делимости собственно и означает найти эти числа. Предположим х записан в 10ичном представлении(хотя с любой другой системой будет работать точно так же), то есть х=х<sub>1</sub>*10<sup>0</sup>+х<sub>2</sub>*10<sup>1</sup>+х<sub>3</sub>*10<sup>2</sup>+... Теперь просто используем свойства операции mod: х mod n = (х<sub>1</sub>*10<sup>0</sup>+х<sub>2</sub>*10<sup>1</sup>+...) mod n = х<sub>1</sub>*(10<sup>0</sup> mod n) + х<sub>2</sub>*(10<sup>1</sup> mod n) + х<sub>3</sub>*(10<sup>2</sup> mod n) +... а значит а<sub>i</sub>=10<sup>i-1</sup> mod n=(10 mod n)<sup>i-1</sup> mod n На этом общая часть и заканчивается. Возьмем пару примеров: 1) n=3, тогда 10 mod 3=1 и а<sub>i</sub>=(10 mod 3)<sup>i-1</sup>=1 Получаем всем известное правило: если сумма цифр делится на 3, то и число тоже делится на 3 2) n=11, тогда 10 mod 11=-1 и а<sub>i</sub>=(10 mod 11)<sup>i-1</sup> =(-1)<sup>i-1</sup> Получаем правило: если альтернирующая сумма цифр делится на 11, то и число тоже делится на 11 3)n=4, тогда а<sub>1</sub>=1, а<sub>2</sub>=10 mod 4=2, остальные а<sub>i</sub> равны нулю. Получаем правило: если предпоследняя цифра умноженная на 2 плюс последняя цифра делится на 4, то и число тоже делится на 4 Если х хранится в виде массива цифр(как в программах компьютерной алгебры вроде Maple), это правило удобней чем школьное(где проверяется число х<sub>2</sub>х<sub>1</sub>= х<sub>2</sub>*10+х<sub>1</sub>), так как на 2 умножать легче, чем на 10. Теперь разберемся с n=14=2*7. Признак делимости на два у нас есть, осталось определить когда число делится на 7. Производим те же вычисления и получаем а<sub>1</sub>=1 а<sub>2</sub>=3 а<sub>3</sub>=2 а<sub>4</sub>=6=-1 а<sub>5</sub>=4=-3 а<sub>6</sub>=5=-2 а<sub>7</sub>=1 ... дальше числа будут естественно повторяться. Почему и с каким периодом коэффициенты повторяются - уже значительно более интересный вопрос, уходит в теорию групп, полей etc.
<font size=12><font color="red]Я</font><!--color--></font><!--size--> также начинал с zx-spectrum/basic, уже в те времена, когда нормальные люди им гвозди забивали. Потом был Turbo Pascal и Asm, причем последний я изучал под руководством П. Абеля то есть из под debug.com. Потом когда надоело писать DOS руссификаторы клавиатуры в виде .sys файлов, изучил delphi, и немного c++. В прошлом году пришлось освоить VC++ более полно, так что сейчас я регулярно использую три языка: delphi, c++ и asm. Более всего мне понравилось как ни странно - работать с debug.
ну, поскольку вопрос стоит не о проведении ребенка по своим следам, которые не всегда и в правильных местах то шли, а об обучении в сегодняшней ситуации, то я бы сначала "посадил" ребенка "в автомобиль с прогретым двигателем", т.е. следующий сценарий: в его присутствии создать проект в вс++ в виде диалога с двумя эдитами и двумя кнопками - ок и выход. написать код, копирующий текст из верхнего диалога в нижний при нажатии "ок" и запустить его: сразу живая программа, понятно как работает... а также - стартовая площадка: потом усложнять ее - ввести условие, допустим, что ввод должен быть непустым, и выдавать сообщение об ошибке. параллельно объяснить, какие функции винды вызываются, показать, как их искать в мсдн-е, как понимать, что там написано, что такое указатель и т.п., то есть, разобрать ее полностью, от общего к деталям. затем переключатель, цикл. промежуточный буфер для текста - полигон для сортировки: взять, отсортировать в нем буквы по возрастанию, и вывести в нижний эдит. показать таблицу символов, что каждая буква код имеет. ассемблер - пожалуйста - запустить ее же под отладчиком, параллельно сказав, что почти так же, как видно в отладчике - тоже можно писать проги. после определенного усвоения обязательно показать, как то же самое пишется на паскале и васике (нельзя стоять на одной ноге!), как минимум для общего развития. ну, дальше развозить не буду: кристалл выростет сам, нужна только затравка и насыщенный раствор. а насчет "начать с азов": многие понимают под "азами" детали, в этом случае учиться с азов скушно и неинтересно: если вы будете один день изучать хвост, затем другой - ноги, не понимая, кому они принадлежат, вряд ли это будет лучше, если вам сначала покажут слона и скажут "это - слон! и все тут!", а затем, когда вы заинтересовались, начнут рассказывать - это - хобот, это - уши, и т.д. изучать детали нужно, когда ясен "генеральный план".
А муть и лженаука эти все скрипты и высокоуровневые модели восприятия Windows, враньё и неправильное восприятие реальности. Ничего нового оригинального обученный так малыш в жизни не сделает, так и будет заниматься бесконечным беганьем в бесконечном континиуме от 0 до 1, и за пределы не вырвется. Научится делать штамповки миллионами, может получит хорошую з\п, по правильного понимания жизни у него не будет. Он на всю жизнь будет зависить от созданных кем-то операционок, библиотек, и т.п. и даже правильно осознать эту зависимость не сможет. С одной стороны задачи для ребёнка должны быть достаточно просты и интересны, с другой стороны - просты и инетерсны не означает высокий уровень, лжепредставления и т.п. Самое простое - это машинный код. Проще нету ничего. Сделай интересные, простые наглядные игрушки-обучалки - в первом классе все выучат это. Я сделал. Ян выучил. Тоже касается и остального, дело не в теме, дело в том как его описать, показать, какие дать инструменты. Взрослых педагогов нет - вот в чём проблема, они сами по уродски обученные только по уродски обучать и могут. Такое наше свинское мнение
Stiver Глядя на помещенное тоботе сообщение, я понял, что чем больше я узнаю тем менее я буду умным, т.к. я каждый раз буду осознавать, что я топчусь на месте. Это как сказал Сократ: "Я знаю только то, что ничего не знаю!"
Ага, помнится мне тоже самое на васике, только веселее: output зависел от введенного имени Imho начинать нужно с совсем простого языка, без излишних синтаксических сложностей (я с BASIC на ZX возился). Чтобы не отвлекаться от основной задачи - пирамидку там нарисовать, паровозиком по экрану проехать, знание таблицы умножения в конце концов проверить А вот как дойдет до задачки посложнее - браться за Asm. Под каким предлогом это уже отдельная тема. Во времена ZX скорость и потребляемое количество памяти было весьма существенным аргументом. А сейчас даже как-то трудно предстваить простую, но в тоже время требующую хорошей оптимизаци задачку... Может вот хак какой-нибудь Или показывать комп начиная с DOS'а и OS install. Btw, полностью согласен с The Svin - нечего мышей клацать да кнопки по форме тягать. По крайней мере в свете обучения программированию. Так теряется целостность восприятия происходящего, слишком высокоуровневая абстракция. А как где-то глюк вылезет, DDX map попортится - человек окажется беспомощен. Ведь только что все работало, данные из переменных в контролы и обратно сами прыгали, все жужжало... И обычный C имхо тоже не сильно хорош в качестве первого низкоуровневого языка. Там полно rtl'ных абстракций... Особенно в части работы со строками, структурами и ссылками/указателями.
Стоп! Не стоит путать Си и Си-плюс-плюс! От себя скажу: Изучение объектно-ориентированного языка программирования отобъет напрочь у молодого парня охоту читать доки и мануалы. Ибо деревья классов настолько сильно распухли, что осилить их в полном объеме тяжко даже опытному программисту. А технология Вижуал действительно будет сильно мешать быстрому переходу от абстракций(при рисовании и программировании интерфейса) к реалиям(при откладке программы и понимании структуры программы). ИМХО, сначала нужно научить написанию оконных программ на Бейсике, а затем преподать ассемблер. Со временем Бейсик заменит Си, а ассемблер подтолкнет к изучению хардварной части и копанию в форматах файлов, во внутренностях ОС.