Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Результаты опроса: Функции имеют право изменять содержимое глобальных переменных?
Да 39 86.67%
Нет 4 8.89%
Не знаю 2 4.44%
Голосовавшие: 45. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2010, 12:57   #11
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Смысл, думаю, ясен?
Я просто привык, что в Си весь код состоит из функций.
ds.Dante вне форума Ответить с цитированием
Старый 09.04.2010, 13:03   #12
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Нууу... Теория теорией, но функция, в моем понимании, это та же процедура, но только которая может ответить, все ли она сделала правильно.
Функции пришли в программирование не из ниоткуда, а из математики, а там за ними такого поведения не наблюдается .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 09.04.2010, 13:05   #13
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Ну в теле функции это и должно быть как константа, ИМХО, конечно.
Кто и как тогда будет менять значение этой переменной?
Цитата:
Сообщение от Utkin Посмотреть сообщение
Функция вообще должна возвращать один результат, и не менять свои входные параметры. В теории конечно .
Ну тут тогда нужно смотреть на функциональные языки. Как правило, в них такие правила заложены, которые избавляют от ряда трудностей (например, не нужно синхронизировать данные между разными потоками, т.к. ничего не меняется), но и другие добавляют (на каждый чих создаются новые копии объектов, что не есть хорошо в случае объемных классов).
pu4koff вне форума Ответить с цитированием
Старый 09.04.2010, 13:09   #14
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Кто и как тогда будет менять значение этой переменной?
Глобальные операции . Как в Паскале.

Цитата:
Ну тут тогда нужно смотреть на функциональные языки. Как правило, в них такие правила заложены, которые избавляют от ряда трудностей (например, не нужно синхронизировать данные между разными потоками, т.к. ничего не меняется), но и другие добавляют (на каждый чих создаются новые копии объектов, что не есть хорошо в случае объемных классов).
Наверно да, Лисп один из самых первых языков наравне с Фортраном... Но сам я не уверен, потому и прикрутил опрос.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 09.04.2010 в 13:37.
Utkin вне форума Ответить с цитированием
Старый 09.04.2010, 13:12   #15
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Функции пришли в программирование не из ниоткуда, а из математики
Как пришли так и уйдут. Программирование != математика. Общие черты есть, но программирование не должно опираться на предрассудки математики. И то, что Sin(X) не изменяет X не означает, что обратное нельзя прикрепить в программирование. Прикручивайте доступ.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 09.04.2010, 13:17   #16
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Как пришли так и уйдут. Программирование != математика. Общие черты есть, но программирование не должно опираться на предрассудки математики. И то, что Sin(X) не изменяет X не означает, что обратное нельзя прикрепить в программирование. Прикручивайте доступ.
Согласен с Вами, программирование не математика, но каждое программное средство перед тем как быть добавленным в язык программирования обычно продумывается и обосновывается. Все остальное рано или поздно приводит к шилу в одном месте, огромные кучу лишних средств, существующих в новых версиях исключительно в целях совместимости (как секция automated в Дельфи) - и не надо и выбросить жалко. Рано или поздно такие вещи приводят к синтаксическому сахару.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 09.04.2010, 13:22   #17
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Совместимость - это конечно хорошо, но когда в 64-х битных приложения в начале написана строка "This programm cannot be run in dos mode" это звучит смешно.
Цитата:
каждое программное средство перед тем как быть добавленным в язык программирования обычно продумывается и обосновывается
Когда Николас Вирт продумывал паскаль он не мог предполагать, что на его основе будут писаться особо зверские программы. Но он все равно дал возможность изменять глобалистику.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 09.04.2010, 13:27   #18
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Когда Николас Вирт продумывал паскаль он не мог предполагать, что на его основе будут писаться особо зверские программы. Но он все равно дал возможность изменять глобалистику.
Да, но на этом все не закончилось. В Дельфи 7 можно было в Public написать поле и жить в ус не дуя. Теперь, все поля класса стали закрытыми и доступ к ним только через методы и свойства. с чего бы это вдруг?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 09.04.2010, 16:04   #19
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Теперь, все поля класса стали закрытыми и доступ к ним только через методы и свойства.
Откуда Вы это взяли? Первый раз слышу. Могу сказать из практики что это не так, по крайней мере в D2009.

Немного почитав посты, сразу видно функциональную подкованность автора темы
С чего вы взяли что функциональное программирование это идеал, к к-рому надо стремиться? Имхо, это просто один из видов, не более.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 09.04.2010, 16:30   #20
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,547
По умолчанию

По-моему, бессмысленный спор, всё уже давно решено. В том же Паскале есть юниты. Функции желательно выносить в юниты. В юните программист сам волен устанавливать область видимости переменных.
Не нравятся юниты, есть классы. Область видимости так же задаётся самим программистом.
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
присвоить из бд переменным akimov_aleks БД в Delphi 6 07.04.2010 08:24
Построение графиков функций С++ (методы аппроксимации функций) amdbodia Общие вопросы C/C++ 0 24.05.2009 15:28
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25
проблема с глобальным объектом Selebro Общие вопросы C/C++ 3 26.11.2008 20:22
Доступ к переменным RealSHELS Общие вопросы Delphi 4 15.06.2008 13:14