progr_su_1.ppt
- Количество слайдов: 21
Дисциплина: ПРОГРАММИРОВАНИЕ Тема: Общие вопросы разработки программного обеспечения Направление «Информатика и вычислительная техника» Курс 1 Семестр 1 Лектор: Петрова О. Б.
Задачи курса Изучение алгоритмического языка программирования С и знакомство с элементами языка С++ Изучение способов построения и описания алгоритмов Изучение способов построения структур данных Знакомство с технологией получения исполняемого кода Освоение методики анализа задачи Освоение методики тестирования программ
Литература Бузюков Л. Б. , Петрова О. Б. – Современные методы программирования на языках C и C++. Березин Б. И. , Березин С. Б. – Начальный курс C и C++ Козин С. В. , Коробов С. А. . – Методические указания к лабораторным работам по ПЯВУ Павловская - C++: Учебный курс. Подбельский - Язык C++.
Основные термины Программа Программирование Программная инженерия Программное обеспечение (ПО) Программный комплекс (ПК) Программные средства (ПС)
Жизненный цикл ПО
Основные этапы решения задачи на ЭВМ (задача с малым временем жизни) Постановка задачи Составление плана решения Выбор способа решения, разработка алгоритмов Реализация Условия задачи, исходные данные, цели Разработка программного кода Разработка модулей Проверка правильности решения Подготовка и исполнение тестов, анализ результатов
Основные этапы решения задачи на ЭВМ (задача с большим временем жизни) Системный анализ Анализ требований Проектирование (архитектуры, модульной структуры, структуры данных, интерфейса пользователя) Подготовка инструментальных средств Разработка кода Разработка тестов для отладки Отладка (отдельных модулей, сборки, альфатестирование, бета-тестирование) Подготовка документации Испытания в реальных условиях
Критерии качества ПС Надежность Быстродействие Удобство, эргономичность интерфейса пользователя Совместимость с другими ПС Удобство сопровождения
Классификация языков программирования Машинные коды Ассемблеры Языки высокого уровня (ЯВУ) Понятия и структура ЯВУ максимально приближены к человеческому Машинно-независимые языки (транслятор: компилятор, интерпретатор)
Классификация языков высокого уровня по семантике Императивные (процедурные, алгоритмические) (C, Pascal, Fortran, Cobol, Basic) Функциональные (Lisp, Haskell, Erlang) Декларативные (логические) (Prolog, SQL) Объектно-ориентированные (C++, Java, C#, Objective-C, Object Pascal)
Постановка задачи - это четкое и однозначное изложение условий и целей задачи, точное определение исходных данных. Задача (словесное описание): Дано (исходные данные) Требуется (цели) Связь (зависимость между требуемым и исходным)
Спецификация программы - это формализованное представление требований, предъявляемых к программе, которые должны быть удовлетворены при ее разработке, а также описания задачи, условия и эффекта действия без указания способа его достижения.
Алгоритм Алгоритм — конечная последовательность точных указаний, выполнение которых приводит к решению поставленной задачи. Линейный, разветвляющийся и циклический алгоритм Классификация алгоритмов по степени формализации: Абстрактный (математический) Алгоритмическое описание действий Программа
Свойства алгоритма Результативность Результат достигается за конечное число шагов Однозначность Массовость Дискретность
Способы описания алгоритма 1. Словесный 2. Формульно-словесный 3. Графический 4. Псевдокод 5. Языки программирования
Псевдокод Ввести число IF число больше нуля THEN Задать начальное значение счетчика циклов Задать начальное значение суммы DO-WHILE значение счетчика меньше числа Ввести новое число Прибавить новое число к значению суммы Инкремент счетчика циклов END-DO Вывод значения суммы ELSE Вывести сообщение «Ошибка ввода»
Блок-схемы (ГОСТ 19. 701 -90)
Диаграммы Насси-Шнайдермана Обработка Любое действие Следование Процесс Любая группа действий, образующих блок Процесс 1 Процесс 2 Процесс 3 нет ? Проц. 1 WHILE да Решение Проц. 2 Цикл Процесс IF<условие> THEN<процесс1> ELSE<процесс2> END -IF WHILE<условие> DO<процесс> END-DO REPEAT<процесс> UNTIL<условие> REPEAT-UNTIL 1 Вариант К 2 N ИНА ЧЕ Конструкция CASE K 1: <процесс 1> 2: <процесс 2> … N: <процесс N) END-CASE ELSE <процесс по умолчанию>
Системы счисления Непозиционные системы счисления IVXL IX XI Позиционные системы счисления Десятичная 0123456789 Восьмеричная 01234567 Шестнадцатеричная 0123456789 ABCDEF 99910 457 1011002 A 1 B 16
Двоичная система счисления Основание системы счисления - 2 Вес разряда n: 2 n-1 Цифры 1 1 1 1 № разряда 8 7 6 5 4 3 2 1 Вес разряда 27 26 25 24 23 22 21 20
Шестнадцатеричная система счисления Основание системы счисления - 16 Вес разряда n: 16 n-1 Цифры 1 1 № разряда 4 3 2 1 16 1=16 16 0=1 Вес разряда 16 3=4096 16 2=256
progr_su_1.ppt