SlideShare une entreprise Scribd logo
1  sur  4
Télécharger pour lire hors ligne
Procedural programming 
Процедурное программирование 
   С развитием языков программирования развивались и технологии, используемые при 
написании программного кода. Первые программы писались сплошным текстом. Это 
была простая последовательность команд, записанная в столбец. Все это выглядело 
приблизительно так: 
 
Листинг 1. Текст линейной программы 
Начало программы 
Команда 1 
Команда 2 
Команда 3 
... 
Команда N 
Конец программы 
 
   Используя такой подход к программированию, можно было сделать очень мало. 
Единственное, что было доступно программисту для создания логики в данном случае 
— это условные переходы. Под условным переходом понимается переход на какую­то 
команду при определенных условиях, которые сложились в процессе обработки данных 
на процессоре. Например: 
 
Листинг 2. Пример условного перехода 
Если выполнено условие, то перейти на команду 1, иначе на команду 3 
Команда 1 
Команда 2 
Команда 3 
... 
Команда N. 
 
   Это единственная логика, с помощью которой можно было выполнять определенные 
действия, зависящие от конкретных ситуаций, которые могут сложиться в процессе 
вычислений. Но программы оставались плоскими и неудобными, потому что написать 
таким образом логику современных программ невозможно. Линейным 
программированием можно создать только линейную логику, которая проведет вас по 
определенным шагам. Например, мастера в программах имеют линейную логику. Она 
может разветвляться по ходу выполнения шагов мастера, но не может делать что­то 
более сложное. 
 
   Взгляните на программу MS Word. В ней трудно представить себе линейность, потому 
что здесь как бы присутствует диалог с программой. Вы говорите, что вам надо, а она 
выполняет ваши действия. При линейном программировании можно создать только 
такую логику, при которой компьютер запрашивает определенные параметры (данные), 
и вы вводите их, а отступить от линейности, заложенной в такую логику, невозможно. 
 
   Следующим шагом стал процедурный подход. При этом подходе какой­то код 
программы мог объединяться в отдельные блоки (процедуры). После этого такой блок 
команд можно вызывать из любой части программы. Например: 
 
Листинг 3. Процедурное программирование 
Начало процедуры 1 
Команда 1 
Команда 2 
Конец процедуры 1 
Начало программы 
Команда 1 
Команда 2 
Если выполнено условие, то выполнить код процедуры 1. 
Команда 3 
Конец программы. 
 
   В результате появилась возможность использовать один и тот же код в одной 
программе неоднократно. Код программ стал более удобным и простым для 
понимания.  
 
   Но вернемся к процедурам. В процедуры можно передавать различные значения, 
заставляя их что­то рассчитывать: 
 
Листинг 4. Пример процедур с параметрами 
Начало процедуры 1 (Переменная 1:строка) 
Команда 1 
Команда 2 
Конец процедуры 1 
Начало программы 
Команда 1 
Команда 2 
Если выполнено условие, то выполнить код процедуры 1. 
Команда 3 
Конец программы. 
 
   В этом примере после начала процедуры в скобках указан тип передаваемой 
переменной. Таким образом, в процедуру можно поместить код каких­нибудь расчётов 
и определить параметры в виде переменных, которые используются в этом коде, а 
затем только передавать ей разные значения в качестве этих параметров. Процедуры 
остались и в наше время. 
 
   Использование процедуры часто называют "Вызов процедуры". Это действительно 
так, т. е. процедура как бы вызывается. Давайте рассмотрим пример процедуры, 
приближенный к реальности. 
 
Листинг 5. Пример процедуры, приближенный к реальному 
Начало процедуры 1 (Переменная 1:Целое число) 
Посчитать факториал числа, находящегося в Переменная 1. 
Вывести результат на экран. 
Конец процедуры 1 
Начало программы 
Процедура1(10) 
Процедура1(5) 
Процедура1(8) 
Конец программы. 
 
   В этом примере условно используется процедура, которая вычисляет факториал 
переданного ей значения и потом выводит результат на экран. В самой программе эта 
процедура используется как процедура1(10), где цифра в скобках означает 
переданное ей значение. Вот так получается универсальная процедура, которая 
считает факториал и выводит результат на экран. Как это все работает? Давайте 
рассмотрим алгоритм. 
 
1. Начало программы. 
2. Вызов процедуры процедура1(10) и передача ей значения 10. 
3. Процедура вычисляет факториал числа 10 и выводит результат на экран. 
4. Выход из процедуры и продолжение выполнения программы. 
5. Вызов процедуры процедура1(5) и передача ей значения 5. 
6. Процедура вычисляет факториал числа 5 и выводит результат на экран. 
 
И так далее. Как видите, код программы очень удобный. 
 
   Но процедуры — это мелочи жизни. Более удобным стало использование функций. 
Функция — это та же процедура, только она умеет возвращать значение, т. е. результат 
своего выполнения. 
 
Листинг 4.6. Пример функции 
Начало Функции 1: Тип возвращаемого значения — целое число 
Команда 1 
Команда 2 
Конец Функции 1 
Начало программы 
Команда 1 
Команда 2 
Если выполнено условие, то выполнить код процедуры 1. 
Команда 3 
Конец программы. 
 
   Заметьте, что после двоеточия идет описание типа возвращаемого значения. Теперь 
рассмотрим ту же ситуацию с факториалом. Допустим, нам надо рассчитать факториал 
для последующего использования, но не для вывода на экран. Такая задача легко 
решается с помощью функций. 
 
Листинг 7. Расчет факториала с помощью функции 
Начало Функции 1 (Переменная 1: Целое число): Целое число 
Посчитать факториал числа, находящегося в Переменная 1. 
Вернуть результат расчета. 
Конец Функции 1 
Начало программы 
Переменная 1:=Функция 1 (10) 
Переменная 2:=Функция 1 (5) 
Переменная 3:=Переменная 1+Переменная 2 
Вывести на экран Переменную 3 
Конец программы. 
 
   В этом примере в "переменную 1" записывается результат расчета факториала 10! 
(переменная 1—Функция 1 (10)). В "переменную 2" записывается результат расчета 
факториала 5!. После этого значения переменных складываются и результат сложения 
записывается в "переменную 3". Последнее действие программы — вывод на экран 
"переменной 3". 
Плюсы: 
● Лёгок для изучения новичкам.  
● Лёгок для работы.  
● Легко писать маленькие сайты­визитки, там не нужен мощный движок.  
Минусы: 
● Плохо расширяемый.  
● Тяжело читаемый.  
● Не структуирован.  
● Повторение кода везде.  
● Очень сложно поддерживать.  
Пример кода php: 
$user_input = htmlspecialchars($_POST[‘field‘]); 
$filtered_content = filter($user_input); //user input filtering 
mysql_connect(«dbhost»,«dbuser»,«dbpassword»); //database 
mysql_select_db(«dbname»); 
$sql = «some query»; 
$result = mysql_query($sql); 
while ($data = mysql_fetch_assoc()) 
{ 
process ($data); 
} 
process_user_input($filtered_content); 
 
Я решил рассказать про процедурку обще, и только в конце привести пример на php, но 
если надо, можно дополнить конкретными примерами.  
 
 
 

Contenu connexe

Plus de solit

Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко АнтонSolit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антонsolit
 
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...solit
 
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...solit
 
Solit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович ЮлияSolit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович Юлияsolit
 
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...solit
 
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...solit
 
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко АнтонSolit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антонsolit
 
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter ReitsmaSolit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsmasolit
 
Solit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов АлександрSolit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов Александрsolit
 
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...solit
 
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...solit
 
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...solit
 
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...solit
 
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...solit
 
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...solit
 
