Форум программистов, компьютерный форум, киберфорум
Наши страницы

QBasic

Войти
Регистрация
Восстановить пароль
 
echs
893 / 1089 / 348
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
#1

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

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

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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2017, 11:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить 7 ^ 77 (QBasic):

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

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

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

Вычислить сумму чисел:в указанном пределе, с неопределенным пределом. Вычислить значение выражения - Delphi
s=\sum_{n=1}^{15}*{(-1)}^{n+1}*\frac{2*sin(n*x)}{n},y=x Помогите найти ошибку. unit Unit1; interface uses Windows,...

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

Вычислить в одномерном массиве вычислить номер максимального элемента - C++
Здравствуйте, меня зовут Вика, я не сильна в программирование (ну тоесть вообще) прошу вас (умные и добрые люди) помочь мне решить задание....

6
m-ch
5211 / 758 / 199
Регистрация: 25.02.2011
Сообщений: 1,041
Записей в блоге: 1
03.01.2017, 14:56 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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: http://www.cyberforum.ru/blogs/829006/blog4356.html
1
echs
893 / 1089 / 348
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
03.01.2017, 15:14  [ТС] #3
m-ch
Спасибо! Я в начале хотел было применить массивы,
но подумал, что число не длинное (результат всего
66 знаков). Ну раз так, то еще раз спасибо за программу
и дополнительную информацию!!

Добавлено через 3 минуты
Классный пример, только у QBasic нет такого
размера массивов, да и строк тоже.
0
bedvit
213 / 83 / 11
Регистрация: 20.05.2016
Сообщений: 358
Записей в блоге: 4
11.01.2017, 12:53 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Михаил плохого не посоветует! Глубоко уважаю его математический склад ума!
Так же приятно видеть здесь ссылку на результат нашей с Михаилом работы над длинными числами (мою надстройку).
Выложу и пример работы надстройки для Excel (пример полностью работоспособен для любых вычислений, работает на Win+Office x32 и x64).
Вычисление для данных двух примеров (7^7 и 9^999999+9^999999) итог:
Время вычисления (секунд) = 0,078125
Время вывода/заполнения ячеек (секунд) = 6,847656
На средненьком ПК.
Большой размер файла из-за встроенной библиотеки (просто распаковываем их архива, жмем кнопку "вычислить").
1
Вложения
Тип файла: rar LongNum.rar (1.65 Мб, 3 просмотров)
echs
893 / 1089 / 348
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
11.01.2017, 13:39  [ТС] #5
bedvit
Спасибо за то, что посетили этот форум и мою
тему в частности. Здесь мало бывает народу.
Считается, что QBasic устарел. НО мало кто понимает,
что на QBasic'е можно создавать сложные программы
такие, где не поможет ни один модный язык. Ведь
задачу решает программист, а язык программирования
лишь инструмент.
0
bedvit
213 / 83 / 11
Регистрация: 20.05.2016
Сообщений: 358
Записей в блоге: 4
11.01.2017, 14:18 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
echs, Не хочу вас расстраивать, но надстройка написана на С#,С, ассемблере. Даже не на первом моем языке и до сих пор любимом - VBA. VBA (Excel) только использует её. Но все начиналось именно с него. И не могу не согласится с вашим рассуждением - здесь главное программист, а инструменты могут быть разные. Думаю и QBasic вполне конкурентоспособен для своего круга задач, особенно если программист с прямыми руками
1
echs
893 / 1089 / 348
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
11.01.2017, 14:34  [ТС] #7
bedvit
СПАСИБО!! Вы меня ничуть не расстроили.
QBasic никогда не состарится.
Программисты бренны, а программы на QBasic нетленны!!
1
11.01.2017, 14:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2017, 14:34
Привет! Вот еще темы с ответами:

Вычислить в одномерном массиве вычислить сумму элементов массива... - C++
В одномерном массиве, состоящем из 10 целых элементов, вычислить сумму элементов массива, расположенных между первым и последними...

Вычислить объемы шаров . Вычисление радиусов вычислить в подпрограмме. - Pascal
точки А(5.I,2.9,-3.7),В(0.8,-1.5,3.9),С(2.2,0.8,5.4) и D(-3.3,2.5,0.7) принадлежат поверхностям шаров с центром в точке О(0.3,7.8,2.9)....

Вычислить по формуле. ВЫчислить с заданной точностью - C++
http://i22.***********/big/2011/0607/04/8a2c677b4bf24ec8e8fb7be0ee571804.jpg задание 6-7

Как вычислить дифференциал длины дуги кривой. Как вычислить производную через предел - Математический анализ
Как вычислить дифференциал длины дуги кривой? Как вычислить производную через предел?


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

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

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