Разделы презентаций


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

Содержание

Программирование и основы алгоритмизацииТема 3. Структурное программирование2Шевченко А. В.На заре программирования...QTRAN:: .IRPC X, 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Программирование и основы алгоритмизации
Тема 3. Структурное программирование
1
Тема 3. Структурное программирование
Шевченко

А. В.

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

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

программирования...
QTRAN:: .IRPC X, 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$

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

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

хорошая программа?
Раньше хорошими программистами считали тех, кто писал весьма хитроумные

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

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

спагетти"

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

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

подчиняется законам Мэрфи
Законы Мэрфи

Всё сложнее чем кажется.
Всё тянется дольше, чем

можно ожидать.
Всё оказывается дороже, чем планировалось.
Если что-то может испортиться, оно обязательно портится.

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

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

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

"На протяжении многих лет я очень хорошо знал, что квалификация

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

Структурное программирование - программирование без GOTO

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

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

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

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

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

«сверху-вниз» по модульному принципу

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

Слайд 9Программирование и основы алгоритмизации
Тема 3. Структурное программирование
9
Шевченко А. В.
Свойства модуля
1.

Модуль может быть отдельной программой или подпрограммой (функцией).
2. На модуль

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

Слайд 10Программирование и основы алгоритмизации
Тема 3. Структурное программирование
10
Шевченко А. В.
Модульность в

среде Borland C++ Builder
Система
Приложение 2
...
Приложение N
Форма 1
Приложение 1
Форма 2
Форма 3
Функция

1

Функция 2

Функция 3

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

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

разработки приложения
Управление
заказами
Продукция
Клиенты
Сохранение
данных
Создание
Загрузка
данных
Заказы
Редактирование
Поиск
Удаление
Отображение

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

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

(условие)
Цикл
Логическая структура программы может быть выражена комбинацией трех базовых структур

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

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

конструкций
Построение модулей по принципу «один вход - один выход», комбинируя

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

Слайд 14Программирование и основы алгоритмизации
Тема 3. Структурное программирование
14
Шевченко А. В.
Псевдокод
Следование
Развилка (условие)
Цикл
Действие

1
Действие 2
Действие 3
ЕСЛИ условие
ТО
Действия
ИНАЧЕ
Действия
ВСЁ-ЕСЛИ
ЦИКЛ

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

Слайд 15Программирование и основы алгоритмизации
Тема 3. Структурное программирование
15
Шевченко А. В.
Использование псевдокода
ЕСЛИ

условие 1
ТО
Действие 2
Действие 3

ЕСЛИ условие 4
ТО
ИНАЧЕ
Действие 5
ВСЁ-ЕСЛИ
ИНАЧЕ
Действие 6
ЦИКЛ-ПОКА условие 7
Действие 8
Действие 9
ВСЁ-ЦИКЛ
Действие 10
ВСЁ-ЕСЛИ

2

3

6

7

1

9

4

5

10

8

Программирование и основы алгоритмизацииТема 3. Структурное программирование15Шевченко А. В.Использование псевдокодаЕСЛИ условие 1ТО   Действие 2

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







Загрузка

данных
Загрузка данных о продукции


Загрузка данных о клиентах


Загрузка данных о заказах
Открыть

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

Слайд 17Программирование и основы алгоритмизации
Тема 3. Структурное программирование
17
Шевченко А. В.
От пошаговой

детализации к псевдокоду
Открыть файл "Продукция"
ЕСЛИ успешно
ТО
Сбросить счетчик

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

Слайд 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("Файл не найден");

Программирование и основы алгоритмизацииТема 3. Структурное программирование18Шевченко А. В.От псевдокода к программе на С++Открыть файл

Слайд 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("Файл не найден");
Программирование и основы алгоритмизацииТема 3. Структурное программирование19Шевченко А. В.Оптимизация кода С++if(FILE* pf = fopen(

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

структурного программирования на С++
Макросы
#define MODULE(a, b) \
...
Однократное описание повторяющегося кода
Функции
void

MODULE(int a, int b)
{ ... }

Шаблоны

template
MODULE(x a, x b)
{ ... }

Программирование и основы алгоритмизацииТема 3. Структурное программирование20Шевченко А. В.Некоторые приемы структурного программирования на С++Макросы#define MODULE(a, b) \...Однократное

Слайд 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;
}

Программирование и основы алгоритмизацииТема 3. Структурное программирование21Шевченко А. В.Некоторые приемы структурного программирования на С++int a;int b;int c;void

Слайд 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;
}

Программирование и основы алгоритмизацииТема 3. Структурное программирование22Шевченко А. В.Некоторые приемы структурного программирования на С++Возможно более позднее определение

Слайд 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(...))
{
...
}

Сокращение области видимости переменных

Программирование и основы алгоритмизацииТема 3. Структурное программирование23Шевченко А. В.Некоторые приемы структурного программирования на С++int i;for(i = 0;

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

контроль
Обнаружение и исправление ошибок
на ранних стадиях проекта, пока
стоимость

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

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

обеспечения
Проверка правильности работы программ
Peer review
(проверка кода)
Тестирование
(проверка результатов)

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

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика