Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Билет 3, №2





Вопросы:

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

2. Перечислите и охарактеризуйте основные этапы разработки программного обеспечения?

1.Цикл – это последовательность из нескольких операторов, которые указываются в тексте программы 1 раз, а выполняться могут несколько раз. Та часть, которая многократно повторяется, называется телом цикла.

Циклы с предусловием (условие проверяется до выполнения цикла) – вычисляется значение логического вы­ражения Если оно истинно, то выполняется оператор, после чего снова вычисляется значение логического выражения, в противном случае действие заканчивается. While <логическое выражение> do <оператор>.

Цикл с постусловием, для этого цикла условие выхода – истинное условие, пока условие ложно цикл выпол­няется. Выполняется последовательность операторов, далее вычисляется значение логического выражения. Если оно истинно, то действие заканчивается, иначе снова выполняется последовательность операторов. Re­peat <последовательность операторов > until <логическое выражение>.

Цикл с параметром или цикл со счетчиком (переменная изменяет свое значение от заданного начального до конечного с заданным шагом, для каждого значения счетчика выполняется цикл 1 раз).

for <параметр>:= <выражение 1> to <выражение 2> do <оператор>

S:=0;

for i:=1 to n do S:=S+1;

Пример цикла с постусловием

Repeat

readln (x,k); S:= S+x*k; Until S>p;Write (‘S=’, S)

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

1. Постановка задачи:

- выработать требования (свойства, качества и возможности), необходимые для решения проблемы или дос­тижения цели (экспертный характер этой деятельности);

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

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

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

• как определить решение;

• каких данных не хватает и все ли они нужны;

• какие сделаны допущения и т. п.

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

• имя/цель - дается имя модулю и предложение о функции модуля с формальны­ми параметрами;

• неформальное описание - обзор действий модуля;

• ссылки - какие модули ссылаются на него и на какие модули ссылается данный модуль;

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

• примечания - полезные комментарии общего характера по модулю.

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

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

Методы проектирования архитектуры делятся на две группы:

1) ориентированные на обработку и 2) ориентированные на данные.

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

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

При дедуктивном подходе (рис.3.3) рассматривается частный случай общеизве­стной фундаментальной модели. Здесь при заданных предположениях известная модель приспосабливается к условиям моделируемого объекта. Например, можно построить модель свободно падающего тела на основе известного закона Ньютона та = mg - Fconp и в качестве допустимого приближения принять модель равноуско­ренного движения для малого промежутка времени.

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

4. Разработка алгоритма - самый сложный и трудоемкий процесс, но и самый ин­тересный в творческом отношении. Выбор метода разработки зависит от постанов­ки задачи, ее модели. (О некоторых приемах и методах разработки алго­ритмов говорилось ранее в гл. 1 и будет сказано в следующих разделах данной главы.) На этом этапе необходимо про­вести анализ правильности алгоритма, что очень непросто и трудоемко. Наиболее распространенная процедура до­казательства правильности алгоритма - это прогон его на множестве различных тестов. Однако, это не гарантирует того, что не может существовать случая, в котором программа <<не сработает». В общей методике доказательства пра­вильности алгоритма предпо­лагают, что алгоритм описан в виде последовательности шагов. Для каждого шага предла­гается некое обоснование его правильности для всех подходящих входных (условиях до данного шага) и выходных данных (условиях после этого шага). Затем предлагается доказательство конечности алгоритма с окончательными ис­ходными входными и выходными данными.

5. На этапе реализации алгоритма происходит конструирование и реализация алгоритма, включая:

• кодирование; • интеграцию; • тестирование (сертификацию).

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

подпрограмм, модулей и объектов.

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

Перед началом эксплуатации программы необходим этап ее отладки и тести­рования.

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

Date: 2015-09-24; view: 364; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию