→ Блочная структура программы. Разработка структуры программы и модульное программирование. Расположение процедур в сегменте

Блочная структура программы. Разработка структуры программы и модульное программирование. Расположение процедур в сегменте

Часто в больших программах используются подпрограммы для реализации вспомогательных алгоритмов. В ЯА подпрограммы оформляются в виде процедур.

Описание процедур

{имя проц.} PROC {параметр} {тело проц.} {имя проц.} ENDP где {имя проц.} – должно повторяться дважды и используется для обращения к процедуре; {параметр} может принимать одно из двух значений - (по умолчанию) или . К близкой (внутренней) процедуре можно обращаться только из того сегмента команд, где она описана. К дальней (внешней) процедуре можно обращаться из любых сегментов команд программы, в том числе и из того, где она описана. Имена и метки, описанные в процедуре, не локализуются внутри нее, поэтому должны быть уникальными в программе. Хотя в АЯ можно описать одну процедуру внутри другой, никакой выгоды это не дает и обычно не используется.

Вызов процедур

На ЯА все переходы между основной программой и процедурой нужно организовывать самим. Если из процедуры возможен возврат в DOS, то ее можно вызвать командой перехода на имя процедуры JMP {имя проц.} Если нужен возврат в вызывающую программу, то проще всего использовать команду обращения CALL {имя проц.} Тогда в теле процедуры должна быть команда возврата RET Есть другая возможность: запомнить адрес возврата с использованием стека и организовать возврат командами переходов. При вызове процедуры следует учитывать параметры, передаваемые процедуре, и ее расположение относительно точки вызова, т.е. тип перехода в команде CALL определяется автоматически, например (для процедуры p). P CALL P Если это – близкий вызов (NEAR), то производятся следующие действия: Stack:= AB, IP:= offset P где АВ – адрес возврата, т.е. эффективный адрес команды, следующей за вызовом; Дальний вызов (FAR) обеспечивает действия: Stack:= CS, Stack:= AB, CS:= seg P, IP:= offset P Если описание процедуры находится в сегменте ниже команды вызова, то следует указать атрибут перехода оператором PTR. Например , CALL FAR PTR P; дальний вызов P

Расположение процедур в сегменте

    Внутренние процедуры находятся в одном сегменте с вызывающей программой.
При этом возможны 3 варианта расположения: а) Все процедуры размещены раньше основной (вызывающей) программы, которая может быть также оформлена в виде процедуры.Например: Text SEGMENT ‘code’ ASSUME CS: text, DS: data, SS: stack A1 PROC … RET A1 ENDP Main PROC MOV AX, data MOV DS, AX … CALL A1 … MOV AX, C400h INT 21h Main ENDP Text ENDS Data SEGMENT … Data ENDS Stack SEGMENT ‘stack’ … Stack ENDS END Main б) все процедуры – ниже точки вызова. в) процедуры – внутри основной процедуры, возможно даже, что процедура внутри другой процедуры (хотя никакой выгоды это не даёт)Например, … Main PROC … CALL A1 … MOV AX, C400h INT 21h A1 PROC … RET A1 ENDP Main ENDP Text ENDS 2) Внешние процедуры располагаются в других сегментах или в других файлах.Наприме р, текст основной программы находится в файле P.asm Text SEGMENT public ‘code’ ; объединение модулей последовательно; в общий сегмент ASSUME CS: text, DS: data, SS: stack EXTRN stop: proc; объявление внешнего имени Main PROC … CALL Stop … Main ENDP Text ENDS Data SEGMENT … Data ENDS Stack SEGMENT ‘stack’ … Stack ENDS END Main Исходный текст процедуры находится в файле P1.asm Text SEGMENT public ‘code’ ASSUME CS: text PUBLIC stop; объявление имени доступным извне Stop proc …

Stop ENDP text ENDS END ; конец файла без точки входа Объединение этих файлов происходит на шаге компоновки, т.е. требуется раздельная трансляция. Например, для MASM MASM/ZI PR MASM/ZI P1 где ZI – опция, позволяющая поместить в объектный файл полную информацию о номерах строк и символах исходного модуля (ИМ). После образования PR.obj и P1.obj их нужно скомпоновать в единый загрузочный файл LINK/C0 PR P1, COMPOZ где С0 – опция, передающая в загрузочный файл символьную информацию, позволяющую отладчику CV выводить на экран полный текст ИМ, включая метки и комментарии. Модуль COMPOZ.exe готов к исполнению. Можно подключить процедуру из библиотеки . Для этого перед сегментами ИМ помещается директива INCLUDE {имя файла библиотеки}Наприме р, для подключения файла IO.asm следует записать INCLUDE IO.asm S SEGMENT ‘stack’ … S ENDS D SEGMENT ‘data’ … D ENDS C SEGMENT ‘code’ ASSUME CS:C, SS:S, DS:D Begin: … … C ENDS END Begin

Передача параметров между процедурами (организуется по желанию программиста)

    Передача параметров через регистры МП
Передавать значения фактических параметров можно через регистры МП по желанию программиста. Например , ; процедура вычисления AX:= max {AX, BX} max proc far CMP AX, BX JGE Max1 MOV AX, BX Max1: RET max endp … ; в основной процедуре … MOV AX, A ; подготовка параметров MOV BX, B ; к вызову процедуры CALL max MOV C, AX ; сохранение результата …
    Передача параметров по ссылке означает передачу адреса (имени) ячейки памяти, соответствующей фактическому параметру (передача именованного значения из ассемблера в Pascal). Для этого можно использовать имя ячейки памяти или загрузить адрес перед вызовом процедуры в регистр (BX, BP, SI или DI, т.к. в процедуре можно использовать эти регистры для адресации).
Например , командой LEA BX, B CALL……
    Передача параметров через стек.
