Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
1

Вычислить 7 ^ 77

03.01.2017, 11:29. Показов 1062. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
REM
REM      Контрольное вычисление
REM  7 ^ 77 = 1.181 813 865 805 959 D+65
REM
 
DECLARE FUNCTION M! (i!)
DECLARE FUNCTION ST$ (n!)
DECLARE SUB Si7 ()
 
CLS
DIM SHARED S AS STRING
S = "49"
 
FOR i = 1 TO 75
   CALL Si7
NEXT
 
PRINT S
END
 
FUNCTION M (i)
   M = VAL(MID$(S, i, 1))
END FUNCTION
 
SUB Si7
   DIM t AS STRING
  
   FOR i = LEN(S) TO 1 STEP -1
      a = 7 * M(i) + p
      b = a MOD 10
      p = a \ 10
      t = ST(b) + t
   NEXT
 
   IF p THEN
      S = ST(p) + t
   ELSE
      S = t
   END IF
END SUB
 
FUNCTION ST$ (n)
   ST = LTRIM$(STR$(n))
END FUNCTION
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2017, 11:29
Ответы с готовыми решениями:

Задан массив А размером п. Вычислить среднее арифметическое положительных элементом. Вычислить a1 • a2 + a2 • a3 + + an -1 • an
помогите решить, пожалуйста! Задан массив А размером n. Вычислить среднее арифметическое...

Вычислить минимальное число операций, за которое можно вычислить выражение
Дано действительное число x. Не пользуясь никакими другими арифметическими операциями кроме...

Вычислить произведение элементов столбца матрицы . Вычислить максимальный элемент
Помогите, нужно вычислить произведение элементов второго столбца матрицы Y(3x4). . Вычислить...

Вычислить элемент матрицы А и вычислить суммы элементов каждой строки
Напечатать матрицу А и вычислить суммы элементов каждой строки матрицы А

6
6171 / 936 / 310
Регистрация: 25.02.2011
Сообщений: 1,367
Записей в блоге: 1
03.01.2017, 14:56 2
Лучший ответ Сообщение было отмечено echs как решение

Решение

QBasic не самый лучший язык для работы с длинной арифметикой
При этом реализация вычислений используя строковые переменные - не оптимально по скорости, лучше все вычисления производить в массивах, и только перед выводом - формировать текстовую строку.

вариант вычисления с помощью массива:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DIM i AS LONG, j AS LONG, l AS LONG, a(999) AS LONG, b AS LONG, c AS LONG
a(0) = 1
FOR i = 1 TO 77
    j = -1
    WHILE j < l OR c > 0
        j = j + 1
        b = a(j) * 7 + c
        a(j) = b MOD 10
        c = b \ 10
    WEND
    l = j
NEXT i
FOR i = 0 TO l
    PRINT LTRIM$(STR$(a(l - i)));
NEXT i
PRINT
Добавлено через 9 минут
echs, если будет много времени и желания, то попробуйте вычислить пример из этой темы: Возведение в степень

для быстрых вычислений в Excel можно использовать надстройку от bedvit: https://www.cyberforum.ru/blog... g4356.html
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
03.01.2017, 15:14  [ТС] 3
m-ch
Спасибо! Я в начале хотел было применить массивы,
но подумал, что число не длинное (результат всего
66 знаков). Ну раз так, то еще раз спасибо за программу
и дополнительную информацию!!

Добавлено через 3 минуты
Классный пример, только у QBasic нет такого
размера массивов, да и строк тоже.
0
1102 / 237 / 21
Регистрация: 20.05.2016
Сообщений: 1,068
Записей в блоге: 21
11.01.2017, 12:53 4
Лучший ответ Сообщение было отмечено echs как решение

Решение

Михаил плохого не посоветует! Глубоко уважаю его математический склад ума!
Так же приятно видеть здесь ссылку на результат нашей с Михаилом работы над длинными числами (мою надстройку).
Выложу и пример работы надстройки для Excel (пример полностью работоспособен для любых вычислений, работает на Win+Office x32 и x64).
Вычисление для данных двух примеров (7^7 и 9^999999+9^999999) итог:
Время вычисления (секунд) = 0,078125
Время вывода/заполнения ячеек (секунд) = 6,847656
На средненьком ПК.
Большой размер файла из-за встроенной библиотеки (просто распаковываем их архива, жмем кнопку "вычислить").
Вложения
Тип файла: rar LongNum.rar (1.65 Мб, 6 просмотров)
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
11.01.2017, 13:39  [ТС] 5
bedvit
Спасибо за то, что посетили этот форум и мою
тему в частности. Здесь мало бывает народу.
Считается, что QBasic устарел. НО мало кто понимает,
что на QBasic'е можно создавать сложные программы
такие, где не поможет ни один модный язык. Ведь
задачу решает программист, а язык программирования
лишь инструмент.
0
1102 / 237 / 21
Регистрация: 20.05.2016
Сообщений: 1,068
Записей в блоге: 21
11.01.2017, 14:18 6
Лучший ответ Сообщение было отмечено echs как решение

Решение

echs, Не хочу вас расстраивать, но надстройка написана на С#,С, ассемблере. Даже не на первом моем языке и до сих пор любимом - VBA. VBA (Excel) только использует её. Но все начиналось именно с него. И не могу не согласится с вашим рассуждением - здесь главное программист, а инструменты могут быть разные. Думаю и QBasic вполне конкурентоспособен для своего круга задач, особенно если программист с прямыми руками
1
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
11.01.2017, 14:34  [ТС] 7
bedvit
СПАСИБО!! Вы меня ничуть не расстроили.
QBasic никогда не состарится.
Программисты бренны, а программы на QBasic нетленны!!
1
11.01.2017, 14:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.01.2017, 14:34
Помогаю со студенческими работами здесь

Даны целые числа X,Y,Z. Вычислить MAX(X+Y,XYZ). Вычислить MIN(X,Y,Z X-Y)
1. Даны целые числа X,Y,Z. Вычислить MAX(X+Y,XYZ). 2. Даны целые числа X,Y,Z. Вычислить...

Вычислить значение t, соответствующие каждому значению x по формуле. Вычислить количество отрицательных значений x
Циклы. На С++ Вариант 7! Задание: Составить алгоритм решения задачи согласно своему варианту. В...

Вычислить среднее арифметическое отрицательных чисел. Вычислить сумму элементов каждой строки
Помогите с реализацией задачи: Задать целочисленный двумерный массив NxM (значения N, M вводятся с...

Вычислить max(x + y + z, x * y * z), если все эти числа больше 0, иначе вычислить переменную d=x ^ y.
Даны действительные числа x,y,z. Вычислите max(x+y+z,x*y*z), если все эти числа больше 0, иначе...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru