Файл: Технологии программирования: Алгоритмизация как обязательный этап разработки программы.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 23.04.2023

Просмотров: 279

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Универсальным средством стало использование двоичного (бинарного) кода, состоящего из последовательностей нулей и единиц, которые воспринимаются любым компьютерным устройством. Но как перевести смысловые фразы и формулы в такой вид? Для этого используются компиляторы, которые и преобразовывают список команд в понятный машине двоичный код. Можно встретить и троичные, и шестнадцатиричные коды, но они используются крайне редко [11].

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

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

Но и этим дело не ограничилось. Применяемые на заре развития алгоритмы программирования потребовали ввода новой величины, получившей название переменной [15].

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

Сами же языковые средства, на которых пишутся (или в свое время писались) компьютерные программы, условно можно разделить на низко- и высокоуровневые [19].

Если кто из старшего поколения помнит, даже в советские времена в школах на уроках информатики преподавался язык Basic. С его помощью на тогдашних машинах Yamaha КУВТ можно было создавать примитивные программы математических вычислений, программировать простейшие картинки или музыку, звучащую из системного динамика. Для математики можно было использовать и логические операторы вроде «если», «то», «иначе». Но проблема всех тех, кто хорошенько обучился этому языку, состояла в том, что они никак не могли освоить новые средства.

Не говоря о том, что язык Ассемблер своим появлением произвел настоящую революцию и используется до сих пор, появились достаточно специфичные средства, например, языки структурного или объектно-ориентированного программирования (ООП).

К ООП смело можно отнести язык C+/++, на основе команд которого созданы те же операционные системы Windows. Программирование на «Си» является достаточно сложным, тем не менее при желании можно освоить и его. Как говорится, было бы желание. Можно пойти на те же курсы программирования или использовать для обучения соответствующую литературу. Правда, как считает большинство специалистов, самому вникнуть в основы языка еще можно, а вот развивать свои знания на практике буде крайне сложно. Тут никакие труды вроде книг «Программирование для чайников» не помогут [21].


Но вернемся к языкам. Относительно недавно появились языки, работающие на основе интерпретаторов (.NET Framework, Python, Java, Perl и т.д.). В них вместо машинного кода генерируется особый байт-код, который представляет собой двоичный код виртуальной машины [3].

Кстати сказать, программирование на Java можно без особых усилий освоить самому. Например, для мобильных устройств на основе Android-систем можно параллельно использовать Android Studio и пакет Java SDK, а в качестве тестировщика установить Genymotion. Можно поступить еще проще, обратившись к онлайн-конструктору App Inventor, в котором создание последовательности команд производится наподобие складывания пазлов [6].

Понятие парадигм возникло не на пустом месте. В самом общем понимании парадигмы представляют собой некий взгляд на окружающий мир и действия, которые в его отношении можно предпринять. В компьютерном мире под таким термином понимается некое обобщение по отношению к работе программы.

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

На современном этапе развития компьютерных технологий приоритетным для многих программистов являются ООП и программирование на Java. Заметьте, пакеты Java-платформы поддерживаются любой из ныне известных операционных систем, не говоря уже о мобильных устройствах.

И хотя, как считается, язык C+/++ является доминирующим, не стоит сбрасывать со счетов и Ассемблер. Удивительно, но большинство вирусов написано именно на нем. А если взять в расчет веб-программирование, скажем, на основе Delphi, тут вообще открываются такие широкие возможности и перспективы, что многие начинающие программисты об этом даже не догадываются [10].

Вопросы, связанные с самостоятельным обучением, напрямую зависят от того, чему именно хочется научиться. Литература в виде книг «Программирование для чайников» дает лишь частичные ответы без конкретизации основных аспектов с учетом применения того или иного языка. Это, так сказать, для общего понимания [7]. Курсы программирования – тоже вопрос спорный, ведь в данном случае все зависит не только от восприятия обучаемым, но и от того, какими знаниями обладает преподаватель, как он подает материал и т.д. Но если уж возникла необходимость изучения какого-то определенного языка или метода программирования, в наш век интернета проблемой это не является. Можно найти даже онлайн-курсы или подробное описание уроков по той же платформе Java, программированию Android- или iOS-устройств.


2.2 Применение структурных алгоритмических конструкций

На сегодняшний день ведется активная работа по повышению качества АОС и увеличению эффективности их использования. Повышение качества АОС приведет к увеличению эффективности обучения пользователей, как при изучении теоретического материала, так и при выполнении контроля знаний.

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

Рисунок 1 - Общий алгоритм работы системы

Для авторизации пользователя, ему необходимо ввести логин и пароль, также при авторизации.

После ввода логина и пароля, система проверяет их на правильность, если данные введены верно, то система открывает доступ в зависимости от прав доступа. Алгоритм авторизации представлен на рисунке 2.

Рисунок 2 - Алгоритм авторизации системы

Одним из требований Федерального государственного образовательного стандарта (ФГОС) основного общего образования, предъявляемых к предметным результатам освоения  программы  предметной  области  «Математика  и  информатика»,  заявлено «развитие алгоритмического мышления, необходимого для профессиональной деятельности в современном обществе; развитие умений составить и записать алгоритм для конкретного исполнителя; формирование знаний об алгоритмических конструкциях, логических значениях и операциях; знакомство с одним из языков программирования и основными алгоритмическими структурами — линейной, условной и циклической» [7]. Кроме того, ФГОС определяет активную учебно-познавательную деятельность учащихся, как одну из составляющих системно-деятельностного подхода в обучении.