Передача параметров через регистры ограничена их небольшим количеством. Если параметров много (больше 5-ти), их передают через стек следующим образом: - Основная программа записывает в стек фактические параметры (значения или адреса); - В процедуре используются параметры, записанные в стек.Например: ; вызов p(a1,…, ak) PUSH a1 … PUSH ak CALL p … В процедуре можно использовать дополнительный указатель стека BP, но в начале процедуры следует сохранить значение BP, которое использовалось в вызывающей программе, т.е. ; начало процедуры Р P proc PUSH BP ; сохранение BP MOV BP, SP ; настройка BP на вершину стека … Затем можно использовать базовую адресацию. Например, для близкого вызова – адрес возврата, занесенный в стек автоматически, – адрес последнего параметра ak. До возврата из процедуры следует восстановить BP командой POP BP затем очистить стек от передаваемых параметров, чтобы он не перегружался при многократном вызове процедур, т.е. установить в SP значение, на 2*k больше, чем было после вызова процедуры. Есть 2 возможности корректного возврата из процедуры. а) корректировать SP в вызывающей программе
; конец процедуры ; в вызывающей программе
POP BP CALL p
RET ADD SP, 2*k ; коррекция SP
P ENDP
б) использовать команду возврата с восстановлением стека, имеющую вид для близкого вызова RET {cnt} где {cnt} – счетчик (константное выражение), размером слово. Команда выполняет следующие действия: IP:= Stack SP:= SP + {cnt} Тогда конец процедуры имеет вид: POP BP RET 2*k p ENDP Для дальнего вызова процедуры команда возврата имеет вид RET {cnt} и выполняет следующие действия: IP:= Stack CS:= Stack SP:= SP + {cnt} При таком возврате из процедуры в вызывающей программе дополнительные действия не требуются.
    Проблема сохранения регистров при обращении к процедуре
Чтобы процедура не портила значения регистров, которые использовались в вызывающей программе, требуется в тексте процедуры перед использованием какого-либо регистра сохранить его «старое» значение в стеке, а в конце процедуры все сохраненные значения восстановить.Например , если в процедуре будет использоваться регистр CH, то его следует сохранить в стеке, но стек запоминает только со слова, поэтому в процедуре будет фрагмент: PUSH CX ; сохранение «старого» CX MOV CX, 0 ; использование CX в процедуре … ; перед выходом из процедуры POP CX ; восстановление «старого» CX Таким образом, получится обобщенная схема близкой (NEAR) процедуры с параметрами, передаваемыми через регистры и через стек

{имя проц} proc

PUSH BP для обслуживания

Mov BP, SP стека

PUSH сохранение регистров,

используемых в процедуре

тело проц.

РОР... восстановление регистров

РОР ВР восстановление BP

Пояснительная записка.

Актуальность программы.

Новизна программы.



Цель

Задачи:

-

Программа рассчитана



Сроки реализации программы:

Режим занятий

1 год обучения – стартовый;

Формы занятий:

Методы обучения:

Педагогические технологии:

Ожидаемые результаты.

Обучающийся:

· будет знать, как использовать различные технические приемы при рабо­те с бумагой;

· получит практические навыки работы с инструментами;

· будет обучен работе с разными материалами и инструментами при изготовлении, как простейших технических изделий, так и конструировании объемных макетов транспортных средств, мебели или зданий.

· будет уметь ориентироваться в технике чтения элементарных схем и чертежей;

· будет стремиться развивать образное и пространствен­ное мышление.

· будет развивать художественный вкус и гармонию между формой и содержанием художественного образа

· будут развиты конструкторские способности, техническое мышление, творческий подход к работе;

· будет выработано терпение и упор­ство, необходимые при работе с бумагой.


Учебный план 1-го года обучения

Название разделов и тем Количество часов Формы контроля
всего теория практика
1. Вводное занятие. Инструктаж по ПБ и по ТБ - Беседа
2. Практическое задание.
2.1. Инструменты, краткая история инструментов. Техника безопасного труда и пожарной безопасности. Практическое задание.
2.2. Материалы: бумага, картон. Виды и свойства. Технология обработки бумаги и картона. Практическое задание.
2.3. Аппликация. Практическое задание.
2.4. Конструирование из готовых форм. Практическое задание.
2.5. Новогодние поделки. Мини-выставка.
2.6. Игротека. Практическое задание.
3. Основы цветоведения и композиции. Практическое задание.
4. Оригами. Мини-выставка.
5. Объемное конструирование. Мини-выставка.
6. Итоговое занятие. Творческие работы. -
Итого

1. Вводное занятие. Теория. Режим работы объединения, правила поведения обучающихся. Ознакомление с планом работы объединения. Основные требования к организации рабочего места.

Практика. Показ поделок прошлых лет. Анкетирование. Загадки.

2. Творческое моделирование из бумаги и картона.

Теория. Инструменты при работе с бумагой и картоном. Знакомство с трафаретом и шаблоном. Общие правила безопасной работы режущими и колющими инструментами. Материалы: бумага, картон. Виды и свойства бумаги и картона. Технология обработки бумаги и картона.

Практика. Отработка умений и навыков резания по прямой линии, по кругу. Аппликация.

Теория. Виды аппликации: предметная, сюжетная, декоративная, орнамент. Понятие «плоская аппликация». Способы и правила склеивания. Последовательность наклеивания деталей.

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

Теория. Технология оклеивания коробок.

Практика. Изготовление сувениров. Новогодние поделки. Теория. Знакомство с традициями празднования Нового года. Практика. Изготовление новогодних поделок, сувениров, открыток. Игротека. Теория. Совершенствование технологических приемов работы с бумагой и картоном. Работа по шаблонам.

Практика. Изготовление силуэтов животных.

3. Основы цветоведения и композиции. Теория. Цветовой спектр. Основные и дополнительные цвета. Холодные и теплые цвета. Понятие «композиция», «фон», «основа».Практика. Выполнение практических работ на плоскости.

4. Оригами. Теория. История оригами. Базовые формы и условные обозначения. Практика. Изготовление поделок в технике оригами: животные, цветы, открытки.

5. Объемное конструирование. Теория. Понятие «плоское» и «объемное». Конструирование из полоски бумаги. Практика. Приемы создания куба, цилиндра, конуса. Художественное оформление поделок.

6. Итоговое занятие. Повторение и закрепление полученных знаний. Творческая работа.

К концу 1-го года обучения обучающиеся должны знать:

