Bat-программирование для организации вычислений

advertisement
Вспомогательный материал к составлению простейших bat-файлов
и использованию внутренних команд DOS для каталогов и файлов
Часть 3: Применение bat-файлов для вычислений.
Дан разбор одного из вариантов контрольной работы по этой теме…
Основная «изюминка» темы – использование ключей «/A» и «/P» для организации
вычислений и диалогового ввода исходных данных, ключа /L команды For для
организации циклов с шагом, а также обращения к участкам bat-файла как bat-файлам.
Текст задания (основные компоненты):
1)
Составить bat-файл проверяющий треугольник, заданный тремя сторонами на
«прямоугольность». Исходные данные могут быть или указаны в командной строке,
или же вводится в диалоге (в этом случае командная строка пустая).
Решение.
В прямоугольном треугольнике со сторонами a,b,c: c2-a2-b2=0, если c-гипотенуза.
Неизвестно, какая из сторон гипотенуза... Нужно перемножить все варианты!
@echo off Отключаем вывод строк пакетного файла перед их выполнением и чистим
Cls
экран (в дальнейшем предполагаем, что эти строки есть везде)
If ‘%1==’ (
Перебирая названия сторон с For,
For %%x in (a b c) do Set /P %%x=%%x= организуем диалоговый ввод значений
) else (
сторон треугольника
Set /A a=%1, b=%2, c=%3
Читаем исходные данные с командной
)
строки и присваиваем переменным a,b,c
Set /A T=(a*a-b*b-c*c)* (b*b-a*a-c*c)* (c*c-b*b-a*a)
If %T%==0 (echo Прямоугольный) else echo Не прямоугольный
2)
Составить bat-файл, выводящий на экран сумму остатков цепного деления
числа, заданного как первый параметр командной строки на число, заданное как
второй. Если командная строка пуста, то организовать ввод в диалоге.
Решение (заголовок bat-файла пропущен):
If ‘%1==’ (
Если нет параметров, то ввод в диалоге…
Set /p x=Введите число:
Set /p d=Введите делитель:
) else (
иначе – читаем из командной строки
Set /A x=%1, d=%2
исходные число – X, делитель – d
)
Set /A R=0
Обнуляем начальное значение R (хранилище результата)
:s
Set /a R+=x%%d, x\=d В цикле увеличиваем R на остаток деления X на d и
If not %x%==0 goto s
уменьшаем значение X в d раз, пока не станет нулевым…
Echo Ответ: %R%
выводим на экран результат
Pause
и пауза до нажатия клавиши…
3)
Составить программу вывода на экран N случайных целых чисел, каждое из
которых принадлежит заданному отрезку [min, max] (N,min,max-в командной строке).
For /L %%x in (1,1,%1) do call :s %%x %2 %3 Вначале %1 – количество чисел, но
при вызове :s – порядковый номер
:s
Set /A T=%2+(%3-%2)*%RANDOM%/32767
Вычисляем случайное число
Echo %1) %T%
и выводим на экран под номером
Download