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

4
Procedural programming Процедурное программирование С развитием языков программирования развивались и технологии, используемые при написании программного кода. Первые программы писались сплошным текстом. Это была простая последовательность команд, записанная в столбец. Все это выглядело приблизительно так: Листинг 1. Текст линейной программы Начало программы Команда 1 Команда 2 Команда 3 ... Команда N Конец программы Используя такой подход к программированию, можно было сделать очень мало. Единственное, что было доступно программисту для создания логики в данном случае — это условные переходы. Под условным переходом понимается переход на какуюто команду при определенных условиях, которые сложились в процессе обработки данных на процессоре. Например: Листинг 2. Пример условного перехода Если выполнено условие, то перейти на команду 1, иначе на команду 3 Команда 1 Команда 2 Команда 3 ... Команда N. Это единственная логика, с помощью которой можно было выполнять определенные действия, зависящие от конкретных ситуаций, которые могут сложиться в процессе вычислений. Но программы оставались плоскими и неудобными, потому что написать таким образом логику современных программ невозможно. Линейным программированием можно создать только линейную логику, которая проведет вас по определенным шагам. Например, мастера в программах имеют линейную логику. Она может разветвляться по ходу выполнения шагов мастера, но не может делать чтото более сложное. Взгляните на программу MS Word. В ней трудно представить себе линейность, потому что здесь как бы присутствует диалог с программой. Вы говорите, что вам надо, а она выполняет ваши действия. При линейном программировании можно создать только такую логику, при которой компьютер запрашивает определенные параметры (данные), и вы вводите их, а отступить от линейности, заложенной в такую логику, невозможно. Следующим шагом стал процедурный подход. При этом подходе какойто код программы мог объединяться в отдельные блоки (процедуры). После этого такой блок команд можно вызывать из любой части программы. Например:

Upload: solit

Post on 02-Nov-2014

133 views

Category:

Technology


3 download

DESCRIPTION

Василий Соловей, Солигорск. PHP-разработчик в в «Электронном Солигорске». «Минусы ООП на примере языка PHP». Development секция. Для разработчиков (начальный и средний уровень). 1. Что есть ООП (легкое повторение уже знакомого) 2. Лучше доверять авторитету мнения, чем мнению авторитета (во всем нужно разбираться основательно, а в ООП тем более) 3. Неизменная скупость в похвалах — верный признак посредственного ума (плюсы ООП) 4. Не все то солнышко, что блестит (основная часть доклада – минусы ООП) 5. Кто владеет информацией, тот владеет ситуацией (пояснение сути доклада: доклад не принижает и не умоляет достоинств ООП он создан расширить кругозор) «Начинать никогда не поздно!». Мотивационное выступление. На личном примере, я могу рассказать, что начинать никогда не поздно, и если есть желание – нет повода себе отказывать. 1. Путь в тысячу миль начинается с одного шага (с чего начать) 2. И на верном пути повстречаются распутья (как не сбиться с дороги начав) 3. Кто ты программист? (мой взгляд на программирование) 4. Успех – дитя настойчивости

TRANSCRIPT

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

Procedural programming

Процедурное программирование С развитием языков программирования развивались и технологии, используемые при написании программного кода. Первые программы писались сплошным текстом. Это была простая последовательность команд, записанная в столбец. Все это выглядело приблизительно так: Листинг 1. Текст линейной программы Начало программы Команда 1 Команда 2 Команда 3 ... Команда N Конец программы Используя такой подход к программированию, можно было сделать очень мало. Единственное, что было доступно программисту для создания логики в данном случае — это условные переходы. Под условным переходом понимается переход на какую­то команду при определенных условиях, которые сложились в процессе обработки данных на процессоре. Например: Листинг 2. Пример условного перехода Если выполнено условие, то перейти на команду 1, иначе на команду 3 Команда 1 Команда 2 Команда 3 ... Команда N. Это единственная логика, с помощью которой можно было выполнять определенные действия, зависящие от конкретных ситуаций, которые могут сложиться в процессе вычислений. Но программы оставались плоскими и неудобными, потому что написать таким образом логику современных программ невозможно. Линейным программированием можно создать только линейную логику, которая проведет вас по определенным шагам. Например, мастера в программах имеют линейную логику. Она может разветвляться по ходу выполнения шагов мастера, но не может делать что­то более сложное. Взгляните на программу MS Word. В ней трудно представить себе линейность, потому что здесь как бы присутствует диалог с программой. Вы говорите, что вам надо, а она выполняет ваши действия. При линейном программировании можно создать только такую логику, при которой компьютер запрашивает определенные параметры (данные), и вы вводите их, а отступить от линейности, заложенной в такую логику, невозможно. Следующим шагом стал процедурный подход. При этом подходе какой­то код программы мог объединяться в отдельные блоки (процедуры). После этого такой блок команд можно вызывать из любой части программы. Например:

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

Листинг 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)

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

Конец программы. В этом примере условно используется процедура, которая вычисляет факториал переданного ей значения и потом выводит результат на экран. В самой программе эта процедура используется как процедура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 Конец программы.

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

В этом примере в "переменную 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, но если надо, можно дополнить конкретными примерами.