Для реализации поставленных задач целесообразно использовать при изучении раздела «Алгоритмизация» различные программные среды, имитирующие исполнителей. Так, авторский коллектив под руководством Семакина И.Г. предлагает инструментальную среду «Конструктор алгоритмов» [5], предназначенную для проектирования и разработки блок-схем алгоритмов и рассчитанную на активное взаимодействие с пользователем.


К достоинствам данной среды можно отнести: реализацию всех базовых структур алгоритма; возможность использования величин целого и вещественного типа, а также табличных величин; реализацию двух режимов исполнения алгоритма – пошаговый (возможность наблюдать динамику процесса решения) и исполнение алгоритма до конца. Недостатками среды являются: невозможность в цикле «для» использовать шаг в сторону уменьшения; не реализована возможность использования цикла «до».

Одним из возможных вариантов реализации идеи обучения через активную познавательную деятельность учащихся является использование метода «открытой программы» (метода демонстрационных примеров) при обучении алгоритмизации. «Под «открытой   программой» понимается программа-модель, представляющая некоторый класс программ либо задач. Она предназначена:

   для передачи обучаемым знаний об устройстве и возможностях программ своего класса;

   для приобретения обучаемым опыта творческой деятельности разработки программ – решения задач этого класса» [4].

На основании понятия «открытая программа» и требований к ее оформлению можно выделить следующие типы заданий с использованием среды «Конструктор алгоритмов»:

1. Анализ готового алгоритма по условию задачи.

 2. Анализ готового алгоритма и восстановление условия задачи.

3. Анализ готового алгоритма по условию задачи и поиск ошибок в нем.

 4.   Анализ готового алгоритма по условию задачи и восстановление пропущенных команд в алгоритме.

5. Написание алгоритма по условию задачи.

Первый тип заданий можно использовать для формирования умений и навыков анализировать алгоритм; понимания того, что происходит на каждом его шаге; овладения логикой алгоритма; предсказания результата выполнения алгоритма.

Второй тип заданий можно использовать для контроля знаний; обучения учащихся «переводить» задачу с формального языка на естественный.

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

Четвертый тип заданий можно использовать для контроля знаний, формирования умений осуществлять анализ задачи, восстановление алгоритма, т.е. овладевать логикой алгоритма.

Пятый тип заданий может быть использован для применения учащимися полученных знаний на практике; контроля знаний.

Задания предлагается выполнять в виде лабораторной работы, в которой определены:


1.      Формулировка задачи;

 2.      Алгоритм выполнения заданий в среде;

 3.      Вопросы в конце работы и вывод учащихся по работе.

 Приведем пример системы заданий при изучении темы «Организация линейных алгоритмов в среде «Конструктор алгоритмов»».

1.     Изучаемые    элементы:    блок    «Ввод    данных»,    блок    «Вывод   данных»,    блок «Присваивание».

 2.     Требования к знаниям и умениям учеников: уметь анализировать готовый алгоритм, знать и уметь использовать команды присваивания, ввода, вывода информации, уметь составлять линейные алгоритмы, знать и уметь определять тип данных.

3.     Деятельность учеников: анализ условия задачи, пошаговое выполнение готового алгоритма, анализ выполняемых действий исполнителя с помощью трассировочной таблицы, анализ полученного результата, исправление ошибок в готовом алгоритме, составление алгоритма, восстановление условия задачи.

4.     Для изучения данной темы выбраны следующие типы заданий:

    анализ готового алгоритма и восстановление условия задачи,   анализ готового алгоритма по условию задачи,

   написание алгоритма по условию задачи.

 Задание№1(Анализготовогоалгоритмаивосстановлениеусловиязадачи) Задания:

1. Запустите «Конструктор алгоритмов»

В главном меню окна выберите: Блок-схема/Блок-схема из файла, далее выберите папку Блок-схемы/Линейные алгоритмы и файл 1.prg (Рис. 3).

Рисунок 3 – Линейный алгоритм

3. Выполните алгоритм в режиме пошагового исполнения (Рис. 4).

Рисунок 4 – Режим пошагового исполнения

1. Сколько раз выполняется каждая команда?

 2.    Измените в операторе А:=10 числовое значение на 17. Запустите пошаговое исполнение. Что изменилось?

3.    Измените в операторе А:=10 числовое значение на 34,6. Запустите пошаговое исполнение. Что произошло? Сделайте вывод.

Вопросы:

 1. Сформулируйте возможное условие задачи.

 2. Можно ли назвать данный алгоритм линейным. Ответ обоснуйте.

 3. Какие выводы можете сделать по выполненным заданиям? Задание№2(Анализготовогоалгоритмапоусловиюзадачи)

Задача: Даны величины X, Y целого типа. Проанализировать готовую блок-схему алгоритма для обмена значений двух величин, с использованием вспомогательной величины Т [2].

Задания:

 1. Запустите «Конструктор алгоритмов»

 2.     В главном меню окна выберите: Блок-схема/Блок-схема из файла, выберите папку Блок-схемы/Линейные алгоритмы и файл 2.prg (Рис. 5).