Алгоритм — точное предписание исполнителю совеpшить определенную последовательность действий для достижения поставленной цели за конечное число шагов.
Свойства: 1) Конечность 2)Определенность (каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола.)3) Массовость (возможность решать множество задач) 4)Ввод алгоритма должен иметь некоторое число вводных данных 5) Вывод (у алгоритма должно быть 1 или несколько входных данных, т.е. величин, имеющих определенную связь с выходными данными) 6) Эффективность (если все операторы алгоритма просты и выполнены в течении определенного промежутка времени) 7) Точность (каждая команда должна определять однозначное действие исполнителя) 8) Понятность (алгоритм, составленный конкретным исполнителем должен быть понятным другим системным исполнителям)
Существует 4 вида алгоритмов: линейный, циклический, разветвляющийся, вспомогательный.
Линейный (последовательный) алгоритм — описание действий, которые выполняются однократно в заданном порядке.
Python #14 Процедуры
Линейными являются алгоритмы отпирания дверей, заваривания чая, приготовления одного бутерброда. Линейный алгоритм применяется при вычислении арифметического выражения, если в нем используются только действия сложения и вычитания.
Циклический алгоритм — описание действий, которые должны по вторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называется телом цикла.
Многие процессы в окружающем мире основаны на многократном повторении одной и той же последовательности действий. Каждый год наступают весна, лето, осень и зима. Жизнь растений в течение года проходит одни и те же циклы. Подсчитывая число полных поворотов минутной или часовой стрелки, человек измеряет время.
Условие — выражение, находящееся между словом «если» и словом «то» и принимающее значение «истина» или «ложь».
Разветвляющийся алгоритм — алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий.
Примеры разветвляющих алгоритмов: если пошел дождь, то надо открыть зонт; если болит горло, то прогулку следует отменить; если билет в кино стоит не больше десяти рублей, то купить билет и занять свое место в зале, иначе (если стоимость билета больше 10 руб.) вернуться домой.
Вспомогательный алгоритм — алгоритм, который можно использовать в других алгоритмах, указав только его имя.
Например: вы в детстве учились суммировать единицы, затем десятки, чтобы суммировать двузначные числа, содержащие единицы вы не учились новому методу суммирования, а воспользовались старыми методами.
Программы и подпрограммы
Компью́терная програ́мма — последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины. Программа — один из компонентов программного обеспечения. В зависимости от контекста рассматриваемый термин может относиться также и к исходным текстам программы. Компьютерные программы, как объект авторского права и других прав интеллектуальной собственности, относится к категории нематериальных активов.
Подпрограммы (процедура)
Программа — данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определённого алгоритма.
Большинство пользователей компьютеров используют программы, предназначенные для выполнения конкретных прикладных задач, таких как подготовка и оформление документов, математические вычисления, обработка изображений и т. п. Соответствующие программные средства называют прикладными программами или прикладным программным обеспечением. Управление компонентами вычислительной системы и формирование среды для функционирования прикладных программ берёт на себя системное программное обеспечение, наиболее важной составляющей которого является операционная система.
Программи́рование — процесс создания компьютерных программ.
Стадии: Анализ, Проектирование — разработка комплекса алгоритмов, Кодирование и компиляцию — написание исходного текста программы и преобразование его в исполнимый код с помощью компилятора, Тестирование и отладку — выявление и устранение ошибок в программах, Испытания и сдачу программ, Сопровождение.
Подпрограмма (англ. subroutine) — поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий. Подпрограмма может быть многократно вызвана из разных частей программы. В языках программирования для оформления и использования подпрограмм существуют специальные синтаксические средства.
Подпрограммы изначально появились как средство оптимизации программ по объёму занимаемой памяти — они позволили не повторять в программе идентичные блоки кода, а описывать их однократно и вызывать по мере необходимости. К настоящему времени данная функция подпрограмм стала вспомогательной, главное их назначение — структуризация программы с целью удобства её понимания и сопровождения.
Пример Паскаль: program SubProgExample;
// Описание подпрограммы subprog
begin // начало тела подпрограммы
end; // конец тела подпрограммы
subprog; // 1-й вызов
subprog; // 2-й вызов
subprog; // 3-й вызов
Некоторые языки программирования (например, Паскаль, Ада, Модула-2) допускают описание вложенных подпрограмм, то есть помещение подпрограмм внутрь других подпрограмм. Такие вложенные подпрограммы могут использоваться только в той подпрограмме, в которой они описаны. В иных случаях (например, в языке Си) вложение подпрограмм не допускается.
Для обеспечения контролируемой передачи параметров в подпрограмму и возврата результатов из неё используется механизм параметров. Параметры описываются при описании подпрограммы (в её заголовке) и могут использоваться внутри процедуры аналогично переменным, описанным в ней. При вызове процедуры значения каждого из параметров указываются в команде вызова (обычно после имени вызываемой подпрограммы).
Чтобы отличать параметры подпрограммы, описанные в её заголовке и теле, от параметров, указываемых при вызове подпрограммы, первые принято называть формальными параметрами, вторые — фактическими параметрами. При вызове подпрограммы фактические параметры, указанные в команде вызова, становятся значениями соответствующих формальных параметров, чем и обеспечивается передача данных в подпрограмму.
В языках программирования высокого уровня используется два типа подпрограмм: процедуры и функции.
Функция — это подпрограмма специального вида, которая, кроме получения параметров, выполнения действий и передачи результатов работы через параметры имеет ещё одну возможность — она может возвращать результат. Вызов функции является, с точки зрения языка программирования, выражением, он может использоваться в других выражениях или в качестве правой части присваивания. Подробнее см. в статье Функция (программирование).
Процедура — это независимая именованная часть программы, которую после однократного описания можно многократно вызвать по имени из последующих частей программы для выполнения определенных действий.
Подпрограммы, входящие в состав классов в объектных языках программирования, обычно называются методами. Этим термином называют любые подпрограммы-члены класса, как функции, так и процедуры; когда требуется уточнение, говорят о методах-процедурах или методах-функциях.
Из программы и подпрограммы нельзя вызвать подпрограмму, вложенную в др.программу.
Связь м/д подпр-ми может быть по управлению и по данным.
Переменные в подпр-ах: глобальные (объявляются во внешней подпр-ме), локальные (в данной подпр-ме), формальные (определенные в списке формальных параметров)
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru
Программирование.
Выделение набора действий в подпрограмму и вызов её по мере необходимости позволяет логически выделить целостную подзадачу, имеющую типовое решение. Такое действие имеет ещё одно (помимо экономии памяти) преимущество перед повторением однотипных действий: любое изменение (исправление ошибки, оптимизация, расширение функциональности), сделанное в подпрограмме, автоматически отражается на всех её вызовах, в то время как при дублировании каждое изменение необходимо вносить в каждое вхождение изменяемого кода.
Даже в тех случаях, когда в подпрограмму выделяется однократно производимый набор действий, это оправдано, так как позволяет сократить размеры целостных блоков кода, составляющих программу, то есть сделать программу более понятной и обозримой.
- Процедура — это независимая именованная часть программы, которую после однократного описания можно многократно вызвать по имени из последующих частей программы для выполнения определенных действия.
ОПИСАНИЕ ПРОЦЕДУР
Структура описания процедуры, почти такая же как и структура самой программы:
PROCEDURE [имя][параметры];
[необязательный оператор USES];
[раздел описания];
[имя] — имя процедуры
[параметры] — их не обязательно указывать если их нет, если они есть, то записываются они в таком виде: var [переменная]:[тип].Примечание: имена констант, переменных, а также переменных описанных в параметрах процедуры могут совпадать с именами констант и переменных основной программы. Даже если имена переменных основной программы и имена переменных процедуры совпадают, то переменные которые находятся в основной программе и переменные которые находятся в процедуре — не зависимы друг от друга. Под основной программой теперь будем понимать программу, которая находится между операторами BEGIN и END. Примечание: переменные, которые используются в основной программе, могут также использоваться в процедурах и функциях.
Формальные параметры – это переменные, фиктивно (формально) присутствующие в процедуре и определяющие тип и место подстановки фактических параметров.
Фактические параметры – это реальные объекты программы, заменяющие в теле процедуры при ее вызове формальные параметр.
Формальные параметры подпрограммы указывают, с какими параметрами следует обращаться к этой подпрограмме (количество параметров, их последовательность, типы). Они задаются в заголовке подпрограммы в виде списка формальных параметров, разбитого на группы, разделенные точками с запятыми. В группу формальных параметров включаются однотипные параметры одной категории.Все формальные параметры можно разбить на четыре категории:
— параметры-значения (эти параметры подпрограмма может изменить в основной подпрограмме);
— параметры-переменные (эти параметры подпрограмма может изменить в основной программе);
— параметры-константы (только в версии 7.0);
— параметры-процедуры и параметры-функции (т.е. процедурного типа).Для каждого формального параметра следует указать имя и, как правило, тип, а в случае параметра-переменной или параметра-константы – категорию. Имена параметров могут быть любыми, в том числе и совпадать с именами объектов программы. Необходимо лишь помнить, что в этом случае параметр основной программы с таким именем становится недоступным для непосредственного использования подпрограммой. Тип формального параметра может быть практически любым, однако в заголовке подпрограммы нельзя вводить новый тип.
Например, нельзя писать
Function SUMM (A: array[1..100] of Real): Real;
Чтобы правильно записать этот заголовок, следует в основной программе ввести тип-массив, а затем использовать его в заголовке:
Type aArr = array[1..100] of real;
Function SUMM (A: aArr): Real;
При обращении к подпрограмме формальные параметры заменяются на соответствующие фактические вызывающей программы или подпрограммы.
5Фу́нкция — в программировании — это поименованная часть программы, которая может вызываться из других частей программы столько раз, сколько необходимо. Функция, в отличие от процедуры, обязательно возвращает значение.
С точки зрения теории систем, функция в программировании — отдельная система (подсистема, подпрограмма), на вход которой поступают управляющие воздействия в виде значений аргументов. На выходе функция возвращает результат, который может быть как скалярной величиной, так и векторным значением (структура, индексный массив и т.п.). По ходу выполнения функции могут выполняться, также, некоторые изменения в управляемой системе, причём как обратимые, так и необратимые.. Функция, в отличие от процедуры, обязательно возвращает значение.
Побочным эффектом функции называется любое изменение функцией состояния программной среды, кроме возвращаемого значения: изменение значений глобальных переменных, выделение и освобождение памяти, ввод-вывод и тому подобного. Теоретически наиболее правильным является использование функций, не имеющих побочного эффекта (то есть таких, в результате вызова которых возвращается вычисленное значение, и только).
В функциональной парадигме программирования любая программа представляет собой набор вложенных вызовов функций, не вызывающих побочных эффектов. Наиболее известный язык программирования, реализующий эту парадигму — Лисп. В нём любая операция, любая конструкция языка, любое выражение, кроме константы, являются вызовами функций. Наиболее полно парадигма функционального программирования реализуется в языке Хаскелл.
Источник: studfile.net
Подпрограммы
Подпрограмма (англ. subroutine) — поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий. Подпрограмма может быть многократно вызвана из разных частей программы. В языках программирования для оформления и использования подпрограмм существуют специальные синтаксические средства. Основное назначение подпрограмм — структуризация программы с целью удобства её создания и сопровождения.
В языках высокого уровня описание подпрограммы состоит, как правило, из двух частей:
Тело подпрограммы — это набор операторов, который будет выполняться всякий раз, когда вызывается подпрограмма.
Вызов подпрограммы выполняется с помощью команды вызова, включающей в себя имя подпрограммы и список параметров, если неоходимо. В большинстве современных языков программирования команда вызова представляет собой просто имя вызываемой подпрограммы, за которым могут следовать фактические параметры.
Некоторые языки программирования (например, Паскаль, Ада, Модула-2) допускают описание вложенных подпрограмм, то есть помещение подпрограмм внутрь других подпрограмм. Такие вложенные подпрограммы могут использоваться только в той подпрограмме, в которой они описаны. В иных случаях (например, в языке Си) вложение подпрограмм не допускается.
Contents
- 1 Параметры подпрограмм.
- 1.1 Формальные и фактические параметры.
- 1.2 Способ передачи параметров в подпрограмму
- 1.2.1 Передача параметров по значению
- 1.2.2 Передача параметров по ссылке
- 1.2.3 Передача параметров по имени
- 1.2.4 Передача параметров через стек
- 2.1 Функция
- 2.2 Процедура
- 2.3 Методы
Параметры подпрограмм.
Для обеспечения контролируемой передачи параметров в подпрограмму и возврата результатов из неё используется механизм параметров. Подпрограмма может иметь доступ к некоторым данным, которые описаны в основной программе. А также к данным, которые ей переданы при вызове в списке параметров. Параметры описываются при описании подпрограммы (в её заголовке) и могут использоваться внутри подпрограммы аналогично переменным, описанным в непосредственно внутри подпрограммы. При вызове подпрограммы значения каждого из параметров указываются в команде вызова (обычно после имени вызываемой подпрограммы).
Формальные и фактические параметры.
Формальные параметры задаются в вызывающей программе при объявлении или определении подпрограммы. Фактические параметры передаются в подпрограмму непосредственно при её вызове.
При вызове подпрограммы фактические параметры, указанные в команде вызова, становятся значениями соответствующих формальных параметров, чем и обеспечивается передача данных в подпрограмму.
Способ передачи параметров в подпрограмму
Существует несколько способов передачи параметров в подпрограмму.
Передача параметров по значению
Формальному параметру в вызывающей программе, при вызове подпрограммы, присваивается значение фактического параметра. В этом случае формальный параметр будет содержать копию значения, имеющегося в фактическом параметре, и никакое воздействие, производимое внутри подпрограммы на формальные параметры, не отражается на параметрах фактических. Так, если в качестве фактического параметра будет использована переменная, и внутри подпрограммы значение соответствующего формального параметра будет изменено, то фактический параметр останется без изменений.
Передача параметров по ссылке
В вызывающей программе, при вызове подпрограммы, в формальный параметр может быть помещён сам фактический параметр (обычно это реализуется путём помещения в формальный параметр ссылки на фактический). При этом любое изменение формального параметра в подпрограмме отразится на фактическом параметре — оба параметра во время вызова подпрограммы суть одно и то же. Параметры, передаваемые по ссылке, дают возможность не только передавать параметры внутрь подпрограммы, но и возвращать вычисленные значения в точку вызова. Для этого параметру внутри подпрограммы просто присваивается нужное значение, и после возврата из подпрограммы переменная, использованная в качестве фактического параметра, получает это значение.
Передача параметров по имени
В вызывающей программе, при вызове подпрограммы, в формальный параметр может быть помещено произвольное выражение. При этом вычисление этого выражения произойдёт внутри подпрограммы в тот момент, когда потребуется его значение. Если это значение фигурирует несколько раз, то и вычисляться оно будет тоже несколько раз. Параметры, передаваемые по имени, дают возможность писать довольно универсальные подпрограммы. Такой способ передачи параметров используется, к примеру в языках Алгол или Алгол 68.
Передача параметров через стек
Это разновидность передачи параметра по значению «с ручным приводом», в данном случае отсутствует понятие формальных и фактических параметров. Все параметры лежат на стеке, причём их типы, количество и порядок не контролируются компилятором. Данный подход реализован в языке Форт.
====Практика передачи параметраМ Язык программирования может предоставлять возможность передавать параметры в подпрограммы либо только по значению, либо по значению и по ссылке, либо по имени и значению. В последних двух случаях для различения способов передачи параметра используются отдельные синтаксическая конструкции На параметры, передаваемые по ссылке, накладываются естественные ограничения: фактический параметр, подставляемый на место такого параметра при вызове, обязан быть переменной (то есть иметь адрес), а в языках со строгой типизацией — ещё и иметь в точности такой же тип данных.
Виды подпрограмм
В языках программирования высокого уровня могут использоваться следующие типы подпрограмм: Функции, Процедуры, Методы.
Функция
Функция — это подпрограмма специального вида, которая, кроме получения параметров, выполнения действий имеет характерную особенность — она всегда должна возвращать результат. Вызов функции является, с точки зрения языка программирования, выражением, он может использоваться в других выражениях или в качестве правой части присваивания.
Процедура
Процедура — это независимая именованная часть программы, которую после однократного описания можно многократно вызвать по имени из последующих частей программы для выполнения определенных действий.
Методы
Подпрограммы, входящие в состав классов в объектных языках программирования, обычно называются методами. Этим термином называют любые подпрограммы-члены класса, как функции, так и процедуры; когда требуется уточнение, говорят о методах-процедурах или методах-функциях.
Источник: www.olegyakupov.com