Другие языки программирования и технологии
PascalABC. Когда применяются процедуры, вместо функций?
Просто мне кажется, что функция - это та же процедура, но с возможностью возвращения значения. То есть она может не возвращать (быть как процедура), а может и возвращать. Хочется узнать, какие особенности есть процедуры.
Процедура по сути та же функция, только для случая, когда через ее имя не надо возвращать значение. В принципе, отдельное название при этом совсем не обязательно, но автор Паскаля Вирт решил сделать так для большей понятности. В С и C++, например, процедур нет, в них только функции, которые могут и не возвращать значение через свое имя. если это не нужно.
"мне кажется". неужели сам догадался?
Применяется, когда это удобно, н-р
print (sin(x))
или
sin(x,y)
print (y)
Применяется, когда это удобно, н-р
print (sin(x))
или
sin(x,y)
print (y)
Функция в паскале по своему предназначению соответствует математической функции - отображает множества значений аргументов на некое новое множество.
Процедура же - это просто поименованная подпрограмма.
Но!
Из-за некоторых ограничений на возвращаемые типы функций в классическом паскале процедуры иногда используются в качестве функций. Тот же прием иногда используется для всяческих оптимизаций быстродействия. Также паскаль позволяет вызывать функции на манер процедур - без обязательного возврата результата. Отсюда вся твоя путаница.
Процедура же - это просто поименованная подпрограмма.
Но!
Из-за некоторых ограничений на возвращаемые типы функций в классическом паскале процедуры иногда используются в качестве функций. Тот же прием иногда используется для всяческих оптимизаций быстродействия. Также паскаль позволяет вызывать функции на манер процедур - без обязательного возврата результата. Отсюда вся твоя путаница.
Нормальная функция в надёжном коде должна быть "чистой", т. е. не иметь побочных эффектов (не менять никаких значений, находящихся вне тела функции).
Тогда как процедура - это всегда побочные эффекты.
Другое дело, что PascalABC - это не Pascal, а загримированный C#. И авторы PascalABC сознательно нарушили практически все принципы, на которых построен оригинальный Pascal.
Тогда как процедура - это всегда побочные эффекты.
Другое дело, что PascalABC - это не Pascal, а загримированный C#. И авторы PascalABC сознательно нарушили практически все принципы, на которых построен оригинальный Pascal.
Ну если тебе надо возвращаемое значение то функцию используй, если не нужно то процедуру, хотя можешь просто функцией ничего не возвращать
Алексей Еременко
а зачем нужна процедура?
Похожие вопросы
- Turbo Pascal. 2 задачи на процедуры и функции
- PASCAL. В чем отличие процедур от функций. И любую ли задачу можно решить с помощью функции?
- Процедуры и функции!!! Pascal!!!
- Pascal (процедуры и функции)
- паскаль процедуры и функции
- Как в паскале процедуру или функция сохранить в файл а потом её использовать?
- Чем отличаеться процедура от функции в турбо паскале7
- Помогите составить программу С++ "Процедуры и функции"
- Помогите составить программу. тема "Процедуры и функции" при помощи Паскаль
- Написать на паскале одну из трех задач, использовать процедуру или функцию. Заранее спасибо!
Могут быть ф-ии с атрибутом pure, а могут без него