Правила безопасной работы и личной гигиены при работе инструментами;

Название и назначение инструментов (ножницы, шило);

Название и назначение материалов (бумага, картон), их свойства,

Основные понятия геометрических фигур, тел;

Что такое аппликация;

Понятие « плоское» и « объемное»;

Что такое композиция, фон;

Базовые формы: воздушный змей и др.

К концу первого года обучения обучающиеся должны уметь:

Анализировать изделия (определять его назначение, материал, способы соединения);

Планировать свою работу;

Экономно размечать материалы с помощью шаблонов, пользоваться линейкой, трафаретом;

Применять на практике свойства бумаги и картона;

Сгибать различные игрушки из квадрата-основы;

Резать бумагу и картон ножницами по линии разметки;

Соединять детали из бумаги и картона с помощью клея, скрепок, ниток;

Делать аппликацию
Учебный план 2-го года обучения

Название разделов и тем Количество часов Форма контроля
всего теория практика
1. Вводное занятие. Инструктаж по ПБ и ТБ - Беседа.
2. Материалы и инструменты, организация рабочего места. Беседа.
3. Аппликация. Практическое задание.
4. Графическая грамота. Беседа.
4.1. Понятие об элементах графической грамоты: технический рисунок, эскиз, чертеж. Практическое задание.
4.2. Чертежные инструменты.
4.3. Виды, способы и приемы разметки.
4.4. Линии чертежа
5. Технологические занятия
5.1. Приемы изготовления поделок в технике оригами Мини-выставка.
5.2. Мастерская Деда Мороза
5.3. Игротека из бумаги и картона Практическое задание.
6. Практическое задание.
6.1 Квиллинг.
6.2 Изделия из готовых форм.
6.3 Изделия из гофрированного картона.
6.4 Технические модели.
7. Итоговое занятие. Изготовление подарочной работы. - Самостоятельная работа.
Итого

1. Вводное занятие. Теория. Ознакомление с планом работы объединения. Инструктажи.

2. Материалы и инструменты. Теория. История бумаги. Производство бумаги и картона. Свойства картона и бумаги. Инструменты при работе с бумагой и картоном. Практика. Опыты по определению направления волокон: продольные, поперечные.

3. Аппликация. Теория. Классификация аппликации: по виду- (предметная,сюжетная,орнамент); по изображению- (плоскостная, объемная);по способам выполнения-(мозаика, обрывная); По цветовому решению- (монохромные, полихромные).Понятие о симметрии, симметричных фигурах. Виды симметричного вырезания. Практика. Выполнение аппликационных работ. Изготовление открыток, сувениров.

4. Графическая грамота. Теория. Понятие технического рисунка, эскиза, чертежа. Знакомство с чертежными инструментами: линейкой, угольником, циркулем. Их назначение и применение. Виды разметки: на глаз, сгибанием, на просвет, по шаблону и трафарету, по клетчатой бумаге, с использованием чертежных инструментов. Линии чертежа: линии видимого контура, линии сгиба, осевая, сплошная тонкая. Их назначения Практика. Изготовление поделок с использованием чертежных инструментов. Изготовление поделок с использованием различных способов и приемов разметки. Чтение чертежей разверток объемных деталей.

5. Технологические занятия. Оригами. Теория. Условные обозначения, терминология, базовые формы. Приемы складывания. Практика Изготовление поделок в технике оригами. Мастерская Деда Мороза. Теория. Новогодние традиции разных народов. Рождество. История открыткиПрактика. Вырезание снежинок. Изготовление новогодних игрушек, открыток, гирлянд. Звезд. Игротека из бумаги и картона. Теория. Знакомство с динамическими игрушками: дергунчики, стукалки, игрушки- маятники, игрушки – сюрпризы. Виды соединения деталей из бумаги и картона: - с помощью ниток, скрепок; подвижное – с помощью проволоки, ниток, болта с гайкой.Практика. Изготовление дергунчиков, динамических игрушек.

6. Конструирование из бумаги и картона. Бумагопластика. Теория. Азбука бумагопластики. Практика. Изготовление полуобъмных и объемных поделок. Изделия из готовых форм. Теория. Способы оклеивания коробок разных форм. Практика. Создание макетов из разных коробок. Изделия из гофрированного картона Теория. Основные технологические приемы. Практика. Выполнение объемных работ. Начальные представления о геометрических телах: параллелепипед, цилиндр, конус, пирамида. Теория . Понятия о геометрических телах. Понятие о развертках геометрических тел. Практика. Конструирование на их основе поделок и технических объектов.

7. Изготовление подарочной работы. Итоговое занятие.

К концу 2 года обучения учащиеся должны знать:

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

Линии чертежа;

Правила разметки по шаблонам, линейке, угольнику, при помощи циркуля;

Виды аппликации;

Цветовой круг, цветовые сочетания;

Понятие о симметрии, симметричных фигурах;

Базовые формы в оригами.

К концу 2-го года обучения учащиеся должны уметь:

Соблюдать правила безопасной работы и личной гигиены;

Анализировать изделие: назначение, материал, способы соединения, технология изготовления;

Правильно организовать свое рабочее место;

Поддерживать порядок во время работы;

Делать разметку разными способами;

Выполнять технологические операции с бумагой и картоном;

Соединять детали из бумаги и картона при помощи клея, проволоки, ниток, и щелевого замка;

Выполнять различные виды аппликации;


Учебный план 3-го года обучения .

