0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 18
|
|
1 | |
Возведение в степень чисел в восьмеричной системе счисления28.12.2016, 21:01. Просмотров 3690. Ответов 27
Метки нет Все метки)
(
Помогите, пожалуйста, написать программу.
Вводятся два числа в восьмеричной системе счисления, производится проверка на точность ввода(т.е. отсутствие в числах 8,9), первое число возводится в степень равную второму числу, вывод на экран. (значение хранится в символьном массиве - строке). Вся арифметика происходит в восьмеричной СС. !!!функцию pow(n,k) использовать нельзя!!! Заранее благодарю за ответы
0
|
|
28.12.2016, 21:01 | |
Вычитание 2-х чисел в восьмеричной системе счисления Найдите количество счастливых чисел записанных в восьмеричной системе счисления
Деление чисел в восьмеричной системе счисления |
|
1463 / 928 / 808
Регистрация: 30.04.2016
Сообщений: 3,212
|
||||||
28.12.2016, 22:12 | 2 | |||||
Larionova_Darya, здравствуйте! Я попытался вам помочь так:
1
|
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 18
|
|
28.12.2016, 22:44 [ТС] | 3 |
Fixer_84, Спасибо))
а можете объяснить поподробнее вот это? ↓ вот тут, мне кажется, должно быть НЕ РАВНО и еще компилятор выдает, что to_string не определен
0
|
1463 / 928 / 808
Регистрация: 30.04.2016
Сообщений: 3,212
|
|
28.12.2016, 22:51 | 4 |
Larionova_Darya, Первое - это экспонента и десятичный алгоритм. Так в математике можно получить степень. Можно также использовать рекурсию. Насчет функции - она возвращает true если число не восьмеричное (можно сделать наоборот). Функция to_string() - это проблема многих компиляторов, так как нужно указывать стандарт. Я могу переделать без to_string() или вы справитесь без меня?
![]()
0
|
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 18
|
|
28.12.2016, 23:07 [ТС] | 5 |
Fixer_84, с to_string разобралась)
а вот проверка на восьмеричность при вводе любого числа возвращает true.. Может быть можно с вами как-то связаться за пределами форума для более удобного обсуждения, например, какая-нибудь соц.сеть?
0
|
1463 / 928 / 808
Регистрация: 30.04.2016
Сообщений: 3,212
|
||||||
28.12.2016, 23:11 | 6 | |||||
Larionova_Darya, так как уже довольно поздно и я ложусь спать, отправляю вам программу без использования строк, что считаю более логичным. Если нужно что-то еще исправить - пишите. Компилятор на этот раз ругаться не должен.
Larionova_Darya, P.S. Я назвал функцию IfNotOct, чтобы все было логично.
0
|
1235 / 1001 / 461
Регистрация: 25.12.2016
Сообщений: 3,246
|
|
28.12.2016, 23:12 | 7 |
видимо всё же логарифм (к тому же натуральный)
![]() Впрочем, если запрещено использовать функцию pow, то не факт, что разрешено использовать её имитацию.
0
|
1463 / 928 / 808
Регистрация: 30.04.2016
Сообщений: 3,212
|
||||||
28.12.2016, 23:22 | 8 | |||||
Larionova_Darya, если вам не подходит экспонента, можно использовать рекурсивную функцию:
likehood, спасибо за ваше замечание. Да, это опечатка, а логарифм - правда натуральный.
0
|
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 18
|
||||||
28.12.2016, 23:23 [ТС] | 9 | |||||
likehood, вообще преподаватель сказала реализовать как-то так
0
|
1463 / 928 / 808
Регистрация: 30.04.2016
Сообщений: 3,212
|
|||||||||||
28.12.2016, 23:25 | 10 | ||||||||||
Larionova_Darya, наверное, это потому что я не указал
![]()
1
|
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 18
|
|
28.12.2016, 23:27 [ТС] | 11 |
Fixer_84, огромное спасибо за различные варианты реализации
и еще одно большое спасибо, что откликнулись на просьбу, если честно не ожидала, что помощь придет так быстро)
0
|
1235 / 1001 / 461
Регистрация: 25.12.2016
Сообщений: 3,246
|
|
28.12.2016, 23:31 | 12 |
Ну, если поставить скобочки вокруг k>0, то будет вполне рабочий код. Только в начале не забыть присвоить result = 1.
0
|
1463 / 928 / 808
Регистрация: 30.04.2016
Сообщений: 3,212
|
||||||
28.12.2016, 23:34 | 13 | |||||
Larionova_Darya, да, вы, также, можете посчитать степень через цикл while или for:
0
|
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 18
|
|
28.12.2016, 23:40 [ТС] | 14 |
Fixer_84,
попробовала с этой функцией, с примером тестовых данных 2^3(должно быть =10(8cc)), но мне выдало ответ в десятичном виде, т.е.= 8 подскажите, что сделать?
0
|
1463 / 928 / 808
Регистрация: 30.04.2016
Сообщений: 3,212
|
||||||
28.12.2016, 23:50 | 15 | |||||
Larionova_Darya, давайте просто переведем результат в восьмеричную систему...сейчас, подождите немного...
Добавлено через 2 минуты Larionova_Darya, замените вывод вот на эту строчку:
1
|
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 18
|
||||||
29.12.2016, 07:14 [ТС] | 16 | |||||
Fixer_84, УРРРРРАААААААА работает
![]() Добавлено через 7 часов 21 минуту Fixer_84, на других данных не работает... вводится основание и степень должны тоже в 8сс и здесь арифметические операции должны тоже выполнятся в 8сс
0
|
1463 / 928 / 808
Регистрация: 30.04.2016
Сообщений: 3,212
|
|||||||||||
29.12.2016, 19:43 | 17 | ||||||||||
Larionova_Darya, здравствуйте! Что вы имеете ввиду, говоря, что на других данных не работает? Насколько я понимаю, вам не просто нужно вывести результат в восьмеричной системе счисления, но и сохранить его в переменную для дальнейшей работы? Тогда, нужно писать функцию перевода числа в восьмеричную систему, что, впрочем, не так уж сложно. И тогда, мы сможем применить ее для промежуточных вычислений. Отпишитесь, пожалуйста.
Добавлено через 13 минут Larionova_Darya, я дописал для вас программу, но прежде чес отправить, хочу спросить, какой результат вы ожидайте, к примеру, для 15^2? Если у нас с вами все совпадет, я тут же отправлю вам решение. Добавлено через 40 минут Larionova_Darya, я не знаю, когда вы появитесь на форуме, поэтому отправляю решение. Я пока не знаю как возводить восьмеричное число в заданную степень, поэтому перевожу его в десятичную и возвожу, затем перевожу результат обратно в восьмеричную систему. Результат получается какой надо. Напишите, пожалуйста, все ли вас устраивает. Добавлено через 5 минут Larionova_Darya, вот код.
Larionova_Darya, есть, также, функция перевода числа из десятичной системы в восьмеричную. Может быть, она вам пригодится:
Larionova_Darya, P.S. Извините, что сразу не понял, что вам нужно возвести число в степень именно в восьмеричной системе. Думал, вам просто нужно перевести результат в данную систему. Впрочем, теперь все работает. Я проверял через онлайн-сервисы. Результаты совпадают.
0
|
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 18
|
|
29.12.2016, 23:06 [ТС] | 18 |
Fixer_84, доброго времени суток! Большое спасибо за ваш труд, извините, что из-за меня вы так заморачиваетесь.
К сожалению, программа выше мне не подходит. Переводить в десятичную систему счисления нельзя. Все расчеты, в данном случае вычитание и умножение, должны производится в восьмеричной СС. Так же нужна проверка на отсутствие "8" и "9" как в числе-основании, так и в числе-степени. Использование строки обязательно. А еще преподаватель запрещает использовать потоковый ввод/вывод данных, но это не проблема, в традиционный вид переделывать умею. P.S.:извините, что уже второй день вы мучаетесь с моей программой, но никто из моих знакомых не смог мне помочь и я от отчаяния написала сюда, спасибо вам за помощь. И да, передаю привет из НГТУ. Преподаватель О.В., я вас "люблю".
0
|
1462 / 1170 / 551
Регистрация: 08.01.2012
Сообщений: 4,512
|
|||||||||||
30.12.2016, 05:27 | 19 | ||||||||||
ну и умножение - многократное сложение, компу пофиг, он не потеет Добавлено через 11 минут советчик, блин
0
|
1463 / 928 / 808
Регистрация: 30.04.2016
Сообщений: 3,212
|
|
30.12.2016, 14:10 | 20 |
MansMI, я как раз после этого тоже вспоминал как мы числа переводили в школе. Только пока не помню как. Вот только тут не переводить надо, а в степень возводить. Буду пытаться помочь дальше.
0
|
30.12.2016, 14:10 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Дано целое число X в десятичной системе счисления. Выведите запись числа X в восьмеричной системе счисления
Какие из приведенных ниже чисел, записанных в восьмеричной системе счисления, будут делиться на 7 без остатка. Таблица умножения в восьмеричной системе счисления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |