Классификация ПО

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

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

Макетирование - основывается на многократном повторении итераций, в которых участвуют заказчик и разработчик.

Этапы:

1) Формирование требований;

2) Проектирование;

3) Реализация;

4) Тестирование;

5) Внедрение;

6) Эксплуатация и сопровождение.

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

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

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

 


 

Этапы решения задач на ЭВМ

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

•сбор информации о задаче;

•формулировка условия задачи;

•определение конечных целей решения задачи;

•определение формы выдачи результатов;

•описание данных (их типов, диапазонов величин, структуры и т. п.).

2) Анализ и исследование задачи, модели:

•анализ существующих аналогов;

•анализ технических и программных средств;

•разработка математической модели;

•разработка структур данных.

3) Разработка алгоритма:

•выбор метода проектирования алгоритма;

•выбор формы записи алгоритма (блок-схемы, псевдокод и др.);

•выбор тестов и метода тестирования;

•проектирование алгоритма.

4) Программирование:

•выбор языка программирования;

•уточнение способов организации данных;

•запись алгоритма на выбранном языке

программирования.

5) Тестирование и отладка:

•синтаксическая отладка;

•отладка семантики и логической структуры;

•тестовые расчеты и анализ результатов тестирования;

•совершенствование программы.

6) Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.

7) Сопровождение программы:

•доработка программы для решения конкретных задач;

•составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.


 

Классификация ПО

Программное обеспечение (ПО) - это совокупность всех программ и соответствующей документации, обеспечивающая использование ЭВМ в интересах каждого ее пользователя. Различают системное и прикладное ПО.

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

Базовое ПО включает в себя:

  • операционные системы;
  • оболочки;
  • сетевые операционные системы.

Сервисное ПО включает в себя программы (утилиты):

  • диагностики;
  • антивирусные;
  • обслуживания носителей;
  • архивирования;
  • обслуживания сети.

Прикладное ПО – это комплекс программ для решения задач определённого класса конкретной предметной области. Прикладное ПО работает только при наличии системного ПО.

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

4.Типы данных и переменные

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

Тип данных присваивается переменной при ее объявлении или инициализации.

Основные типы данных в C++

· int — целочисленный тип данных.

· float — тип данных с плавающей запятой.

· double — тип данных с плавающей запятой двойной точности.

· char — символьный тип данных.

· bool — логический тип данных.


5.Программирование Сверху вниз ( нисходящее программирование)

–от общего к деталям.

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

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

6. Программирование Снизу вверх ( восходящее программирование)

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

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

Модуль — функционально законченный фрагмент программы, оформленный в виде отдельного файла с исходным кодом или поименованной непрерывной её части. предназначенный для использования в других программах.

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

8.Массивы. Виды массивов.

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

ИЛИ

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

Размерность массива — количество индексов, необходимое для однозначного доступа к элементу массива.

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

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

9.Строки, функции, работа над строками.

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

Функция — это правило, по которому каждому элементу одного множества присваивается некоторый элемент другого множества.

Работа над строками. Какие могут быть операции над строками:

- присваивание ( = );

- две операции проверки эквивалентности ( = = ) и ( != );

- сцепление строк ( + );

- взятие индекса ( [] ).

 


10.Сортировка массивов. Виды сортировок.

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

Сортировка пузырьком - Алгоритм состоит из повторяющихся проходов по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются N-1 раз или до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает — массив отсортирован. При каждом проходе алгоритма по внутреннему циклу, очередной наибольший элемент массива ставится на своё место в конце массива рядом с предыдущим «наибольшим элементом», а наименьший элемент перемещается на одну позицию к началу массива.

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

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