117.34K
Category: programmingprogramming

Общие сведения о структурной алгоритмизации и технологиях программирования. Лекция 1

1.

Лекция
ВВЕДЕНИЕ
Цель лекции:
Рассмотреть систематизированные основы знаний
по содержанию учебной дисциплины
Программирование, ее месте в системе
подготовке специалистов и особенностям
изучения

2.

Программирование
Семестр
2
3
Лекций, час.
34
36
Лабораторные занятия, час.
32
36
Курсовая работа
36
СРС, час.
42
36
Всего, час.
108
144
Контроль.
Зачет
Зачет с
оценкой

3.

Илющенко Валерий Васильевич
к.т.н.
Доцент кафедры С20
Информационные системы и технологии
906-759-53-65 или 915-244-55-65
[email protected]

4.

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

5.

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

6.

В результате реализации перечисленных задач обучающийся
должен удовлетворять следующим требованиям:
- Овладеть методологией анализа и проектирования классических
типов алгоритмов (линейных, условных, циклических,
рекурсивных и эвристических). Знать теоретические и
практические аспекты перехода от содержательной постановки
задачи к разработке алгоритма её решения. Чётко представлять
себе алгоритмическую систему, в рамках которой составляется
алгоритм, представлять и учитывать возможности исполнителя
алгоритма (человека или компьютера).
- Овладеть методологией разработки программ на основе
императивного подхода. Приобрести навыки разработки
программного
кода
с
использованием
современных
инструментальных средств.
- Уметь применять полученные знания к решению вопросов
составления и документирования алгоритмов, разработки
программ и их сопровождения, использования современных

7.

0.2. Особенности изучения учебной
дисциплины
• Ведение конспекта лекций и отчетов по лабораторным
и практическим занятиям обязательно.
• Вопросы, выносимые на промежуточное аттестование,
должны быть изучены (представляется рукописный
конспект).
• Все рекомендованные лабораторные и практические
задания должны быть выполнены.
• Модульно-рейтинговое оценивание 07.03.2023,
18.04.2023 и 12.05.2023

8.

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

9.

Список рекомендуемых источников
1 Основы программирования на языках Си и C++ для
начинающих [Электронный ресурс].― Режим доступа.―
http://cppstudio.com/ .― Загл. с экрана .― Дата последнего
обращения 01.10.2016.
2. Портал о программировании. C++ с нуля [Электронный
ресурс].― Режим доступа.― https://code-live.ru/tag/cppmanual/ .― Загл. с экрана .― Дата последнего обращения
01.10.2016.

10.

Этапы решения задач на ЭВМ
Постановка задачи
Формальное
построение модели
задачи
Построение
математической
модели задачи
Разработка алгоритма
Программирование
Анализ результатов
решения задачи
Сопровождение
программы

11.

Лекция 1 Общие сведения о структурной
алгоритмизации и технологиях
программирования
Цель лекции:
Рассмотреть систематизированные основы знаний по
технологиям программирования и структуре языка
программирования С/С++
Учебные вопросы:
1. Общие сведения о структурной алгоритмизации
2. Технологии реализации методов современного
программирования

12.

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

13.

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

14.

Основные (базовые) структуры алгоритмов
S1
Да
Да
ЛУ
Нет
ЛУ
Нет
Да
S1
S2
S1
S2
Следование последовательное
выполнение
действий (блоков).
Ветвление применяется, когда в
зависимости от
логического условия
требуется выполнить одно
из двух заранее
определенных действий
Цикл с предусловием
- пока выполняется
логическое условие,
осуществляется
повторение тела цикла
S1.

15.

Дополнительные структуры алгоритмов
ветвящихся вычислительных процессов
Нет
P
ЛУ
Да
S1
Обход частный случай
ветвления, когда
одна ветвь не
содержит ни каких
действий
P1
P2
Pi
Pn
S1
S2
···
Sn
Множественный выбор обобщение разветвления,
когда в зависимости от
значения селектора
(переключателя Р)
выполняется одно из
нескольких действий

16.

