Форум программистов, компьютерный форум, киберфорум
Наши страницы
Fortran
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
vua72
418 / 417 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
1

Инициализация переменных в подпрограмме или функции

20.09.2014, 09:39. Просмотров 788. Ответов 2
Метки нет (Все метки)

Добрый день.
Подскажите, почему без строки присваивания значений (после else)
Fortran
1
 a=0; b=1; c=0 !!!! без этой строки работает неправильно
код работает неправильно? И что тогда происходит в строке?
Fortran
1
 integer(kind=8) ::i, a=0, b=1, c
Fortran
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
      integer(kind=8) function f(n)
        implicit none
        integer(kind=8), intent(in):: n
        integer(kind=8) ::i, a=0, b=1, c=0
        if (n==0) then
            c=0
        else if (n==1) then
            c=1
        else
            a=0; b=1; c=0 !!!! без этой строки работает неправильно
            do i=1, n-1
                c = b + a
                a = b
                b = c
            end do
        end if
        f=c
      end function f

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2014, 09:39
Ответы с готовыми решениями:

Что такое инициализация сегментов или инициализация регистров?
Подскажите, что такое инициализация сегментов или инициализация регистров? Вот...

Вывод параметров или переменных из функции
Здравствуйте. В Паскале можно вернуть несколько параметров. procedure(int...

Инициализация переменных
Подскажите, пожалуйста, локальные переменные целочисленного типа в D всегда...

Инициализация переменных
Я новичок в Java, хочу проверить что поля в Java инициализируются по умолчанию....

Инициализация переменных
Всем доброго времени! У меня возникла проблемка, которая, вроде, простая, но ...

2
Catstail
Модератор
23851 / 11907 / 2096
Регистрация: 12.02.2012
Сообщений: 19,355
20.09.2014, 09:55 2
Переменные, служащие для накопления, надо перед накоплением обнулять.
0
vua72
418 / 417 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
20.09.2014, 14:12  [ТС] 3
Это я понимаю, только при входе в функцию переменные инициализируются
Я спрашиваю, чем отличается строка инициализации и та же строка перед входом в цикл?
Т.е. между вызовавми функций, значения переменных a и b сохраняются?
Такое поведение как-то изменяется?

Добавлено через 3 часа 29 минут
Разобрался, строка вида
Fortran
1
 integer(kind=8) ::i, a=0, b=1, c=0
означает, что все проинициализированніе переменніе - статические, т.е. сохраняют значение между вызовами.
Или не инициализировать, или в нужном месте - переприсваивать начальные значения.
Итого.
В таком варианте у переменной по-умолчанию появляется атрубут static или save (синонимы.)
Или явно указать automatic или не инициализировать (что однозначно?).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2014, 14:12

Инициализация переменных = || ()
Здравствуйте ,меня уже долгое время мучает вопрос ,в чем отличие такой...

Инициализация переменных
Почему при вхождении в метод ссылочные поля не инициализируются дефолтными...

Инициализация переменных С++11
Форумчане, подскажите в чем существенная разница ставить знак равенства "=" или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru