Презентация на тему: Тема 3. Структурное программирование

Реклама. Продолжение ниже
Тема 3. Структурное программирование
На заре программирования...
Что такое хорошая программа?
Проблема "блюда спагетти"
Разработка программ подчиняется законам Мэрфи
Предпосылки структурного программирования
Структурный подход к программированию
Нисходящая разработка
Свойства модуля
Модульность в среде Borland C++ Builder
Пример нисходящей разработки приложения
Структурное программирование
Комбинирование трёх конструкций
Псевдокод
Использование псевдокода
Пошаговая детализация
От пошаговой детализации к псевдокоду
От псевдокода к программе на С++
Оптимизация кода С++
Некоторые приемы структурного программирования на С++
Некоторые приемы структурного программирования на С++
Некоторые приемы структурного программирования на С++
Некоторые приемы структурного программирования на С++
Сквозной структурный контроль
Верификация программного обеспечения
1/25
Средняя оценка: 4.2/5 (всего оценок: 83)
Код скопирован в буфер обмена
Скачать (965 Кб)
Реклама. Продолжение ниже
1

Первый слайд презентации: Тема 3. Структурное программирование

1 Тема 3. Структурное программирование

Изображение слайда
Изображение для работы со слайдом
1/2
2

Слайд 2: На заре программирования

Программирование и основы алгоритмизации Тема 3. Структурное программирование 2 Шевченко А. В. На заре программирования... QTRAN::.IRPC X,<1234> MOV R’X,-(SP).ENDR MOV Q.RTBA(R5),R0 MOV Q.RTBS(R5),R1 1$: CLR TR.RLC(R0) ADD #TR.SIZ,R0 SOB R1,1$ MOV Q.ATBA(R5),R0 MOV Q.ATBS(R5),R1 MUL #TA.SIZ,R1 2$: CLRB (R0)+ SOB R1,2$

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
Изображение для работы со слайдом
Изображение для работы со слайдом
1/5
3

Слайд 3: Что такое хорошая программа?

Программирование и основы алгоритмизации Тема 3. Структурное программирование 3 Шевченко А. В. Что такое хорошая программа? Раньше хорошими программистами считали тех, кто писал весьма хитроумные программы, которые занимали минимум оперативной памяти и выполнялись за кратчайшее время. Это было естественно, потому что в "старое доброе время" размер оперативной памяти был сильно ограничен, а машины были намного медленнее, чем сегодня. Результатом хитроумного кодирования оказывались программы, которые было трудно понять другим лицам. Программисты зачастую сами признавали, что свою собственную программу они с трудом понимают уже через полгода, а то и через месяц. Дж. Хьюз, Дж. Мичтом. Структурный подход к программированию

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
4

Слайд 4: Проблема "блюда спагетти"

Программирование и основы алгоритмизации Тема 3. Структурное программирование 4 Шевченко А. В. Проблема "блюда спагетти"

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
5

Слайд 5: Разработка программ подчиняется законам Мэрфи

Программирование и основы алгоритмизации Тема 3. Структурное программирование 5 Шевченко А. В. Разработка программ подчиняется законам Мэрфи Законы Мэрфи Всё сложнее чем кажется. Всё тянется дольше, чем можно ожидать. Всё оказывается дороже, чем планировалось. Если что-то может испортиться, оно обязательно портится. Комментарий Каллагана к законам Мэрфи Мэрфи был оптимистом.

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
6

Слайд 6: Предпосылки структурного программирования

Программирование и основы алгоритмизации Тема 3. Структурное программирование 6 Шевченко А. В. Предпосылки структурного программирования "На протяжении многих лет я очень хорошо знал, что квалификация программистов - убывающая функция от плотности операторов GOTO в создаваемых ими программах. Но лишь совсем недавно я обнаружил, почему использование оператора GOTO имеет такие гибельные последствия. Я пришел к убеждению, что этот оператор должен быть исключён из всех языков программирования высокого уровня. Эдсгер Дейкстра, март 1968 Структурное программирование - программирование без GOTO

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
Изображение для работы со слайдом
1/4
7

Слайд 7: Структурный подход к программированию

Программирование и основы алгоритмизации Тема 3. Структурное программирование 7 Шевченко А. В. Структурный подход к программированию Нисходящая разработка Структурное программирование Сквозной структурный контроль Цель - разработка понятных, правильных, легко сопровождаемых программ

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
Изображение для работы со слайдом
1/4
Реклама. Продолжение ниже
8

Слайд 8: Нисходящая разработка

Программирование и основы алгоритмизации Тема 3. Структурное программирование 8 Шевченко А. В. Нисходящая разработка Модуль Модуль Заглушка Модуль Модуль Модуль Модуль Заглушка Заглушка Разработка «сверху-вниз» по модульному принципу

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
Изображение для работы со слайдом
1/4
9

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

Программирование и основы алгоритмизации Тема 3. Структурное программирование 9 Шевченко А. В. Свойства модуля 1. Модуль может быть отдельной программой или подпрограммой (функцией). 2. На модуль можно ссылаться с помощью имени, называемого именем модуля. 3. Модуль должен возвращать управление тому, кто его вызвал. 4. Модуль может обращаться к другим модулям. 5. Модуль должен иметь один вход и один выход. 6. Модуль должен быть сравнительно небольшим (20 - 200 строк кода). 7. Модуль не должен быть зависим от истории своих вызовов. 8. В идеале модуль должен реализовывать одну функцию, причём целиком.

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
10

Слайд 10: Модульность в среде Borland C++ Builder

Программирование и основы алгоритмизации Тема 3. Структурное программирование 10 Шевченко А. В. Модульность в среде Borland C++ Builder Система Приложение 2 ... Приложение N Форма 1 Приложение 1 Форма 2 Форма 3 Функция 1 Функция 2 Функция 3

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
11

Слайд 11: Пример нисходящей разработки приложения

Программирование и основы алгоритмизации Тема 3. Структурное программирование 11 Шевченко А. В. Пример нисходящей разработки приложения Управление заказами Продукция Клиенты Сохранение данных Создание Загрузка данных Заказы Редактирование Поиск Удаление Отображение

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
Изображение для работы со слайдом
1/4
12

Слайд 12: Структурное программирование

Программирование и основы алгоритмизации Тема 3. Структурное программирование 12 Шевченко А. В. Структурное программирование Следование Развилка (условие) Цикл Логическая структура программы может быть выражена комбинацией трех базовых структур

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
13

Слайд 13: Комбинирование трёх конструкций

Программирование и основы алгоритмизации Тема 3. Структурное программирование 13 Шевченко А. В. Комбинирование трёх конструкций Построение модулей по принципу «один вход - один выход», комбинируя три основные конструкции: следования, развилки и цикла

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
14

Слайд 14: Псевдокод

Программирование и основы алгоритмизации Тема 3. Структурное программирование 14 Шевченко А. В. Псевдокод Следование Развилка (условие) Цикл Действие 1 Действие 2 Действие 3 ЕСЛИ условие ТО Действия ИНАЧЕ Действия ВСЁ-ЕСЛИ ЦИКЛ ПОКА условие Действия ВСЁ-ЦИКЛ

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
Реклама. Продолжение ниже
15

Слайд 15: Использование псевдокода

Программирование и основы алгоритмизации Тема 3. Структурное программирование 15 Шевченко А. В. Использование псевдокода ЕСЛИ условие 1 ТО Действие 2 Действие 3 ЕСЛИ условие 4 ТО ИНАЧЕ Действие 5 ВСЁ-ЕСЛИ ИНАЧЕ Действие 6 ЦИКЛ-ПОКА условие 7 Действие 8 Действие 9 ВСЁ-ЦИКЛ Действие 10 ВСЁ-ЕСЛИ 2 3 6 7 1 9 4 5 10 8

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
16

Слайд 16: Пошаговая детализация

Программирование и основы алгоритмизации Тема 3. Структурное программирование 16 Шевченко А. В. Пошаговая детализация Загрузка данных Загрузка данных о продукции Загрузка данных о клиентах Загрузка данных о заказах Открыть файл "Продукция" Читать данные Закрыть файл

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
17

Слайд 17: От пошаговой детализации к псевдокоду