Дополнительные структуры алгоритмов
циклических вычислительных процессов
Заголовок
цикла
S1
Да
S1
ЛУ
Нет
Цикл с постусловием
- пока выполняется
логическое условие,
осуществляется
повторение тела цикла
S1.
Цикл с параметром –
(цикл с известным
числом повторений)
заголовок определяет
начальное, конечное
значение параметра и
шаг его изменения

17.

2 Анализ методов решения задач
программирования
1 Постановка задачи
На этом этапе формулируется цель решения задачи,
анализируются требования и подробно описывается содержание
задачи, выявляются условия, при которых решается задача, а также
определяются входные параметры, которые называются исходными
данными
2 Формальное построение модели задачи
На этом этапе составляется формальная модель решения задачи,
например, модель базы данных, адекватная оригиналу, модель
объектов и потоков информации
3 Построение математической модели решения задачи
На этом этапе составляется формальная модель решения задачи,
например, модель базы данных, адекватная оригиналу, модель
объектов и потоков информации

18.

Пример реализации технологии программирования вычислительных
задач
Постановка задачи
Разработать программу вычисления суммы квадратов целых
положительных чисел от 1 до N
Формальное построение модели задачи
Вычислить:
S=1+4+9+16+…*N2
Построение математической модели решения задачи
1. Исходные данные: N
2. Математические формулы:
N
s i2.
i 1
3. Результат s

19.

Пример реализации технологии программирования вычислительных
задач
Постановка задачи
Разработать программу вычисления суммы квадратов целых
положительных чисел от 1 до N
Формальное построение модели задачи
Вычислить:
S=1+4+9+16+…*N2
Построение математической модели решения задачи
1. Исходные данные: N
2. Математические формулы:
N
s i .
2
1. Ввод с клавиатуры N целого типа
2. Вычисление S=0, i=1
повторять s=s+i2, i=i+1 пока i<=N
i 1
3. Результат s
3. Печать “S=‘’, S

20.

Пример реализации технологии программирования вычислительных
задач
Постановка задачи
Разработать программу вычисления суммы квадратов целых
положительных чисел от 1 до N
Формальное построение модели задачи
Вычислить:
S=1+4+9+16+…*N2
Построение математической модели решения задачи
1. Исходные данные: N
2. Математические формулы:
N
s i2.
i 1
3. Результат s
1
1. Ввод с клавиатуры N целого типа
2
2. Вычисление S=0, i=1
4
3
повторять s=s+i2, i=i+1 пока i<=N
5

21.

Представление математической модели
решения задачи в виде вычислительных
формул:
1
1. Ввод с клавиатуры N целого типа
2
2. Вычисление S=0, i=1
4
3
повторять s=s+i2, i=i+1 пока i<=N
Начало
Введите N
N
S=0
i=1
5
3. Печать “S=‘’, S
S=S+i2
позволяет записать алгоритм,
представив последовательность
выполнения вычислений в виде
последовательности базовых структур
i=i+1
i <= N
Печать S
Конец

22.

3 Технологии реализации методов разработки
алгоритмов и программ
Нисходящее проектирование – технология
разработки программ, при которой на каждом
шаге проектирования задача разбивается на
более мелкие подзадачи так, что в любой
момент разработки имеется действующий
вариант программы в терминах выделенных
подзадач.
Восходящее проектирование – технология
разработки программ, при которой сначала
проектируются и отлаживаются подпрограммы
для выполнения простых операций, после чего
они связываются в единую программу.

23.

Нисходящее проектирование
N
Начало
s i .
2
i 1
Введите N
Введите N
N
Начало
N
Ввод
данных
S=0
S=0
i=1
Вычисления
i=1
Выдача
результата
Вычисление
суммы
S=S+i2
S=S+i2
Конец
i=i+1
i=i+1
Печать S
Да
Да
i <= N
i < =N
Общая схема
алгоритма
Нет
Нет
Печать S
Детализация алгоритма
Конец

24.

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

25.

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

26.

Задание для самостоятельной работы
1 Разработать алгоритм и программу вычисления суммы
квадратов целых положительных чисел от 1 до N:
English     Русский Rules