Вспомогательный материал к составлению простейших 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% и выводим на экран под номером