Программирование и основы алгоритмизации Тема 3. Структурное программирование 17 Шевченко А. В. От пошаговой детализации к псевдокоду Открыть файл "Продукция" ЕСЛИ успешно ТО Сбросить счетчик элементов массива "Продукция" ЦИКЛ-ПОКА не встречен конец файла Читать очередную запись в массив Увеличить счетчик на 1 ВСЁ-ЦИКЛ Закрыть файл "Продукция" ИНАЧЕ Сообщение об ошибке "Файл не найден" ВСЁ-ЕСЛИ

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
18

Слайд 18: От псевдокода к программе на С++

Программирование и основы алгоритмизации Тема 3. Структурное программирование 18 Шевченко А. В. От псевдокода к программе на С++ Открыть файл "Продукция" ЕСЛИ успешно ТО Сбросить счетчик элементов ЦИКЛ-ПОКА до конца файла Читать очередную запись Увеличить счетчик на 1 ВСЁ-ЦИКЛ Закрыть файл "Продукция" ИНАЧЕ Сообщение об ошибке ВСЁ-ЕСЛИ FILE* pf = fopen( "product.dat", "rb"); if(pf) { prod_count = 0; while(!feof(pf)) { fread(&prod[prod_count], sizeof(PROD), 1, pf); prod_count++; } fclose(pf); } else ShowMessage( "Файл не найден" );

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
19

Слайд 19: Оптимизация кода С++

Программирование и основы алгоритмизации Тема 3. Структурное программирование 19 Шевченко А. В. Оптимизация кода С++ if(FILE* pf = fopen( "product.dat", "rb")) { for (prod_count = 0; !feof(pf); prod_count++) fread(&prod[prod_count], sizeof(PROD), 1, pf); fclose(pf); } else ShowMessage( "Файл не найден" );

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
20

Слайд 20: Некоторые приемы структурного программирования на С++

Программирование и основы алгоритмизации Тема 3. Структурное программирование 20 Шевченко А. В. Некоторые приемы структурного программирования на С++ Макросы #define MODULE(a, b) \ ... Однократное описание повторяющегося кода Функции void MODULE(int a, int b) {... } Шаблоны template<class x> MODULE(x a, x b) {... }

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
21

Слайд 21: Некоторые приемы структурного программирования на С++

Программирование и основы алгоритмизации Тема 3. Структурное программирование 21 Шевченко А. В. Некоторые приемы структурного программирования на С++ int a; int b; int c; void main() { a = StrToInt(...); b = StrToInt(...); c = a+b; } Отказ от глобальных переменных в пользу локальных void main() { int a; int b; int c; a = StrToInt(...); b = StrToInt(...); c = a+b; }

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
22

Слайд 22: Некоторые приемы структурного программирования на С++

Программирование и основы алгоритмизации Тема 3. Структурное программирование 22 Шевченко А. В. Некоторые приемы структурного программирования на С++ Возможно более позднее определение переменных void main() { int a; int b; int c; a =...; b =...; c = a+b; } void main() { int a =...; int b =...; int c = a+b; }

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
23

Слайд 23: Некоторые приемы структурного программирования на С++

Программирование и основы алгоритмизации Тема 3. Структурное программирование 23 Шевченко А. В. Некоторые приемы структурного программирования на С++ int i; for(i = 0; i < N; i++) a += b[i]; for(i = 0; i < M; i++) a -= c[i]; for(int i = 0; i < N; i++) a += b[i]; for(int i = 0; i < M; i++) a -= c[i]; FILE* inp; if(inp = fopen(...)) { ... } if(FILE* inp = fopen(...)) { ... } Сокращение области видимости переменных

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
1/3
24

Слайд 24: Сквозной структурный контроль

Программирование и основы алгоритмизации Тема 3. Структурное программирование 24 Шевченко А. В. Сквозной структурный контроль Обнаружение и исправление ошибок на ранних стадиях проекта, пока стоимость исправления минимальна, а последствия наименее значительны

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
Изображение для работы со слайдом
1/4
25

Последний слайд презентации: Тема 3. Структурное программирование: Верификация программного обеспечения

Программирование и основы алгоритмизации Тема 3. Структурное программирование 25 Шевченко А. В. Верификация программного обеспечения Проверка правильности работы программ Peer review (проверка кода) Тестирование (проверка результатов)

Изображение слайда
Изображение для работы со слайдом
Изображение для работы со слайдом
Изображение для работы со слайдом
1/4
Реклама. Продолжение ниже