Название разделов и тем Количество часов Форма контроля
Всего Теория Практика
1. Вводное занятие - Беседа.
2. Материалы и инструменты Беседа.
3. Оригами Практическое задание.
3.1. Панно Мини-выставка.
3.2. Гофрирование
3.3. Модульное оригами
4. Графическая грамота Беседа.
5. Виды транспортной техники. Практическое задание.
5.1. Воздушный транспорт.
5.2. Водный транспорт.
5.3. Сухопутный транспорт.
5.4. Космический транспорт.
5.5. Специальный транспорт
6. Технология работы с разными материалами. Практическое задание.
6.1. Мастерская Деда Мороза. Мини-выставка.
6.1.1 Изготовление сувенира
6.1.2. Изготовление елочных украшений.
6.1.3 Объемные открытки.
6.1.4. Новогодние фигурки.
6.2. Квиллинг
6.2.1. Открытки
6.2.2. Панно
6.2.3. Фоторамка
6.2.4 Сувенир
6.3. Моделирование и конструирование из нетрадиционных материалов. Практическое задание.
6.3.1. Шкатулки
6.3.2. Вазы
6.3.3. Сувениры
6.3.4. Панно
6.3.5. Органайзер
6.3.6. Коробка для бумаг
6.3.7. Комодик
7. Проектная деятельность
7.1. Выбор темы проекта
7.2 Изготовление изделия
7.3. Подготовка документации.
8. Изготовление Подарочной работы. Самостоятельная работа.
9. Заключительное занятие. Итоговая работа
Итого

1.Вводное занятие. Знакомство с планом работы на год. Инструктажи.

2. Материалы и инструменты. Повторение пройденного материала.

3. Оригами. Теория. Азбука оригами: условные обозначения. Виды гофрирования. Модульное оригами: приемы складывания. Практика. Изготовление панно. Изготовление вееров, бабочек, цветов. Изготовление поделок методом модульного оригами.

4.Графическая грамота. Теория. Закрепление и углубление знаний о чертежных инструментах. Практика. Построение окружности при помощи циркуля. Деление ее на части. Изготовление часов.

5.Виды транспортной техники. Теория. Виды самолетов. Их устройство.Значение водного и морского транспорта. Виды сухопутного транспорта. Назначение. Космический транспорт. Элементарное представление о космосе. Виды специального транспорта.Практика. Изготовление самолета. Изготовление моделей судов. Изготовление автомобиля. Изготовление ракеты. Изготовление трактора.

6.Технология работы с разными материалами. Мастерская Деда Мороза. Теория. Восточный гороскоп и символ года Практика .Изготовление сувениров, елочных украшений, объемных открыток, новогодних фигурок. Квиллинг (бумагокручение)Теория. Материалы и инструменты для работы в технике квиллинг Практика. Изготовление поделок: открытки, панно, фоторамки, сувениры. Моделирование и конструирование из нетрадиционных материалов.Теория. Бросовый материал и технология его обработки. Практика. Изготовление из него различных поделок: шкатулки, вазы, сувениры,органайзеры и др.

7.Проектная деятельность. Теория. Выбор проекта и его обоснование. Выбор материалов и инструментов. Выбор оптимальной технологии изготовления проекта.Практика. Изготовление изделия. Оформление проектной документации.

8.Итоговое занятие. Подведение итогов.

К концу 3-го года обучения обучающиеся должны знать:

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

Правила безопасной работы и личной гигиены;

Название материалов (бумага, картон, ватман), их свойства;

Линии чертежа;

Виды транспортных машин, название и их назначение;

Основные профессии людей, связанные с обслуживанием транспорта;

Правили разметки по шаблонам, линейке, угольнику, при помощи циркуля;

Элементы геометрических тел;

Масштаб, увеличение и уменьшение.

К концу 3-го года обучения учащиеся должны уметь:

Соблюдать правила безопасной работы и личной гигиены;

Анализировать изделия: назначение, материал, способы соединения, технология изготовления,

Правильно организовать свое рабочее место;

Поддерживать порядок во время работы;


Приложение 1.

Дидактические материалы.

Критерии оценки.

Показатели (оцениваемые результаты) Критерии Степень выраженности оцениваемого качества Кол-во баллов Методы диагностики
1. Теоретическая подготовка обучающихся
1.1Теоретические знания (по основным разделам учебно-тематического плана программы) Соответствие теоретических знаний программным требованиям -низкий уровень (обучающийся овладел менее чем 1/2 объема знаний, предусмотренных программой); тестирование
1.2 Владение терминами Правильность использования терминов -низкий уровень (обучающийся, как правило, избегает использовать термины); собеседование
-средний уровень (обучающийся сочетает специальные термины с бытовыми);
-высокий уровень (специальные термины употребляет осознанно и в полном соответствии с их содержанием)
2. Практическая подготовка обучающихся
2.1 Умения и навыки (практика), предусмотренные программой (по основным разделам учебно-тематического плана программы) Соответствие практических умений и навыков требованиям программы -низкий уровень (обучающийся овладел менее чем ½ предусмотренных программой умений и навыков); Практическая работа
-средний уровень (объем усвоенных знаний составляет 1/2)
-высокий уровень (обучающийся освоил практически весь объем знаний, предусмотренных программой за конкретный период)
2.2 Владение инструментом Отсутствие затруднений в использовании инструмента -низкий уровень (обучающийся испытывает серьезное затруднение при работе с инструментом); Практическая работа
-средний уровень (работает с инструментом с помощью педагога);
-высокий уровень (работает инструментом самостоятельно)
2.3 Творческие навыки Креативность в выполнении практических заданий начальный(элементарный) уровень развития креативности (обучающийся в состоянии выполнить лишь простейшие практические задания педагога); Практическая работа
-репродуктивный уровень (выполняет в основном задания на основе образца);
-творческий уровень (выполняет практические задания с элементами творчества)

Первый год обучения.

Входной контроль :

Практическое задание № 1 – обучающиеся разрезают лист бумаги по заданным различным линиям.

Практическое задание № 2 – обучающиеся вырезают квадрат с расчерченными геометрическими фигурами, отмеченные галочками фигуры штрихуют. Затем вырезают и складывают фигурки по заданным картинкам.

Промежуточный контроль:

Тест № 1 – обучающиеся должны правильно провести стрелки от названия тела к его изображению.

Практическое задание № 3 – обучающиеся чертят квадрат, делают кораблик. Оформляют.

Второй год обучения.

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

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

Третий год обучения.

Итоговый контроль :

Тест № 3 – из предложенных вариантов ответа обучающиеся выбирают один верный.

Практическое задание № 5 – по технологической карте обучающиеся выполняют аппликационный материал для закладки. Геометрические фигуры выкладываются в определенном порядке. Допускается творческий подход.

Пояснительная записка.

