Поиск
Меню сайта
Образование [53]
Мультимедиа [51]
Графика [50]
Безопасность [27]
Система [26]
Работа с файлами [28]
Рабочий стол [27]
Другие [101]
Интернет
Друзья сайта
 
Главная » 2007 » Октябрь » 31 » Учебник по языку Basic в задачах и примерах
Учебник по языку Basic в задачах и примерах
14:28

Представляемая книга содержит опыт, накопленный автором за время работы преподавателем информатики в школе. Десять лет назад мы учили школьников работать на программируемых калькуляторах, сегодня — на самой современной вычислительной технике. Но, в любом случае, убеждение, что преподавание основ программирования в школе необходимо, осталось до сих пор, хотя и претерпело какие-то изменения. Алгоритмизация мышления позволяет человеку выживать в бушующем море информации, формирует системный подход к любым жизненным ситуациям. Кроме того, за этот десятилетний период работы в школе автору очень редко приходилось встречать хорошие задачники по программированию, которые были бы насыщены разнообразными примерами. А еще, полагая, что Бейсик сейчас преподается в большинстве своем школьникам и, по опыту зная, насколько им интереснее "живые", не сухие задания, автор попытался вести разговор с читателем на понятном им языке, включая иногда и какие-то сленговые компьютерные словечки. В данной книге, в предисловии вашему вниманию предлагается ряд сведений о языках программирования, в т. ч. и о языке Бейсик. В первой части вы найдете большой набор авторских и творчески обработанных задач, охватывающих все основные разделы программирования на языке начинающих программистов — Бейсик. Задачи сгруппированы по темам и, в основном, расположены по степени возрастания сложности. Во второй части вы сможете найти решения некоторых задач с необходимыми пояснениями, а в приложениях самые любознательные отыщут много интересных дополнительных сведений об изучаемом языке и представлении информации в компьютере. Немного истории Давайте для начала договоримся об определениях, чтобы в дальнейшем говорить на одном языке, поскольку .язык алгоритмов должен быть понимаемым ясно и однозначно. Под языком программирования мы будем понимать совокупность средств и правил представления алгоритма в виде, приемлемом для компьютера. Отсюда неискушенный читатель может решить, что компьютер, оказывается, при всей его кажущейся могущественности, не поймет задачи, поставленной ему на простом человеческом языке, будь то русский, английский или даже китайский. Таким образом, существует разделение всех языков программирования на две большие группы — языки высокого и низкого уровней. Человек считает себя венцом творения (с этим можно согласиться, но можно и поспорить, если внимательней присмотреться к некоторым таким "венцам"), поэтому языком самого высокого уровня считается" человеческий язык, и когда компьютер станет его легко понимать, то он вплотную приблизится к человеку. Языком самого низкого уровня считается язык так называемых машинных кодов. Все остальные алгоритмические языки лежат где-то посередине. Например, к языкам низкого уровня принадлежат так называемые языки семейства ассемблеров. Их достоинство в том, что они почти не требуют перевода для компьютера, и он практически сразу выполняет алгоритм. Есть, однако, существенный недостаток — писать программы на таких языках может только очень опытный программист, и получаются они слишком громоздкими. Напротив, языки высокого уровня в достаточно сильной степени приближены к человеческому (чаше к английскому) языку — это и Фортран, и Паскаль, и Си, но выполнение алгоритма компьютером в данном случае несколько тормозится предварительным переводом на язык машинных кодов. К языкам высокого уровня принадлежит и тот, который рассматривается в данной книге. Он служит своего рода переводчиком между человеком и компьютером, помогая им понять друг друга и совместно добиться решения поставленных задач. Разработан первый Бейсик в 1964 г. сотрудниками Дартмутского колледжа Дж. Кемени и Т. Курцем. Интересно происхождение названия языка. В прошлом веке один английский миссионер выделил из английского языка триста наиболее употребительных слов, назвал их Basic English и стал обучать туземцев. Опыт оказался весьма успешным, и контакты с аборигенами значительно упростились. Создатели языка Бейсик стремились достигнуть того же эффекта — облегчить понимание между "туземцами" — начинающими программистами, и компьютерами. Аббревиатура BASIC так и расшифровывается — "Beginner\'s All purpose Symbolic Instruction Code", что в переводе значит "многоцелевой язык символических команд для начинающих". Идея оказалась удачной, и на десятилетия язык Бейсик стал основным в деле вовлечения в программирование новых и новых адептов. У автора этой книги есть большое количество выпускников, давно превзошедших своего учителя в деле программирования, успешно работающих у нас и за рубежом, но начинавших с того же Бейсика — тогда еще для ZX-Spectrum. Даже в те времена на несовершенной, зачастую собранной своими руками, технике они писали очень приличные прикладные программы — и для дела, и для игры. Большое достоинство Бейсика, из-за которого его изучение продолжается в школах и поныне — это возможность создавать диалоговые программы. Ныне Бейсик вышел за рамки языка для начинающих, и его могучий потомок — Visual Basic позволяет творить на компьютере просто чудеса. Но вернемся к нашему старому доброму Бейсику. За эти годы было создано несколько его версий — GW-Basic, MSX-Basic, TurboBasic, QuickBasic. Автор за время своей работы в школе программировал на всех этих версиях и практически на всех видах техники, начиная от БК и "Корвета" и заканчивая (на момент написания книги) Pentium-II. И все же, в качестве основного для этой книги выбрал Russian QuickBasic. Но я уверен, что искушенный читатель знает, а неискушенный пусть успокоится, все эти версии очень похожи друг на друга базовым набором операторов и конструкций, и, изучив какую-либо одну версию, очень легко перейти на другую. Это примерно как различия русского языка в Санкт-Петербурге и Москве: мы говорим "карточка", а москвичи "проездной", мы говорим "ларек", а они — "палатка", мы произносим "дожди", а они — "дожжи". Можно бесконечно подтрунивать над этими небольшими различиями, но мы прекрасно друг друга понимаем. Итак, давайте говорить на великом и могучем языке высокого уровня — Бейсике. О языках: интерпретаторы и компиляторы Как уже было сказано выше, языки высокого уровня — это своего рода посредники в общении между человеком и компьютером. Непосредственно переводом задуманного человеком алгоритма с языка программирования на язык машинных кодов занимаются программы-трансляторы. Трансляторы, в свою очередь, тоже делятся на две большие группы — интерпретаторы и компиляторы. Компиляторы сначала переводят всю программу, написанную на алгоритмическом языке, в машинные коды, и после этого очень быстро исполняют ее. Быстрота выполнения — это плюс компиляторов. Но они требуют довольно большой предварительной работы, поскольку мы сможем увидеть результат выполнения программы только после успешной компиляции — перевода, а на этом этапе программа-компилятор обычно требует устранить все синтаксические ошибки. Поэтому невозможность видеть промежуточные результаты — это небольшой минус компиляторов. К компиляторам принадлежат, например, языки Паскаль, Си, ТурбоБейсик. Интерпретаторы покомандно переводят алгоритм с языка программирования на язык машинных кодов, и тут же исполняют переведенную команду. В случае допущенной ошибки, программа-интерпретатор прекращает работу и просит исправить неверную конструкцию. К интерпретаторам относятся как раз в основном языки семейства Бейсик. В том числе, и рассматриваемый в этой книге Russian QuickBasic. Достоинство интерпретаторов — в возможности видеть промежуточные результаты выполнения алгоритма и по ходу дела вносить в исполняемый алгоритм изменения. Недостаток — гораздо более медленная работа по сравнению с компиляторами. Для большего понимания я бы сравнил процесс трансляции с процессом перевода текста с иностранного языка на русский. Компиляция — это письменный перевод, когда я получаю текст и целиком его перевожу, чтобы затем, уже на иностранном, его довольно быстро изложить. Интерпретация — это синхронный перевод, когда я после каждой произнесенной фразы ее перевожу. Ну а теперь, если вышеизложенное не вызвало затруднений в понимании, вперед, к сверкающим вершинам Бейсика. Дружественный интерфейс Правда, у подножия сияющих вершин ваших будущих программных достижений я вас немножко приторможу с тем, чтобы вы отчетливо понимали, что плодами вашего творчества будут пользоваться и другие люди, зачастую ничего не сведущие в программировании. А поэтому я коротко изложу свои взгляды на мои представления об оформлении программ, или о так называемом дружественном интерфейсе. Ну, кто хоть немного знает английский, тот уже может догадаться, что "интер" — это "между", а "фэйс" — это то, что бывает об "тэйбл", т. е. "лицо". Соответственно, интерфейс — "между лицами", в данном случае имеет смысл в значении оформления диалога между пользователем и компьютером в процессе исполнения написанной программистом (вами, уважаемый читатель!) программы. Кстати, короткое лирическое отступление об английском языке в деле программирования. Это не роскошь, а суровая необходимость. Опять же вспоминаю с улыбкой своих выпускников, особенно тех, кто учил в школе немецкий. Мой программистский сленг обогатился такими терминами, как "филе наме" (file name), "гамовер" (game over), "лине" (line), "цирцле" (circle). Но произношение — это как раз не самое страшное, а вот писать и понимать ограниченный набор (Basic English) англоязычных терминов необходимо. Итак, несколько моих принципов по оформлению программ: "Кашу маслом не испортишь" — как можно больше поясняющих комментариев к вашему алгоритму, и пользователям вашей программы хорошо, и (что немаловажно для учащихся) преподаватель всегда очень радуется. Но самое главное, лично вам будет очень просто редактировать и отлаживать программу. К сожалению, этот принцип зачастую игнорируется начинающими программистами, что снижает как текущие оценки, так и олимпиадные, а кроме того, очень затрудняет понимание сути алгоритма и нахождение возможностей для его улучшения. "Fool Proof — зашита от дурака. Ваша программа должна выдерживать натиск неграмотного пользователя (от хакера-то все равно зашиты не найти!) и сопротивляться его попыткам при исполнении программы ввести цифры, где надо было имя, или нажать клавишу Пробел, когда была указана клавиша Enter. Доходчивость. При написании программы не стоит рассчитывать, что работать с ней будут умные люди (хотя и такие встречаются среди пользователей), а потому при исполнении вашего алгоритма программа должна максимально подробно объяснять человеку, что она от него хочет, и какую "пим-почку" в данный момент надо нажать. Ну и конечно, "красота спасет, мир". Пусть вы делаете даже просто программу проверки знания таблицы умножения, но сделайте это красиво — примените цветовое и шрифтовое оформление, а можно ведь и звуковые эффекты. Не скупитесь на экранные похвалы в адрес пользователя вашей программы — ласковое слово и кошке приятно! В общем, я попробую в тех случаях, где буду приводить решения каких-то, на мой взгляд, ключевых обобщающих заданий, соблюсти эти принципы. А вам рекомендую брать с них пример. Основные этапы решения алгоритмических задач на компьютере Подход многих моих учеников к решению поставленных мной задач по программированию достаточно однообразен, и в народе носит название "метода тыка". Получив задание, такие, с позволения сказать, "программисты" садятся к компьютеру и начинают комбинировать операторы языка Бейсик в различных вариантах, пытаясь достичь требуемого результата. Да, иногда получается. Но чаще — нет. Почему? Потому что отсутствует системный подход к задаче, что, во-первых, разбазаривает самый драгоценный человеческий ресурс — время, а во-вторых, не приносит плодов ни в программировании, ни в жизни. Предлагаю метод, как, на мой взгляд, надо подходить к решению программистских задач. А вы уж решайте сами. "Это вам не мелочь по карманам тырить", — как говорил незабвенный Остап Бендер, — "тут думать надо!". Итак, этапы решения алгоритмических задач на компьютере. Постановка задачи. Один из самых главных этапов. Вы должны добиться от того, кто дает вам задачу (это можете быть и вы сами) ясной и четкой ее постановки. Вы однозначно и вполне определенно должны понять, что будет результатом решения задачи. Каковы исходные данные? Существуют ли ограничения для этих данных? Можно сказать, что точность и четкость в постановке задачи — это половина дела. Напротив, в случае недопонимания каких-то моментов вероятность непроизводительной траты времени и отрицательного результата резко возрастает. Следующий этап — решение вопроса "Как будет реализовы-ваться поставленная задача?". Как достичь требуемых результатов? Каковы способы и методы достижения уясненных на первом этапе целей? После первых двух этапов наступает пора еще одного очень важного момента — этапа разработки алгоритма решения поставленной задачи, т. е. структуризация, разбиение задачи на последовательность простых модулей, каждый из которых легко может быть реализован на языке программирования. Очередной этап — непосредственный перевод словесного алгоритма или его блок-схемы на выбранный язык программирования и ввод полученной программы в компьютер. После ввода программы обычно выясняется, что где-то мы допустили просто синтаксические ошибки, где-то недоработали алгоритм, где-то не хватает исходных данных и т. д. Поэтому теперь начинается отладка программы, иными словами, устранение ошибок и неточностей, допущенных на предыдущих этапах. После того как программа заработала, необходимо проверить ее на правильность работы, используя набор контрольных данных (в тех случаях, где это возможно). Так, например, если мы написали программу для расчета корней квадратного уравнения по заданным коэффициентам, то можем проверить работу программы, вводя такие коэффициенты, для которых предварительно были рассчитаны значения корней или их отсутствие. Это так называемый тестовый этап. После тестового этапа (если профамма его выдержала!), можно применять программу по назначению. Ну и последнее. Страна должна знать своих героев, а потому завершающим этапом работы по решению алгоритмической задачи следует считать документирование, т. е. распечатку листинга программы, снабженную необходимыми комментариями автора. С этого момента разработанная программа становится интеллектуальной собственностью программиста, и им начинает гордиться семья и школа.





Скачать программу с AtroS
Категория: Другие | Просмотров: 2997 | Добавил: SolteK | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Сайт управляется системой uCoz

Форма входа