Целью программирования является описание процессов обработки данных (в дальнейшем — просто процессов). Согласно ИФИПа [2]: данные (data) — это представление фактов и идей в формализованном виде, пригодном для передачи и переработке в некоем процессе, а информация (information) — это смысл, который придается данным при их представлении.
Обработка данных (data processing) — это выполнение систематической последовательности действий с данными. Данные представляются и хранятся на т.н. носителях данных. Совокупность носителей данных, используемых при какой-либо обработке данных, будем называть информационной средой (data medium).
Набор данных, содержащихся в какой-либо момент в информационной среде, будем называть состоянием этой информационной среды. Процесс можно определить как последовательность сменяющих друг друга состояний некоторой информационной среды.
Описать процесс — это значит определить последовательность состояний заданной информационной среды. Если мы хотим, чтобы по заданному описанию требуемый процесс порождался автоматически на каком-либо компьютере, необходимо, чтобы это описание было формализованным. Такое описание называется программой.
Значение терминов программа, программирование, инструкция, аргумент и данные
С другой стороны, программа должна быть понятной и человеку, так как и при разработке программ, и при их использовании часто приходится выяснять, какой именно процесс она порождает. Поэтому программа составляется на удобном для человека формализованном языке программирования, с которого она автоматически переводится на язык соответствующего компьютера с помощью другой программы, называемой транслятором. Человеку (программисту), прежде чем составить программу на удобном для него языке программирования, приходится проделывать большую подготовительную работу по уточнению постановки задачи, выбору метода ее решения, выяснению специфики применения требуемой программы, прояснению общей организации разрабатываемой программы и многое другое. Использование этой информации может существенно упростить задачу понимания программы человеком, поэтому весьма полезно ее как-то фиксировать в виде отдельных документов (часто не формализованных, рассчитанных только для восприятия человеком).
Обычно программы разрабатываются в расчете на то, чтобы ими могли пользоваться люди, не участвующие в их разработке (их называют пользователями). Для освоения программы пользователем помимо ее текста требуется определенная дополнительная документация.
Программа или логически связанная совокупность программ на носителях данных, снабженная программной документацией, называется программным средством (ПС). Программа позволяет осуществлять некоторую автоматическую обработку данных на компьютере. Программная документация позволяет понять, какие функции выполняет та или иная программа ПС, как подготовить исходные данные и запустить требуемую программу в процесс ее выполнения, а также: что означают получаемые результаты (или каков эффект выполнения этой программы). Кроме того, программная документация помогает разобраться в самой программе, что необходимо, например, при ее модификации.
Подпрограмма
Задание по МДК 02.03 Высокоуровневые языки программирования для группы ИСо-17
24.03.2020
Лекция (конспект)
Тема: Понятие информационной среды процесса обработки данных
Программа как формализованное описание процесса обработки данных. Программное средство
Целью программирования является описание процессов обработки данных (в дальнейшем — просто процессов). Согласно ИФИПа [2]: данные (data) — это представление фактов и идей в формализованном виде, пригодном для передачи и переработке в некоем процессе, а информация (information) — это смысл, который придается данным при их представлении.
Обработка данных (data processing) — это выполнение систематической последовательности действий с данными. Данные представляются и хранятся на т.н. носителях данных. Совокупность носителей данных, используемых при какой-либо обработке данных, будем называть информационной средой (data medium).
Набор данных, содержащихся в какой-либо момент в информационной среде, будем называть состоянием этой информационной среды. Процесс можно определить как последовательность сменяющих друг друга состояний некоторой информационной среды.
Описать процесс — это значит определить последовательность состояний заданной информационной среды. Если мы хотим, чтобы по заданному описанию требуемый процесс порождался автоматически на каком-либо компьютере, необходимо, чтобы это описание было формализованным. Такое описание называется программой.
С другой стороны, программа должна быть понятной и человеку, так как и при разработке программ, и при их использовании часто приходится выяснять, какой именно процесс она порождает. Поэтому программа составляется на удобном для человека формализованном языке программирования, с которого она автоматически переводится на язык соответствующего компьютера с помощью другой программы, называемой транслятором. Человеку (программисту), прежде чем составить программу на удобном для него языке программирования, приходится проделывать большую подготовительную работу по уточнению постановки задачи, выбору метода ее решения, выяснению специфики применения требуемой программы, прояснению общей организации разрабатываемой программы и многое другое. Использование этой информации может существенно упростить задачу понимания программы человеком, поэтому весьма полезно ее как-то фиксировать в виде отдельных документов (часто не формализованных, рассчитанных только для восприятия человеком).
Обычно программы разрабатываются в расчете на то, чтобы ими могли пользоваться люди, не участвующие в их разработке (их называют пользователями). Для освоения программы пользователем помимо ее текста требуется определенная дополнительная документация.
Программа или логически связанная совокупность программ на носителях данных, снабженная программной документацией, называется программным средством (ПС). Программа позволяет осуществлять некоторую автоматическую обработку данных на компьютере. Программная документация позволяет понять, какие функции выполняет та или иная программа ПС, как подготовить исходные данные и запустить требуемую программу в процесс ее выполнения, а также: что означают получаемые результаты (или каков эффект выполнения этой программы). Кроме того, программная документация помогает разобраться в самой программе, что необходимо, например, при ее модификации.
Источник: cyberpedia.su
Шпоры / Технологии программирования / 3
Часто в задаче требуется повторить определенную последовательность операторов в разных частях программы.
Подпрограмма — поименованная или автономная часть компьютерной программы, содержащая описание определённого набора действий. Подпрограмма может быть многократно вызвана из разных частей программы.
Назначение подпрограмм.
Подпрограммы изначально появились как средство оптимизации программ по объёму занимаемой памяти — они позволили не повторять в программе идентичные блоки кода, а описывать их однократно и вызывать по мере необходимости.
Говоря о положительных моментах подпрограмм, нельзя не упомянуть о минусах данного подхода.
Побочный эффект функции — возможность в процессе выполнения своих вычислений читать и модифицировать значения глобальных переменных, осуществлять операции ввода/вывода, реагировать на исключительные ситуации, вызывать их обработчики. Если вызвать функцию с побочным эффектом дважды с одним и тем же набором значений входных аргументов, может случиться так, что в качестве результата вычисляться разные значения.
Виды подпрограмм
В языках программирования высокого уровня используется два типа подпрограмм: процедуры и функции.
Функция — это подпрограмма специального вида, которая, кроме получения параметров, выполнения действий и передачи результатов работы через параметры имеет ещё одну возможность — она может возвращать результат. Вызов функции является, с точки зрения языка программирования, выражением, он может использоваться в других выражениях или в качестве правой части присваивания.
Процедура — это любая подпрограмма, которая не является функцией.
СПОСОБЫ ПЕРЕДАЧИ ПАРАМЕТРОВ
Формальные параметры – описаны в заголовке и теле
Фактические – передаваемые в продпрограмму
Передача параметров по значению. int func1(int x)
Передача параметров по ссылке C++ void func2(int category» и целочисленный «pageIndex». Параметр «pageIndex» имеет значение по умолчанию равное 2 и поэтому является необязательным параметром:
Рекурсия — вызов функции (процедуры) из неё же самой, непосредственно (простая рекурсия) или через другие функции (сложная рекурсия), например, функция A вызывает ф-ию B, а ф-ия B — функцию A.
Реализация рекурсивных вызовов функций в практически применяемых языках и средах программирования, как правило, опирается на механизм стека вызовов — адрес возврата и локальные переменные функции записываются в стек, благодаря чему каждый следующий рекурсивный вызов этой функции пользуется своим набором локальных переменных и за счёт этого работает корректно.
Стек — структура данных с методом доступа к элементам LIFO (англ. Last In — First Out, «последним пришёл — первым вышел»). Адрес возврата — адрес в памяти следующей инструкции приостановленной программы. любой рекурсивный алгоритм может быть реализован итерационно.
Есть, правда, один вариант рекурсии, который использует практически столько же оперативной памяти, сколько итерация в императивных языках программирования. Это так называемая хвостовая или правая рекурсия.
Для ее осуществления рекурсивный вызов определяемого предиката должен быть последней подцелью в теле рекурсивного правила и к моменту рекурсивного вызова не должно остаться точек возврата (непроверенных альтернатив). То есть у подцелей, расположенных левее рекурсивного вызова определяемого предиката, не должно оставаться каких-то непроверенных вариантов и у процедуры не должно быть предложений, расположенных ниже рекурсивного правила. Большинство функциональных языков (Lisp, Haskell), а также некоторые логические (Turbo Prolog), распознают хвостовую рекурсию, и устраняет связанные с ней дополнительные расходы. Этот процесс называется оптимизацией хвостовой рекурсии или оптимизацией последнего вызова.
Использование хвостовой рекурсии компилятором превращает рекурсию в итерационный процесс, сокращает расход памяти, которая не тратится на запоминание всех состояний рекурсивного алгоритма и увеличивает скорость работы.
fact2(N,F,N,F):-!. /* останавливаем рекурсию, когда третий аргумент равен первому*/
fact2(N,F,N1,F1):-N2=N1+1, /* N2 — следующее натуральное число после числа N1 */
F2=F1*N2, /* F2 — факториал N2 */
fact2(N,F,N2,F2). /* рекурсивный вызов с новым натуральным числом N2 и соответствующим ему посчитанным факториалом F2 */
Источник: studfile.net
Презентация на тему Подпрограммы 1
Подпрограмма (функция)Подпрограмма — часть компьютерной программы, содержащая описание определённого набора действий.
Слайды и текст этой презентации
Слайд 1 Подпрограммы
Слайд 2Подпрограмма (функция)
Подпрограмма — часть компьютерной программы, содержащая описание определённого набора
действий.
Слайд 3Лабиринт
Задача.
Необходимо запрограммировать робота на перемещение по лабиринту по заранее заданной
траектории с помощью набора элементарных действий: перемещений и поворотов.
Слайд 4Лабиринт
Образец
Нарисуйте лабиринт в 2D модели.
Включите сетку, чтобы рисовать стены под
прямым углом. Размер сетки минимальный.
Слайд 5Лабиринт
Образец
Характеристики лабиринта:
Лабиринт не должен иметь замкнутых пространств.
Одно поле лабиринта —
3х3 клетки.
Высота лабиринта — 4 поля.
Ширина лабиринта — 5 полей.
Старт
отмечен синим маркером.
Финиш отмечен красным маркером.
Слайд 6Принцип решения задачи
Декомпозиция задачи: разбить движение на элементарные действия (движение
вперед, плавные повороты и т.д)
Составление программы
Как обычно решают задачи?
Слайд 7Принцип решения задачи
Декомпозиция задачи: разбить движение на элементарные действия (движение
вперед, плавные повороты и т.д)
Выделение повторяющихся действий и составление подпрограмм
Составление
Как будем решать мы:
Слайд 8Принцип решения задачи
Слайд 9Лабиринт
Вытащите первый блок «Подпрограмма» на сцену.
Назовите её «Вперед». Блок подпрограммы
появится в палитре.
Двойным щелчком по подпрограмме перейдите к диаграмме
Слайд 10Лабиринт
Составьте алгоритм для движения вперед из поля в поле (поле
лабиринта в 2D-модели 3 на 3 клетки).
У подпрограммы есть
своя собственная 2D-модель. Чтобы её открыть, нужно находится на вкладке подпрограммы.
Слайд 11Лабиринт
Алгоритм:
Подъехать вперед (чтобы колеса оказались на центре клетки).
Повернуть направо
на месте.
Отъехать назад.
Вернитесь на вкладку основной программы.
Следующий элемент движения —
поворот направо. Создайте новую подпрограмму «Направо».
Слайд 12Подпрограмма «Направо»
Слайд 13Лабиринт
Аналогично составьте алгоритм подпрограммы «Налево».
С помощью подпрограмм постройте движение в
конечную точку.
Слайд 14Правило правой руки (ППР)
Образец
Задача: есть лабиринт с единственным выходом.
из него, используя Правило Правой Руки.
Робот: базовая тележка с двумя
ИК-датчиками расстояния.
Слайд 15Правило правой руки. Лабиринт
Образец
Нарисуйте лабиринт в 2D-модели, аналогичный использованному в
предыдущей задаче, но с одним выходом.
Слайд 16Правило правой руки (ППР)
«Подключите» к контроллеру необходимые датчики.
Подключение датчиков и
моторов находится на консоли контроллера в окне отладки.
И на панели
настройки сенсоров в режиме редактирования.
Слайд 17Правило правой руки (ППР)
Датчики можно вращать и перетаскивать.
Выступающие за габариты
тележки датчики, могут «цепляться» за препятствия.
Слайд 18Алгоритм ППР
Есть ли справа стена?
Повернуть направо
Вперед
Начало
Есть ли впереди стена?
Вперед
Повернуть налево
ожидание
нет
нет
да
да
Слайд 19Алгоритм ППР
Датчик А1 смотрит направо, А2 — прямо
Слайд 20Свойства подпрограмм
Задайте в подпрограмме «Вперед» параметры пути — s и
скорости перемещения — v.
Теперь каждый раз при использовании подпрограммы «Вперед»
мы можем передавать разные значения в аргументах s и v.
Слайд 21Задачи (самостоятельно)
Задача 2: реализуйте разгон в течение 3 секунд и
торможение в течение 2. Каждое действия оформите в виде подпрограмм.
Задача
3: реализуйте движение по «бублику» с разгоном и торможением в 2D модели и на реальном роботе. Используйте ИК датчик.
Задача 1: реализуйте ППР с помощью
точных перемещений — используя подпрограммы с аргументом.
Источник: theslide.ru