Дополнительная общеобразовательная общеразвивающая программа (далее программа) «Мозаика» (начальное техническое моделирование). Направленность программы: техническая. Срок реализации 3 года. Возраст обучающихся 6 - 11 лет.

Дополнительное образование способствует формированию и самоопределению личности ребенка. Разнообразные формы образовательной деятельности сочетаются с различными видами деятельности ребенка.

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

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

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

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

Педагогическая целесообразность. Для успешного выполнения заданий творческого моделирования ребенок должен уметь сосредоточится, понять смысл и цель работы, представить результат своей деятельности. Выполнение моделей требует аккуратности, усидчивости, развитой моторики рук. Чтобы ребенок завершил конструирование и изготовление модели, ему необходимы волевые качества, развитие которых влияет на активность жизненной позиции, устойчивость мотиваций, умение преодолевать внутренние внешние трудности при совершении целенаправленных действий и поступков. Занятия формируют усидчивость, аккуратность, эстетическую устремленность не просто сделать, а сделать грамотно, красиво, оригинально. У детей развивается чувство объемной, пропорциональной, цветовой гармонии, развивается вкус.

Цель – формирование и развитие творческих способностей обучающихся через начальное техническое моделирование.

Задачи:

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

Научить обучающихся самостоятельно работать с различными материалами и инструментами с соблюдением техники безопасного труда;

Сформировать у обучающихся представление о технике, транспорте и т.д.;

Воспитывать уважительное отношение между членами коллектива в совместной деятельности;

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

Программа составлена на основе программы Фетцер В.В. «Техническое моделирование и конструирование с младшими школьниками» - Ижевск 1994

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

Программа рассчитана на детей младшего школьного возраста 6 -11 лет.

Дети младшего школьного возраста располагают значительными резервами развития. Их выявление и эффективное использование одна из главных задач педагога. В этом возрасте закрепляются и развиваются основные характеристики познавательных процессов (восприятие, внимание, память, воображение, мышление, речь), которые начали формироваться в дошкольный период. Основные виды деятельности, которыми занят ребенок: учение, общение, игра и труд.

Сроки реализации программы:

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

Программа рассчитана на 3 года обучения

Режим занятий

1 год обучения: 1 раза в неделю по 2 часа(72 часа);

2 год обучения: 2 раза в неделю по 2 часа(144 часа);

3 год обучения: 2 раза в неделю по 2 часа(144 ч).

Уровни освоения программы (уровни сложности):

1 год обучения – стартовый;

2 и 3 года обучения – базовый уровень.

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

Формы и методы обучения, педагогические технологии:

Формы занятий: занятия, практические занятия, открытые занятия, беседы, конкурсы, мастер-классы, выставки, мастерские и т.д.

Методы обучения: словесные - беседа, наглядные - показ способов действия, практическая, творческая работа, практическая деятельность.

Педагогические технологии: педагогика сотрудничества, проектные технологии, личностно-ориентированные технологии.

Структура программы: блочная.

Года обучения являются самостоятельными модулями и обучающиеся могут закончить или начать обучение с любой модуля. Структура и содержание программы допускают включение вновь прибывших, обучающихся на любом году обучения с учетом уровня подготовленности и возраста обучающихся (по результатам входного контроля).

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

Основные разделы программы: творческое моделирование из бумаги и картона, оригами, объемное конструирование, графическая грамота, квиллинг. Конструирование из разных материалов.

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

Размер модуля измеряется числом содержащихся в нем операторов или строк. Модуль не должен быть слишком маленьким или слишком большим. Маленькие модули приводят к громоздкой модульной структуре программы и могут не окупать накладных расходов, связанных с их оформлением. Большие модули неудобны для изучения изменений, они могут существенно увеличить суммарное время повторных трансляций программы при отладке программы. Обычно рекомендуются программные модули размером от нескольких десятков до нескольких сотен операторов.

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

Спецификация программного модуля содержит:

Синтаксическую спецификацию его входов, позволяющую построить на используемом языке программирования синтаксически правильное обращение к нему (к любому его входу);

Функциональную спецификацию модуля (описание семантики функций, выполняемых этим модулем по каждому из его входов).

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

Модульная структура программы представлена на (схема 1)


Схема 1.Модульная структура программы

ПРОГРАММИРОВАНИЕ

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

Модульное программирование.

Структурное кодирование.

Проектирование сверху вниз.

Модульное программирование – это процесс разделения программы на логические части. Использование модулей приводит к снижению сложности. Модульную программу легче написать и протестировать.

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

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

Определим некоторые базовые понятия объектно-ориентированного программирования.

Объекты – некоторые элементы, из которых строится программное приложение.

Свойство – определяющая характеристика некоторых вещей, с которыми работает программист, которая влияет на то, как будет выглядеть компонент, а также на его невидимые черты (поведение).

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

Метод - способ, которым объект может реагировать на те или иные события. Это процедура, которая определена как часть класса и содержится в нем.

Методы объектов иметь любой из типов:

Статический

Виртуальный

Динамический

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

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

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

В процессе построения приложения необходимо выбирать из палитры компоненты, на основе которых будет строиться проект. Еще до компиляции видно результаты своей работы. В этом смысле проектирование в Delphi мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции получаем код, который исполняется в 10-20 раз быстрее, чем то же, самое, сделанное при помощи интерпретатора. Cреда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса.

Первоначальная форма имеет два основных блока: тест и редактор. В окне «Тест» находятся кнопки, позволяющие выбрать тест по указанной теме. Во вкладке «Конструктор» присутствуют поля, куда будет вводиться название теста, вопрос, и несколько вариантов ответов, где выбирается правильный ответ.

Для разработки программы конструктора тестов использовались следующие компоненты Delphi7:

PageControl- позволяет в ходе проектирования объединять на одной форме несколько вкладок, которые содержат разные элементы управления. Доступ к каждой из вкладок осуществляется при помощи корешков с названиями. Этот компонент использовался в разработке программы тестирования для создания нескольких вкладок.

