Технический форум

Технический форум (http://www.tehnari.ru/index.php)
-   Basic (http://www.tehnari.ru/forumdisplay.php?f=127)
-   -   Составить модель и алгоритм на Бейсике (http://www.tehnari.ru/showthread.php?t=84422)

тиристор дима 27.01.2013 12:13

Составить модель и алгоритм на Бейсике
 
Помогите пожалуйста составить модель и алгоритм вот этой задачи"найти сумму заданного трехзначного числа с числом, полученным выписыванием цифр этого числа в обратном порядке" никак не могу tehno036

duc 27.01.2013 12:23

Алгоритм элементарен: делим число на разряды, каждый в свою переменную, меняем местами и суммируем. Если вспомню про вопрос, то вечером нарисую. Сейчас клиентка позвонила, убегаю :)

тиристор дима 27.01.2013 12:52

не забудь пожалуйста

duc 27.01.2013 20:10

Цитата:

CLS
be:
INPUT "Введите исходное число"; a
s = FIX(a / 100)
IF s = 0 GOTO er
IF s > 10 GOTO er
d = FIX((a - s * 100) / 10)
e = a - s * 100 - d * 10
itog = s * 100 + e * 100 + d * 20 + s + e
PRINT itog
GOTO endp
er: PRINT "Ошибка, ожидается трёхзначное число"
GOTO be
endp:
Выделил сотни (S), если получил ноль или больше 10, то число не является трёхзначным и выдаётся сообщение об ошибке. Выделил десятки (D) и единицы (E)... Надеюсь дальше разберёшься сам. Писал и проверял на MS-DOS QBASIC 1992 года.

duc 27.01.2013 20:27

Лопухнулся на граничном условии ;) , шестая строка должна быть
Цитата:

Сообщение от duc (Сообщение 855201)
IF s > 9 GOTO er


тиристор дима 28.01.2013 02:20

НЕ понимаю почему, но у мы на уроках делали не так. Мы делали что в этом роде" INPUT "Введите исходное число"; a
s = FIX(a / 100)
d = FIX((a - s * 100) / 10)
e = a - s * 100 - d * 10
PRINT(здесь пишем что найти)
end
И вот как то так мы решаем.
Я не очень в этом разбираюсь может это язык другой. Помогите пожалуйста мне очень надо

duc 28.01.2013 07:00

Пожалуйста:
Цитата:

INPUT "Введите исходное число"; a
s = FIX(a / 100)
d = FIX((a - s * 100) / 10)
e = a - s * 100 - d * 10
PRINT s * 100 + e * 100 + d * 20 + s + e
Но этот вариант некорректно отработает и даст ошибочный результат, если в числе будет больше или меньше трёх знаков, в то время как первый выдаст сообщение об ошибке и предложит повторить ввод.

iks2 23.10.2016 19:12

это работает...

Код:

CLS

INPUT "A = "; a

b1 = a \ 100
b2 = a \ 10 MOD 10
b3 = a MOD 10

b = 100 * b3 + 10 * b2 + b1

PRINT a + b
END


prima 23.10.2016 21:57

Цитата:

Сообщение от iks2 (Сообщение 2426490)
это работает...

Работает...
1) Зачем поднимать старую тему?
2)
Цитата:

Сообщение от duc (Сообщение 855435)
этот вариант некорректно отработает и даст ошибочный результат, если в числе будет больше или меньше трёх знаков, в то время как первый выдаст сообщение об ошибке и предложит повторить ввод


iks2 24.10.2016 11:03

prima,
Вы извините, я хотел вас спросить.
У меня нет прав поднять старую тему?
Или это запрещено вообще? То есть - это первое неофициальное предупреждение?


Часовой пояс GMT +4, время: 14:24.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.