Microsoft Small Basic, полезные ссылки.
Есть такая гипотеза, что человек всю жизнь разговаривает на том языке, на котором он научился говорит. Он на нем думает. И сколько бы он не знал иных языков — думает он на родном, а на остальные — просто переводит. Более успешно или менее.Это уж как получается. И когда у него отключается сознание, то из него прет именно тот язык, на котором он начал говорить. А некоторые языки — он не изучает, он просто вспоминает. *)
Это гипотеза, байка. Но кажется мне, что в ней есть капля здравого смысла. Особенно, если применить ее к языкам программирования.
Наблюдаю очередной виток в программном обеспечении для обучения программирования от Микрософта — Microsoft Small Basic. Молодцы, что могу сказать. Видимо придерживаются той же гипотезы, что первый язык программирования и первая среда программирования, на которой созданы первые успешно работающие программы накладывает отпечаток на всю оставшуюся жизнь.
Предположу, что до кого-то в Микрософте, дошло, что их Визуал Бейсик со всеми их диалектами стал слишком тяжел для того, чтобы быть первым языком для обучения и поэтому теряет свою популярность среди тех, кто только учиться программировать.
Если говорить о простоте, то сразу же вспоминается их замечательный QBASIC. Успешно кочевавший из одной версии MS-DOS в другую, он дожил аж до Windows 98. Для многих, кто начинал учиться программировать во второй половине 90-х он был первым языком. Простым и понятным. С удобной средой и кучей примеров.
Но современных условия, он стал несколько неактуальным и перейти с него на тот же Визуал Бейсик опять же несколько проблематично. К тому же, QBASIC совершенно по-разному ведет себя под различными операционными системами той же Микрософт. Поэтому, ребенок может смело сказать — я ничего не сделал, потому что я не смог запустить эту вашу программу дома. И вполне это может быть истиной.
Лично мне такие оправдания очень сильно надоели за эти две четверти. Предположу, что не мне одному и эти слова дети говорят на множестве языков по всему миру.
Поэтому в Микрософте поступили очень просто.
Прежде всего нашли энтузиастов. А потом, они, в содружестве с компанией, взяли и существенно зарезали Визуал Бейсик. Упростили его до уровня QBASIC. При этом — оставили главное из идеологии именно Визуала — объекты, но так, чтобы не ООП мешало нормальному, процедурному, программированию для начинающих.
Отлично подошли к среде программирования. Сделали ее удобной именно для начинающих, а для тех, кто хочет учиться самостоятельно — практичной и информативной. Добавили возможность расширения внешними модулями и возможность импортирования программ в Интернет, вставки их на сайт и еще кучу мелких фишек, которые позволят ребенку почувствовать себя «настоящим современным программистом».
И это круто. Это реально очень круто. Психологически круто и политически.
И поскольку в шестом классе в этой четверти по плану стоит Бейсик, то кажется мне стратегически верным решением попробовать дать именно этот диалект. Заодно переведу на него все, что коллеги писали основываясь на GW- и Q- Basic последние лет 18. *)
А сделано, действительно ой как прилично.
А теперь сами ссылки.
Основной сайт = http://smallbasic. com
Русскоговорящее сообщество = http://smallbasic.ru
Скачать дистрибутив можно или с основного сайта или вот отсюда = http://smallbasic.ru/download
Введение в программирование на языке Microsoft Small Basic = http://smallbasic.com/international.aspx
Наиболее приятный и главное — симпатичный учебник = http://www.twirpx.com/file/268594/
Для тех, кто любит толстые книги в бумаге — можно купить самоучитель = http://www.ozon.ru/context/detail/id/5708177/
Для тех, кто предпочитает смотреть телевизор — видеоуроки = http://smallbasic.ru/videolessons
Русскоязычный форум = http://forum.smallbasic.ru/
Сайт тех, кто на этом языке пишет для тех, кто хочет на нем научиться программировать = http://rezoh.ru
Сайт тех, кто обучает своих или чужих детей на этом языка программирования и кто понимает, что нормально написанная документация и отработка навыка работы с ней — залог успеха в будущем = http://smallbasic.webs.com/
Центр начинающего разработчика, главное, что там есть — ссылка на блог разработчиков. Но почитать стоит и все остальное = http://msdn.microsoft.com/ru-ru/beginner/cc950524.aspx
Посмотрим, что получится в итоге?
8)
Tags: Вторая основная работа, Полезные ссылки
С чего начинать программировать в доп. образовании? Или SmallBasic и все-все-все
Меня зовут Ростислав, вот уже семь лет я веду кружки по программированию для школьников 7-10 классов. Последние несколько лет я вел курсы по С++ в лаборатории робототехники Политехнического музея и ЦМИТе «Геккон клуб», а основная моя основная работа — это веб-разработка и разработка мобильных приложений. Интересней всего мне работать с медицинскими сервисами.
В этой статье я хочу порассуждать, как люди становятся крутыми специалистами в той или иной области, и каким образом на это влияет дополнительное внешкольное образование. Как строить учебные программы и какой язык выбрать для обучения? Что такое нужно делать с детьми, чтобы из них вырастали крутые мотивированные специалисты?
В ИТ эта проблема особенно актуальна — хороших программистов на рынке не хватает, зато очень много недоквалифицированных людей, которые никогда спецами не станут — просто потому, что у них нет к этому страсти.
Для начала стоит вспомнить, как я сам до этого дошел. Например, я точно помню, что выбор школы в пятом классе был отчасти обусловлен вкусной ромовой бабой в буфете, а в этой самой школе перед уроком английского, в далеком 2006-ом, в класс вбегает мой достаточно маргинальный одноклассник с криком «ребята, я сделал сайт нашего класса на MyLivePage! Записывайте адрес!». Это было настоящим открытием — оказывается, так можно, и это совершенно бесплатно. Тогда я решил сделать свой сайт и, конечно, про компьютеры. Я покупал компьютерные журналы и переписывал из них интересные новости, загружал интересный софт. На сайт заходили мои одноклассники, кто-то что-то комментил. Это было восхитительно! А затем нужно было разместить информер от яндекса, оказалось что это вообще не тривиально — нужно копаться в куче непонятного кода. Я покопавшись, конечно, ткнул его на нужное место, но решил, что с кодом надо бы разобраться. Сказано — сделано! Солнечным зимним вечером я зашел в книжный и купил на накопленные деньги свой первый учебник по HTML.
Спустя пару недель обучения стало понятно, что HTML — это круто, но вот чем обрабатывать формы — совершенно непонятно, но все говорят про какой-то PHP. Базовые вещи получалось делать по книжке, но вот ООП мне тогда не поддался и я решил пойти на курсы.
Я выбрал курс по С++ в “Школе программирования” в ДНТТМ. И вот это был по настоящему поворотный момент. Я оказался в кругу людей со схожими интересами, у меня сразу появилось много новых друзей. Во-первых, стало понятно, что я реально что-то могу, а во-вторых, куда стремиться дальше. Немалую роль сыграла система командных проектов, когда надо было сначала описать ТЗ, разделить работу, а затем регулярно отчитываться о работе. Мы были словно небольшая ИТ компания. А еще мне очень понравилась стажерская программа — благодаря ей я сам в итоге стал преподавателем.
Я поговорил с некоторыми своими знакомыми и учениками и услышал очень похожие истории. Например, такую мне рассказал Леван Квирквелия, сейчас ещё школьник, разработчик популярного мобильного приложения «МРКО — независимый электронный дневник», стабильно удерживающего первую строчку рейтинга AppStore и Play Market:
Во втором классе, когда я спросил учительницу информатики «как сделать сайт?», она сказала: HTML. С этим странным словом я пошел домой, а совсем скоро принял ужасное решение — пошел в книжный магазин. Книги я не любил, да и сейчас не люблю, поэтому выбрал самую тонкую книгу, на обложке которой было это слово, — «HTML и CSS для создания Web-страниц» Э. Кастро. Круто звучит да? Дома я скачал нужные программы, попробовал, поигрался. Свой первый сайт, который был выпущен в «продакшн», я сделал на прекрасном Narod.ru, («Яндекс», без тебя не было бы меня).
Дальше пошло развитие. Я постоянно хотел изучить все больше, хотел сделать свой сайт круче, хотел быть нужным, хотел зарабатывать на этом, я хотел быть молодцом. Дальше я развивался как программист: два года искал себя, изучал Java, C++. Еще за два года было много чего создано. Я сделал огромное количество проектов, которые не «выстрелили» (ничего тогда не раскручивал, не было денег), заработал первые 100 тысяч на заказе сайта от родственника. В итоге я нашел себя. Я понял, что больше всего на свете мне нравится:
- делать крутые проекты, связанные с ИТ;
- делать полезное людям;
- быть молодцом (расшифрую: мой продукт лучший, все должны офигевать от него).
А Сева Жидков, девятиклассник, победитель олимпиады НТИ, хакатона Вконтакте 2016 и сотрудник Mail.ru (а еще создатель стартапов LeonardBot и Sheldon.ai) рассказывает:
Во втором классе я пошел на компьютерный кружок в местном университете, там были лого-миры или что-то такое. Потом, через пару лет, я хотел зарабатывать деньги и пытался научиться верстке и всему такому, так что деньги тоже были одной из изначальных мотиваций. Я загуглил “Как создать сайт” и выучил HTML. Первый сайт был для своего класса, хотелось тогда как-то выделиться, «стать крутым»
Прослушав множество таких историй, можно сделать определенные выводы по поводу того, как строить успешный образовательный процесс для школьников в ИТ:
- Движущей силой для развития чаще всего является возможность реализовать собственный проект, который как можно раньше показать друзьям (а лучше — всему интернету) или заработать на нем какие-то деньги. А значит такие проекты нужно делать как можно раньше. Чисто учебные проекты нужно стараться стилизовать под реальные.
- Сложные технологии успешно изучаются тогда, когда они нужны для реализации проекта. А значит сначала задача, а только потом способ ее решения. А в идеале — до него нужно дойти самостоятельно.
- Материал усваивается хорошо, когда он вызывает сильный эмоциональный отклик. А значит если задача не проектная, она должна быть хотя бы веселой и странной, а лучше — очень веселой и очень странной. Сторителлинг про Лунтика, летающие «бугурты», в бою все средства хороши. Главная задача — не превратить процесс в скучное, противное занятие. Я видел множество людей, которые в течение многих лет в с начальной школы учились играть на музыкальном инструменте, но окончив обучение ни разу не брали его в руки — это самое страшное, что может с процессом обучения.
Как же исходя из всего этого оптимально строить учебную программу? Чтобы с одной стороны не утратить естественную мотивацию ребенка, а с другой стороны попытаться дать как можно больше фундаментальной подготовки? А главное — на чем учить?
При выборе технологии я обычно руководствуюсь следующими критериями:
- Возможность решать интересные задачи. Многие преподаватели сходятся во мнении, что лучше всего показывать базовые алгоритмы на рисовании. Рисование — это первый шаг к собственной игре, а собственная игра для школьника — это очень увлекательно. Значит идеальный язык для изучения — это язык в котором можно рисовать как можно раньше.
- Простота и возможность строго последовательного изложения. Язык должен быть понятным, а мир программирования для ребенка в каждый момент времени должен иметь осязаемые границы. С одной стороны на каждом этапе должны быть видны перспективы в обучении — следующие шаги, но при этом арсенал должен на 90% состоять из понятных и знакомые инструментов. Написать поэму и так сложно, но написать ее на языке, где значение половины слов непонятно — скорее всего невозможно.
- Применимость в реальной жизни. Технология или хотя бы результат работы с ней должны быть «взрослыми». Детям хочется работать на равных со взрослыми, чувствовать свою значимость: настоящие сайты, настоящие приложения, и чтобы можно было прочитать программу собеседования на реальную должность и сказать «о, вот это я знаю! Осталось только прочитать остальное!».
Большинство современных преподавателей сходится во мнении, что идеальный первый «настоящий язык» (если не брать в рассмотрение «игрушечные» Scratch или школьный лого) — это Python. И Python правда крут! С одной стороны читаемый синтаксис, а с другой можно делать реальные проекты — хоть веб-сервисы, хоть телеграмм-ботов. Но лично с моей точки зрения Python — это далеко не идеальный выбор именно первого языка. Чтобы рисовать скорее всего понадобится PyGame, а подключение сторонних библиотек приводит к появлению в коде сложно объяснимых на этом этапе конструкций — объектов и модулей. Python — это очень мощный и удобный язык, он прекрасно соответствует первому и третьему критерию, но, кажется, не соответствует второму.
В свое время я прошел годовой курс по С++, и считаю, что это было очень правильным решением. Настолько правильным, что теперь я сам веду такой курс (программа курса на GitHub — первая и вторая часть). Плюсы — это почти латынь в программировании, зная плюсы, можно очень быстро понять любой си-подобный язык (а значит — вообще почти любой). К тому же плюсы выстраивают очень четкое понимание программирования от низкоуровневых аспектов до ООП. Причем каждый алгоритм и структуру данных можно сначала “изобрести” самому, реализовать, а только потом уже узнать о реализации из STL и использовать. Методически это очень правильно. Однако многие преподаватели считают (и они совершенно правы), что давать плюсы как первый язык — это садизм. Плюсы — это по-настоящему «взрослая технология», при изучении очень легко последовательно давать материал так, чтобы в коде отсутствовали неизвестные конструкции, но вот с рисованием (да и вообще с красивыми задачами) тут явные проблемы, как ни старайся сделать задачи веселыми. Либо надо использовать сторонние учебные библиотеки (а это не соответствует третьему критерию), либо ждать Qt — а это, извините, 36ое занятие в спокойном темпе работы. Выживают только самые стойкие. Значит плюсы на первом этапе отпадают, надо давать их позже.
Есть еще более классические варианты — Basic, Pascal — но все это в наши дни уже не используется на практике. А значит тоже отпадает по третьему критерию.
Так что же выбрать? На первом этапе нужно с одной стороны что-то яркое и несложное, а с другой стороны похожее на «взрослые языки» и со «взрослыми» возможностями. И по моему опыту — это Microsoft SmallBasic (программа курса на GitHub). Почему именно он?
- Ограниченное количество конструкций, каждая из которых видна при пролистывании.
- Очень дружественная среда, автоматически показывается справка на русском языке.
- Рисовать и начинать делать собственную игру можно начиная с первого занятия.
- Все основные конструкции — условия, циклы, переменные, функции на своих местах и работают как надо. Массивы тоже на своем месте…ну почти.
А главное — этот язык просто ужасен! Все переменные — глобальные, весь код в одном файле, из за чего в определенный момент работы над проектом код становится совершенно неуправляемым и продолжать разработку невозможно… И в этот момент мы мягко намекаем, что пора переходить на питон или плюсы. Алгоритмическая база дана, цели дальнейшего обучения теперь понятны, а значит есть мотивация идти вперед!
Как выстроить курс наиболее оптимально? Как можно быстрее переходить к процессу построения игры. Обычно на первом занятии я даю поиграться с консолью и черепахой, чтобы усвоится с переменными и понятием алгоритма в принципе. Уже на третьем занятии можно давать рисование “абстрактных картин”, а на четвертом — переходить к циклам, которыми можно рисовать более сложные изображения. А дальше уже анимации, GUI, файлы и проектная работа — продумывание и реализация собственной игры. За 12 занятий собственная игра будет готова!
Под конец станет ясно, что для реализации всех планов уже не хватает Smallbasic’а, и в этот момент рассказываем про более сложные и «правильные» языки, мотивируем ребят развиваться дальше, чтобы продолжить разработку.
В каком возрасте можно давать SmallBasic? По моему опыту — с шестого класса. Возможно, можно и раньше, но тогда страдает непрерывность обучения — больше, чем на год SmallBasic’а не хватит, а C++ по-моему опыту точно не стоит рассказывать раньше седьмого класса. Есть успешные шестиклассники, но в среднем идет очень туго.
А вот после базовой подготовки на С++ можно развивать в любом направлении: можно за час выучить Python и пилить прикладные проекты, а можно уйти в Java и мобильную разработку. С такой подготовкой в арсенале любая технология будет доступной.
Кстати, именно по такой схеме я действую на курсах по программированию для начинающих ЦМИТ “Геккон клуб”. Этим летом мы запускаем насыщенный интенсив по SmallBasic для ребят, окончивших шестой класс.
Автор: roctbb
Источник
Начало Microsoft Small Basic Basic Rutorial
Начало Microsoft Small Basic Rutorial Образец Предварительный просмотр главы© Philip Conrod & Lou Tylee, All Rights Reserved
2 4. 4. 4. 4. 4. 4. 4. 4. , Методы ввода
Обзор и предварительный просмотр
Теперь вы должны быть достаточно знакомы с созданием и запуском простых программ Small Basic. В этом классе мы продолжаем изучать новые темы Small Basic, чтобы расширить наши знания в области программирования. Мы рассмотрим некоторые идеи дизайна программ, некоторые математические функции и способы получения информации от пользователей ваших программ. И мы создадим программу-калькулятор сбережений.
Разработка программы
Вы собираетесь начать разработку довольно подробных программ с использованием Small Basic. Мы дадим вам программы для создания и, возможно, у вас появятся идеи для собственных программ. В любом случае, забавно и увлекательно видеть, как идеи превращаются в компьютерные программы. Но прежде чем приступить к программе, было бы неплохо немного подумать о том, что вы пытаетесь сделать. Эта идея правильного проектирования программы сэкономит вам много времени и приведет к гораздо лучшей программе.
Надлежащая разработка программы не так уж и сложна. Основная идея состоит в том, чтобы создать программу, простую в использовании, понятную и свободную от ошибок. Это имеет смысл, не так ли? Потратьте некоторое время на размышления обо всем, что вы хотите, чтобы ваша программа делала. Какая информация нужна программе? Какую информацию определяет компьютер? Решите, какие шаги программирования вам нужно выполнить для выполнения желаемых задач.
Сделайте код Small Basic в ваших методах читабельным и легким для понимания. Это значительно облегчит работу по внесению последующих изменений (а вы внесете изменения). Следуйте общепринятым правилам программирования — вы узнаете эти правила, когда узнаете больше о Small Basic. Убедитесь, что в вашей программе нет ошибок. Это может показаться очевидным утверждением, но многие программы не лишены ошибок.
Важность этих нескольких утверждений о разработке программы может не иметь большого смысла прямо сейчас, но они будут. Простая идея состоит в том, чтобы сделать полезную, ясно написанную, безошибочную программу, которую легко использовать и легко изменять. Тщательное планирование и планирование наперед помогут вам достичь этой цели. Для каждой программы, созданной в этом курсе, мы попытаемся дать вам некоторое представление о процессе разработки программы. Мы всегда будем пытаться объяснить, почему мы делаем то, что делаем при создании программы. И мы всегда будем стараться перечислить все соображения, которые мы делаем.
Еще одно соображение при разработке программы — всегда строить программу поэтапно. Не пытайтесь создать всю программу Small Basic и протестировать ее сразу. Это только усугубляет возможность ошибок. Мы предлагаем всегда строить свою программу поэтапно. Напишите небольшой код. Протестируйте этот небольшой фрагмент кода, чтобы убедиться, что он работает правильно. Медленно добавляйте все больше и больше кода. Запускайте и тестируйте каждое добавление кода. Продолжайте этот подход, пока ваша программа не будет завершена. Вы обнаружите, что такой «медленный» подход к созданию программы на языке Small Basic значительно упростит вашу задачу программирования. Попробуйте это в программах, которые мы создаем.
Small Basic – второй урок
На прошлом занятии мы много разобрали в Small Basic. Это было необходимо, чтобы познакомить вас со многими основными понятиями, чтобы вы могли написать свою первую программу. В этом более кратком втором уроке мы рассмотрим некоторые математические функции.
Математические функции
В классе 3 мы познакомились с малыми базовыми арифметическими операторами, которые позволяют выполнять основные операции сложения, вычитания, умножения и деления. Как и другие языки программирования, Small Basic также может выполнять очень сложные математические вычисления. Встроенная математика Small Basic 9В этих вычислениях часто используются функции 0003 (также называемые методами ). Мы использовали несколько таких функций в программе Sub Sandwich ( Math.Floor и Math.Remainder )
Мы не ожидаем, что вы будете математическим гением, чтобы работать с этими заметками, поэтому мы рассмотрим только три математические функции. Во-первых, что такое функция ? Функция — это подпрограмма, которая вычисляет для вас некоторое значение при наличии некоторой информации. Формат использования функции:
FunctionValue = FunctionName(ArgumentList)
FunctionName — это имя функции, а ArgumentList — это список значений ( inputs , разделенных запятыми), предоставленных функции, чтобы она могла выполнять свою работу. В этом операторе присваивания FunctionName использует значения в ArgumentList для вычисления результата и присвоения этого результата переменной, которую мы назвали FunctionValue .
Откуда вы знаете, какие существуют математические функции Small Basic, какой тип информации они предоставляют и каковы аргументы? Ознакомьтесь с различными справочными материалами по Small Basic и веб-сайтом Microsoft Small Basic. Или просто введите слово Math в окне кода Small Basic и в области справки отобразятся все функции:
Затем выберите имя функции, и окно справки расскажет вам, как ее использовать. Вот информация о первой функции, которую мы рассматриваем ( Abs ):
Как уже упоминалось, здесь мы рассмотрим три математические функции. Методы, поддерживающие математические функции, реализованы в классе Small Basic с именем Math . Следовательно, чтобы обратиться к конкретной функции, вы пишете Math , затем точка, затем имя функции.
Первая функция, которую мы изучим, это функция абсолютного значения . В математике абсолютное значение — это положительная часть числа. Функция Small Basic:
Math.Abs(Argument)
, где аргумент — число, абсолютное значение которого мы хотим получить. Аргумент может быть типа int или double , а возвращаемое значение будет того же типа, что и аргумент. Некоторые примеры:
Пример Результат
Math.abs (7) 7
Math.abs (-11) 11
Math.abs (-3.14) 3. 14
Math.abs (72.1) 72.1
Вам когда-либо нужно . квадрат корень числа? Квадратный корень — это число, которое при умножении само на себя дает исходное число. Например, квадратный корень из 4 равен 2, так как 2 умножить на 2 равно четырем. На вашем калькуляторе есть кнопка ( √ ), который сделает это за вас. В Small Basic функция извлечения квадратного корня:
Math.SquareRoot(Аргумент)
, где Аргумент — это число, из которого мы хотим получить квадратный корень. Аргумент должен быть неотрицательным числом. Некоторые примеры:
Пример Результат
Math.Squareroot (4) 2
Math.Squareroot (36) 6
Math.Squareroot (72.1) 8.491
Последняя функция, которую мы будем использовать в этом классе.0003 возведение в степень метод. При возведении в степень число умножается на само себя определенное количество раз. Если мы умножаем число само на себя 4 раза, мы говорим, что возводим это число в степень 4 . Функция Small Basic, используемая для возведения в степень:
Math.Power(Argument1,Argument2)
Обратите внимание, что функция Power имеет два аргумента. Аргумент1 это число, которое мы умножаем на себя Аргумент2 раза. Другими словами, эта функция возводит Аргумент1 в степень Аргумент2. Некоторые примеры:
Пример Результат
Math.Power (4,2) 16
Math.Power (-3,3) -27
Math.Power (10,2) 10000
В каждом примере здесь аргументы нет. десятичные части. Мы сделали это, чтобы сделать примеры понятными. Вы не ограничены такими значениями. Эту функцию можно использовать для вычисления того, что произойдет, если вы умножите 7,654 раза на 3,16 раза! (Ответ, кстати, 620,99.)
Читателям, более склонным к математике, следует знать, что для использования доступно гораздо больше функций Small Basic. Возможно, вы захотите изучить их использование. Существуют тригонометрические функции и обратные тригонометрические функции, функции для преобразования радианов в градусы и наоборот, функции для нахождения экстремальных значений, функции для округления, функции логарифмирования и обратного логарифмирования, а также встроенное значение числа пи. (Если для вас это ничего не значит, не беспокойтесь — мы не будем их использовать в этом классе).
Методы ввода программыВ примере (Sub Sandwich Program) мы построили последний класс, установили значения переменных в коде и запустили программу, чтобы увидеть результаты. Результаты были напечатаны методом вывода Small Basic WriteLine . Если мы хотим использовать другие значения, нам нужно изменить код и запустить его повторно. Это боль! Было бы хорошо, если бы в такой программе пользователь мог вводить значения во время работы программы, а компьютер выполнял вычисления на основе входных данных. Таким образом, для получения нового ответа не потребуется никаких изменений кода или перекомпиляции. Нам нужны такие возможности в наших программах.
В языке Small Basic есть два общих метода, которые поддерживают типизированный ввод. Эти методы являются частью объекта TextWindow , который мы использовали. Первый метод ввода ( ReadNumber ) позволяет считывать числовые (целочисленные и плавающие) входные данные. Его использование:
ReturnedValue=TextWindow.ReadNumber()
, где ReturnedValue — число, введенное пользователем.
Другой метод ( Read ) возвращает строку текста (строковую информацию), введенную пользователем. Его использование:
ReturnedValue=TextWindow.Read()
где ReturnedValue — текст, введенный пользователем.
При использовании любого из этих методов пользователь вводит запрошенный ввод и нажимает клавишу, чтобы компьютер принял значение.
Методы ввода Пример
Start Small Basic . Нажмите кнопку New Program на панели инструментов. Появится пустой редактор. Немедленно сохраните программу как InputExample в папку по вашему выбору. Наберите эти строки в редакторе
TextWindow.WriteLine(«Каков ваш возраст?»)
UserAge=TextWindow. ReadNumber()
TextWindow.WriteLine(«Вы вводите» +UserAge)
В этом коде мы спрашиваем чтобы пользователь мог ввести свой возраст, а затем написать его в текстовом окне.
Запустите программу (нажмите кнопку Run или нажмите < F5 >). Вы должны увидеть:
Обратите внимание, как появляется приглашение. Введите значение и нажмите < Введите >. После ввода числа оно присваивается переменной UserAge , а метод WriteLine отображает введенное значение:
Обратите внимание, что введенное значение отображается в отдельной строке после подсказки. В большинстве случаев вы хотели бы, чтобы это значение находилось в той же строке, что и подсказка. Это можно сделать с помощью другого метода TextWindow . Метод WriteLine добавляет новый символ строки к выходному тексту, поэтому последующая информация поступает в эту новую строку. Метод Write не начинает новую строку. Измените первую строку кода с заштрихованными изменениями (измените метод WriteLine на Write и добавьте пробел после вопросительного знака):
TextWindow.Write(«Сколько вам лет?»)
Повторно запустите программу. Теперь, когда вы вводите свой возраст, он появляется рядом с подсказкой:
Запустите программу еще раз и попробуйте ввести нечисловые символы — у вас не получится. Метод ReadNumber принимает только числовые данные (цифры от 0 до 9, начальный знак минус или одна десятичная точка).
Теперь давайте протестируем метод Read (для ввода строки текста). Добавьте эти три строки кода, которые запрашивают имя пользователя аналогично запросу возраста:
TextWindow.Write(«Как вас зовут?»)
UserName=TextWindow.Read()
TextWindow.WriteLine(«Вы вводите «+UserName)»
Запустите программу еще раз. Введите свой возраст, нажмите, и вы увидите подсказку с запросом вашего имени:
Введите строку (можно ввести любые символы) и нажмите, чтобы увидеть:
Кажется, методы ввода работают нормально . Вы заметили, как хорошо создавать программу поэтапно (добавляя несколько строк кода за раз)? Всегда следуйте такой процедуре. Прежде чем оставить этот пример и создать другую программу, давайте кратко рассмотрим еще одну полезную концепцию Small Basic. В текстовом окне выше было бы неплохо, если бы между каждым запросом ввода была пустая строка. Это просто делает ваш вывод немного чище, качество хорошо разработанной программы Small Basic. Чтобы вставить пустую строку в вывод, просто используйте Метод WriteLine с пустым аргументом:
TextWindow.WriteLine(«»)
Добавить заштрихованную строку к текущему коду:
TextWindow.Write(«Каков ваш возраст?»)
UserAge=TextWindow.ReadNumber ()
TextWindow.WriteLine(«Вы вводите «+UserAge»)
TextWindow.WriteLine(«»)
TextWindow.Write(«Как вас зовут?»)
UserName=TextWindow.Read()
TextWindow .WriteLine(«Вы вводите «+UserName)
Запустите программу еще раз и ответьте на подсказки. Обратите внимание на новую пустую строку.
Эта программа сохранена в папке InputExample в папке программ курса ( \BeginSB\BSB Code ).
Программа – Калькулятор сбережений
В этой программе мы создадим калькулятор сберегательного счета. Мы будем вводить, сколько денег мы можем положить на счет каждый месяц, и количество месяцев, в течение которых мы кладем деньги на счет. Затем программа подсчитает, сколько мы сэкономили. Эта программа сохранена в Папка Savings в папке программ курса ( \BeginSB \BSB Код ).
Разработка программы
Шаги, необходимые для выполнения этого расчета, относительно просты:
- Получите сумму для депозита за каждый месяц.
- Получить количество месяцев.
- Перемножьте два введенных числа.
- Вывод продукта, общая экономия.
Мы будем использовать метод ReadNumber для получения пользовательского ввода. Методы WriteLine и Write будут использоваться для вывода суммы сбережений. Мы добавим дополнительный шаг, чтобы запросить имя пользователя (пример использования метода Read ).
Разработка программы
Старт Малый Базовый . Нажмите кнопку New Program на панели инструментов. Появится пустой редактор. Немедленно сохраните программу под именем Savings в папку по вашему выбору.
Сначала введите следующую информацию и код заголовка, который добавляет заголовок окна:
‘
‘ Программа сбережений
‘Начальный малый базовый Калькулятор»
В этой программе мы будем использовать четыре переменные: одну для имени пользователя ( YourName ), одну для суммы депозита ( Депозит ), одну для количества месяцев ( Months ) и один на общую сумму ( Итого ). Введите эти строки, чтобы инициализировать переменные:
YourName=»»
Deposit=0.0
Months=0
Total=0.0
Теперь мы запускаем код, используя шаги, описанные в разделе «Разработка программы». В любой момент, набрав код, вы можете остановиться и запустить программу, просто чтобы посмотреть, все ли в порядке. Это всегда хороший подход. Сначала спросите у пользователя его/ее имя, используя этот код:
‘ спросите имя пользователя
TextWindow.Write(«Здравствуйте, как вас зовут?»)
YourName=TextWindow.Read()
Далее определите, сколько будет ежемесячно отчисляться на сберегательный счет:
TextWindow.WriteLine(» »)
‘ получить сумму депозита
TextWindow.Write(«Сколько вы будете вносить ежемесячно?»)
Deposit=TextWindow.ReadNumber()
Обратите внимание на вставку пустой строки перед печатью подсказки. Наконец, получите количество месяцев:
TextWindow.WriteLine(«»)
‘ получить количество месяцев
TextWindow. Write(«На сколько месяцев?»)
Months=TextWindow.ReadNumber()
С этой информацией общий депозит можно вычислить и отобразить с помощью метода WriteLine:
TextWindow.WriteLine(«»)
‘ вычислить и отобразить итог
Total=Deposit*Months
TextWindow.WriteLine(yourName+», после «+months+» месяцев , ваши сбережения будут $”+всего+”.»)
TextWindow.WriteLine(«»)
Сохраните программу, нажав кнопку Сохранить .
Готовой код в небольшом базовом редакторе должен появиться как:
‘
‘ Программа сбережений
‘Начало малой базовой
‘
.
‘ инициализировать переменные
YourName=»»
Deposit=0.0
Months=0
Total=0.0
‘ спросить имя пользователя
TextWindow.Write(«Привет, как тебя зовут?»)
YourName=TextWindow.Read()
TextWindow.WriteLine(«» )
‘получить сумму депозита
TextWindow. Write(«Сколько вы будете вносить ежемесячно?»)
Deposit=TextWindow.ReadNumber()
TextWindow.WriteLine(«»)
‘получить число месяцев
TextWindow.Write(«Сколько месяцев?»)
Months=TextWindow.ReadNumber()
TextWindow.WriteLine(«»)
‘ вычислить и отобразить итоговое значение
Total=Deposit*Months
TextWindow.WriteLine(yourName+», after «+months+» ваши сбережения будут $”+всего+”.»)
TextWindow.WriteLine(“”)
Запустить программу
Запустите вашу программу. Если программа не запускается успешно, попробуйте выяснить, где ваши ошибки, используя любые сообщения об ошибках, которые могут появиться. Мы рассмотрим некоторые возможные ошибки в следующем классе.
Когда программа успешно запустится, вы увидите:
Введите свое имя, сумму депозита и количество месяцев. Ваша общая сумма будет предоставлена вам в виде красиво отформатированной строки. Обратите внимание, как имя, депозит, месяцы и общая сумма объединены (объединены) в одно предложение вместе со знаком доллара ($). Убедитесь, что ответ правильный. Помните, что большой шаг в разработке программы — убедиться, что ваша программа работает правильно! Если вы говорите, что хотите откладывать 200 долларов в месяц в течение 10 месяцев, а ваша компьютерная программа говорит, что к тому времени у вас будет миллион долларов, вы должны знать, что что-то где-то не так!
Когда я попробовал программу, я получил:
Обратите внимание, если я вношу 403,52 (вы не вводите и не можете вводить знак доллара) на 11 месяцев, программа сообщает мне, что у меня будет 4438,72 доллара на моем счету. Сберегательный счет.
Эта программа может показаться не такой уж сложной. И это не так. Ведь мы всего лишь перемножили два числа вместе. Но программа демонстрирует шаги, которые используются в каждой программе Small Basic. Был получен ценный опыт в распознавании того, как считывать входные значения, выполнять математические операции для получения желаемых результатов и выводить эти результаты пользователю.
Что еще стоит попробовать
Большинство сберегательных счетов приносят проценты, то есть банк фактически платит вам за то, что вы позволяете им пользоваться вашими деньгами. Эта программа сберегательного счета игнорировала проценты. Но достаточно легко внести необходимые изменения для учета процентов — математика немного сложнее. Мы дадим вам шаги, но не покажем, как изменить вашу программу. Попробуйте, если хотите:
- Определите переменную Интерес для хранения годовой процентной ставки по сбережениям. Процентные ставки представляют собой плавающие десятичные числа.
- Добавьте дополнительные операторы, чтобы пользователь мог вводить процентную ставку.
- Измените код для использования Интерес к вычислениям Итого . Код для этого вычисления (приготовьтесь — выглядит беспорядочно): .
Итого = 1200 * (Депозит * (Математическая мощность ((1 + Проценты / 1200), Месяцы) – 1) / Проценты)
Убедитесь, что вы вводите все это в одну строку – как это часто бывает, текстовый процессор сделал его похожим на два. Как мы уже говорили, это довольно запутанное выражение, но это хорошая практика использования круглых скобок и математической функции ( Мощность ). Число «1200» используется здесь для преобразования процентов из годового значения в месячное значение.
Теперь запустите модифицированную программу. Введите значения депозита, месяцев и процентов. Убедитесь, что вы получите разумные ответы. (В качестве проверки, если вы используете сумму депозита 300, стоимость месяца 14 и сумму процентов 6,5, общий ответ должен быть 4351,13 доллара США. Обратите внимание, что у вас будет 4200 долларов США без процентов, так что это имеет смысл). Сохраните вашу программу.
Я немного соврал, я не получил $4351,13 в приведенном выше примере с процентами. На самом деле я получил 4351,12720521729 долларов.23076923076923!!!:
Я округлил ответ. В таких случаях число должно отображаться с двумя цифрами после запятой. Это можно сделать с помощью Small Basic, но это выходит за рамки нашего обсуждения на данный момент.
Сводка
Обратите внимание, что по мере изучения Small Basic программы становятся немного более подробными. На этом занятии вы узнали о правильном проектировании программ, математических функциях и о том, как добавить возможности ввода в ваши программы Small Basic. Вы создали небольшую программу сберегательных счетов. И еще одна важная концепция, о которой следует помнить, продолжая изучение этого курса, заключается в том, чтобы всегда пытаться создавать свои программы по несколько строк кода за раз. Хорошая мантра: «Немного кодируй, немного тестируй». Используя этот подход, вы внесете меньше ошибок в свои программы.
ãPHILIP CONROD & LOU TYLEE, ВСЕ ПРАВА ЗАЩИЩЕНЫ
Pathfinder 2: Introduction to Programming with Microsoft Small Basic
Среда Small Basic
Экран Small Basic состоит из трех основных компонентов: редактора, панели инструментов и Панель помощи. При первом запуске Small Basic вы увидите окно, похожее на следующее изображение (рис. 1).
Помощник Intellisense
Когда вы начинаете печатать в редакторе, появляется окно с предложениями, которые могут вам помочь. На рис. 2 показано, что после ввода «gra» intellisense окно ряд предложений с выделенным «GraphicsWindow» . Мы можем нажать на это или просто нажать «Enter», чтобы принять его. Или вы можете просмотреть альтернативные варианты с помощью клавиш со стрелками, колесика мыши или полосы прокрутки справа. Когда вы познакомитесь с редактором, эта функция упростит и ускорит написание ваших программ.
Примечание. Онлайн-версия Intellisense не такая навороченная, как эта, но работает точно так же
Поскольку мы будем добавлять в игру графику, для вывода мы будем использовать компонент GraphicsWindow. Одним из преимуществ этого является возможность использовать символы Unicode и наш традиционный язык для программирования И отображения. Это интересно, потому что, несмотря на то, что ключевые слова для программирования указаны на английском языке, мы можем использовать любой желаемый язык для программирования и взаимодействия с игроком. Хотя примеры кода в этом руководстве написаны на английском языке, вы найдете альтернативные примеры, демонстрирующие, как код может быть написан с использованием языка коренных народов. Альтернативные примеры в этом модуле представлены в Plains Cree SRO, а также слоговым письмом Cree.
Начало работы: программа «Добро пожаловать на остров черепах»
Наша первая программа — это базовая программа «Добро пожаловать на остров черепах», которая запускается в графическом окне. В редакторе введите следующую строку кода:
GraphicsWindow.DrawText(10,10,"Добро пожаловать на Остров Черепах")
Вот и все! Это так просто! Нажмите кнопку «Выполнить» или нажмите клавишу быстрого доступа (F5), и вы должны увидеть окно, похожее на рис. 3.
Рекомендуется часто сохранять программы на случай отключения питания или блокировки компьютера не хочу потерять всю свою тяжелую работу.
Чтобы сохранить эту программу, закройте окно запущенной программы или нажмите кнопку «Завершить программу» в окне редактора. Затем нажмите кнопку «Сохранить» или «Сохранить как». Выберите имя файла и сохраните его.
Toolbox
Теперь, когда мы написали нашу первую программу, давайте взглянем на все отдельные инструменты, которые нам понадобятся для создания текстовой игры Pathfinder. Независимо от того, какой язык программирования вы выберете, есть некоторые общие термины и понятия, которые есть почти во всех языках программирования. Те, которые мы будем изучать в этом модуле:
- переменные ,
- условные операторы (также известные как IF-THEN-ELSE),
- циклы (иногда известные как операторы FOR-NEXT) и подпрограммы
1. Переменные
Переменная — это «маркер», который мы можем использовать для хранения данных, которые мы хотим использовать позже, и может быть изменен по мере изменения потребностей нашей программы. Вот пара примеров:
корзина = "Малина" Количество малин = 5
В этом примере вы увидите, что имя нашей переменной состоит из одного слова и имеет символы как верхнего, так и нижнего регистра. Переменные должны состоять из одного слова, не могут быть числом, и хотя нет необходимости использовать верхний и нижний регистры, это рекомендуется делать, чтобы другим было легче читать.
приветствие = "Добро пожаловать на Черепаший остров" имя = "[ваше имя]" GraphicsWindow.DrawText(10,10, "Привет" + имя + приветствие)
Если все пойдет хорошо, вы должны получить тот же результат, что и в первой программе, так что давайте немного оживим его. Если вы добавили раздел добавления номера (строки 6–9в примере) вы увидите, как ведет себя символ «+», когда он используется для сложения чисел или составления слов. Вы можете потратить это время, чтобы поиграть с положением ваших строк DrawText, изменив также числа!
Совет: Переменные — это прекрасная возможность для нас использовать наши языки наследия:
в Cree Sro, Mawiswâkan = «Ayoskanak»
в Cree Syllabics, ᒪᐃᐧᓵᐧᑲᐣ = «ᐊᔪᐢᑲᓇᐠ»
2. Условные заявления
If If If If, если -Then-Else легко понять по его буквальному английскому значению, которое задает вопрос: если выполняется определенное условие, то что-то происходит . Мы можем добавить к этому дополнительный компонент под названием Else . Таким образом, на базовом английском языке, если ответ на наш вопрос If верен, тогда сделайте что-нибудь иначе ( else ) сделайте что-нибудь еще. Попробуйте следующее:
Обратите внимание на порядок операторов IF . Если бы мы проверили, если время > 18 во-первых, наша переменная приветствия будет говорить «Добрый день» в 18:00 вместо «Добрый вечер», потому что вторая Если проверит, не больше ли это 12, и снова изменит приветствие. Вот и все. Вот как использовать оператор IF THEN ELSE. Теперь давайте попробуем несколько циклов.
3. Циклы/зацикливание
Цикл — это именно то, на что он похож — он зацикливается или повторяет набор инструкций до тех пор, пока не будет выполнено определенное условие. Мы часто будем использовать цикл с оператором If. Давайте сначала попробуем это:
Здесь у нас есть пара новых команд, которые мы можем использовать: Clear() и Задержка() . Это будет очень полезно, когда мы приступим к программированию нашей игры. Мы можем сделать цикл бесконечным (или пока не остановимся), добавив оператор If во второй фрагмент кода. А вот как легко сделать петлю!
4. Подпрограммы (Sub)
Довольно часто вы обнаружите, что при написании программы вы сталкиваетесь с тем, что вы переписываете или повторно используете один и тот же код снова и снова. Это идеальный случай для введения подпрограммы 9.0004 .
Подпрограмма — это небольшой участок кода, выполняющий серию стандартных или рутинных шагов, которые мы можем вызвать из другого места в программе. Подпрограммы — это инструкции, помещающиеся между строками, начинающимися с Sub и заканчивающимися на EndSub .
В следующем примере добавьте Random() в качестве первой строки после строки начала цикла For, а затем добавьте строки с 12 по 14 и посмотрите, что произойдет.
Что происходит, когда вы используете Random() в вашем коде компьютер переходит к подпрограмме с именем Random .