Button- то стандартная кнопка делфи, кнопка имеет на поверхности надпись (описывающая её назначение при нажатии). Основное событие для кнопки является OnClick, выполняемое при нажатии, при этом кнопка меняет внешний вид, подтверждая этим происходящее действие визуально. Этот компонент использовался в разработке программы тестирования для удобного перехода между формами.

Image- предназначен для отображение на форме графических изображений по умолчанию выводит на поверхность формы изображения представленных в bmp формате. Для вывода изображений в jpg формате необходимо в дерективе uses подключить модуль JPEG. После размещения на форме компонента Image, он принимает вид выделенной прямоугольной области

MainMenu- не визуальный компонент delphi(место размещения которого на форме не имеет значения для пользователя так как он увидит не сам компонент, а меню, с генерированное им), предназначенный для вывода главного меню на форме

Memo- являются окном редактирования многострочного текста который можно загружать из файла либо сохранять введенную информацию в файл текстового формата

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

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

Label- предназначен для показа текста на форме нашей программы, которые не будет меняются в течение работы программы. Текст надписи компонента Label можно изменить, но делается это только программно.Текст, отображаемые в компоненте, определяются значением свойства Caption. Он прописывается в процессе проектирования или задается программно во время выполнения программы

Timer- невизуальный компонент, который может размещаться в любом месте формы. Он имеет два свойства, позволяющие им управлять: Interval - интервал времени в миллисекундах иEnabled - доступность. Свойство Interval задает период срабатывания таймера. Через заданный интервал времени после предыдущего срабатывания, или после программной установки свойства Interval, или после запуска приложения, если значение Interval установлено во время проектирования, таймер срабатывает, вызывая событие OnTimer. В обработчике этого события записываются необходимые операции.

ТЕСТИРОВАНИЕ И ОТКЛАДКА

Тестирование – это динамический контроль программы, т.е. проверка правильности программы при ее выполнении на компьютере.

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

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

Нарушение соответствия между детально разработанной записью алгоритма в процессе кодирования программы относится к ошибкам, проходящим вследствие невнимательности программиста. Отключение внимания приводит и ко всем остальным ошибкам, возникающим в процессе подготовки исходных данных и ввода программы в ЭВМ. Ошибки, возникающие вследствие невнимательности, могут иметь непредсказуемые последствия, так как наряду с потерей меток и описаний массивов, дублированием меток, нарушением баланса скобок возможны и такие ошибки, как потеря операторов, замена букв в обозначениях переменных, отсутствие определений начальных значений переменных, нарушение адресации в массивах, сдвиг исходных данных относительно полей значений, определенных спецификациями формата.

Учитывая разнообразие источников ошибок, при составлении плана тестирования классифицируют ошибки на два типа: 1 – синтаксические; 2 – семантические (смысловые).

Синтаксические ошибки – это ошибки в записи конструкций языка программирования (чисел, переменных, функций, выражений, операторов, меток, подпрограмм).

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

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

В ходе тестирования были выявлены ошибки: программа не правильно отсчитывала время данное пользователю для ответа на вопрос, ошибка выявилась в том что по невнимательности указали не верную переменную, до исправления код выглядел так:

TmrLabel: TLabel;

if TimeToAnswer = 0 then

dec(TimeToAnswer);

TmrLabel.Caption:= Format("Время на ответ: %b сек.", );

После выявления ошибки и её исправления, программа стала правильно отсчитывать время данное пользователю для ответа на вопрос. После исправления код выглядит так:

procedure TForm3.Timer1Timer(Sender: TObject);

TmrLabel: TLabel;

if TimeToAnswer = 0 then

dec(TimeToAnswer);

TmrLabel:= TLabel(PageControl1.ActivePage.FindComponent("Panel1").FindComponent("TmrLabel"));

TmrLabel.Caption:= Format("Время на ответ: %d сек.", );

Так же при тестировании была выявлена ошибка в том, что не правильно подобрана процедура для ввода пароля. Изначально код выглядел так:

Password: String;

if Password <> "1234" then

if not InputQuery (Form2) then

Form2.BringToFront;

Ошибка заключалась в том, что для вывода пароля использовалась процедура InputQuery, а нужно было использовать Assigned. Код после использования выглядит так:

procedure TForm1.N2Click(Sender: TObject);

Password: String;

if Password <> "1234" then

ShowMessage("Неверный пароль!");

if not Assigned(Form2) then

Application.CreateForm(TForm2, Form2)

Form2.BringToFront;

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

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

ДОКУМЕНТИРОВАНИЕ

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

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

АИС «Конструктор теста» предназначена для создания тестов, для очного итогового контроля качества усвоения теоретического материала, приобретенных знаний и практических навыков обучаемых в учебных заведениях по дисциплинам относящимся к информационным технологиям.

Главная форма (рис. 1) представляет собой меню где выбираешь между конструктором и тестом.

Рис. 1. Первоначальная форма

При нажатии на вкладку конструктор, открывается форма, где можно открыть, сохранить, создать и редактировать выбранный вами тест (рис. 2).

Рис. 2. Конструктор

При нажатии на вкладку тест открывается форма, где можно пройти тестирование по выбранному вами тестом (рис. 3).

Рис. 3 Тест


ЗАКЛЮЧЕНИЕ

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

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

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

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

В процессе выполнения курсовой работы были осуществлены следующие задачи:

Закрепились и углубились теоретические знания;

Приобретены практические навыки при разработке программного продукта;

В результате проделанной работы были достигнуты все задачи, поставленные перед началом курсовой работы.


СПИСОК ЛИТЕРАТУРЫ

1. Вигерс И.К. Разработка требований к программному обеспечению: «Русская редакция», 2010, 576 с.

2. Бобровский С. Delphi 5: Учебный курс. - СПб.: Издательство "Питер", 2010. - 640 с.

3. Вонг, Уоллес. Основы программирования. М. 2011, 336 с.

4. П.П. Беленький. Учебное пособие по информатике - Ростов на дону «Феникс» 2012. – 448c.

5. Дантеманн Дж., Мишел Д., Тэйлор Д. Программирование в среде Delphi.- К.: НИПФ-"Diasoft-Ltd.",2011. - 608с.

6. Рубенкинг. Программирование в Delphi для "чайников". - К.: Диалектика, 1996. - 304с.

