![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 22.05.2011
Сообщений: 3
|
![]()
Столкнулся с такой функцией. Только начал изучать программирование, но есть острая надобность разобраться с функцией.
Функция Алгоритм (А) П=2; В=1; Ит=0; Пока В>0 Цикл М=А%П; А=(А-М)/П; Ит=Ит+М*В; Если А=0 Тогда В=0; Иначе В=В*10; Конец Если; Конец Цикла; Возврат (Ит); Конец Функции. Чему будет равна перемененная Выход = Алгоритм (7)? Что делает приведенная функция? Какую роль выполняет П , что произойдет если установить ее равной 3,4,9? Следуя первому вопросу А=7, тогда получается Код:
В итоге получается, что М и Ит мы узнаем, но какой от этого толк? Если А=7, то цикл не прекращается, а если менять П на 3,4,9 - меняется М, но результат Ит всегда равен 1. Помогите, пожалуйста, определить зачем нужна эта функция! И правильно ли я понял, что в данном случае переменная Выход = В? Последний раз редактировалось get2null; 22.05.2011 в 18:20. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
во-первых,
я бы рекомендовал всё таки оформить код отдельной функцией. во-вторых, вы Вынесли изменение V за цикл (это неправильно. оно в исходном алгоритме внутри цикла). в-третьих, не выводите результат (это переменная ИТ в алгоритме - смоти строчку: "Возврат (Ит);" )... я бы предложил такой вариант Код:
p.p.s. Вы будете смеяться, но это алгоритм перевода числа в двоичную запись! >Какую роль выполняет П , что произойдет если установить ее равной 3,4,9? основание системы счисления, в которую переводится число. будет соотвественно запись в троичной, четверичной, девятиричной системах счисления... |
![]() |
![]() |
![]() |
#3 |
Регистрация: 22.05.2011
Сообщений: 3
|
![]()
Serge_Bliznykov
Спасибо большое! Еще один глупый вопрос - почему функция делает 3 прохода? Ведь получается, что если А = 7, то оно никогда не будет равно 0, а значит и В не равно 0, следовательно цикл не прекращается. [upd] Так, так, так ![]() Получается, что функция делает 2 прохода, верно? После первого цикла все переменные меняют значение, а при третьем цикле А = 0, правильно? Последний раз редактировалось get2null; 23.05.2011 в 12:46. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
при A = 7 получается три прохода (обратите внимание на it - сколько в нём цифр, столько и проходов).
а ещё никто не мешает Вам внутрь цикла вставить строчку, которая будет выдавать и номер прохода, и содержимое переменных... |
![]() |
![]() |
![]() |
#5 |
Регистрация: 22.05.2011
Сообщений: 3
|
![]()
то есть, если бы было не
it = it + m * v, а, допустим, it = it + it + m *v было бы 4 прохода? Прошу прощения, все никак не могу понять принцип работы ![]() Последний раз редактировалось get2null; 23.05.2011 в 17:00. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
функция | Артл | Помощь студентам | 3 | 28.03.2011 03:03 |
функция | golf | Помощь студентам | 4 | 14.11.2009 16:27 |
функция gets | U-S | Общие вопросы C/C++ | 6 | 14.11.2009 13:49 |
функция | Cpluser | Общие вопросы C/C++ | 2 | 28.02.2009 23:08 |
одна функция потока, а другая функция - член класса запускающего этот поток | Дмитрий_Ч | Общие вопросы C/C++ | 2 | 27.09.2007 08:50 |