Solit 2014, Зачем нужен филиал Creative Сommons в Беларуси?, Волчек Михаил
Solit 2014, Зачем нужен филиал Creative Сommons в Беларуси?, Волчек Михаил Solit 2014, Зачем нужен филиал Creative Сommons в Беларуси?, Волчек Михаил
Solit 2014, Зачем нужен филиал Creative Сommons в Беларуси?, Волчек Михаил solit
 
Solit 2014, Наивный заказчик Vs. лживый seo. Как распознать seo-мошенника: ин...
Solit 2014, Наивный заказчик Vs. лживый seo. Как распознать seo-мошенника: ин...Solit 2014, Наивный заказчик Vs. лживый seo. Как распознать seo-мошенника: ин...
Solit 2014, Наивный заказчик Vs. лживый seo. Как распознать seo-мошенника: ин...solit
 
Solit 2014, EcmaScript 6 in Action, Трухин Юрий
Solit 2014, EcmaScript 6 in Action, Трухин Юрий Solit 2014, EcmaScript 6 in Action, Трухин Юрий
Solit 2014, EcmaScript 6 in Action, Трухин Юрий solit
 
Solit 2014, Минусы ООП на примере языка PHP, Соловей Василий
Solit 2014, Минусы ООП на примере языка PHP, Соловей ВасилийSolit 2014, Минусы ООП на примере языка PHP, Соловей Василий
Solit 2014, Минусы ООП на примере языка PHP, Соловей Василийsolit
 
Solit 2014, Законы психологии при создании IT-продуктов, Марченко Антон
Solit 2014, Законы психологии при создании IT-продуктов, Марченко АнтонSolit 2014, Законы психологии при создании IT-продуктов, Марченко Антон
Solit 2014, Законы психологии при создании IT-продуктов, Марченко Антонsolit
 

Plus de solit (20)

Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко АнтонSolit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
 
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
 
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
 
Solit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович ЮлияSolit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович Юлия
 
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
 
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
 
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко АнтонSolit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
 
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter ReitsmaSolit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
 
Solit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов АлександрSolit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов Александр
 
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
 
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
 
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
 
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
 
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
 
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
 
Solit 2014, Зачем нужен филиал Creative Сommons в Беларуси?, Волчек Михаил
Solit 2014, Зачем нужен филиал Creative Сommons в Беларуси?, Волчек Михаил Solit 2014, Зачем нужен филиал Creative Сommons в Беларуси?, Волчек Михаил
Solit 2014, Зачем нужен филиал Creative Сommons в Беларуси?, Волчек Михаил
 
Solit 2014, Наивный заказчик Vs. лживый seo. Как распознать seo-мошенника: ин...
Solit 2014, Наивный заказчик Vs. лживый seo. Как распознать seo-мошенника: ин...Solit 2014, Наивный заказчик Vs. лживый seo. Как распознать seo-мошенника: ин...
Solit 2014, Наивный заказчик Vs. лживый seo. Как распознать seo-мошенника: ин...
 
Solit 2014, EcmaScript 6 in Action, Трухин Юрий
Solit 2014, EcmaScript 6 in Action, Трухин Юрий Solit 2014, EcmaScript 6 in Action, Трухин Юрий
Solit 2014, EcmaScript 6 in Action, Трухин Юрий
 
Solit 2014, Минусы ООП на примере языка PHP, Соловей Василий
Solit 2014, Минусы ООП на примере языка PHP, Соловей ВасилийSolit 2014, Минусы ООП на примере языка PHP, Соловей Василий
Solit 2014, Минусы ООП на примере языка PHP, Соловей Василий
 
Solit 2014, Законы психологии при создании IT-продуктов, Марченко Антон
Solit 2014, Законы психологии при создании IT-продуктов, Марченко АнтонSolit 2014, Законы психологии при создании IT-продуктов, Марченко Антон
Solit 2014, Законы психологии при создании IT-продуктов, Марченко Антон
 

Dernier (9)

CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 

Solit 2014, Процедурное программирование, Соловей Василий