7. Дарахвелидзе П.Г., Марков Е.П. Delphi - среда визуального программирования.- СПб: BHV-Санкт-Петербург, 2011. - 352с

8. Сурков К.А., Сурков Д.А., Вальвачев А.Н. Программирование в среде DELPHI 2.0. - Минск: ООО "Попурри", 2012. - 640с.

9. Савицкая, Г.В. Анализ программной деятельности: Учебник / Г.В. Савицкая. - Минск: ООО «Новое знание», 2010;

10. Дж.Хьюз, Дж.Мичтом. Структурный подход к программированию. М.: Мир, 2011. - С. 29-71.

11. Диплом-Экспресс. Руководство пользователя. Версия 1.8. НТЦ «АРМ-Регистр», 2010, 41 с.

12. Коржинский С.Н Самоучитель работы на компьютере.- 2-е изд., перераб. и доп.- М.: ТК Велби, Изд-во Проспект, 2011, 370 с.

13. Леонтьев В.П. Новейшая энциклопедия ПК, 2011, 960 с.

14. Мазуркевич А., Еловой Д. РНР: настольная книга программиста, 2011, 480с.

15. Максимов Н.В. Архитектура ЭВМ и вычислительные системы, 2013, 512с.

16. Орлов С.А. Технология разработки программного обеспечения. – М.: Питер, 2013, 474 с.

17. Симонович С.В. Общая информатика. - М.: «Инфорко-Пресс», 2010, 428с.

18. Ташков П. Защита ПК на 100%: сбои, ошибки и вирусы, 2010, 288 с.

19. Шалин П.А. Энциклопедия Windows XP. - СПб.: «Питер», 2012, 688 с.

20. Культин Н.Б. - Основы программирования в Delphi 7, – СПб.: БХВ-Петербург, 2013

21. Ревич Ю. - Нестандартные приемы программирования на Delph. – СПб.: БХВ-Петербург, 2012

22. Сухарев - Основы Delphi. Профессиональный подход. – СПб.: Наука и Техника, 2011

23. Фленов - Библия Delphi. – СПб.: БХВ-Петербург, 2011

24. Ремизов Н. Delphi – М.: Питер, 2013.

25. Шпак Ю.А. - Delphi 7 на примерах. – К.: Издательство Юниор, 2012

26. Дарахвелидзе П., Марков Е. - Программирование в Delphi 7 (+ дискета). – СПб.: БХВ-Петербург, 2013

27. Кэнту - Delphi 7 для профессионалов. – СПб. Питер, 2012.

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

Имя в программе может быть простым или составным. К простым именам относятся имена переменных, имена подпрограмм, имена пользовательских типов данных. Составное имя ссылается на элемент некоторой структуры и записывается как простое имя и следующие за ним операции квалификации или индексации имени. Например, выражение array1 ссылается на третий элемент массива, а выражение record1.field2 ссылается на значение поля field2 структуры record1 .

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

Среда ссылок подпрограммы включает среду глобальных ссылок, среду локальных ссылок, среду нелокальных ссылок и среду предопределенных ссылок.

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

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

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

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

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

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

int1=5*x; int2=8*y;

Значение переменной int1 нигде в программе не используется, то при оптимизации программы первый оператор может быть упразднен. Но если переменная int1 является псевдонимом переменной y , то такая оптимизация приведет к ошибке вычисления, и, следовательно, потребуются дополнительные проверки.

Под статической областью видимости понимается фрагмент кода программы, в котором идентификатор ссылается на конкретный объект .

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

Блочно-структурированные языки программирования

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

Блочно- структурированные языки программирования можно подразделить на строго блочно- структурированные языки и просто блочно- структурированные языки .

В строго блочно- структурированных языках в начале каждого блока располагается область объявлений, а за ней следует фрагмент кода. Иначе говоря, в строго блочно- структурированных языках программирования не допускается объявление переменных в любом месте фрагмента кода.

К строго блочно- структурированным языкам программирования относятся языки ALGOL 60, Pascal , PL/I .

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

Следующий пример иллюстрирует блочную структуру программы на языке Pascal .

program Project1; procedure P1(); procedure P2(); {Вложенная процедура} var i:Integer; begin end; begin {Код процедуры P1} end; begin {Код главной программы Project1} end.

В языке Object Pascal по умолчанию приложения создаются как набор модулей, подключаемых ключевым словом uses . Следующий пример иллюстрирует блочную структуру программы на языке Object Pascal , представленную в виде одного модуля.

