Вопрос 26 Структурное программирование — КиберПедия 

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

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

Вопрос 26 Структурное программирование

2017-12-09 235
Вопрос 26 Структурное программирование 0.00 из 5.00 0 оценок
Заказать работу

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

Идеи структурного программирования появились в начале 70-годов в компании IBM, в их разработке участвовали известные ученые Э. Дейкстра, Х. Милс, Э. Кнут, С. Хоор.

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

Типы управляющих структур:

– последовательность;

– альтернатива (условие выбора);

– цикл.

Распространены две методики (стратегии) разработки программ, относящиеся к структурному программированию:

– программирование «сверху вниз»;

– программирование «снизу вверх».

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

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

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

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

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

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

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

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

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

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

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

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

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

Достоинства структурного программирования:

– повышается надежность программ (благодаря хорошему структурированию при проектировании, программа легко поддается тестированию и не создает проблем при отладке);

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

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

– улучшается читабельность программ.

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

– программирование должно осуществляться сверху вниз;

– весь проект должен быть разбит на модули (подпрограммы) с одним входом и одним выходом;

– подпрограмма должна допускать только три основные структуры – последовательное выполнение, ветвление (if, case) и повторение (for, while, repeat).

– недопустим оператор передачи управления в любую точку программы (goto);

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

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

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

В процессе создания программы у нас может появиться необходимость объединить в одну группу по какому-либу признаку совокупность значений перечисляемого типа. К примеру, перечисляемый тип ZnakZodiaka (Знак зодиака) включает скалярные значения Oven, Strelec, Kozerog, Bliznecy, Vesy (Овен, Стрелец, Козерог, Близнецы, Весы); перечисляемый тип Planeta (Планета) объединяет скалярные значения Mercury, Venera, Earth, Mars (Меркурий, Венера, Земля, Марс).

Описание перечисляемого типа происходит в разделе описания типов:

type

ZnakZodiaka=(Oven,Strelec,Kozerog,Bliznecy,Vesy);

 

Описание переменных скалярного типа, объявленные в разделе type, производится при помощи имен типов:

type

Planeta = (Mercury,Venera,Earth,Mars);

var

Solnsystem: Planeta;

Таким образом, переменная Solnsystem может принимать следующие значения: Mercury, Venera, Earth или Mars.

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

var

Solnsystem: Mercury,Venera,Earth,Mars;

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

К переменным рассматриваемого типа можно применить оператор присваивания ":="

Solnsystem:= Mercury;

Последовательность значений перечисляемого типа нумеруется автоматически, начиная с нуля:

type

Planeta = (Mercury,Venera,Earth,Mars);

В этом примере Mercury имеет значение 0, Venera - значение 1, Earth - значение 2, Mars - значение 3.

Интервальный тип данных.

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

Примеры диапазонов:

1) type

diap=0..255;

2) type

bukv='A'..'Z';

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

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

Вопрос 31 Информатика в широком смысле представляет собой единство разнообразных отраслей науки, техники и производства, связанных с переработкой информации.

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

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

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

Информатика как прикладная дисциплина занимается:

изучением закономерностей в информационных процессах (накопление, переработка, распространение);

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

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

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

Задачи информатики состоят в следующем:

исследование информационных процессов любой природы;

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

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

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


Поделиться с друзьями:

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

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

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

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.023 с.