Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2018, 11:03   #1
hazza
Новичок
Джуниор
 
Аватар для hazza
 
Регистрация: 12.02.2018
Сообщений: 2
Восклицание Помогите найти ошибку в коде (BAT-файл)

Помогите пожалуйста найти ошибку в коде перевода из десятичной системы счисления в семеричную. Пишет: Отсутствующий операнд.

Код:
@echo off
if "%~1"=="" (set /P num="Enter the number: ") else (set "num=%~1")
set "res="
if %num:~0,1%==- (
set res=%res%-
set num=%num:~1%
)
echo %num%
::set /a int=%num%
set /a tochka=0
set /a kol=0

set integer=
set float=

::выделим целую и дробную часть
:razd
if "%num%"=="" (goto :end)
if %num:~0,1%==. (
set /a tochka=1
goto end2)
set integer=%integer%%num:~0,1%
set num=%num:~1%
goto razd
:end2
set num=%num:~1%

:floatpart
if "%num%"=="" (goto :end3)
set float=%float%%num:~0,1%
set /a kol+=1
set num=%num:~1%
goto floatpart

:end
:end3
::echo %integer%
::if %tochka%==1 echo %float%



set /a int=%integer%
set /a w=1
set /a result=0
set /a ost=0
set /a s=0


::перевод целой части
:start
set /a ost=%int% "%%" 7
::echo %ost%
set /a int=%int% / 7
::echo %int%
set /a s=%ost% * %w%
set /a result=%result%+%s%
set /a w*=10
::echo %w%
::echo %result%
if %int% LEQ 7 (
set /a g=%int% * %w%
set /a result=%result% + %g% )
if %int% GEQ 7 (goto start)
::echo %result%
set res=%res%%result%

::перевод дробной части
if %tochka%==1 (goto perevod) else (goto endprog)
:perevod
set res=%res%.
set respr=
set /a i=4
:perevod2
:perevod1
:perevod
set /a kol1=0
if %i%==0 (
set res=%res%%respr%
goto endprog)
set /a ff=7*%float%
set /a pro1=%ff%
:kolvorazr
if "%ff%"=="" (goto dalee)
set /a kol1+=1
set ff=%ff:~1%
goto kolvorazr
:dalee
if %kol1%==%kol% (
set respr=%respr%0
if %float:~0,1%==0 (set float=%pro1:~1%)
set /a i-=1
goto perevod2)
set respr=%respr%%pro1:~0,1%
if %pro1:~1,1%==0 (set float=%pro1:~2%) else (set float=%pro1:~1%)
set /a kol1=0
set /a i-=1
goto perevod1
)

:endprog
set res=Perevod iz 10-c.c. v 7-c.c %res%
echo.%res%
Pause

Последний раз редактировалось hazza; 15.02.2018 в 11:07.
hazza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Помогите найти ошибку в коде sanya_prokopchuk Помощь студентам 1 03.11.2017 21:24
Помогите, пожалуйста, найти ошибку в коде (найти сумму факториалов чётных чисел в заданном диапазоне) kris14 Паскаль, Turbo Pascal, PascalABC.NET 8 25.10.2017 15:42
Помогите найти ошибку в коде! Igrohim Общие вопросы Delphi 10 29.12.2014 00:01
помогите найти ошибку в коде xaero93 Помощь студентам 4 20.04.2009 16:05
Помогите найти ошибку в коде Jora_Kornev Общие вопросы Delphi 10 10.01.2009 17:00