Program Project2; {Начало программы} uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; {$R *.res} {$R *.dfm} {Имя DFM-файла должно совпадать с именем модуля (блока). } {Для получения единого модуля на языке Object Pascal при автоматическом создании приложения в среде Delphi файл Unit1.dfm следует переименовать в Project2.dfm, а код модуля Unit1.pas перенести в модуль Project2.pas} type {Объявление нового типа окна формы TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; ListBox1: TListBox; Edit1: TEdit; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ListBox1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var {Начало области объявлений } Form1: TForm1; i: Integer; procedure TForm1.Button1Click(Sender: TObject); begin Edit1.Text:="Button1"; end; procedure TForm1.Button2Click(Sender: TObject); var i:Integer; procedure P1(); {Вложенная процедура} var i:Integer; begin i:=5; Edit1.Text:= Edit1.Text+" i= " + IntToStr(i); end; begin Edit1.Text:="Button2"; i:=0; P1 (); end; procedure TForm1.ListBox1Click(Sender: TObject); begin Edit1.Text:="ListBox1"; end; begin {Начало выполнения программы} Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. Пример 5.1. Блочная структура программы на языке Object Pascal

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

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

Любое ПС имеет свою структуру, которая разрабатывается для удобства:

  • 1. разработки
  • 2. программирования
  • 3. отладки
  • 4. внесения изменений

Также структуризация ПС позволяет:

  • 1. распределить работы по исполнителям, обеспечив их загрузку и требуемые сроки разработки
  • 2. построить календарные графики проектных работ и осуществлять их координацию в процессе создания ПИ.
  • 3. контролировать трудозатраты и стоимость проектных работ.

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

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

Типовая структура ПС:

носитель отладка программный модуль

Таблица. Типы модулей

Свойства модуля:

  • 1. один вход и один выход - на входе программный модуль получает определенный набор исходных данных, выполняет обработку данных и возвращает результат
  • 2. функциональная завершенность - модуль выполняет перечень операций для реализации каждой отдельной функции в полном составе.
  • 3. логическая независимость - результат работы модуля зависит только от исходных данных, и не зависит от работы других модулей.
  • 4. слабые информационные связи с другими программными модулями - обмен информации между модулями должен быть по возможности минимизирован.
  • 5. обозримый по размеру и сложности.

Каждый модуль состоит из спецификации и тела модуля.

Спецификация - правила использования модуля.

Тело - способ реализации процесса обработки.

Принцип модульного программирования ПС:

  • 1. Определение состава и подчиненность функций
  • 2. определение набора программных модулей, реализующих эти функции

При составлении алгоритма необходимо учитывать:

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

Методы разработки структуры программы.

В качестве модульной структуры программы принято использовать древовидную структуру, включая деревья со сросшимися ветвями. В узлах дерева размещаются модули, а стрелки показывают подчиненность модулей (т.е. в тексте модуля, из которого она исходит, имеется ссылка на модуль, в который она входит).

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

  • 1. синтаксическую спецификацию его входов, позволяющую построить обращение к нему на используемом языке программирования
  • 2. функциональную спецификацию модуля (описание всех функций, выполняемых этим модулем).

Существуют разные методы разработки структуры программы. Обычно используют 2 метода:

  • 1. Метод восходящей разработки
  • 2. метод нисходящей разработки

Метод восходящей разработки.

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

  • 1. для программирования какого-либо модуля совсем не требуется текстов, используемых им модулей - для этого достаточно, чтобы каждый используемый модуль был лишь специфицирован (в объеме, позволяющем построить правильное обращение к нему), а для тестирования его возможно используемые модули заменять их имитаторами (заглушками).
  • 2. каждая программа в какой-то степени подчиняется некоторым внутренним для нее, но глобальным для ее модулей соображениям (принципам реализации, предположениям, структурам данных и т.п.), что определяет ее концептуальную целостность и формируется в процессе ее разработки. При восходящей разработке эта глобальная информация для модулей нижних уровней еще не ясна в полном объеме, поэтому очень часто приходится их перепрограммировать.
  • 3. при восходящем тестировании для каждого модуля (кроме головного) приходится создавать ведущую программу (модуль), которая должна подготовить для тестируемого модуля необходимое состояние информационной среды и произвести требуемое обращение к нему. Это приводит к большому объему "отладочного" программирования и в то же время не дает никакой гарантии, что тестирование модулей производилось именно в тех условиях, в которых они будут выполняться в рабочей программе.

Метод нисходящей разработки.

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

Положительные стороны

  • 1. При таком порядке разработки программы вся необходимая глобальная информация формируется своевременно, т.е. ликвидируется весьма неприятный источник просчетов при программировании модулей.
  • 2. Существенно облегчается и тестирование модулей, производимое при нисходящем тестировании программы. Первым тестируется головной модуль программы, который представляет всю тестируемую программу и поэтому тестируется при "естественном" состоянии информационной среды, при котором начинает выполняться эта программа. При этом все модули, к которым может обращаться головной, заменяются на их имитаторы. Имитатор модуля - простой программный фрагмент, сигнализирующий, о самом факте обращения к имитируемому модулю с необходимой для правильной работы программы обработкой значений его входных параметров и с выдачей, если это необходимо, заранее запасенного подходящего результата. После завершения тестирования и отладки головного и любого последующего модуля производится переход к тестированию одного из модулей, которые в данный момент представлены имитаторами, если таковые имеются. Для этого имитатор выбранного для тестирования модуля заменяется на сам этот модуль и добавляются имитаторы тех модулей, к которым может обращаться выбранный для тестирования модуль. При этом каждый такой модуль будет тестироваться при "естественных" состояниях информационной среды, возникающих к моменту обращения к этому модулю при выполнении тестируемой программы. Таким образом, большой объем "отладочного" программирования заменяется программированием достаточно простых имитаторов используемых в программе модулей. Кроме того, имитаторы удобно использовать для подыгрывания процессу подбора тестов путем задания нужных результатов, выдаваемых имитаторами.

Рассмотренные методы называются классическими. В них модульная древовидная структура программы должна разрабатываться до начала программирования модулей. Однако такой подход вызывает ряд возражений: маловероятно, чтобы до программирования модулей можно было разработать структуру программы достаточно точно и содержательно.

При конструктивном и архитектурном подходах к разработке программ модульная структура формируется в процессе программирования модулей.

Конструктивный подход (Модификация нисходящей разработки)

Модульная древовидная структура программы формируется в процессе программирования модуля. Сначала программируется головной модуль, исходя из спецификации программы в целом, причем спецификация программы является одновременно и спецификацией ее головного модуля, так как последний полностью берет на себя ответственность за выполнение функций программы. В процессе программирования головного модуля, в случае, если эта программа достаточно большая, выделяются внутренние функции, в терминах которых программируется головной модуль. Это означает, что для каждой выделяемой функции создается спецификация реализующего ее фрагмента программы, который в дальнейшем может быть представлен некоторым поддеревом модулей. Важно заметить, что здесь также ответственность за выполнение выделенной функции берет головной (может быть, и единственный) модуль этого поддерева, так что спецификация выделенной функции является одновременно и спецификацией головного модуля этого поддерева. В головном модуле программы для обращения к выделенной функции строится обращение к головному модулю указанного поддерева в соответствии с созданной его спецификацией. Таким образом, на первом шаге разработки программы (при программировании ее головного модуля) формируется верхняя начальная часть дерева, например, такая, которая показана на рис. 7.1.

Рис. 7.1

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

Архитектурный подход (модификация восходящей разработки)

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

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

Рис. 7.2

Метод нисходящей реализации. Каждый запрограммированный модуль начинают сразу же тестировать до перехода к программированию другого модуля.

 

 

Это интересно: